Oracle 使用';其中电流为';

Oracle 使用';其中电流为';,oracle,plsql,oracle11g,Oracle,Plsql,Oracle11g,我有一个非常通用/动态的过程,其中我将表名作为参数传递,并使用executeimmediate动态执行查询。我需要通过游标循环并更新每条记录。有没有办法不必硬编码我的表名 我试过这个,但不起作用: open cur for v_sql; loop fetch cur into v_recid; EXIT WHEN cur%NOTFOUND; EXECUTE IMMEDIATE 'update '||p_table||q'[ set

我有一个非常通用/动态的过程,其中我将表名作为参数传递,并使用executeimmediate动态执行查询。我需要通过游标循环并更新每条记录。有没有办法不必硬编码我的表名

我试过这个,但不起作用:

    open cur for v_sql;
    loop
        fetch cur into v_recid;
        EXIT WHEN cur%NOTFOUND;
        EXECUTE IMMEDIATE 'update '||p_table||q'[ set status = 'I' where current of cur]'; 
    end loop;
    close cur;

SQL是一种面向集合的语言。您的解决方案是一次行或“一次慢”。我建议您花时间找出一种方法,不要在一条语句中循环并进行更新。

您是否考虑过使用
ROWID
作为更新的键?您遇到了什么错误?如果您使用的是“current of”,则与光标关联的查询需要包含“for update”子句。谢谢。这就是我在发布问题后不久意识到的,并决定采用这种方法。但他仍然好奇这是否能实现。我不知道“电流在哪里”有这么慢。