oralce存储过程中执行动态SQL

oralce存储过程中执行动态SQL
请注意execute immediate strSql;
create   or   replace   procedure  proc_myproc  as


strSql 
varchar ( 200 );

begin

for  c_colName  in ( select  t.column_name 
                 
from  user_tab_cols t 
                 
where  t.table_name = ' TAB_TEST '  
                 
and  t.data_type  =   ' NUMBER '
)
  loop
    dbms_output.put_line(c_colName.Column_Name);
    strSql :
=   ' update tab_test set  '   ||  c_colName.Column_Name  ||   '  = 0 ' ;
    dbms_output.put_line(strSql);
    
    
execute  immediate strSql;  
    
commit ;
  
end  loop;
  dbms_output.put_line(
' OK.. ' );
end ;

你可能感兴趣的:(oralce存储过程中执行动态SQL)