批量修改oracle数据库中的某一个字段?
我的表中有一类字段,由于内容太长了,我想做一些批处理,把记录中包含括号的内容给去掉,如何用sql实现...
我的表中有一类字段,由于内容太长了,我想做一些批处理,把记录中包含括号的内容给去掉,如何用sql实现
展开
4个回答
展开全部
写个过程处理。或者写个小程序来处理吧。如果存储过程熟练就用存储过程,如果程序熟练就程序吧
先要分析数据。看是否有规律。如果有规律用字符串截取然后再拼在一起。就解决了。如果是没有规律的那就麻烦点。楼上的回答只适合于有规律的数据
先要分析数据。看是否有规律。如果有规律用字符串截取然后再拼在一起。就解决了。如果是没有规律的那就麻烦点。楼上的回答只适合于有规律的数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--以下是我根据你的描述,做的测试,希望对你有帮助:
-- 新建一张表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;
-- 新建一张表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;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询