我能问一下..
我将更新几个表..我是插入表的列表,我想更新..
下面是查询:
insert into dgtmp_nama_tbl
select 'dgtmp_nf_vpnip_upd' from dual
union
select 'dgtmp_nf_metroe_upd' from dual
union
select 'dgtmp_nf_astinet_upd' from dual
union
select 'dgtmp_nf_iptransit_upd' from dual
union
select 'dgtmp_nf_cndc_upd' from dual
union
select 'dgtmp_nf_sdwan_upd' from dual
union
select 'dgtmp_nf_slwdm_upd' from dual
union
select 'dgtmp_nf_sldigital_upd' from dual
union
select 'dgtmp_nf_neulayer_upd' from dual
union
select 'dgtmp_nf_neu_intconnect_upd' from dual
然后我用PL/SQL更新表。但它会返回这样一个错误:
SQL错误[6550] [65000]:ORA-06550:第8行,第12列:PL/SQL:ORA-00942:404-页面不存在页面不存在.第8行,第3栏:PL/SQL:SQL语句被忽略
下面是我的pl/sql脚本:
declare
cursor c_list_tbl
is
select nama_tbl from dgtmp_nama_tbl;
begin
for i in c_list_tbl
loop
update i.nama_tbl a
set a.divisi = ( select a.divisi from rmart_accnum_all_divisi_2023 b where a.account_num = b.account_num ),
a.segmen = ( select a.segmen from rmart_accnum_all_divisi_2023 b where a.account_num = b.account_num );
commit;
end loop;
end;
有谁能帮我检查一下有什么问题吗?对不起,我的英语不好,我希望你们能明白我在说什么。
谢谢提前…
我已经测试过了,返回错误
2条答案
按热度按时间dpiehjr41#
你需要动态SQL来实现这一点。
yv5phkfx2#
你需要使用动态SQL(并且应该清理你的用户输入):
但是,您正在将这些值更新为相同的值。我认为你的代码应该是(并且可以包括错误处理):
fiddle