我正在使用sqlplus从远程数据库表中获取数据,然后使用sqlldr将该数据插入到其他表中。我写了一个shell脚本来做这件事。 sqlplus选项正在运行,但是sqlldr命令不起作用,虽然我已经能够从命令提示符处使用它,但它似乎无法在文件中工作。
这是我的剧本。
#!/bin/bash
#script to get 5 minutes of data from FCT table and insert into LOCAL table
sqlplus -s user/passs@FCT_DB <<EOF
SET TERMOUT OFF
SET LINESIZE 300
SET HEAD OFF
SPOOL export.csv
SELECT X FROM Y
SPOOL OFF
EXIT
EOF
! SQLLDR usr/pass@LOCAL_DB CONTROL=loader.ctl ERRORS=5000
正确创建了export.csv。 loader.ctl也是正确的。
此外,每当脚本运行时,它都会显示在shell上获取的数据。我搜索过SET TERMOUT OFF有助于不显示它,但它似乎也无法正常工作。