pl/sql中如何操作别的数据库中的表

jason176374 2010-10-21 03:40:05
现有两个数据库A,B。
A中执行一个PL/SQL,需要使用一部分B数据库中的数据。

应该怎么写?
谢谢
...全文
130 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ngx20080110 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jason176374 的回复:]
我见了一个DBLINK
create public database link LK2JDECTL900
connect to JDECTL900 identified by JDECTL900
using 'E1Local';

使用:
select * from F0005@LK2JDECTL900

提示:ORA:12154,应该是TNS没有找到。
但是我TNS配置……
[/Quote]
那你試一下用tns中的那串字符代替E1Local吧
jason176374 2010-10-21
  • 打赏
  • 举报
回复
我见了一个DBLINK
create public database link LK2JDECTL900
connect to JDECTL900 identified by JDECTL900
using 'E1Local';

使用:
select * from F0005@LK2JDECTL900

提示:ORA:12154,应该是TNS没有找到。
但是我TNS配置应该没有问题,因为在DSN里面建立并测试的时候是可以连通的。
ngx20080110 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jason176374 的回复:]
建立db link的时候有一个授权"authenticated by",要设置吗?
[/Quote]
只有在設置了shared參數時,才需要設置authenticated by
jason176374 2010-10-21
  • 打赏
  • 举报
回复
建立db link的时候有一个授权"authenticated by",要设置吗?
jason176374 2010-10-21
  • 打赏
  • 举报
回复
知道了,其实就是TNS那个名字。
ngx20080110 2010-10-21
  • 打赏
  • 举报
回复
CREATE PUBLIC DATABASE LINK dblink_for_b
CONNECT TO username_in_b
IDENTIFIED BY <password>
USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = <ip_for_server_b>)(PORT = <port_number_default_1521>))) (CONNECT_DATA = (SERVICE_NAME = <database_service_name>)))';
jason176374 2010-10-21
  • 打赏
  • 举报
回复
我看了一下创建db link的语法。
我的A,B数据库不再一台Server上,这种情况怎么写?
ngx20080110 2010-10-21
  • 打赏
  • 举报
回复
先要創建一個連接到b的DBLINK,然後再通過該dblink來獲取b中的數據
crazylaa 2010-10-21
  • 打赏
  • 举报
回复
database link。

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧