背景:oracle数据库 要求:对所有有字段A的表进行批量update,更新字段A下包含值B的部分replace为C

背景:oracle数据库 要求:对所有有字段A的表进行批量update,更新字段A下包含值B的部分replace为C,第1张

给你改成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如何批量更新数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9737729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存