Oracle:从 SELECTed 字符串执行查询

Oracle: Execute query from a SELECTed String

SELECT 'ALTER TABLE ' || uc.table_name || ' DROP CONSTRAINT ' || uc.constraint_name FROM user_constraints uc WHERE constraint_type = 'R';

returns 即我可以手动执行的一些语句,例如:

ALTER TABLE APPLICATIONUSERROLE DROP CONSTRAINT APP_APPUSERROLE_FK1                       
ALTER TABLE APPLICATIONUSERROLE DROP CONSTRAINT USER_APPUSERROLE_FK1                      
ALTER TABLE APPLICATIONUSERROLE DROP CONSTRAINT ROLE_APPUSERROLE_FK1

我需要做什么才能自动执行它们?

例如我试过:

EXECUTE IMMEDIATE (SELECT 'ALTER TABLE ' || uc.table_name || ' DROP CONSTRAINT ' || uc.constraint_name FROM user_constraints uc WHERE constraint_type = 'R');

但这根本不起作用并抛出一些错误。

提前致谢。

begin
   for i in (SELECT 'ALTER TABLE ' || uc.table_name || ' DROP CONSTRAINT ' || uc.constraint_name as sql_text FROM user_constraints uc WHERE constraint_type = 'R')
     loop
       execute immediate i.sql_text;
     end loop;
end;