如何使用PL/SQL将CSV文件导入Oracle临时表

3

我想要将csv数据文件导入到Oracle临时表中。我使用的是Oracle 12c和Windows操作系统。

我编写了以下SQL语句:

  CREATE global temporary TABLE temp_csv (
  table_name varchar2(100),
  edit_kind varchar2(10)
);

SQLLDR username/password@test, CONTROL=importcsv.CTL

select * from temp_csv;

importcsv.CTL 是:

LOAD DATA
INFILE 'C:\test\tableName.csv'
INTO TABLE temp_csv
APPEND
FIELDS TERMINATED BY ','
(table_name,edit_kind)

有没有办法通过PL/SQL执行导入CSV数据的想法?

2
临时表只在事务或会话的持续时间内保存数据,因此使用SQL*Loader加载是没有用的。如果数据位于数据库服务器上或可以从其访问,则可以使用外部表。 - undefined
1个回答

0

好的,试试这个。

你的文件必须放在这个位置:csv_dir/yourfile.csv 你需要指定列。

drop table csv_test_table;

CREATE TABLE csv_test_table (
  COLUMN1 varchar2(255),
  COLUMN2 varchar2(255),
  COLUMN3 varchar2(255),
  COLUMN4 varchar2(255)

)
ORGANIZATION EXTERNAL (
  DEFAULT DIRECTORY csv_dir
  ACCESS PARAMETERS (
    records delimited BY newline
    skip 1
    fields 
    terminated BY ',' optionally enclosed BY '"'
    lrtrim
    missing field VALUES are NULL
  )
  LOCATION ('yourfile.csv')  
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接