【发布时间】:2017-07-22 00:22:23
【问题描述】:
如果我执行下面的查询,那么我得到 无效字符。
declare
sql_query varchar2(4000):='delete from ';
begin
for i in (
select table_name,column_name from User_tab_cols where column_name like '%PROFILE_ID' and table_name not like 'GSC%' and table_name not like '%BKP%' order by 1)
loop
sql_query :=sql_query ||i.table_name;
sql_query:=sql_query || ' where '||i.column_name ||' = ' ||32052721 ||';';
execute immediate sql_query;
commit;
end loop;
end;
请在这个问题上帮助我。
非常感谢您的帮助。
我使用的是 Oracle 11.2.0.4.0 版本。
【问题讨论】:
-
您是否会在 for 循环选择中收到多行?如果是这样,您需要每次都附加 'delete from '。
-
删除
sql_query字符串末尾的分号。这就是眼前的问题。但是您还需要在每个循环中重新启动整个命令,正如 Mikhail 所示。 -
非常感谢您的回复。我已经尝试了 Mikhail 选项,但仍然遇到像 Invalid character 这样的问题。非常感谢您的帮助。
标签: sql plsql oracle11g oracle10g