plsql中怎么導(dǎo)入csv文件

小億
521
2024-03-16 12:44:31
欄目: 云計(jì)算

在PL/SQL中導(dǎo)入CSV文件通常需要使用外部表(external table)的方式。以下是一個(gè)簡(jiǎn)單的示例代碼:

  1. 首先,創(chuàng)建一個(gè)外部表來(lái)導(dǎo)入CSV文件:
CREATE TABLE emp_external
(
  emp_id    NUMBER,
  emp_name  VARCHAR2(50),
  emp_salary NUMBER
)
ORGANIZATION EXTERNAL
(
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY ext_dir
  ACCESS PARAMETERS
  (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
  )
  LOCATION ('employees.csv')
)
REJECT LIMIT UNLIMITED;

在上面的代碼中,我們創(chuàng)建了一個(gè)名為emp_external的外部表,指定了CSV文件的格式和位置。

  1. 接下來(lái),使用DBMS_LOB包中的LOADFROMFILE過(guò)程來(lái)加載CSV文件數(shù)據(jù)到數(shù)據(jù)庫(kù)表中:
DECLARE
  v_file BFILE := BFILENAME('EXT_DIR', 'employees.csv');
BEGIN
  DBMS_LOB.FILEOPEN(v_file, DBMS_LOB.LOB_READONLY);
  DBMS_LOB.LOADFROMFILE(lob_loc => emp_external, blob_loc => v_file, amount => DBMS_LOB.GETLENGTH(v_file));
  DBMS_LOB.FILECLOSE(v_file);
END;

在上面的代碼中,我們打開(kāi)CSV文件并將其加載到外部表emp_external中。

請(qǐng)注意,要成功運(yùn)行以上代碼,需要先確保CSV文件存在并且PL/SQL會(huì)話有權(quán)限讀取外部文件。

0