如何执行立即sql字符串以直接显示结果?

时间:2019-01-30 10:58:51

标签: oracle oracle-sqldeveloper oracle12c execute-immediate dbms-output

我正在尝试执行像这样的图像执行sql字符串

screenshot

但是。当我立即执行我的sql字符串时,它不会返回任何输出,例如第一个。 如何使它返回输出而不将输出传递给变量?请帮助

screenshot

1 个答案:

答案 0 :(得分:0)

由于您的年纪在12c,请在任何动态查询中使用DBMS_SQL.RETURN_RESULT来使用REFCURSOR

DECLARE
     sqlstring   VARCHAR2(2000);
     cur         SYS_REFCURSOR;
     tab_name    VARCHAR2(100) := 'YOUR_TAB_NAME';
     col_name    VARCHAR2(32)  := 'COL_NAME';
     n           INT := 5;
     m           INT := 10;
BEGIN
     sqlstring :=   'SELECT '||col_name||',col1,col2,col3 FROM ' || tab_name  
               || ' OFFSET ' || n || ' ROWS FETCH NEXT '
                             || m || ' ROWS ONLY ';
     OPEN cur FOR sqlstring;
     dbms_sql.return_result(cur);
END;
/