1

サーバーにインポートする.sql形式のダンプがあります。ツールからはsqlplusのみ。問題は、sqlplusでは、各CREATE TABLEが実行された後、テーブルの作成を開始した/後にのみ要求されることです。/そして、ダンプは次のようになります。

DROP TABLE ...;
CREATE TABLE ...;
INSERT INTO ...;
...
DROP TABLE ...;
CREATE TABLE ...;
INSERT INTO ...;
...
...

INSERTに関しては、テーブルが作成されていないため、何も挿入されません。ファイルが大きい(〜700 MB)ため、ファイルを編集できません。ダンプをインポートする方法は?

4

1 に答える 1

2

ファイル/tmp/foo.sqlを指定すると、次のようになります。

CREATE TABLE foo (
    a integer primary key,
    b integer
);

INSERT INTO foo VALUES (1, 2);

sqlplusの実行:

$ sqlplus user/pass@db @/tmp/foo

SQL*Plus: Release 11.2.0.2.0 Production on Thu Oct 25 10:54:39 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle9i Release 9.2.0.4.0 - 64bit Production
JServer Release 9.2.0.4.0 - Production


Table created.


1 row created.

SQL>

区切り文字を/どこかに設定したようです。に戻し;ます。

ファイルを編集する必要がある場合は、perl -p -E "s/pattern/replacement/" oldfile.sql > newfile.sqlまたは同様の方法で編集できます。(または、正直なところ、多くのエディターは、数ギガバイトのRAMを搭載した最新のマシンで700MBのファイルを処理できます)。

于 2012-10-25T14:56:17.200 に答える