使用 Oracle SQL Developer 查询两个数据库

发布于 2024-12-15 22:10:37 字数 370 浏览 1 评论 0原文

有没有办法在 Oracle SQL Developer 中查询两个数据库(在单个查询中)?

我对 Oracle 不是很熟悉——无论如何,除了标准的 CRUD 语法。

我正在尝试从 SQL Server 表插入 Oracle 表。想做这样的事情:

INSERT INTO OracleDB.table (field1, 2, ...)
SELECT ... FROM SQLServerDB.schema.table

我已经在 Oracle SQL Developer 中为两个数据库创建了(工作)连接。

谢谢

--编辑--

我对数据库本身没有管理权限。 (无法创建链接服务器等)

Is there a way to query two databases (in a single query) in Oracle SQL Developer?

I'm not very familiar with Oracle -- aside from standard CRUD syntax at any rate.

I'm trying to do an insert into an Oracle table from a SQL Server table. Would like to do something like this:

INSERT INTO OracleDB.table (field1, 2, ...)
SELECT ... FROM SQLServerDB.schema.table

I've got (working) connections created for both databases in Oracle SQL Developer.

Thanks

--EDIT--

I have no admin privileges to the databases themselves. (Cannot create linked servers, etc.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流年已逝 2024-12-22 22:10:38

是的,这是可能的。 SQL Developer 中的连接不会帮助您 - 您必须设置 数据库链接 从 Oracle 数据库到 SQL Server 数据库。

在创建数据库链接之前,您必须设置异构网关来连接到 SQL Server。

一般步骤包括:

  • 在将使用数据库链接访问远程 SQL Server 数据库的服务器上安装 Oracle ODBC 驱动程序。

  • 使用 Windows ODBC 数据源管理器在本地 Oracle 数据库上设置 ODBC 连接

  • 测试 ODBC 驱动程序以确保连接 。

  • 通过在 Oracle 数据库中创建 initodbc.ora 文件来配置 Oracle 异构服务。

  • 修改Listener.ora文件。

     SID_NAME 是远程数据库的 DSN。
        ORACLE_HOME 是实际的 Oracle 主文件路径。
        PROGRAM 告诉 Oracle 使用异构服务。
    
        SID_LIST_LISTENER =
        (SID_列表=
        (SID_DESC =
        (SID_NAME=ora_sid) -- 在此行输入 DSN
        (ORACLE_HOME = c:\oracle10gdb) -- 在此行输入您的 Oracle 主目录
        (程序 = hsodbc) ) )
    
  • 修改Tnsnames.ora文件以指向网关

    <前><代码>(描述=
    (地址列表=
    (地址=(协议=TCP)
    (主机=
    --(服务器x)
    (PORT=1521))) -- 输入服务器 x Oracle 安装的端口
    ——正在听
    (CONNECT_DATA=(SID=Cas30c)) - 输入 DSN 名称
    (HS=OK) -- 输入该值。它告诉 Oracle 使用异构服务

  • 重新加载本地Oracle 数据库上的监听器

  • 在访问异构连接的本地 Oracle 安装上创建一个数据库链接,该连接依次连接到 SQL Server。

创建数据库链接后,您应该能够使用简单的方法插入数据库:

 insert into <oracle_tablename>
 select * from <sqlserver_table_name>@dblink_name

进一步阅读:

Yes, that's possible. Connections in SQL Developer won't help you - you will have to setup a database link from your Oracle database to the SQL Server database.

Before creating a database link, you'll have to setup a Heterogeneous gateway to connect to the SQL Server.

General steps include:

  • Install Oracle ODBC drivers on the server that will access the remote SQL Server database using the database link.

  • Setup the ODBC connection on the local Oracle database using the Windows ODBC Data Source Administrator

  • Test the ODBC drivers to ensure that connectivity is made to the SQL Server database.

  • Configure the Oracle Heterogeneous services by creating an initodbc.ora file within the Oracle database.

  • Modify the Listener.ora file.

        SID_NAME is the DSN for the remote database.
        ORACLE_HOME is the actual Oracle home file path.
        PROGRAM tells Oracle to use heterogeneous services.
    
        SID_LIST_LISTENER =
        (SID_LIST =
        (SID_DESC =
        (SID_NAME=ora_sid) -- Enter the DSN on this line
        (ORACLE_HOME = c:\oracle10gdb) -- Enter your Oracle home on this line
        (PROGRAM = hsodbc) ) )
    
  • Modify the Tnsnames.ora file to point to the gateway

        (DESCRIPTION=
        (ADDRESS_LIST=
        (Address=(PROTOCOL=TCP)
        (HOST=
        -- (Server x)
        (PORT=1521))) -- Enter the port on which the server x Oracle installation
        -- is listening
        (CONNECT_DATA=(SID=Cas30c)) - Enter the DSN name
        (HS=OK) -- Enter this value. It tells Oracle to use hetergeneous services
        )
    
  • Reload the listener on local Oracle database

  • Create a database link on the local Oracle installation that accesses the heterogeneous connection, which, in turn, connect to SQL Server.

Once the database link is created, you should be able to insert into the database using a simple:

 insert into <oracle_tablename>
 select * from <sqlserver_table_name>@dblink_name

Further reading:

喜你已久 2024-12-22 22:10:38

您可以使用异构服务从 ODBC 连接读取数据。不过设置起来有点麻烦。您必须在 oracle 安装中编辑多个文件才能设置新的 TNS 侦听器,然后在架构/全局中创建 dlink。

本指南适用于unix,但在我看来是最短/最迟钝的指南。

另一种选择是通过第三方程序传输数据。例如,我认为您可以在 MS Access 中创建查询,然后将数据导出到 Oracle 或 SQL Server。

You can read data from an ODBC connection using Heterogeneous Services. It is a bit of a pain to set up though. You have to edit several files in the oracle install to setup a new TNS Listener then create a dlink within your schema/global.

This guide is for unix but is the shortest/least retarded one IMO.

The other option is to pipe data via a 3rd party program. For instance I think you can create a query in MS Access then export the data to Oracle or SQL Server.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文