在存储过程中连接远程数据库并进行操作

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

我们有时候需要在本地数据库的存储过程中,或者在其他SQL语句中,要访问一个远程数据库,我们可以这样做...

在存储过程中连接远程数据库并进行操作

1. 查看远程数据库的相关数据

SERVICE_NAME

两种方式:

第一种 more $ORACLE_HOME/network/admin/tnsname.ora

一般是数据库的SID

第二种 echo $ORACLE_SID

2.修改本地数据库的

vi $ORACLE_HOME/network/admin/tnsname.ora

添加如下:

DB.69LINK =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 远程数据库地址hotname)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = 远程数据库的SERVICE_NAME)

)

)

3.测试连接是否成功

在本地数据库运行

tnsping DB.69LINK

如果成功,可以再使用:

sqlplus username/password@DB.69LINK

成功进入代表配置成功

4.在本地数据库中创建远程连接

create database link mylink connect to 用户名 identified by 密码 using 'DB.69LINK';

运行如下,检查连接是否已经创建

select * from user_db_links

5.在存储过程中应用:

CREATE OR REPLACE PROCEDURE remoteAccess AS

TYPE t_ReadUser IS REF CURSOR;

v_CursorVar1 t_ReadUser;

DECOUNT NUMBER(18);

Begin

SELECT * FROM 表明@mylink;

其他操作

dbms_output.put_line('END');

EXCEPTION

WHEN OTHERS THEN

dbms_output.put_line(SQLERRM);

ROLLBACK;

END;

/

SHOW ERRORS;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航