2015-03-31 69 views
-1

我有100條記錄players.dat文件中像Oracle外部表加載

PIT INDIANPOLISH COLTS 

,然後新的生產線一樣了。我如何將這些數據加載到外部表中?

這裏是我的表定義:

CREATE TABLE TEAMS1( 
    TEAM_ID VARCHAR2(20) 
    , TEAM_NAME VARCHAR2(35) 
    ) 
ORGANIZATION EXTERNAL ( 
    TYPE ORACLE_LOADER 
    DEFAULT DIRECTORY DATA_WAREHOUSE 
    ACCESS PARAMETERS ( 
     RECORDS DELIMITED BY newline 
     fields terminated by whitespace 
     missing fields values are null ( 
      TEAM_ID VARCHAR(20), 
      TEAM_NAME VARCHAR2(35) 
      TERMINATED BY '/N') 
      ) 
    LOCATION ('NFL_Teams.dat') 
) ; 

以下是錯誤:

ORA-29913: error in executing ODCIEXTTABLEOPEN callout 
ORA-29400: data cartridge error 
KUP-00554: error encountered while parsing access parameters 
KUP-01005: syntax error: found "fields": expecting one of: "field" 
KUP-01007: at line 3 column 9 29913. 00000 - "error in executing %s callout" 
+0

不知道SQL Server,但對於Oracle,您可以在這裏閱讀文檔http://docs.oracle.com/cd/B19306_01/server.102/b14215/et_concepts.htm – tilley31 2015-03-31 17:27:37

+0

它僅適用於Oracle。我試過了,但它給了我訪問參數錯誤 – 2015-03-31 17:30:02

+0

你收到一個錯誤。你沒有告訴我們你得到了什麼具體的錯誤。您沒有向我們展示您正在使用的代碼。沒有那些東西,我無法想象有人能夠回答你。當您編輯問題以包含這些內容時,您可能還希望包含來自.dat文件的4或5行數據,告訴我們.dat文件的格式(逗號分隔,製表符分隔,固定寬度等) ),告訴我們該文件的位置,告訴我們您所創建的Oracle目錄的定義,等 – 2015-03-31 17:51:27

回答

0

有你的代碼的幾個問題,你可以嘗試根據這個來糾正它:

CREATE TABLE TEAMS1(TEAM_CODE varchar2(10), TEAM_ID VARCHAR2(20) , TEAM_NAME VARCHAR2(35)) ORGANIZATION EXTERNAL 
(TYPE ORACLE_LOADER DEFAULT DIRECTORY DATA_WAREHOUSE ACCESS PARAMETERS 
(RECORDS DELIMITED BY newline fields (TEAM_CODE varchar(10), TEAM_ID VARCHAR(20), 
TEAM_NAME VARCHAR(35))) LOCATION ('players.dat')) ; 

然後你可以創建標準表讓我們說TEAMS(team_id varchar2(20),team_name varchar2(35))和load它來自外部表:

insert into teams select team_id, team_name from teams1; 
1

錯誤消息指向語法問題,它甚至給我們提供了線索。

KUP-01005: syntax error: found "fields": expecting one of: "field" 

果然,你的表定義有這個...

missing fields values are null 

...當它應該是這樣的:

missing field values are null 

你有一個重大問題你的數據文件。您的表格定義指定fields terminated by whitespace,但您的示例數據顯示了由兩個詞組成的團隊名稱INDIANPOLISH COLTS。你將無法加載。

最好的解決方案是讓提供系統做正確的事,並提供一個使用明智的字段分隔符和/或現場機櫃的數據文件。 (如果這是一份學校作業,你可以自己做。)

不太理想的解決方案是預處理數據文件,使用正則表達式來分隔或包圍字段。