为了账号安全,请及时绑定邮箱和手机立即绑定

在SQL Developer中打印变量的值

/ 猿问

在SQL Developer中打印变量的值

开满天机 2019-09-24 10:01:07

我想打印一个在匿名块内的特定变量的值。我正在使用Oracle SQL Developer。我尝试使用dbms_output.put_line。但这是行不通的。我正在使用的代码如下所示。


SET SERVEROUTPUT ON


DECLARE


  CTABLE USER_OBJECTS.OBJECT_NAME%TYPE;

  CCOLUMN ALL_TAB_COLS.COLUMN_NAME%TYPE;

  V_ALL_COLS VARCHAR2(500);


  CURSOR CURSOR_TABLE

    IS

    SELECT OBJECT_NAME 

    FROM USER_OBJECTS 

    WHERE OBJECT_TYPE='TABLE'

    AND OBJECT_NAME LIKE 'tb_prm_%';


  CURSOR CURSOR_COLUMNS (V_TABLE_NAME IN VARCHAR2)

    IS

    SELECT COLUMN_NAME

    FROM ALL_TAB_COLS

    WHERE TABLE_NAME = V_TABLE_NAME;


BEGIN


  OPEN CURSOR_TABLE;


  LOOP

    FETCH CURSOR_TABLE INTO CTABLE;

    EXIT WHEN CURSOR_TABLE%NOTFOUND;


    OPEN CURSOR_COLUMNS (CTABLE);


    V_ALL_COLS := NULL;


    LOOP

      FETCH CURSOR_COLUMNS INTO CCOLUMN;

      V_ALL_COLS := V_ALL_COLS || CCOLUMN;

      IF CURSOR_COLUMNS%FOUND THEN

        V_ALL_COLS := V_ALL_COLS || ', ';

      ELSE

        EXIT;

      END IF;

    END LOOP;


    DBMS_OUTPUT.PUT_LINE(V_ALL_COLS);


  END LOOP;

  CLOSE CURSOR_TABLE;


END;

我只得到输出anonymous block completed。


查看完整描述

3 回答

?
慕雪6442864

您需要打开dbms_output。在Oracle SQL Developer中:

  1. 显示“ DBMS输出”窗口(“视图”->“ DBMS输出”)。

  2. 按下“ Dbms输出”窗口顶部的“ +”按钮,然后在打开的对话框中选择一个打开的数据库连接。

在SQL * Plus中:

 SET SERVEROUTPUT ON


查看完整回答
反对 回复 2019-09-24
?
慕田峪9158850

当您显式打开DBMS_OUTPUT窗口窗格时,SQL Developer似乎仅输出DBMS_OUTPUT文本。

转到(菜单)查看-> Dbms_output调用窗格。

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

编辑:不要忘记根据您期望的输出量设置缓冲区大小。


查看完整回答
反对 回复 2019-09-24
?
翻过高山走不出你

首先使服务器输出

  1. SET SERVEROUTPUT on 然后

  2. 转到“ DBMS输出”窗口(“视图”->“ DBMS输出”)

  3. 然后按CtrlN连接服务器


查看完整回答
反对 回复 2019-09-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信