0

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

截屏

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

截屏

4

1 回答 1

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;
/
于 2019-01-31T05:26:15.000 回答