在链接服务器中执行存储过程会在空字段中插入垃圾字符

时间:2014-03-05 10:29:31

标签: sql oracle stored-procedures linked-server

我正在使用sp_executesql

在链接服务器中执行存储过程

如果任何一个参数为null,那么它会更新一些垃圾字符

任何人都可以指出我正确的方向来解决这个问题。

我们在SQL Stored proc

中执行以下命令
.....       


Set @sSQL = 'Execute (''begin xxx_YYYYY_ADDRESS_PKG.ZZZ_ADDRESS_UPDATE_PROC(?,?,?,?,?,?,?,?,?,?,?,?); end;'','
+ Cast(@OPersonID as nVarchar) +',''' 
+ @OPrimaryFlag + ''',''' 
+ @OAddressType + ''',''' 
+ @OAddressLine1 + ''',''' 
+ @OAddressLine2 + ''',''' 
+ @OAddressLine3     + ''',''' 
+ @OAddressCity + ''',''' 
+ @OPostalCode + ''',''' 
+ @OCountry + ''',''' 
+ @OSNumber + ''',
@OErrorNo output,
@OErrorDescription output) AT ' + @LinkedServerName 

Exec sp_executesql @sSQL,N'@OErrorNo INT OUT, @OErrorDescription nVarchar(350)    OUT',@OErrorNo = @OErrorNo OUT,@OErrorDescription = @OErrorDescription OUT 

如果AddressLine2或AddressLine 3作为''(空字符串)传递。

我在Oracle中获得垃圾字符,如“0(ŀ 绀¾" or "绀¾”< - 一些垃圾字符

我们已经更新到最新的oracle客户端..但没有解决这个问题。

0 个答案:

没有答案