【问题标题】:dbms_output cannot print boolean?dbms_output 不能打印布尔值?
【发布时间】:2017-02-28 16:21:59
【问题描述】:

我正在学习游标,我无法在

中打印布尔值
dbms_output.put_line();

代码是

DECLARE
CURSOR c_employees_3i is
SELECT * FROM employees_3i;
row_count BOOLEAN;
BEGIN
OPEN c_employees_3i;
row_count := c_employees_3i%isopen; 
Dbms_Output.put_line(bool_to_text(row_count));
CLOSE c_employees_3i;
END;

我收到这个错误

ORA-06550: line 8, column 22:
PLS-00201: identifier 'BOOL_TO_TEXT' must be declared
ORA-06550: line 8, column 1:
PL/SQL: Statement ignored

请帮我纠正错误。谢谢

【问题讨论】:

    标签: sql oracle boolean database-cursor dbms-output


    【解决方案1】:

    函数bool_to_text 不存在(AFAIK,Oracle 从来没有这样的函数)。

    您可以使用diutil.bool_to_int 将布尔值转换为整数并打印:

    begin
      dbms_output.put_line(sys.diutil.bool_to_int(true));
    end;
    

    【讨论】:

    • 当我尝试使用 row count 时。即使表中有值,它也总是返回 0 .DECLARE CURSOR c_employees_3i is SELECT * FROM employees_3i; row_count NUMBER;开始打开 ​​c_employees_3i; row_count := c_employees_3i%rowcount; Dbms_Output.put_line(row_count);关闭 c_employees_3i;结束;
    • @ShreeNaath 请为此提出一个单独的问题(在网站上搜索类似问题之后。我猜这已经被问过了)。
    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多