在PL/SQL中導入CSV文件通常需要使用外部表(external table)的方式。以下是一個簡單的示例代碼:
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;
在上面的代碼中,我們創建了一個名為emp_external
的外部表,指定了CSV文件的格式和位置。
DBMS_LOB
包中的LOADFROMFILE
過程來加載CSV文件數據到數據庫表中: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;
在上面的代碼中,我們打開CSV文件并將其加載到外部表emp_external
中。
請注意,要成功運行以上代碼,需要先確保CSV文件存在并且PL/SQL會話有權限讀取外部文件。