在存储过程中连接远程数据库并进行操作
我们有时候需要在本地数据库的存储过程中 或者在其他SQL语句中 要访问一个远程数据库 我们可以这样做
在存储过程中连接远程数据库并进行操作
查看远程数据库的相关数据
SERVICE_NAME
两种方式:
第一种 more $ORACLE_HOME/neork/admin/tnsname ora
一般是数据库的SID
第二种 echo $ORACLE_SID
修改本地数据库的
vi $ORACLE_HOME/neork/admin/tnsname ora
添加如下
DB LINK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 远程数据库地址hotname)(PORT = ))
)
(CONNECT_DATA =
(SERVICE_NAME = 远程数据库的SERVICE_NAME)
)
)
测试连接是否成功
在本地数据库运行
tnsping DB LINK
如果成功 可以再使用:
sqlplus username/password@DB LINK
成功进入代表配置成功
在本地数据库中创建远程连接
create database link mylink connect to 用户名 identified by 密码 using DB LINK ;
运行如下 检查连接是否已经创建
select * from user_db_links
在存储过程中应用
CREATE OR REPLACE PROCEDURE remoteAccess AS
TYPE t_ReadUser IS REF CURSOR;
v_CursorVar t_ReadUser;
DECOUNT NUMBER( );
Begin
SELECT * FROM 表明@mylink;
其他操作
dbms_output put_line( END );
EXCEPTION
WHEN OTHERS THEN
dbms_output put_line(SQLERRM);
ROLLBACK;
END;
/
lishixinzhi/Article/program/Oracle/201311/17828