0

下面是在 sybase 中运行的两个 proc。第一个具有带值的参数名称,第二个只有值。第一个运行良好,但是当我运行第二个时,我得到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 )

4

1 回答 1

1

还可能发生的情况是参数的定义与您期望的顺序不同。

在方案 1 中,您不会看到问题,因为参数是按名称引用的。

但是,在场景 2 中,您使用的位置参考可能会暴露此问题。

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

于 2017-02-15T19:35:51.853 回答