导航
  • 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流
  • 问答

使用dblink同步另外一个oracle数据库,执行SQL语句后没有反应了,是怎么回事?

microchu 2004-09-17 10:47:39
我的应用程序需要从另外一个oracle数据库中读取数据到本地的oracle数据库中,两个oracle数据库使用dblink连接。
如果将本地的Oracle数据库Restart,在程序运行的时候能够取到另外一个数据库的数据,但是这个时候,也就是已经从另外一个数据库取数据成功一次,再对程序修改,重新编译,重起应用程序(不重起数据库),然后从另外一个数据库取数据,在取数据的"Select"SQL语句发送过去之后,程序就停在那里不往下执行了,在等待另外一个oracle 数据库返回数据,但是另外一个oracle数据库好像没反应了,也不提示出错,也不返回数据。
哪位大虾晓得这是怎么回事呀,该如何解决?
...全文
265 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-07-07
搬个板凳来听课!
回复
zonelive 2004-10-20
up
回复
北极海hein 2004-09-17
学习一下.
回复
bzszp 2004-09-17
是的,有可能使对方的数据库对表加了锁
同时检查一下你的程序是否使用了锁,而且没有commit/rollback

另外:是否有可能是你的存储过程没有执行完。
回复
ks9960 2004-09-17
楼主把在出问题时,把"select"SQL放到remote oracle server上去执行一下,看看是否可以正常使用,确定是那边的问题
回复
microchu 2004-09-17
to bzszp 对方锁数据库吗,
这种情况,只要我重起数据库,就正常了,如果不在重新编译启动应用程序的话,它会一直正常运行,数据能取过来,但是只要我重新编译了程序,再启动,同步数据库的话就停在那里了
回复
wylwyl1130 2004-09-17
锁查询代码
SELECT s.osuser,S.SID SESSION_ID,S.USERNAME,LMODE,REQUEST,O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')',S.TYPE LOCK_TYPE,L.ID1 LOCK_ID1,L.ID2 LOCK_ID2
FROM V$LOCK L,SYS.DBA_OBJECTS O,V$SESSION S
WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID;
回复
zwj0712 2004-09-17
同意,要么是网络不通,要么是锁表在问题!
回复
LGQDUCKY 2004-09-17
看一下数据库锁的情况,还有检查下网络状况
回复
bzszp 2004-09-17
如果对方数据库中的这个表,有一个会话再上面执行了
select ... for update锁 ,只有那个会话commit/rollback,
你的语句才可以执行,否则将一直等待。
回复
bzszp 2004-09-17
有可能是锁的问题
回复
发动态
发帖子
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
社区公告
暂无公告