【问题标题】:PL/SQL anonymous block completed" with no result displayedPL/SQL 匿名块已完成”但未显示结果
【发布时间】:2019-11-12 21:05:16
【问题描述】:

当我执行下面的代码时,我收到消息“匿名块已完成”,但没有返回任何结果。谁能帮帮我?

BEGIN
 FOR r IN
 (SELECT DBMS_METADATA.GET_DDL
 (object_type => 'VIEW', name => view_name, schema => USER)
 AS view_text
 FROM USER_VIEWS)
 LOOP
 IF INSTR (r.view_text, 'Project') > 0 THEN
 DBMS_OUTPUT.PUT_LINE (r.view_text);
 END IF;
 END LOOP;
END;

【问题讨论】:

    标签: plsql plsqldeveloper


    【解决方案1】:

    在运行这段代码之前,您必须启用输出。在 SQL*Plus 和 SQL Developer 中,它是通过运行来完成的

    set serveroutput on
    

    PL/SQL Developer 必须有类似的东西,要么通过显式运行该语句(如果它受支持),要么通过单击输出窗口中的某处,以便 DBMS_OUTPUT 可以显示结果。

    【讨论】:

    • 我刚刚这样做了,但“ON”一词出现了语法错误。我还需要添加什么吗?
    • 该语法错误以粉红色标记,正如我所说,它出现在建议代码的“ON”一词上。
    • 在 PL/SQL Developer 中,您可以通过“输出”选项卡中的复选框启用 dbms_output。但是,它不会报告 '匿名块已完成'(消息是 'Executed in 0.001 seconds')所以不确定你是如何得到它的。
    【解决方案2】:

    我也找到了这个(以防有人需要):

    当您明确打开 DBMS_OUTPUT 窗口窗格时,SQL Developer 似乎只输出 DBMS_OUTPUT 文本。

    转到(菜单)VIEW -> Dbms_output 以调用窗格。

    单击绿色加号为您的连接启用输出,然后运行代码。

    【讨论】:

    • 等一下。您用“PL/SQL Developer”标签而不是“SQL Developer”标记了这个问题。前者归 Allround Automations 所有,后者归甲骨文所有。你真正使用的是哪一个?
    • @cesaviso 那么问题实际上是如何在 SQL Developer 中启用 dbms_output?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2014-09-30
    • 1970-01-01
    • 2017-09-02
    • 2021-10-14
    • 2011-09-21
    • 2011-07-03
    相关资源
    最近更新 更多