外部テーブルを作成しようとしていますが、エラーが発生しています。外部テーブルの選択時にORAエラーが発生する
は、ここで私は外部ディレクトリへの読み取り/書き込み権限を持っている
CREATE TABLE "emp_ext"
(
"EMPNO" NUMBER(6),
"ENAME" VARCHAR2(20),
"JOB" VARCHAR2(25),
"MGR" NUMBER(6),
"HIRE_DATE" DATE,
"SAL" NUMBER(8,2),
"COMM" NUMBER(2,2),
"DEPTNO" NUMBER(4)
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY EXTDIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
BADFILE 'EXTDIR':'employees.bad'
LOGFILE 'employees.log_xt'
READSIZE 1048576
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' LDRTRIM
REJECT ROWS WITH ALL NULL FIELDS
(
"EMPLOYEE_ID" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"',
"ENAME" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"',
"JOB" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"',
"HIRE_DATE" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"',
"SAL" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"',
"COMM" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"',
"DEPTNO" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
)
)
location
(
'datafile.txt'
)
)
、外部表を作成するために使用するコードです。
テーブルが作成されました。私は「emp_ext」SELECT * FROMをしようとすると、私はエラーCREATE TABLE
に指定された最初のフィールドがEMPNO
ある
SQL> select * from "emp_ext";
select * from "emp_ext"
*
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04043: table column not found in external source: EMPNO
ORA-06512: at "SYS.ORACLE_LOADER", line 19
エラーメッセージがきれいに見えますか?このdatefile.txtのサンプルはどこですか?テーブル定義にEMPNOがありますが、ファイルの行/列定義にEMPLOYEE_IDがあります。 – OldProgrammer