每當我將預處理器子句添加到外部表語句中時,我似乎遇到了問題。如果沒有預處理器行,它一切正常,但只要我添加它,我得到什麼樣的錯誤取決於我把它放在訪問參數塊中,它們是否必須按特定順序?我在網上找不到任何類似的問題。Oracle外部表中的預處理器
編輯:另外作爲一個附註,我知道你可以使用預處理器將壓縮文件送入外部表。如果我想讀取一個壓縮文件並追加文件名,就像把它全部放在一個shell文件中一樣簡單?
CREATE TABLE (
column1 VARCHAR2(40),
column2 VARCHAR2(40)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY DMPDIR
ACCESS PARAMETERS(
RECORDS DELIMITED BY NEWLINE
LOGFILE DMPDIR:'test.log'
BADFILE DMPDIR:'test.bad'
fields terminated by '^'
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
preprocessor DMPDIR: 'append_filename.sh'
)
LOCATION (DMPDIR: 'testfile.dat')
);
append_filename.sh
#!/bin/bash
sed -e 's!$!,'"${1##*/}"'!' $1
是我們應該去猜測錯誤?我們應該猜測你的Oracle版本嗎? – 2015-03-25 11:13:08
Oracle 11.2.0.3.0所以支持預處理器我相信。我可以給你這些錯誤,但這是一個不同的錯誤,這取決於我將預處理器語句移動到access_parameters塊內的哪一行......所以我想知道是否需要某個順序或者我做了一些明顯錯誤的事情。 – 2015-03-25 11:16:21
我在回答中發佈了一個示例。 – 2015-03-25 11:20:12