对Sybase的两个查询给出了不同的结果

时间:2013-06-28 06:58:42

标签: sybase

下面是两个在sybase中运行的proc。第一个具有值的param名称,第二个唯一值。第一个运行正常,但是当我运行第二个时,我得到Implicit conversion from datatype 'INT' to 'VARCHAR' is not allowed. Use the CONVERT function to run this query有人可以告诉我为什么吗?

首先:

exec pu @a=null, @b=null, @c=null, @d=null, @e=null, @f=null, @g='2013-Jun-12 22:10:00.670', @h=100, @i=2, @j=null, @k=null, @l=null, @m=null, @n=0, @o='P', @p=null, @q=null, @r=null, @s=null, @t='junit', @u=null, @v=null, @w=null

第二

exec pu ( null, null, null, null, null, null, '2013-Jun-12 22:10:00.187', 100, 2, null, null, null, null, 0, 'P', null, null, null, null, 'junit', null, null, null )

1 个答案:

答案 0 :(得分:1)

也可能发生的是,参数的定义与订单的定义不同。

在方案1中,由于参数是按名称引用的,因此您不会发现问题。

在方案2中,您使用位置引用可能会暴露此问题。

请检查proc定义并确保参数按预期以相同的顺序声明。