我在sql developer上导出数据,并在每个表之前获取数据库名称或用户名,如下所示:

Insert into FAUSTO.CLIENT (ID, Name) ...

因此,本例中的数据库为FAUSTO。我希望此导出独立于数据库名称。
我还有另一个创建架构的脚本,然后运行一些插入数据的脚本。因此,无论数据库名称是什么,它都应该一直工作。

谢谢

最佳答案

这有点不直观,但是在取消选中整个部分之前,请在SQL Developer导出向导中,取消选中“导出DDL”部分中的“显示模式”选项。

sql - 在不依赖数据库名称的情况下在sql developer上导出数据-LMLPHP

即使您排除了DDL,insert语句也会使用该设置。

关闭该选项后,生成的脚本如下所示:

--------------------------------------------------------
--  File created - Thursday-June-23-2016
--------------------------------------------------------
REM INSERTING into A
SET DEFINE OFF;
Insert into A (NAME,AGE) values ('Tom',1);
Insert into A (NAME,AGE) values ('John',2);
...

如果我再次导出,但保留“显示模式”复选框,则会得到:
--------------------------------------------------------
--  File created - Thursday-June-23-2016
--------------------------------------------------------
REM INSERTING into STACKOVERFLOW.A
SET DEFINE OFF;
Insert into MYSCHEMA.A (NAME,AGE) values ('Tom',1);
Insert into MYSCHEMA.A (NAME,AGE) values ('John',2);
...

10-06 06:47
查看更多