【发布时间】:2019-06-23 15:18:34
【问题描述】:
【问题讨论】:
-
谢谢。如果列是动态的,我如何立即执行并打印结果?
标签: oracle oracle-sqldeveloper oracle12c execute-immediate dbms-output
【问题讨论】:
标签: oracle oracle-sqldeveloper oracle12c execute-immediate dbms-output
由于您在 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;
/
【讨论】: