有没有办法在Oracle SQL Developer中查询两个数据库(在单个查询中)?
我对Oracle不是很熟悉 - 除了标准的CRUD语法之外无论如何 .
我正在尝试从SQL Server表插入Oracle表 . 想做这样的事情:
INSERT INTO OracleDB.table (field1, 2, ...)
SELECT ... FROM SQLServerDB.schema.table
我在Oracle SQL Developer中为两个数据库创建了(工作)连接 .
谢谢
- 编辑 -
我没有数据库本身的管理员权限 . (无法创建链接服务器等)
2 回答
是的,'s possible. Connections in SQL Developer won' t帮助您 - 您必须从Oracle数据库设置database link到SQL Server数据库 .
在创建数据库链接之前,您必须设置一个异构网关以连接到SQL Server .
一般步骤包括:
在将使用数据库链接访问远程SQL Server数据库的服务器上安装Oracle ODBC驱动程序 .
使用Windows ODBC数据源管理器在本地Oracle数据库上设置ODBC连接
测试ODBC驱动程序以确保与SQL Server数据库 Build 连接 .
通过在Oracle数据库中创建initodbc.ora文件来配置Oracle异构服务 .
修改
Listener.ora
文件 .Tnsnames.ora file
以指向网关在本地Oracle数据库上重新加载侦听器
在访问异构连接的本地Oracle安装上创建数据库链接,异构连接又连接到SQL Server .
创建数据库链接后,您应该能够使用简单的方法插入数据库:
进一步阅读:
Oracle documentation on异构网关连接
Oracle documentation有关创建数据库链接的信息
从Oracle到SQL Server的
Making a connection(这稍微陈旧,但非常好,插图文章!)
您可以使用异构服务从ODBC连接读取数据 . 虽然设置起来有点痛苦 . 您必须在oracle安装中编辑多个文件以设置新的TNS监听器,然后在架构/全局内创建一个dlink .
This guide适用于unix,但是最短/最少延迟的IMO .
另一种选择是通过第三方程序管道数据 . 例如,我认为您可以在MS Access中创建查询,然后将数据导出到Oracle或SQL Server .