☆我们有时候需要在本地数据库的存储过程中,...... 我们有时候需要在本地数据库的存储过程中,或者在其他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; |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-30 03:24 , Processed in 0.156891 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.