如何让oracle数据库中任何表中任何字段值=A的替换为字段值=B?语句是什么?

如何让oracle数据库中任何表中任何字段值=A的替换为字段值=B?语句是什么?... 如何让oracle数据库中任何表中任何字段值=A的替换为字段值=B?语句是什么? 展开
 我来答
信春哥_不挂科_
2013-07-17 · 超过21用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:56万
展开全部
declare
  str_sql varchar2(1000);
begin
   for alltables in (select table_name from user_tables) loop
    for tablecolumns in (select column_name from user_tab_columns where table_name = alltables.table_name) loop
      str_sql := 'update '||alltables.table_name||' set '||tablecolumns.column_name||' = ''B'' where '||tablecolumns.column_name||' = ''A''';
           execute immediate str_sql;
    end loop;
  end loop;
  commit;
end;
lkstarsea
2013-07-17 · TA获得超过315个赞
知道小有建树答主
回答量:201
采纳率:100%
帮助的人:187万
展开全部
update 表名 set 字段名=‘B’ where 字段名=‘A’
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sz_itfollow
2013-07-17 · 超过21用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:56.1万
展开全部
1、查询哪些表含有某个字段名称
SELECT t.TABLE_NAME FROM user_tab_columns t where t.COLUMN_NAME = '';
2、修改该字段的值
可以写一个存储过程实现
在存储过程中,动态拼接sql,然后执行
给一个参考示例
FOR p_name IN (SELECT table_name
FROM user_tab_columns col
WHERE col.COLUMN_NAME = 'YOUR_COL_NAME') LOOP
cmd := 'update ' || p_name.table_name || ' set YOUR_COL_NAME = ''B';
BEGIN
EXECUTE IMMEDIATE cmd;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
NULL;
END;
END LOOP;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式