あなたが実際に持っているものについて混乱していると思います。
あなたは言う
コマンドごとにコマンドを実行できます
また、想定されるインポート ファイルには.sql
拡張子があります。SQL ステートメントでいっぱいのスクリプトがあると思います。exp
またはによって生成されるバイナリ ファイルであるエクスポート ファイルがありませんexpdp
。 imp
およびは、それぞれおよびimpdp
によって生成されたファイルをインポートするために使用されます。実行する SQL スクリプトを与えると、彼らは混乱するでしょう。exp
expdp
データベースに対して実行する SQL スクリプトがある場合は、SQL*Plus を使用します。以下は、あまり機能しない単純な SQL*Plus スクリプトです。
PROMPT Hello, we are in SQL*Plus
SELECT * FROM DUAL;
SQL*Plus でこのスクリプトを実行し、出力を表示する単純な Python スクリプトを次に示します。
import subprocess
script = subprocess.Popen(["sqlplus", "-L", "user/password", "@script.sql"],
stderr=subprocess.STDOUT, stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
script.stdin.close() # Force SQL*Plus to exit after reading script.
for line in script.stdout:
print line.rstrip()
SQL*Plus の入力に接続して閉じる必要があることに注意してください。そうしないと、SQL*Plus が終了せず、スクリプトがハングします。
これを実行すると、次の出力が得られます。
SQL*Plus: Release 11.2.0.2.0 Production on Mon May 26 14:22:34 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
Hello, we are in SQL*Plus
D
-
X
SQL> Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production