通过sqlpus导入大型SQL转储
有一个.sql格式的转储文件要导入到服务器。仅从工具sqlplus。问题是sqlplus要求在每次创建表之后通过sqlpus导入大型SQL转储,sql,oracle,oracle10g,sqlplus,dump,Sql,Oracle,Oracle10g,Sqlplus,Dump,有一个.sql格式的转储文件要导入到服务器。仅从工具sqlplus。问题是sqlplus要求在每次创建表之后/,并且只有在/之后才开始创建表。dump看起来是这样的: DROP TABLE ...; CREATE TABLE ...; INSERT INTO ...; ... DROP TABLE ...; CREATE TABLE ...; INSERT INTO ...; ... ... 在插入时,由于未创建表,因此不会插入任何内容。无法编辑该文件,因为该文件很大(~700 MB)。如何导
/
,并且只有在/
之后才开始创建表。dump看起来是这样的:
DROP TABLE ...;
CREATE TABLE ...;
INSERT INTO ...;
...
DROP TABLE ...;
CREATE TABLE ...;
INSERT INTO ...;
...
...
在插入时,由于未创建表,因此不会插入任何内容。无法编辑该文件,因为该文件很大(~700 MB)。如何导入转储文件?给定文件/tmp/foo.sql:
创建表foo(
整数主键,
b整数
);
插入foo值(1,2);
运行sqlplus:
$sqlplus用户/pass@db@/tmp/foo
SQL*Plus:11.2.0.2.0版于2012年10月25日星期四10:54:39发布
版权所有(c)1982年,2010年,甲骨文。版权所有。
连接到:
Oracle9i 9.2.0.4.0版-64位生产
JServer 9.2.0.4.0版-生产
表已创建。
创建了1行。
SQL>
听起来您好像在某处将分隔符设置为/
。将其更改回代码>
如果需要编辑文件,可以使用perl-p-E“s/pattern/replacement/”oldfile.sql>newfile.sql
或类似工具进行编辑。(或者说,老实说,许多编辑器可以在具有许多GB RAM的现代机器上处理700MB文件)。SQL*Plus应该理解默认情况下,代码>我的问题是命令和分号之间是空行。解决方案:打开sqlblanklines;