我们可以在shell脚本中有多个SQL * PLUS连接吗?Shell脚本中的SQL * PLUS连接问题
我写了一个shell脚本,使用SQL * PLUS的COPY命令将表中的数据从一个数据库复制到另一个数据库。我没有权限创建数据库链接,因此我使用COPY命令。
我需要复制约50张表的数据。当数据集很小时,它会运行并复制所有表的数据。但是当数据集很大时,它会卡住,并且我在unix机器中获得会话非活动消息。
我想拆分的声明,并写下如下:但我得到错误“SP2-0042:未知的命令”END1“ - 其余的行忽略。”和“SP2-0042:未知命令”END“ - 其余行被忽略。”
#!/bin/bash
export ORACLE_HOME=/ora00/app/oracle/product/9.2.0.8
export PATH=$PATH:$ORACLE_HOME/bin
args=$#
if [ $args == 1 ]
then
echo "Shell script started"
else
echo "Wrong number of arguments"
exit 1
fi
time_start=`date +%H%M%S`
echo $time_start
sqlplus -s srcUN/[email protected] <<END1
COPY from srcUN/[email protected] to dstUN/[email protected] INSERT tab1 USING SELECT * FROM tab1 WHERE col1 = $1;
COPY from srcUN/[email protected] to dstUN/[email protected] INSERT tab2 USING SELECT * FROM tab2 WHERE col1 = $1;
END1
sqlplus -s srcUN/[email protected] <<END2
COPY from srcUN/[email protected] to dstUN/[email protected] INSERT tab3 USING SELECT * FROM tab3 WHERE col1 = $1;
END2
#END
你能帮我解决吗?
感谢, Savitha
你的问题的标题有点误导 - 这看起来像一个shell脚本问题。如果您更改标题,您可能会收到更多的shell脚本专家。 – Jolta 2012-02-08 12:16:34
谢谢Jolta。我已经改变了标题...希望它现在可行。 :) – Savitha 2012-02-08 12:22:38