2013-06-28 60 views
0

下面是在sybase中運行的兩個proc。第一個參數的值是第二個值。第一個運行良好,但是當我運行第二個時,我得到Implicit conversion from datatype 'INT' to 'VARCHAR' is not allowed. Use the CONVERT function to run this query有人能告訴我爲什麼嗎?對Sybase的兩個查詢給出不同的結果

第一:

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)

+0

第一EXEC PU @一個= NULL, @ B = NULL, @ C =無效, @ d = NULL, @ E = NULL, @ F =無效, @ G ='2013君-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 =無效, @ V =無效, @ W =空 – hi5

+0

秒 EXEC PU( 空, 空, 空, 空, 空, 空, 「2013君12 22: 10:00.187' , 100, 2, 空, 空, 空, 空, 0, 'P',零 , 空, 空, 空, 「君它', null, null, null ) – hi5

+0

第一個查詢正常運行,但第二個給出從數據類型'INT'到'VARCHAR'的隱式轉換是不允許的。使用CONVERT函數來運行此查詢。 – hi5

回答

1

什麼也可以發生的是,這些參數不會在同一個定義爲順序,你希望他們。

在場景1中,由於參數是按名稱引用的,因此您不會看到問題。

但是,在場景2中,您正在使用可能暴露此問題的位置參考。

請檢查proc定義並確保參數的聲明順序與預期相同。

相關問題