Im cố gắng để thực hiện một thủ tục oracle lưu trữ từ SQL Server 2008 R8 máng DB LINK, tiêu đề của thủ tục lưu trữ là như thế này:thực hiện một thủ tục lưu trữ oracle từ Sql Server 2008
tHỦ TỤC THI (X OUT NOCOPY VARCHAR2, Y OUT NOCOPY SỐ, Z TRÊN SỐ)
thủ tục này sẽ cần cập nhật một bảng "mytable" và trả về kết quả một
My T-SQL là:
DECLARE @X nvarchar(255)
DECLARE @Y INTEGER
DECLARE @Z INTEGER
SET @X= ''
SET @Y = 0
SET @Z = 2
EXEC('begin USER.PKG.TEST(?,?,?); end;',@X OUTPUT, @Y OUTPUT,@Z) AT DB_ORACLE;
Các thủ tục lưu trữ được thực hiện, vì tôi có thể thấy rằng các bảng "mytable" được cập nhật, nhưng vấn đề được im mà nhận được một lỗi:
Msg 7215, Niveau 17, État 1, Ligne 10
Impossible d'exécuter l'instruction sur le serveur distant 'DB_ORACLE'.
đó dịch trong
Cannot execute the instruction at the distant server 'DB_ORACLE'
NB: Các thông số cho RPC, RPC Out, và sử dụng từ xa Collation được kích hoạt
Nhờ sự giúp đỡ
Có lẽ một số whiz bang cách hiện đại, vì vậy tha thứ cho tôi để hỏi folks này, nhưng điều này có thể được thực hiện bằng cách sử dụng INSERT INTO remTble @ DBlink VALUES ('proc call được lưu trữ'), sau đó tại rigger trên bảng từ xa THỰC HIỆN cuộc gọi proc được lưu trữ, trả về kết quả trong một bảng/UPDATE remTble, làm việc? Tôi chắc rằng tôi đã nhìn thấy một nơi nào đó trước đây. – TenG
Cảm ơn câu trả lời, nhưng vấn đề tôi không thể chỉnh sửa các thủ tục được lưu trữ hoặc thêm một kích hoạt cho bảng đó, bởi vì tôi không có sự kiểm soát trên cơ sở dữ liệu oracle bảng. Bạn phải thấy điều này giống như tiêu thụ một webservice vì vậy nếu bạn là khách hàng bạn không thể chỉnh sửa webservice. – aminedev