Oracle 中的布尔字段

2023-11-21

昨天我想向 Oracle 表添加一个布尔字段。然而,Oracle 中实际上并没有布尔数据类型。这里有人知道模拟布尔值的最佳方法吗?谷歌搜索这个主题发现了几种方法

  1. 使用一个整数,并且不要为它分配除 0 或 1 之外的任何值。

  2. 使用以“Y”或“N”作为仅有的两个值的字符字段。

  3. 使用带有 CHECK 约束的枚举。

经验丰富的 Oracle 开发人员是否知道哪种方法是首选/规范的?


I found this链接有用。

以下段落强调了每种方法的一些优点/缺点。

最常见的设计就是模仿许多类似布尔的 Oracle 数据字典视图使用的标志,选择“Y”表示 true 'N' 表示假。但是,要与主机正确交互 环境,例如 JDBC、OCCI 和其他编程环境, 最好选择 0 为 false,1 为 true,这样它就可以工作 正确使用 getBoolean 和 setBoolean 函数。

基本上他们提倡方法2,为了效率,使用

  • values0/1(因为与 JDBC 的互操作性getBoolean()等)带有检查约束
  • a typeCHAR(因为它使用的空间比 NUMBER 少)。

他们的例子:

create table tbool (bool char check (bool in (0,1));
insert into tbool values(0);
insert into tbool values(1);`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 中的布尔字段 的相关文章

  • SQL选择符号||是什么意思意思是?

    什么是 在 SQL 中做什么 SELECT a b AS letter 表示字符串连接 不幸的是 字符串连接不能在所有 sql 方言之间完全移植 ANSI SQL 中缀运算符 mysql concat 可变参数函数 caution 表示 逻
  • Rails 建模:将 HABTM 转换为 has_many :through

    我正在现有的 Rails 站点上进行维护工作 并且遇到了一些由多对多关联引起的问题 看起来该网站最初是使用has and belongs to many对于一些业务逻辑变得更加复杂的关系 所以我需要使用has many through而是支
  • 如何对Oracle进行SQL注入

    我正在对一个系统进行审计 开发人员坚称该系统可以防止 SQL 注入 他们通过去掉登录表单中的单引号来实现这一点 但后面的代码没有参数化 它仍然使用字面 SQL 如下所示 username username Replace var sql s
  • 想要从字符格式转换为带小数的数字格式

    想要将字符格式 00001000000 转换为10000 00 请帮我 我已经尝试过 select to number 00012300 9999999999 99 nls numeric characters from dual 这个脚本
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • 如何从 Oracle 中的 select 语句调用带有 Rowtype 参数的函数

    我有一个 oracle 函数 它有一个 in 参数 它是表的行类型 我需要从 select 语句将当前行传递给这个函数 以便它进行一些处理并返回一个值 是否有一个伪变量可以在 select 语句的上下文中使用 相当于触发器中的旧的和新的 我
  • 如何使用 EclipseLink 处理以 Oracle 类型作为输入或输出的 Oracle 存储过程调用

    我进行了概念验证 以了解使用 EclipseLink 调用存储过程的效率如何 我能够使用带有标量 原始数据类型 链接整数 varchar 等 的 EclispeLink 来调用 Oracle 存储过程 我想了解如何使用集合 Oracle 类
  • 数据库的创建日期

    这是一个问题 起源于this https stackoverflow com questions 2522626 check how old an oracle database is 2523227 2523227杰米提出的问题 我想我会
  • 如何在sql中提取周数

    我有一个 varchar2 类型的转换列 其中包含以下主菜 01 02 2012 01 03 2012 etc 我使用 to date 函数将其转换为另一列中的日期格式 这是我得到的格式 01 JAN 2012 03 APR 2012 当我
  • DynamoDB 中的时间戳应使用什么数据类型?

    我是 DynamoDB 新手 我希望创建一个使用 DeviceID 作为哈希键 时间戳作为范围键和一些数据的表 DeviceID 123 Timestamp 2016 11 11T17 21 07 5272333Z X 12 Y 35 在
  • If 语句中 Bool 计算错误

    只是为了好奇 我的代码有这个问题 e被评估为false 我知道通过查看数据库中的数据会得到错误 但 if 语句并不关心这一点 并假设这是真的 并试图抛出异常 有什么想法吗 edit 没有 在第 16 行末尾 价值false是正确的 我已经检
  • Oracle内置函数元数据

    有没有办法获取 Oracle 内置聚合和其他功能的元数据 例如AVG STDDEV SQRT ETC 我需要知道对象 id 和参数元 In the SYS ALL OBJECTS查看我找不到任何有用的东西 我也尝试过搜索SYS ALL AR
  • simpleJdbcCall 调用 Pl/SQL 过程 -- ORA-22922 不存在的 LOB 值

    我收到此 SQLException ORA 22922 不存在的 LOB 值 我的场景是 我正在调用一个采用结构数组的过程 该结构体包含三种类型 两种是日期 一种是 Clob 当我使用 Spring 的 simpleJdbcCall 设置
  • ORACLE:未找到数据——但数据存在

    调试包过程 当实际上有数据时却找不到数据 仅测试 SELECT SELECT trim trailing from GL SECURITY as DUMMY FROM b2k user b2k WHERE sms username FUCH
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • 在 x86 程序集中存储大量布尔值的最佳方法是什么?

    最近我一直在处理充满布尔值的大型数组 目前 我将它们存储在 bss部分有一个 space指令 它允许我创建字节数组 但是 由于我只需要存储布尔值 因此我希望从数组中逐位读取和写入数据 目前 我能想到的最好方法是有一个 space指令所需存储
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • 如何更新 pl/sql 中嵌套表的列? [复制]

    这个问题在这里已经有答案了 我正在尝试在表中创建一个可以存储多个值的列 如下所示 我有一个学生id std和一个名为marks可以采用几个值 例如2 3 4 我想更新此列表以添加另一个标记2 3 4 5但我不知道怎么做 我如何更新专栏mar
  • Oracle即时客户端和Oracle客户端之间的区别

    Oracle即时客户端和Oracle客户端有什么区别 你能给我解释一下吗 谢谢 Oracle 客户端附带一个安装程序和许多可执行文件 例如 sqlplus tnsping 很完整而且很大 Oracle Instant 客户端是一个基本的轻量
  • 为什么在 JavaScript 中 if([]) 被验证而 [] == false ?

    if false alert empty array is false alert alert 0 if alert empty array is true 他们都会运行警报 Demo http jsfiddle net roine ZFD

随机推荐

  • 如何在cygwin上通过控制台安装以前版本的软件包?

    我需要编写一个使用 svn 1 6 17 部署许多 cygwin 应用程序的脚本 我所有的尝试都是通过安装 svn 1 7 或什么都不完成 我尝试安装 subversion subversion 1 6 subversion 1 6 17
  • 连接 xml 文件

    我有几个 xml 文件 其名称存储在另一个 xml 文件中 我想使用 xsl 生成 xml 文件组合的摘要 我记得有一种方法可以使用 msxml 扩展来执行此操作 我正在使用 msxml 我知道我可以使用获取每个文件的内容select do
  • 如何使用 JavaScript 检测 Chrome v78+ 上的 #enable-force-dark 标志?

    我最近为我的网站设计并实现了一种深色模式 该模式使用自定义深色来匹配浅色 默认 配色方案 而且我最近还意识到 Chrome 78 有一个可选标志 称为 enable force dark 启用后 用户必须这样做 Chrome 会自动尝试将网
  • 验证用 javascript 逗号分隔的多个电子邮件

    我想验证一个字符串 它可以是一封电子邮件或多封以逗号分隔的电子邮件 例如 电子邮件受保护 gt 正确账单 gt 假 电子邮件受保护 电子邮件受保护 gt 正确 电子邮件受保护 电子邮件受保护 鲍勃 gt 假 bob 电子邮件受保护 电子邮件
  • 如何在静态上下文中将泛型类与特定对象一起使用?

    我会尽力解释 我使用 Play Framework 2 我会做很多 CRUD 操作 其中一些是相同的 所以我想 KISS 和 DRY 所以一开始我正在考虑一个包含以下内容的抽象类list details create update and
  • 动态将 Expression> 转换为 Expression

    我找不到从 Expression gt 转换为 Expression gt 的方法 由于我使用了大量反射 实际上 我真正需要的是一种采用类型参数并执行转换的方法 public object Convert Expression
  • 检查pandas数据框中是否有多个子字符串[重复]

    这个问题在这里已经有答案了 我有一个 pandas 数据框 我想检查特定列的子字符串 目前我有 30 行这样的代码 df NAME str upper str contains LIMITED df NAME str upper str c
  • python打开不同目录下的所有文件

    我需要在当前目录中打开另一个目录中的文件而不使用它的路径 当我执行以下代码时 for file in os listdir sub dir f open file r lines f readlines for line in lines
  • C++ const Convert [重复]

    这个问题在这里已经有答案了 可能的重复 为什么将 指向非常量指针的指针 转换为 指向指向常量指针的指针 是不合法的 我有一个功能 bool isCirclePolygonIntersection const Point const int
  • 无需编写控制器的简单 ASP.NET MVC 视图

    我们正在构建一个具有非常少代码的网站 它主要只是提供一堆静态页面 我知道随着时间的推移 情况会发生变化 我们需要交换更多动态信息 因此我决定继续使用 ASP NET MVC2 和 Spark 视图引擎构建一个 Web 应用程序 将有几个控制
  • C#:明确声明“不安全”/编译器选项的好处

    我了解指针以及在 C 代码中使用它们的罕见需求 我的问题是 必须在代码块中明确声明 不安全 背后的原因是什么 此外 为什么必须更改编译器选项以允许 不安全 代码 底线 CLR 或语言规范 中的什么使得我们不能在需要时就使用指针 就像 C 和
  • “您可能需要一个合适的加载器来处理此文件类型”webpack 和 vue

    我正在尝试使用以下命令编译 webpack node modules bin webpack 我收到错误 Module parse failed home vagrant Code stream resources assets js vi
  • jQuery 动画:忽略双击

    我有一个简单的 jQuery 动画 可以在 click 事件发生时将 div 向右或向左移动 但是 如果用户单击该事件两次 则会触发两次 这会扰乱格式 这是我所拥有的示例 a right click function if this is
  • 限制wget可以下载的大小

    是否可以限制或限制数据量wget从网站下载 通过服务器设置或wget环境 例如 一页大小为 1GB 我希望 wget 在 100MB 时停止下载 利用系统通过以下方式限制进程资源消耗的能力ulimit命令应该可以正常工作 假设您使用 bas
  • 在 Mako 中将字符串标记为安全

    我正在使用带有 Mako 模板的 Pylons 并且我想避免一直输入以下内容 h some function that outputs html n 我想以某种方式将函数或变量标记为安全 您可以在 Django 中执行此操作 这样我就不必一
  • 错误:未知选项“--no-crunch”- AAPT 错误

    我昨天下载了最新版本 r14 但在运行任何应用程序时出现此错误 ERROR Unknown option no crunch 请帮忙 我最近遇到了这个问题 但现在是solved 更新到 ADT r14 后 转到Window gt SDK M
  • YouTube 链接的正则表达式

    在我正在开发的系统中 我需要识别以下格式的 YouTube 链接 youtube youtube 网址 youtube 目前我得到了这个正则表达式 youtube http www youtube watch v a zA Z0 9 you
  • 尝试使用模拟在远程计算机上运行 PowerShell 脚本时出现“不允许请求的注册表访问”

    这是我第一次尝试从 C 应用程序执行 PowerShell 脚本 我使用 PowerShell 是因为我需要在远程计算机上执行的 exe 的输出 我能够使用 WMI 在远程计算机上运行 exe 但无法获得所需的输出 无论如何 过去一天左右我
  • 尝试 C 中的 catch 语句

    今天我在想其他语言中存在的 try catch 块 谷歌搜索了一段时间 但没有结果 据我所知 C 中没有 try catch 这样的东西 但是 有没有办法 模拟 它们呢 当然 有断言和其他技巧 但没有像 try catch 那样也能捕获引发
  • Oracle 中的布尔字段

    昨天我想向 Oracle 表添加一个布尔字段 然而 Oracle 中实际上并没有布尔数据类型 这里有人知道模拟布尔值的最佳方法吗 谷歌搜索这个主题发现了几种方法 使用一个整数 并且不要为它分配除 0 或 1 之外的任何值 使用以 Y 或 N