使用TOAD从Oracle创建更新脚本

时间:2012-06-26 23:20:37

标签: sql oracle toad

在Oracle中,使用TOAD,我们可以从表中创建插入脚本。

但是,我需要根据每行的值

创建一个UPDATE脚本
where the CLIENTID is 'blah blah'

最初,我所做的是创建一个包含所有必要数据的Excel电子表格,对于每一行,我粘贴了一个

UPDATE TABLE BLAH BLAH SET COLUMN1 = "xxx", COLUMN2 = '' where CLIENT_ID = "123'

..但是我在将电子表格导出到基于文本的DOS文件并将其转换为.sql时遇到了一些困难,因为要进行编辑,但它很混乱且不可预测。

有没有人有更好的想法我可以实施?

2 个答案:

答案 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>