PL SQL 输出未显示

Posted

技术标签:

【中文标题】PL SQL 输出未显示【英文标题】:PL SQL output is not getting displayed 【发布时间】:2013-05-05 23:09:56 【问题描述】:

我有相当简单的代码..在 Oracle Virtualbox 中运行。但是由于某种原因,它没有显示 pl/sql 输出。

这里是代码sn-p

SQL> set serveroutput on
SQL> list
    1   Create or Replace procedure mytz
    2       IS
    3       v_mytz TIMESTAMP WITH TIME ZONE DEFAULT '2013-05-05 12:00:00 AM';
    4       BEGIN
    5       DBMS_OUTPUT.PUT_LINE ('Default timestamp is ' );
    6*     end mytz ;
SQL> /

     Procedure created.

 SQL> 

为了在 SQL 提示符下看到输出,我需要做些什么特别的事情吗?

【问题讨论】:

【参考方案1】:

您必须实际运行该过程,而不仅仅是创建它,例如:

set serverputput on
exec mytz;

set serveroutput SQL*Plus 命令必须在执行过程的会话中,而不是在创建它的地方(如果它们不同)。

您目前没有显示变量的值;也许你想要这个?

    dbms_output.put_line('Default timestamp is: ' || v_mytz);

【讨论】:

谢谢。就是这样。 ps:我故意没有添加v_mytz。现在我也从这个和其他过程中得到输出。 @Vishal - 我还应该指出您正在使用隐式格式模型进行转换。您应该使用to_timestamp 进行分配,使用to_char 进行显示,使用显式format models;否则它将表现不同,并可能在具有不同 NLS 设置的会话中出错。

以上是关于PL SQL 输出未显示的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 匿名块已完成但未显示结果

PL/SQL 匿名块已完成”但未显示结果

无输出,仅显示“PL/SQL 过程已成功完成”

如何在匿名 PL/SQL 块中自动显示所有 SQL 语句的输出

构建一些动态查询选择并立即在 Oracle PL/SQL 中显示其输出

(十七)PL/SQL DBMS输出