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

时间:2016-02-24 17:38:38

标签: plsql velocity

我试图通过选择查询填充数组,然后删除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

但我得到了例外。有人可以建议我采取正确的方法。

2 个答案:

答案 0 :(得分:0)

`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`

答案 1 :(得分:0)

我以稍微不同的方式做到了,但问题解决了,仅供参考。

eval(parse())