我有一个控制文件和一个如下所示的数据文件:
RECOVERABLE
LOAD DATA
INFILE "D:\KING\DATAFILE.txt"
APPEND
CONCATENATE 1
INTO TABLE TABLE1
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
USERID CHAR(7),
COUNTRY CHAR(100),
FIRSTNAME EXPRESSION "SELECT USERNAME FROM USER_TABLE WHERE ID=3",
ACTIVE_FLAG CONSTANT 'Y',
CHANGE_DT SYSDATE ,
)
1,INDIA
5,USA
19,RUSSIA
我无法将数据加载到TABLE1中。
它显示错误"FIRSTNAME" (Expression missing..)
我需要使用select query的结果作为插入值。我怎么能这样做?
答案 0 :(得分:2)
用括号括起查询为我修复了这个错误:
FIRSTNAME EXPRESSION "(SELECT USERNAME FROM USER_TABLE WHERE ID=3)"
我认为这是因为要成为表达式,必须将其视为子查询。
答案 1 :(得分:-1)
我不明白你打算做什么。
您是否尝试将一个函数嵌套到另一个函数中?
然而,我觉得你应该把你的步骤分成一步(重新:“我需要使用select查询的结果作为插入值。”)
也许您可以使用此功能解决您的问题:GenID
使用GenID,您可以在下一步之前生成下一个ID。