gpt4 book ai didi

sql - Oracle 更新生产数据库

转载 作者:行者123 更新时间:2023-12-02 05:34:55 24 4
gpt4 key购买 nike

场景:

  • 我有一个巨大的 .csv 文件(百万行)。
  • 使用 sqlldr(SQL Loader)我必须创建一个包含 CSV 中所有数据的临时表。
  • 在此之后我必须对临时表做一些处理(大写更新一些列等)。
  • 处理后,我必须从临时表中取出每一行,进行一些额外的检查并将这些行插入到另一个表中(在生产中大量使用)。

你建议如何进行所有这些处理,这样我才不会影响生产环境的整体性能?

(注意:我不应该事先预处理 .csv)。

任何建议将不胜感激!

最佳答案

我知道您曾说过要使用 SQL Loader,但您可能想考虑使用外部表,因为它可能会使事情变得更容易。您可以将外部表声明为类似

create table EXTERNAL_HR_DATA (
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2))
Organization external
(type oracle_loader
default directory testdir
access parameters (records delimited by newline
fields terminated by ‘,’)
location (‘emp_ext.csv’))
reject limit 1000;

这将允许您使用标准 SELECT 语句读取(但不能更改)文件中的数据。然后您可以从外部表中选择并将数据直接插入到您的“临时”表中,至少在插入期间进行一些编辑:

INSERT INTO TEMP_HR_DATA
SELECT EMPNO,
UPPER(TRIM(ENAME)),
UPPER(TRIM(JOB)),
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO
FROM EXTERNAL_HR_DATA;

分享和享受。

关于sql - Oracle 更新生产数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4248027/

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