我可以以及如何使用IntelliJ数据库工具查询多个数据库模式



我正在使用IntelliJ来创建我的应用程序和Oracle数据库。

目前,我必须将数据从较旧的数据库SCHEMA迁移到较新的数据库。表和列更改了,我想创建一个IQBase脚本,它将在安装新应用程序版本期间在不同的服务器上运行。

所以我得到了旧SCHEMA中的数据(我们将讨论OLD_SCHEMA),我想要SELECT这些数据,将它们和INSERT INTO转换为NEW_SCHEMA。所以我想这样写:

INSERT INTO NEW_SCHEMA.TABLE_X (........) SET (SELECT ..... FROM OLD_SCHEMA.TABLE_Y)

但是当我试图在与IntelliJ捆绑的数据库工具中执行这种查询时,我得到了一个错误的解释,即有一个不存在的表或视图。

[2016-09-06 15:22:29] [42000][942] ORA-00942: Table ou vue inexistante

这看起来很正常,因为,当我创建一个SQL控制台文件来测试我的查询时,它被链接到两个模式之一。

那么,我可以,如果我可以,如何执行我的查询来使用两个模式的数据?

谢谢。

PS: a Import, export不是解决方案,结构改变了很多。

要使用两个模式,您的USER必须在两个模式中都有权限(SELECT, INSERT等)。

对于INSERT语句使用了错误的sintax,您需要像这样使用sintax

INSERT INTO NEW_SCHEMA.TABLE_X (........) SELECT ..... FROM OLD_SCHEMA.TABLE_Y

您不能在其他模式中查询表,除非您被授予这样做的权限。如果连接到new_schema,想查询old_schema。你需要在old_schema.table_y上选择特权

连接到old_schema并授予这些权限。

grant select on table_y to new_schema;

现在你的查询应该可以工作了(没有set语句)。

请参阅此链接以获取语法示例。

最新更新