链接服务器连接Oracle数据库执行存储过程时的问题

Ryan1005 2004-11-23 10:19:39
首先,该存储过程在Oracle中编译成功,在SQL*PLUS中执行也没有问题:
SQL> exec SYSTEM.UP_VEHICLE_UNLOCK

PL/SQL 过程已成功完成。

其次,链接服务器设置也没有问题,
update srv_lnk..SYSTEM.VEHICLE_VIOLATE set flag = 0
select voilateno,flag from srv_lnk..SYSTEM.VEHICLE_VIOLATE
均可正确执行;

但是exec srv_lnk..SYSTEM.UP_VEHICLE_UNLOCK执行的时候出错,提示信息为:
服务器: 消息 7212,级别 17,状态 1,行 4
未能在远程服务器 'srv_lnk' 上执行过程 'UP_VEHICLE_UNLOCK'。
[OLE/DB provider returned message: 在执行命令过程中,发生了一个以上的错误。]
[OLE/DB provider returned message: 语法错误在 {call...} ODBC Escape。]

请问这是什么原因?
...全文
105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ryan1005 2004-11-24
  • 打赏
  • 举报
回复
SELECT * FROM OPENQUERY(srv_lnk, 'exec SYSTEM.UP_VEHICLE_UNLOCK')

服务器: 消息 7357,级别 16,状态 2,行 12
未能处理对象 'exec SYSTEM.UP_VEHICLE_UNLOCK'。OLE DB 提供程序 'MSDAORA' 指出该对象中没有任何列。
Ryan1005 2004-11-24
  • 打赏
  • 举报
回复
sorry,写错了,是不用openquery可以吗?
Ryan1005 2004-11-24
  • 打赏
  • 举报
回复
openquery是不是一定要有返回值?

还有,用链接服务器怎么解决?
netcoder 2004-11-24
  • 打赏
  • 举报
回复
使用OPENQUERY:

SELECT *
FROM OPENQUERY(srv_lnk, 'exec SYSTEM.UP_VEHICLE_UNLOCK')

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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