SQL游标
同一个字段A,批量修改所涉及到的表。现在有一个字段AA=13 想在的需求是把所有涉及到字段A的表13改为另一个值
单表修改是 update table set A=X where A=13
现在写循环 来把所有A字段的表值修改 要怎么写啊。 select t.table_name from user_tab_columns t where column_name = 'A'
把查询结果放进游标里 夏汉森 发表于 2022-3-18 11:41
select t.table_name from user_tab_columns t where column_name = 'A'
把查询结果放进游标里
declare
v_s varchar2(2000);
v_table_name varchar(100);
cursor c1 is
select distinct m_table from oa2_mapped where m_field = 'FWXZ';
begin
open c1;
loop
fetch c1
into v_table_name;
exit when c1%notfound;
请问下面的update 应该怎么写呢。 v_s := 'update ' || v_table_name|| ' set A=X where A=13 ' ;
execute immediate v_s;
yk156511 发表于 2022-3-18 11:47
declare
v_s varchar2(2000);
v_table_name varchar(100);
看4楼内容 夏汉森 发表于 2022-3-18 11:52
看4楼内容
哪里的问题啊 yk156511 发表于 2022-3-18 12:28
哪里的问题啊
你 fwxz 列不是数值类型吧 夏汉森 发表于 2022-3-18 13:49
你 fwxz 列不是数值类型吧
yk156511 发表于 2022-3-18 13:59
v_s := 'update ' || v_table_name|| ' set A=X where A= ' ||'''' || 13 || '''' ; yk156511 发表于 2022-3-18 13:59
可以执行了,另外请教下。为什么要加这个来执行啊。 只在拼接中用到过这个。谢谢啦。
页:
[1]
2