如何使用存储过程连接到另一个数据库?


11

我需要从外部数据库获取一些数据并在另一个数据库中进行一些计算,是否可以从存储过程连接到外部数据库?谢谢你们。

PS。

我正在使用Oracle,并且两个数据库都在同一服务器上。

Answers:


10

您要使用数据库链接(DBLink)。

http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_5005.htm

http://psoug.org/reference/db_link.html

-- create tnsnames entry for conn_link
conn_link =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = perrito2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orabase)
    )
  )


CREATE DATABASE LINK conn_user
USING 'conn_link';

SELECT table_name, tablespace_name FROM user_tables@conn_user; 

过程或表名末尾的@conn_user将告诉pl / sql引擎查询为该信息指定的数据库链接。


1
在PSOUG链接的内部深处是对DRIVING_SITE提示的引用-跨DBLINK的查询的性能可能相差很大-如果您知道大部分数据将在何处进行,请确保将DRIVING_SITE设置为数据所在的数据库处理将是最有效的。
ScottCher 2011年


0

是的,您可以,您可以使用dg4odbc从任何数据库读取数据。可以连接到任何兼容odbc的数据库,并且可以连接到Oracle数据库,前提是您可以找到适用于out平台的odbc驱动程序。.odbc.ini和$ ORACLE_HOME / hs / admin是您的配置位置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.