我將包含約250億行數據的數據集加載到我們的數據庫之一中。 有了這麼多的數據我不想加載不需要的行,所以我給加載添加了一個WHERE子句。 數據由XYZ值的行組成,當Z = -9999時表示該點未定義並且可以省略。在SQLLDR中使用WHEN子句
添加其中Z <> -9999給出了這樣的錯誤...
SQL*Loader-350: Syntax error at line 5.
Expecting quoted string or hex identifier, found "-".
WHEN Z <> -9999
沒有WHERE子句運行良好
數據:
44790.301538192,54665.413037326,-9999
44791.301474866,54665.387827518,-9999
44792.30141154,54665.36261771,-9999
44793.301348214,54665.337407902,-9999
目標表:
CREATE TABLE LIDAR_DSM_XYZ_1M
(
PK_ID INTEGER,
TILE VARCHAR2(30 BYTE),
GEOMETRY MDSYS.SDO_GEOMETRY
)
控制文件:
OPTIONS(DIRECT=TRUE)
UNRECOVERABLE LOAD DATA
INFILE 'su9498_dsm_1m.xyz'
APPEND
INTO TABLE LIDAR_DSM_XYZ_1M
WHEN Z <> -9999
FIELDS TERMINATED BY ','
TRAILING NULLCOLS (
TILE CONSTANT 'su9498_dsm_1m',
GEOMETRY COLUMN OBJECT
(SDO_GTYPE CONSTANT 3001,
SDO_POINT COLUMN OBJECT
(X FLOAT EXTERNAL,
Y FLOAT EXTERNAL,
Z FLOAT EXTERNAL
)
)
)
檢查出來的'code'按鈕在問題編輯器中。 :) –
我做到了,按照指令前綴4個空格,但它只是忽略它 – kenneedham
您還必須在代碼段之前有一個空行。你可以標記文本,然後點擊代碼按鈕,然後它會爲你完成。 –