2013-02-20 55 views
0

我試圖從城市和州的值中獲取正確的郵政編碼。但是我正在從郵編中失去領先的0。從存儲過程中丟失前導0

create procedure sp_getCorrectvalue 
as 
Begin 
    declare @value as nvarchar(5) 
    set @value = '00254' 
    return @value 
End 

declare @getValue as nvarchar(5) 
Exec @getValue = sp_getCorrectvalue 
select @getValue as zipCode 

它應該返回00254,但它返回254這是不正確

請幫 感謝

+0

爲什麼這個標籤爲Oracle和MySQL?它似乎是一個SQL Server的具體問題,除非我失去了一些東西... – 2013-02-20 22:25:58

+2

請不要使用不適用於您的問題的標籤 – 2013-02-20 22:26:05

+0

我道歉約翰,但添加這些標籤的目的是那些人也可以回答這個問題問他們是否知道。爲此,你不需要爲它投票。如果你知道答案,你可以回答它,而不是看問題標籤。這些標籤與這個問題有關。這是常見的數據庫問題。 – Maddy 2013-02-20 22:32:46

回答

7

從過程的返回值只能是int,所以它會在您返回時轉換。要返回一個字符串,您需要將其返回到結果或輸出參數中。

0

其實我在Mysql中遇到類似的問題 我有一個存儲過程需要在Char(8)中輸入學生ID。如果ID是'00002563'並且具有作爲VarChar的Out。

如果我傳入'00002563'並將它傳遞給put參數...如果varchar中的值爲'2563'則全部。

該程序的初衷是讓學生輸入他們的ID和程序來處理它,並確定他們分配的宿舍和房間號碼(如果找到的話)。

THey都沒有找到......我懷疑原因是varchar被轉換爲INT。

+0

如果您有問題沒有在這裏得到解答,請發佈一個新問題。如果你需要引用它,你可以在你的新問題中鏈接到這個問題。 – Pharaoh 2017-04-17 18:52:41