sql - 如何在 SELECT 语句中使用 BOOLEAN 类型

标签 sql oracle plsql oracle10g ora-00904

我有一个参数为 BOOLEAN 的 PL/SQL 函数:

function get_something(name in varchar2, ignore_notfound in boolean);

此功能是第三方工具的一部分,我无法更改它。

我想在 SELECT 语句中使用此函数,如下所示:

 select get_something('NAME', TRUE) from dual;

这不起作用,我收到此异常:

ORA-00904: "TRUE": invalid identifier

据我了解,关键字TRUE无法识别。

我怎样才能做到这一点?

最佳答案

您绝对可以从 SELECT 查询中获取 bool 值,只是不能使用 bool 数据类型。

您可以用 1/0 表示 bool 值。

CASE WHEN (10 > 0) THEN 1  ELSE 0 END (It can be used in SELECT QUERY)

SELECT CASE WHEN (10 > 0) THEN 1  ELSE 0 END AS MY_BOOLEAN_COLUMN
  FROM DUAL

返回,1(在 Hibernate/Mybatis/etc 中 1 为 true)。否则,您可以从 SELECT 中获取可打印的 bool 值。

SELECT CASE WHEN (10 > 0) THEN 'true' ELSE 'false' END AS MY_BOOLEAN_COLUMN
 FROM DUAL

这将返回字符串'true'

关于sql - 如何在 SELECT 语句中使用 BOOLEAN 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1465405/

相关文章:

.net - ODP.NET:使用连接池避免连接超时

html - css 表格宽度无法正常工作

sql - 如何防止 dbms_output.put_line 修剪前导空格?

sql - Oracle级联删除

sql - PL/Sql过程vs函数?

sql - 从数组创建字符串

mysql - 如何从总记录中获取不存在的记录为空?

plsql - pl sql 中 while 循环出错

mysql - 按日期检查表格中有多少条目

php - 如何在 Laravel 4 中使用 UPDATE 或 INSERT?