批量修改oracle数据库中的某一个字段?

我的表中有一类字段,由于内容太长了,我想做一些批处理,把记录中包含括号的内容给去掉,如何用sql实现

可以通过update方法进行批量修改。
sql:update table_name SET age=25;
备注:也可以添加必要的条件,针对固定条件的数据进行批量修改。
sql:update table_name SET age=age+1 where name ='zhangsan ';
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-03
写个过程处理。或者写个小程序来处理吧。如果存储过程熟练就用存储过程,如果程序熟练就程序吧

先要分析数据。看是否有规律。如果有规律用字符串截取然后再拼在一起。就解决了。如果是没有规律的那就麻烦点。楼上的回答只适合于有规律的数据
第2个回答  推荐于2018-02-28
--以下是我根据你的描述,做的测试,希望对你有帮助:

-- 新建一张表kongxianji:
CREATE TABLE kongxianji(a VARCHAR2(200));

-- 插入数据,然后提交:
INSERT INTO kongxianji (a) VALUES ('12345(6)789');
INSERT INTO kongxianji (a) VALUES ('12345(67)89');
INSERT INTO kongxianji (a) VALUES ('12345(678)9');
COMMIT;
SELECT * FROM kongxianji;

-- 把a中的括号去掉,然后提交,到这一步可以查看表中数据的变化情况:
UPDATE kongxianji SET a = replace(a,substr(a,instr(a,'('),(instr(a,')')-instr(a,'(')+1)),'');
COMMIT;

SELECT * FROM kongxianji;本回答被提问者和网友采纳
第3个回答  2010-12-03
oralce 9i 10g测试通过
SQL> select * from test2;

STR1
--------------------------------------------------------------------------------
abc(asdlfjl;;asx)qpweruas;dfs
xxxx(jl;;asx)qxxppruas;dfs

update test2 t1 set t1.str1=(select substr(str1,1,instr(str1,'(' )-1)||substr(str1,instr(str1,')')+1) str2 from test2 t2 where t1.rowid=t2.rowid)
/

SQL> select * from test2;

STR1
--------------------------------------------------------------------------------
abcqpweruas;dfs
xxxxqxxppruas;dfs
相似回答