CREATE OR REPLACE PROCEDURE "SIC"."BASE_CHECK" (POwner in
varchar2,PTableName in varchar2,PSourceOwner in varchar2,
PSourceTableName in varchar2,PFlag out varchar2)
as
strsql varchar2(255);
strsql_1 varchar2(255);
begin
PFlag := '0'; strsql := 'declare'||
' ssql varchar2(200);'||
' column varchar2(100);'||
' cursor cur_tc is '||
' select column_name,nullable from all_tab_columns '||
' where nullable=''N'''||
' and table_name = '''||upper(PSourceTableName)||''''||
' and owner='''||upper(PSourceOwner)||''';';
strsql_1 := 'begin'||
' for cur_rec in cur_tc loop'||
' column := cur_rec.column_name '|| '|| '' is null''; '||
' ssql := ''update '||upper(POwner)||'.'||upper(PTableName)||' set XXX998_FLAG=''''11'''',XXX998_REMARK=''''''||column||'''''' where ''||column||'' '';'||
' execute immediate ssql;'||
' commit;'||
' end loop;'||
'end;';
DBMS_OUTPUT.PUT_LINE(strsql);
DBMS_OUTPUT.PUT_LINE(strsql_1);
execute immediate strsql||strsql_1;
end;
varchar2,PTableName in varchar2,PSourceOwner in varchar2,
PSourceTableName in varchar2,PFlag out varchar2)
as
strsql varchar2(255);
strsql_1 varchar2(255);
begin
PFlag := '0'; strsql := 'declare'||
' ssql varchar2(200);'||
' column varchar2(100);'||
' cursor cur_tc is '||
' select column_name,nullable from all_tab_columns '||
' where nullable=''N'''||
' and table_name = '''||upper(PSourceTableName)||''''||
' and owner='''||upper(PSourceOwner)||''';';
strsql_1 := 'begin'||
' for cur_rec in cur_tc loop'||
' column := cur_rec.column_name '|| '|| '' is null''; '||
' ssql := ''update '||upper(POwner)||'.'||upper(PTableName)||' set XXX998_FLAG=''''11'''',XXX998_REMARK=''''''||column||'''''' where ''||column||'' '';'||
' execute immediate ssql;'||
' commit;'||
' end loop;'||
'end;';
DBMS_OUTPUT.PUT_LINE(strsql);
DBMS_OUTPUT.PUT_LINE(strsql_1);
execute immediate strsql||strsql_1;
end;
解决方案 »
- oracle跟踪客户端执行的SQL语句
- oracle函数循环
- 两个大表关联删除数据的问题(不用in操作符)
- 初学者安装问题,建立资料档案库不能成功!!!!
- oracle中如何向表中插入一个已经创建好的sequence?
- 初学者:怎样在oracle中新建方案
- 考验高手,ORACLE数据统计问题!!急!!!!!!!!!
- 不安装ORACLE客户端访问ORACLE数据库的方法
- 我怎么才能知道数据库中哪个表最大?
- ORACLE通过dblink访问mysql遇到的问题
- oracle9i中想把某表的一个字段长度扩充,当要不影响原来的数据,直接通过modify可以吗?请指点一下
- 死人了,help me?插入中文汉字问题
COMMIT
这样做是不行的,还是提交不了
有没有语法错误
begin
execute immediate 'execute immediate ''delete from test '' ';
end;ORA-00900: 无效 SQL 语句
ORA-06512: 在line 2
/execute immediate strsql_1;commit;