Plsql 在pl/SQL DROP查询中插入VARRAY中的值

Plsql 在pl/SQL DROP查询中插入VARRAY中的值,plsql,velocity,Plsql,Velocity,我试图通过一个select查询填充一个数组,然后删除select查询中捕获的值 DECLARE TYPE name_list is varray(20) of VARCHAR2(30); existingConstraints name_list:=name_list(); BEGIN SELECT COUNT(1) INTO v_constraint_exists FROM user_constraints WHERE constraint_name != 'some_value'

我试图通过一个select查询填充一个数组,然后删除select查询中捕获的值

DECLARE 
TYPE name_list is varray(20) of VARCHAR2(30);
existingConstraints name_list:=name_list();
BEGIN

SELECT COUNT(1) INTO v_constraint_exists FROM user_constraints  
WHERE constraint_name != 'some_value'  AND table_name = 'some_value';

for i in NVL(existingConstraints.FIRST,0)..NVL(existingConstraints.LAST,-1) loop
  #set($name=existingConstraints(i))
  EXECUTE IMMEDIATE 'ALTER TABLE ${some_value} DROP CONSTRAINT ${name} DROP INDEX';
end loop;

END

但我有个例外。有人能为我推荐同样的正确方法吗。

我用了一种稍微不同的方法,但问题解决了,仅供参考

`DECLARE
TYPE name_list is varray(20) of VARCHAR2(30);
existingConstraints name_list:=name_list();

BEGIN

SELECT constraint_name INTO existingConstraints FROM user_constraints  
WHERE constraint_name != 'some_value'  AND table_name = 'some_value' AND constraint_type='U';

for i in NVL(existingConstraints.FIRST,0)..NVL(existingConstraints.LAST,-1) loop
#set($name=existingConstraints(i))
EXECUTE IMMEDIATE 'ALTER TABLE ${tableName} DROP CONSTRAINT ${name} DROP INDEX';
end loop;

END`
DECLARE
TYPE name_list is table of VARCHAR2(30);
v_constraint_exists NUMBER;
existingConstraints name_list:=name_list();
dropConstraintName VARCHAR2(30);
BEGIN

SELECT constraint_name bulk collect INTO existingConstraints FROM user_constraints  
WHERE constraint_name != 'some_name'  AND table_name = 'some_name' AND constraint_type='U';


for i in NVL(existingConstraints.FIRST,0)..NVL(existingConstraints.LAST,-1) loop
  dropConstraintName:=existingConstraints(i);
  EXECUTE IMMEDIATE 'ALTER TABLE ${tableName} DROP CONSTRAINT '||dropConstraintName||' DROP INDEX';
end loop;

END

上面是我使用的select查询的错误代码:select constraint\u name INTO existingConstraints FROM user\u constraints WHERE constraint\u name!='some_value'和table_name='some_value'和constraint_type='U';任何特定的异常?由:org.apache.velocity.exception.ParseErrorException引起:在安装程序/PCT_OBJECT_FIELDS/objectFieldsUKconstraints.vm[第67行,第14列]处遇到“existingConstraints”。vm[第67行,第14列]应为“[”…{…”(“…”真“…”假“{” ... ...