1

cx_Oracle を使用してダンプ ファイルを Oracle にインポートしようとしています。コマンドごとにコマンドを実行できます。誰でもこれを行う方法を提案できますか?

私は現在使用しています:

imp servicely/tiger@ubuntu file=/home/hemalatha/hemalatha_data/test_data/oracle/schema_only.sql full=y. 

しかし、次のエラーが表示されます: IMP-00037: 文字セット マーカーが不明です

4

1 に答える 1

1

あなたが実際に持っているものについて混乱していると思います。

あなたは言う

コマンドごとにコマンドを実行できます

また、想定されるインポート ファイルには.sql拡張子があります。SQL ステートメントでいっぱいのスクリプトがあると思います。expまたはによって生成されるバイナリ ファイルであるエクスポート ファイルがありませんexpdpimpおよびは、それぞれおよびimpdpによって生成されたファイルをインポートするために使用されます。実行する SQL スクリプトを与えると、彼らは混乱するでしょう。expexpdp

データベースに対して実行する 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
于 2014-05-26T13:27:56.577 に答える