存储过程访问远程数据库

我们有时候需要在本地数据库的存储过程中,或者在其他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/[email protected]

成功进入代表配置成功

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;

猜你喜欢

转载自blog.csdn.net/dbh58/article/details/8931957