gpt4 book ai didi

sql - 使用 SQL*Loader 更新表中的列?

转载 作者:行者123 更新时间:2023-12-04 14:49:31 24 4
gpt4 key购买 nike

我编写了一个具有以下查询的 SQL 脚本。
查询工作正常。

update partner set is_seller_buyer=1 where id in (select id from partner 
where names in
(
'A','B','C','D','E',... // around 100 names.
));

但是现在我不想在查询本身中写入大约 100 个名称,而是想从 CSV 文件中获取所有名称。
我在 Internet 上阅读了 SQL*Loader,但我对更新查询的了解不多。
我的 csv 文件只包含名称。

enter image description here

我试过了
  load data
infile 'c:\data\mydata.csv'
into table partner set is_wholesaler_reseller=1
where id in (select id from partner
where names in
(
'A','B','C','D','E',... // around 100 names.
));
fields terminated by "," optionally enclosed by '"'
( names, sal, deptno )

我怎么能做到这一点?
提前致谢。

最佳答案

SQL*Loader 不执行更新,只执行插入。所以,你应该把你的名字插入一个单独的表,比如 names ,并从中运行您的更新:

update partner set is_seller_buyer=1 where id in (select id from partner 
where names in
(
select names from names
));

您的加载程序脚本可以更改为:
load data
infile 'c:\data\mydata.csv'
into table names
fields terminated by "," optionally enclosed by '"'
( names, sal, deptno )

另一种方法是使用外部表,它允许 Oracle 将平面文件视为表。可以在 here 中找到帮助您入门的示例。 .

关于sql - 使用 SQL*Loader 更新表中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9091167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com