将存储过程从SQL Server传递到ORACLE链接服务器 [英] Passing Stored Procedure from SQL Server to ORACLE linked server

查看:138
本文介绍了将存储过程从SQL Server传递到ORACLE链接服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将以下SQL查询作为链接服务器存储过程传递,但出现错误,请告知,谢谢!

I'm trying to pass the following SQL query as a linked server stored procedure, but I get an error, please advise, thanks in advance!

消息7215,第17级,状态1,第17行
无法在远程服务器"CAFUAT"上执行语句.

Msg 7215, Level 17, State 1, Line 17
Could not execute statement on remote server '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

推荐答案

只是为了更新,下面是正在运行的查询,另外,我还对32位Oracle驱动程序进行了树脂加密;

just to update, below is the working query, plus i resintalled the 32-bit Oracle driver;

EXECUTE('Call STP_CAF_PERSON(?,?,?)', @AVEMAIL OUTPUT, @ANCDPXID OUTPUT, @AVCDPURN OUTPUT) AT [CAFUAT]

这篇关于将存储过程从SQL Server传递到ORACLE链接服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆