我写了一个 .sh 脚本,它应该通过 sql*loader 从文件上传数据,然后运行应该继续上传数据的存储过程。
#!/bin/bash
ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH
export ORACLE_SID=RSK
sqlldr userid=MY_SCHEME/PASS@MY_SID control=!_control_file.ctl LOG=upload.log errors=100
# SQl procedures start
sqlplus -s MY_SCHEME@RSK/PASS<<end
# Procedure which transport data from stage tables to table_procedure_1
execute MY_SCHEME.procedure_1();
commit;
execute MY_SCHEME.procedure_2();
commit;
end
#exit from .sh script
exit;
结果我上传了数据,但 MY_SCHEME.procedure_1() 没有继续上传数据。上传后似乎没有数据提交。请帮我coorect我的scipt。谢谢你。
ps当我使用sql * plus(不是来自.sh scirpt)运行程序时,它工作正常。
它可以正常工作:
sqlplus scheme/pass@database<<end
SET SERVEROUTPUT ON
begin
dbms_output.put_line ('Running procedure 1');
proc1();
COMMIT;
dbms_output.put_line('procedure completed');
end;
/
exit
end
谢谢大家!!!