我需要使用 SQLLDR 将一些数据加载到 Oracle 中。数据采用可变长度行。我需要将前 9 个字符放入一列,最后 8 个字符放入第二列。我可以直接在 SQLLDR 中执行此操作,还是需要单独解析数据?
我在想类似的事情:
LOAD DATA
INFILE *
APPEND INTO TABLE trans_req
( student_id POSITION(1:9),
inst_id POSITION(-8:)
)
但我不认为语法是正确的。还考虑过使用一些 SQL 函数来抓取行尾,但不确定 SQLLDR 是否会将所有内容都抓取到 EOL,或者只是足够的字符来填充列 (8)。
LOAD DATA
INFILE *
APPEND INTO TABLE trans_req
( student_id POSITION(1:9),
inst_id POSITION(*) "SUBSTR(:inst_id, -8, 8)"
)
有什么建议么?