使用sql loader,我知道我可以在我的ctl文件中引用一个ksh变量。例如,我可以写把选择结果放入一个ksh变量
LOAD DATA
INFILE '$PATH_IN_KSH/my_file.dat'
...
我想补充一个WHEN子句这样
WHEN (125:125) = '$P_NUMBER'
P_NUMBER将有一列在表中的值,我会用一个选择查询检索。
有没有可能这样做?使用select从列中检索值,并以某种方式将其放入ksh变量,以便ctl文件可以看到它。 (一些与SQL加?)
谢谢
[This](http://stackoverflow.com/a/17731960/266304)稍微复杂一些 - 你并不需要一个函数,但它不会伤害到分离。这是否给你你需要的东西? –
编写一个shell脚本来驱动这个过程。在脚本中使用一个HERE DOC作为sqlldr控制文件和引用shell变量,或者将控制文件作为单独的模板文件运行sed以用值替换变量。 – TenG
@Alex Poole ..是的,它似乎很好 – mlwacosmos