Как выполнить непосредственную строку SQL, чтобы показать результат непосредственно? - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь выполнить строку sql, которая будет выполнена следующим образом1

screenshot

, но.когда я немедленно выполняю строку sql, она не возвращается ни к какому выводу, как первый.как я могу сделать так, чтобы он возвращал вывод без передачи вывода в переменную?пожалуйста, помогите

screenshot

1 Ответ

0 голосов
/ 31 января 2019

Поскольку вы находитесь в 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;
/
...