【发布时间】:2015-09-03 16:47:16
【问题描述】:
我正在尝试将以下 SQL 查询作为链接服务器存储过程传递,但出现错误,请告知,提前谢谢!
消息 7215,第 17 级,状态 1,第 17 行
无法在远程服务器“CAFUAT”上执行语句。
解释:
- CAFUAT = Oracle 链接服务器
- CDBWEB = 用户
- STP_CAF_PERSON = 存储过程
代码:
DECLARE @AVEMAIL VARCHAR(255)
DECLARE @ANCDPXID NUMERIC
DECLARE @AVCDPURN VARCHAR(12)
SELECT @AVEMAIL = 'a@b.com'
SELECT @ANCDPXID = null
SELECT @AVCDPURN = null
EXECUTE ('BEGIN CAFUAT.CDBWEB.STP_CAF_PERSON(?,?,?,?); END;', @AVEMAIL,@ANCDPXID,@AVCDPURN) AT CAFUAT
DECLARE @PrintVariable VARCHAR (4000)
SELECT @PrintVariable = 'ANCDPXID =' + CONVERT(VARCHAR(23), @ANCDPXID)
PRINT @PrintVariable
SELECT @PrintVariable = 'AVCDPURN =' + ISNULL(CAST(@AVCDPURN AS VARCHAR(8000)), '' )
PRINT @PrintVariable
【问题讨论】:
-
哈。帖子末尾未格式化的
GO听起来像是在命令我们开始工作:) -
想一想,你的陈述中有四个问号,但后面只列出了三个参数;你错过了一个参数吗?另外,“CDBWEB”是模式用户还是包名?
-
嗨 Boneist,你是对的,我已经删除了多余的问号。 CDBWEB 是有权限在链接的 ORACLE 服务器上执行 SP 的用户。
-
但是,它仍然显示相同的错误消息:
-
AVCDPURN = 消息 7215,级别 17,状态 1,第 16 行无法在远程服务器“CAFUAT”上执行语句。
标签: sql-server oracle stored-procedures