我正在使用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客户端..但没有解决这个问题。