Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过sqlpus导入大型SQL转储_Sql_Oracle_Oracle10g_Sqlplus_Dump - Fatal编程技术网

通过sqlpus导入大型SQL转储

通过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)。如何导

有一个.sql格式的转储文件要导入到服务器。仅从工具sqlplus。问题是sqlplus要求在每次创建表之后
/
,并且只有在
/
之后才开始创建表。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;