我正在将包含大约250亿行的数据集加载到我们的一个数据库中。 有了这么多数据,我不想加载不需要的行,所以我在加载中添加了一个WHERE子句。 数据由XYZ值行组成,当Z = -9999时,表示该点未定义且可以省略。
添加 WHERE 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
)
)
)
答案 0 :(得分:0)