シェル・スクリプト内に複数のSQL * PLUS接続を持たせることはできますか?シェル・スクリプト内のSQL * PLUS接続に関する問題
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
あなたの質問のタイトルはちょっと誤解を招いています。これは、シェルスクリプトの質問のようです。タイトルを変更すると、これを見ているシェルスクリプトの専門家が増えるかもしれません。 – Jolta
ありがとうございました。私はタイトルを変更しました...今はうまくいきたいです。 :) – Savitha