plsql : Dynamic SQL inside Cursor

标签 plsql cursor dynamic-sql

v_upd_cur := 'Select m.name, m.age'|| ' From ' || act_table || ' m Where m.age < 30';

这是游标内的动态 SQL 选择语句。如何将 select 语句放入名为 cur 的游标内?

我尝试了类似下面的代码,但不起作用,有人有更好的建议吗?

Cursor cur IS v_upd_cur;

最佳答案

您可以使用 sys_refcursor 尝试此操作。检查下面的示例

DECLARE
    my_cursor   SYS_REFCURSOR;
    v_name      VARCHAR2 (100);
    v_string    VARCHAR2 (1000) := 'SELECT ename
                  FROM   emp';
BEGIN
    OPEN my_cursor FOR v_string;

    LOOP
        FETCH my_cursor INTO v_name;

        DBMS_OUTPUT.put_line (v_name);
        EXIT WHEN my_cursor%NOTFOUND;
    END LOOP;

    CLOSE my_cursor;
END;

关于plsql : Dynamic SQL inside Cursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34489367/

相关文章:

oracle - 关于pl/sql存储程序文本的问题

python - Oracle SQL 计算列 - 如何在同一查询的另一个计算中引用计算列?

sql - 如何使用 Pandas 中的游标执行与数据框列值的逻辑比较

oracle - PL/SQL 打印出存储过程返回的引用游标

android - 将光标传递给 Activity ?

postgresql - 返回给定表的动态列集的函数

sql - 使用动态变量名创建 SQL 表

parsing - Oracle 的 PL/SQL block 的语法图有错吗?

sql - 查询过去一年的活跃订阅者数和订阅数(按天)

sql - 通过递归计算接力赛时间(在动态 SQL 中)