oracle同服务器,跨数据库访问,有什么简单的方式么?

shoppo0505 2016-11-25 04:19:31
我是Oracle新手,现在需要访问同一服务器上面的2个数据库。
看了下,可以建立database link的方式来实现跨数据库访问。
我现在只是为了工作方便,自己写了个脚本来验证数据,我不想在数据库中添加,或者删除任何对象,不知道这样子能否实现跨数据库访问。

简单演示:
database1.table1
database2.table2

我现在写了个脚本
select * from table1
inner join database2.table2

join这里出了问题,请问有什么简单,干净的方式能实现跨数据库访问么?
...全文
393 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2016-11-25
  • 打赏
  • 举报
回复
引用 10 楼 shoppo0505 的回复:
thanks, i see
你先试试,有问题再追问;
shoppo0505 2016-11-25
  • 打赏
  • 举报
回复
引用 9 楼 wmxcn2000 的回复:
[quote=引用 8 楼 shoppo0505 的回复:] 请问你说的desc代码是什么意思?

create database link MY_DBLINK
  connect to UNAME identified by XXXX
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )';

[/quote] thanks, i see
卖水果的net 2016-11-25
  • 打赏
  • 举报
回复
引用 8 楼 shoppo0505 的回复:
请问你说的desc代码是什么意思?

create database link MY_DBLINK
  connect to UNAME identified by XXXX
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )';

shoppo0505 2016-11-25
  • 打赏
  • 举报
回复
引用 7 楼 wmxcn2000 的回复:
[quote=引用 4 楼 shoppo0505 的回复:] SQL上面,直接database.schma.table就可以调用了,但是我在oracle中这么调用就出错。
这个要建 dblink 的;dblink 也可以不写 tnsnames.ora 文件,直接把 DESC 那一串内容写到create 语句中;[/quote] 我找到的建立dblink语法是 CREATE [PUBLIC] DATABASE LINK <link_name> CONNECT TO <user_name> IDENTIFIED BY <password> USING '<service_name>'; 请问你说的desc代码是什么意思?
卖水果的net 2016-11-25
  • 打赏
  • 举报
回复
引用 4 楼 shoppo0505 的回复:
SQL上面,直接database.schma.table就可以调用了,但是我在oracle中这么调用就出错。
这个要建 dblink 的;dblink 也可以不写 tnsnames.ora 文件,直接把 DESC 那一串内容写到create 语句中;
shoppo0505 2016-11-25
  • 打赏
  • 举报
回复
引用 5 楼 sych888 的回复:
[quote=引用 4 楼 shoppo0505 的回复:] [quote=引用 2 楼 wmxcn2000 的回复:] 楼主想表达的可能是两个 用户(schema),而不是两个 (instance) 直接 select * from u1.tname , 或 select * from u2.tname 就可以了 (可能会报仅限不足的提示)
我指的是两个数据库。 SQL上面,直接database.schma.table就可以调用了,但是我在oracle中这么调用就出错。[/quote] 那最简单的方法就是DBLINK[/quote] 使用DBLink的话,生成的Link对象是保存在哪个数据库中的? 还有一个问题是,我怎么查找这个数据库的所有dblink?
sych888 2016-11-25
  • 打赏
  • 举报
回复
引用 4 楼 shoppo0505 的回复:
[quote=引用 2 楼 wmxcn2000 的回复:] 楼主想表达的可能是两个 用户(schema),而不是两个 (instance) 直接 select * from u1.tname , 或 select * from u2.tname 就可以了 (可能会报仅限不足的提示)
我指的是两个数据库。 SQL上面,直接database.schma.table就可以调用了,但是我在oracle中这么调用就出错。[/quote] 那最简单的方法就是DBLINK
shoppo0505 2016-11-25
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
楼主想表达的可能是两个 用户(schema),而不是两个 (instance) 直接 select * from u1.tname , 或 select * from u2.tname 就可以了 (可能会报仅限不足的提示)
我指的是两个数据库。 SQL上面,直接database.schma.table就可以调用了,但是我在oracle中这么调用就出错。
shoppo0505 2016-11-25
  • 打赏
  • 举报
回复
引用 1 楼 sych888 的回复:
不行 你是两个数据库?还是一个数据库上的两个用户?
两个数据库, 不是两个用户
卖水果的net 2016-11-25
  • 打赏
  • 举报
回复
楼主想表达的可能是两个 用户(schema),而不是两个 (instance) 直接 select * from u1.tname , 或 select * from u2.tname 就可以了 (可能会报仅限不足的提示)
sych888 2016-11-25
  • 打赏
  • 举报
回复
不行 你是两个数据库?还是一个数据库上的两个用户?

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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