Oracle PL / sql支持bool数据类型,而Oracle sql则不支持bool数据类型.当您想要将PL / sql布尔返回值处理回日常sql时(例如下面的例子),这是众所周知的痛苦.

即使是问汤姆网站也对这种不合适感到沮丧,报告你应该将布尔列编码为固定值’Y’/’N’CHAR列,这是一个如此糟糕的副作用答案在很多不同的层面上我不知道从哪里开始批评它.事实上,这种响应的唯一赎回质量是(据我最近发现),许多其他数据库引擎也不支持布尔数据类型.

无论如何 – 问题……

我有一个解决以下问题的方法(虽然凌乱和冗长),所以我出于好奇而不是必要来问这个问题.但是让我感到惊讶的少数事情之一就是聪明的程序员的聪明才智,所以希望你们中的一个人能够提出以下解决方案.

在下面的示例中,函数stock_pkg.is_in_stock()(这是我的应用程序的固有部分)返回BOOL值,导致sql无效(请记住,sql不支持BOOL):

SELECT part_no,stock_pkg.is_in_stock(part_no) in_stock

FROM parts_table

我需要的是找到一种方法使用上面的函数调用生成格式的有效字符串(varchar)输出:

PART_NO IN_STOCK

------- ------------

AA YES

BB NO

CC NO

(你可以用’是/否’代替’真/假’,’绿/红’,’保守/劳工’或甚至数字1/0代替我所关心的 – 只要输出属于两个不同的输出之一类别.)

不幸的是,我没有权限重写原始函数以返回不同的数据类型.此外,在这个较大的应用程序中有数千个这样的函数,这使得重写它们变得不切实际.

因此,从这个意义上讲,解决方案必须是“通用”解决方案(即不特定于此函数调用).例如,将函数重写为stock_pkg.is_in_stock_chr()是不够的,因为这意味着必须重新编写应用程序中的所有其他类似函数.

我已经尝试过了:

SELECT part_no,CASE WHEN stock_pkg.is_in_stock(part_no) THEN 'y' ELSE 'n' END in_stock

FROM parts_table

甚至我自己的包装函数:

SELECT part_no,my_bool_to_str(stock_pkg.is_in_stock(part_no)) in_stock

FROM parts_table

但是,即使在其他功能结构中包含布尔值也不会被Oracle sql所允许(至少在Oracle 10g中不允许).

还有在in_stock列中编写子选择的选项,但在极端的例子中也可能过于复杂,并且也可能是特定于案例的.

正如我所说,我希望在那里有一个巧妙的解决方案(或者至少是一个我碰巧忽略的非常简单的解决方案).

谢谢你的时间.

Oracle bool 类型,Bool支持Oracle SQL相关推荐

  1. oracle 自定义类型使用方法,oracle pl/sql中使用自定义数据类型

    模式: CREATE OR REPLACE TYPE 类型名 as OBJECT (属性名 属性类型,...); 举例: CREATE OR REPLACE TYPE BITS_IDX_BASE AS ...

  2. oracle 延迟段,DUL 支持Oracle 19c , 如何手动处理延迟段创建的表

    oracle dul是oracle的恢复利器, 它的传奇功能不再解释,但是dul和其它工具一样也是需要段(SEGMENT)块信息恢复数据,但是从oracle 11g开始支持了延迟段创建,那么使用dul ...

  3. 各种oracle索引类型介绍,各种Oracle索引类型介绍

    逻辑上: Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函数索引 Domain 域索引 ...

  4. oracle日期类型格式转换,Oracle日期类型转换格式

    将日期型转换成字符串时,可以按新的格式显示. 如格式YYYY-MM-DD HH24:MM:SS表示"年-月-日 小时:分钟:秒".Oracle的日期类型是包含时间在内的. 主要的日 ...

  5. oracle 日期类型是什么,oracle date日期类型 精析

    一.date 1.date.sysdate格式说明 展示 date类型,展示格式既可以为:YYYY/MM/DD,也可以为YYYY/MM/DD HH24:MI:SS: 其存储格式只有一种:YYYY/MM ...

  6. oracle+资料类型不一致吗,oracle数据库中,字段类型不一致,导致查询慢

    最近一个WEBSERVICE突然变慢了,后查询发现,后台查询也非常慢(记录条数800多万),索引也有,如下语句 SELECT P.ID,P.RECORD_ID,P.KEY_NAME,P.KEY_CON ...

  7. Python的bool类型

    写习惯了C#的代码,在想要将一个字符串'False'转换为bool型的时候,很自然的写了如下的Python代码: 看到上面的结果了没?是True.突然记起Python中除了''."" ...

  8. kiel中bool类型的使用

    一.C语言中的bool类型 bool表示布尔类型,表示逻辑的真假,在C语言中非零表示真,只有0表示假.C语言的基本变量类型没有bool类型,需要用户自己定义. 二.引用头文件<stdbool.h ...

  9. oracle触发器记录所有dml,Oracle DML类型触发器

    Oracle DML类型触发器 Oracle DML类型触发器是Oracle开发过程当中最经常用到,也是最常见的触发器,主要是对DML操作,如:insert.delete.update操作事件进行触发 ...

最新文章

  1. Android--框架布局
  2. java中session的作用_java中session的工作原理是什么?和Cookies有何区别?
  3. 量子计算在秘密分析中的应用【会议】
  4. 配置连接池连接oracle,Oracle连接池怎么配置
  5. eclise去连接mysql,Eclipse如何连接MySQL
  6. qgis 图片_QGIS教程09QGIS中如何制作萤火虫地图?
  7. C# label控件竖直显示 label控件垂直显示
  8. 如何用word制作逼真的手写字体?
  9. CISSP避坑经验指南
  10. 首次全面深度解密华为方舟编译器
  11. 服务器响应302是什么意思,HTTP 状态中的 301 和 302 是什么意思?二者有何不同?...
  12. vim中文乱码问题解决方式
  13. 易保全:览契约文化,传契约精神
  14. 中国人民大学与加拿大女王大学金融硕士——在这里,打开精彩“识界”
  15. Nginx反向代理到另外一台服务器,域名解析IP变更后连接超时
  16. 计算机网络TCP的全称,tcp/ip全称是什么
  17. 20145238-荆玉茗 《Java程序设计》第五次实验报告
  18. Pyecharts基本图:日历图
  19. [原]OpenGL基础教程(二)多边形绘制
  20. 2021Java高级面试题总结:java程序员优秀简历模板

热门文章

  1. 5.11华为笔试复盘
  2. 知识点记录:LCD12864。OLED,彩屏液晶
  3. 微店API分享:获得微店商品详情 API 返回值说明
  4. 微信扫码登陆失败PC 查找失败(4,-2) windows
  5. API 接口获取sku详细信息返回值说明
  6. c#学习笔记(1)GridView问题
  7. MongoDB学习总结(三) —— 常用聚合函数
  8. broadcom corporation BCM4313 linux驱动下载地址
  9. IIS SSL客户端证书(忽略/接受/必须)之二——客户端证书申请
  10. 深度学习 动量公式推导(moment动量)