问:我们将我们的Oracle数据库移植到了新的环境中。有一些客户表同时存在于两个数据库中,但是在新环境中的数据库的那些表有一些额外的字段。你能帮助我使用导入/导出工具吗?这样我就可以或者导入新的空值,或者从原来的环境中导出为空值,然后再导入了。非常感谢。
答:
这里有两个类似的选项可以让你从源数据库中转换数据到目标数据库中,同时在目标系统中保存额外的字段。使用导出/导入工具不会让你在目标数据库中保存那些字段。你可以使用带有导出的查询选项,但是这只能答应某些行导出,而不能答应只有某些字段(列)导出。
第一个选择涉及了在源和目标数据库之间创建一个数据库链接,然后使用插入命令来只插入你需要的数据行和字段。这里是例子:
INSERT INTO emp (empid, ename, email)
SELECT empid, ename, emailFROM
emp@remote_dbWHERE ... ;
第二个选择可以使用SQL*Loader。你必须以SQL*Loader可以读取的格式从源表中读取某些行,但是之后你还可以选择使用SQL*Loader来插入目标数据库,或者假如这些行已经存在的话,就把它们附加上去。