给你改成oracle的了。
CREATE OR REPLACE PROCEDURE UPDATEWZ(vfieldName VARCHAR2(90),voldValue VARCHAR2(90),
vnewValue VARCHAR2(90)) AS
vtableName VARCHAR2(100);
vsqlStmt VARCHAR2(100);
BEGIN
for tablenamecursor in (SELECT tTABLE_NAME
FROM user_tab_columns t
WHERE tCOLUMN_NAME = vfieldName) loop
vsqlStmt = 'update ' || vtableName || ' set ' || vfieldName
|| ' = ' || 'replace (' || vfieldName || ',' || Chr(39) || voldValue || Chr(39) || ',' || Chr(39) || vnewValue
|| Chr(39) || ')';
dbms_sqloutputput_line(vsqlStmt);
Excute immediate vsqlStmt;
end loop;
END;
/
update 表名 set value=case when id=1 then 一个值
when id=2 then 一个值
when id=3 then 一个值 else value
end
上边就是举个例子,意思是,当id=1时,把value设定个值,当id=2时,value设定另一个值,依次类推,不需要更改的保留原来的value值,最后以end结尾
首先更新的内容是不是一样的?有什么更新规则吗?
如果更新的内容是一样的直接写一个sql语句全部更新掉就好了
比如:update 表名 set 更新字段1='需要被更新成的值',更新字段2='需要被更新成的值' where 更新的过滤条件
总体的语法是关键字update 表名 set 更新的字段名='更新内容',如果多个字段可以使用逗号分隔。更新的关键是找到更新内容的规则和更新的过滤条件
以上就是关于背景:oracle数据库 要求:对所有有字段A的表进行批量update,更新字段A下包含值B的部分replace为C全部的内容,包括:背景:oracle数据库 要求:对所有有字段A的表进行批量update,更新字段A下包含值B的部分replace为C、sql server如何批量更新数据。、SQL如何批量更新数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)