清除 DBMS_SQL.VARCHAR2S 变量

Kar*_*han 1 oracle plsql

我们如何清除DBMS_SQL.VARCHAR2S变量以便可以重用它?声明如下:

DECLARE
   l_updt_stmnt            DBMS_SQL.VARCHAR2S;

BEGIN
   Open LOOP
    l_updt_stmnt(1) := 'some dynamic sql statements';
    <parse the above statement>
   Close LOOP;

EXCEPTION
WHEN OTHERS THEN
  <Print statement>
END;
Run Code Online (Sandbox Code Playgroud)

我只是想l_updt_stmnt多次重用生成动态sql语句。

任何人都可以帮忙吗?

Rus*_*sty 5

由于 DBMS_SQL.VARCHAR2S 被定义为 PL/SQL 关联数组(集合):

type varchar2s is table of varchar2(256) index by binary_integer;
Run Code Online (Sandbox Code Playgroud)

要清除您需要调用DELETE方法的所有值:

begin
...
   l_updt_stmnt.DELETE; -- cleanup array
...
end;
/
Run Code Online (Sandbox Code Playgroud)