对Sybase的两个查询给出了不同的结果
下面是在sybase中运行的两个进程。第一个参数名为value,第二个参数名为value。第一个运行正常,但当我运行第二个时,不允许从数据类型'INT'隐式转换为'VARCHAR'。使用CONVERT函数运行此查询有人能告诉我为什么吗 第一:对Sybase的两个查询给出了不同的结果,sybase,Sybase,下面是在sybase中运行的两个进程。第一个参数名为value,第二个参数名为value。第一个运行正常,但当我运行第二个时,不允许从数据类型'INT'隐式转换为'VARCHAR'。使用CONVERT函数运行此查询有人能告诉我为什么吗 第一: 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
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=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,null,null,p',null,null,null,null,null,null)
可能发生的情况是,参数的定义顺序与您期望的顺序不同
在场景1中,您不会看到问题,因为参数由名称引用
但是,在场景2中,您使用的位置引用可能会暴露此问题
请检查过程定义,并确保参数的声明顺序与预期顺序相同。first 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=nullsecond exec pu(零,零,零,零,零,零,零,'2013-Jun-12 22:10:00.187',100,2,零,零,零,零,0,'P',零,零,零,零,零,零,'junit',零,零,零)第一个查询运行正常,但第二个查询不允许从数据类型“INT”隐式转换为“VARCHAR”。请使用CONVERT函数运行此查询。您需要使用
edit
选项来完成此问题。调用似乎是相同的,因此我们需要查看存储过程pu
,以帮助您。仅供参考当insert命令中缺少引号时,将引发错误。