在Oracle中,使用TOAD,我们可以从表中创建插入脚本。
但是,我需要根据每行的值
创建一个UPDATE脚本where the CLIENTID is 'blah blah'
最初,我所做的是创建一个包含所有必要数据的Excel电子表格,对于每一行,我粘贴了一个
UPDATE TABLE BLAH BLAH SET COLUMN1 = "xxx", COLUMN2 = '' where CLIENT_ID = "123'
..但是我在将电子表格导出到基于文本的DOS文件并将其转换为.sql
时遇到了一些困难,因为要进行编辑,但它很混乱且不可预测。
有没有人有更好的想法我可以实施?
答案 0 :(得分:2)
我没有看到Toad中的任何功能有助于以这种方式编写更新查询。但是直接加载数据是Toad非常容易的事情。
可能你可以这样做。
create table tmp_excel_data
( column1 varchar2(100),
column2 varchar2(100),
client_id varchar2(100)
);
使用toad将数据直接加载到此表中。从这一点来看,更新很简单。
update CLIENT_DATA tgt
tgt.column1 = (select column1
from tmp_excel_data src
where tgt.client_id = src.client_id);
--dont forget to commit.
如果需要,这也可以让您清理数据(例如删除重复数据)。
答案 1 :(得分:2)
我通常做这样的事情:
SELECT 'UPDATE <TABLE_NAME> SET status =''' || status || ''' WHERE id =' || ID ||';'
FROM <TABLE_NAME>
WHERE <condition>