以下生成ORA-00957重复的列名,但是该列名不重复。请协助。
Create Or Replace Procedure XE_IMP_Census_Employer_000001_LOAD
As
Begin
INSERT INTO XE_IMP_Census_Employer_000001(
SSN ,
SSN_Old ,
Employee_ID ,
Employee_ID_Old ,
First_Name ,
Middle_Name ,
Last_Name ,
Street_1 ,
Street_2 ,
City ,
State ,
Zip ,
DOB ,
DOD ,
Employee_EMail ,
Phone_Cell ,
Orig_Hire_Date ,
ReHire_Date ,
Pay_Freq ,
Pay_Type ,
Annual_Salary ,
FT_PT ,
Job_Title ,
Gender_MF ,
Life_Insur_Coverage ,
EPR ,
OPTOUT_401K ,
OPTIN_401K
)
SELECT
SSN,
SSN_Old,
Employee_ID,
Employee_ID_Old,
First_Name,
Middle_Name,
Last_Name,
Street_1,
Street_2,
City,
State,
Zip,
DOB,
DOD,
Employee_Email,
Phone_Cell,
Orig_Hire_Date,
ReHire_Date,
Pay_Freq,
Pay_Type,
Annual_Salary,
FT_PT,
Job_Title,
Gender_MF,
Life_Insur_Coverage,
EPR,
OPTOUT_401K,
OPTIN_401K
FROM EXTERNAL (
(
SSN Varchar2(11) ,
SSN_Old Varchar2(11) ,
Employee_ID Varchar2(20) ,
Employee_ID_Old Varchar2(20) ,
First_Name Varchar2(30) ,
Middle_Name Varchar2(30) ,
Last_Name Varchar2(30) ,
Street_1 Varchar2(40) ,
Street_2 Varchar2(40) ,
City Varchar2(64) ,
State Varchar2(64) ,
Zip Varchar2(15) ,
DOB Date ,
DOD Date ,
Employee_EMail Varchar2(254) ,
Phone_Cell Varchar2(15) ,
Orig_Hire_Date Date ,
ReHire_Date Date ,
Pay_Freq Varchar2(50) ,
Pay_Type Varchar2(50) ,
Annual_Salary Number(20,2) ,
FT_PT Varchar2(5) ,
Job_Title Varchar2(50) ,
Gender_MF Varchar2(4) ,
Life_Insur_Coverage Number(20,2) ,
EPR Varchar2(50) ,
OPTOUT_401K Date ,
OPTIN_401K Date
)
TYPE ORACLE_LOADER
DEFAULT DIRECTORY DATA_PUMP_DIR
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ',')
LOCATION ('PersonCensus.csv') REJECT LIMIT UNLIMITED);
End XE_IMP_Census_Employer_000001_LOAD;
/
[您使用的语法允许即时定义外部表,我认为这可能是问题的根本原因。
使用经典语法创建外部表会更容易:
SQL> create table ET
2 (
3 SSN Varchar2(11) ,
4 SSN_Old Varchar2(11) ,
5 Employee_ID Varchar2(20) ,
6 Employee_ID_Old Varchar2(20) ,
7 First_Name Varchar2(30) ,
8 Middle_Name Varchar2(30) ,
9 Last_Name Varchar2(30) ,
10 Street_1 Varchar2(40) ,
11 Street_2 Varchar2(40) ,
12 City Varchar2(64) ,
13 State Varchar2(64) ,
14 Zip Varchar2(15) ,
15 DOB Date ,
16 DOD Date ,
17 Employee_EMail Varchar2(254) ,
18 Phone_Cell Varchar2(15) ,
19 Orig_Hire_Date Date ,
20 ReHire_Date Date ,
21 Pay_Freq Varchar2(50) ,
22 Pay_Type Varchar2(50) ,
23 Annual_Salary Number(20,2) ,
24 FT_PT Varchar2(5) ,
25 Job_Title Varchar2(50) ,
26 Gender_MF Varchar2(4) ,
27 Life_Insur_Coverage Number(20,2) ,
28 EPR Varchar2(50) ,
29 OPTOUT_401K Date,
30 OPTIN_401K Date
31 )
32 ORGANIZATION EXTERNAL
33 (
34 TYPE ORACLE_LOADER
35 DEFAULT DIRECTORY DATA_PUMP_DIR
36 ACCESS PARAMETERS (
37 RECORDS DELIMITED BY NEWLINE
38 FIELDS TERMINATED BY ',')
39 LOCATION ('PersonCensus.csv')
40 ) REJECT LIMIT UNLIMITED;
Table created.
并且从此永久表运行简单的INSERT ... SELECT ...应该起作用:
insert into xe_imp_census_employer_000001
select * from et;