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

microchu 2004-09-17 10:47:39
我的应用程序需要从另外一个oracle数据库中读取数据到本地的oracle数据库中,两个oracle数据库使用dblink连接。
如果将本地的Oracle数据库Restart,在程序运行的时候能够取到另外一个数据库的数据,但是这个时候,也就是已经从另外一个数据库取数据成功一次,再对程序修改,重新编译,重起应用程序(不重起数据库),然后从另外一个数据库取数据,在取数据的"Select"SQL语句发送过去之后,程序就停在那里不往下执行了,在等待另外一个oracle 数据库返回数据,但是另外一个oracle数据库好像没反应了,也不提示出错,也不返回数据。
哪位大虾晓得这是怎么回事呀,该如何解决?
...全文
376 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
有可能是锁的问题

17,140

社区成员

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

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