甲骨文10g。导入数据时为模式创建别名

mad*_*ead 1 sql oracle plsql oracle10g dbeaver

我有一个带有 Oracle 11 的产品盒和一个名为 的架构A。出于测试目的,我需要产品数据的本地快照。数据不是很大,导出不成问题。我已经导出A到一组 SQL 文件(使用 DBeaver),每个表一个,内容如下:

INSERT INTO A.TABLE1 (F1, F2, F3) VALUES ('v11', 'v21', 'v31');
INSERT INTO A.TABLE1 (F1, F2, F3) VALUES ('v12', 'v22', 'v32');
Run Code Online (Sandbox Code Playgroud)

等等。问题是,出于开发目的,我使用名为 的模式B,因此在导入时我需要像这样的插入:

INSERT INTO B.TABLE1 (F1, F2, F3) VALUES ('v11', 'v21', 'v31');
INSERT INTO B.TABLE1 (F1, F2, F3) VALUES ('v12', 'v22', 'v32');
Run Code Online (Sandbox Code Playgroud)

我知道我可以找到并替换所有INSERT INTO A.内容INSERT INTO B.,这将解决我的问题,但也许我可以为模式创建某种别名B,这样我就可以这样做(伪代码):

CREATE ALIAS 'A' FOR SCHEMA 'B'
@TABLE1.sql
@TABLE2.sql
DELETE ALIAS 'A'
Run Code Online (Sandbox Code Playgroud)

Jef*_*emp 5

编写完全不使用模式名称的脚本。或者,如果它是由某些愚蠢的工具生成的,则编辑其中的模式名称:)

在驱动程序脚本中,ALTER SESSION SET CURRENT_SCHEMA x在调用插入脚本之前运行。