Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 正在从存储过程中丢失前导0_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 正在从存储过程中丢失前导0

Sql server 正在从存储过程中丢失前导0,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我试图从城市和州值中获得正确的邮政编码。但我失去了邮政编码 范例 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 a

我试图从城市和州值中获得正确的邮政编码。但我失去了邮政编码

范例

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,这是不正确的

请帮忙
谢谢,过程的返回值只能是int,因此在返回时会进行转换。要返回字符串,您需要在结果或输出参数中返回它。

您应该创建一个函数

CREATE FUNCTION fn_getCorrectvalue()
RETURNS NVARCHAR(5)
AS
BEGIN
     declare @value as nvarchar(5)
     set @value = '00254'
     return @value
END
演示

存储过程返回一个整数

存储过程可以向调用过程或应用程序返回整数值


实际上,我在Mysql中遇到了类似的问题 我有一个存储过程,它在Char8中接受一个学生ID。如果ID为“00002563”且具有as Out,则为VarChar

如果我传入'00002563'并将其传递给put参数。。。如果get在varchar中是'2563'

该程序的初衷是让学生输入他们的ID,并让程序进行处理,确定他们指定的宿舍和房间号(如果找到)


它们都找不到。我怀疑原因是varchar正在转换为INT。

为什么要为Oracle和MySQL标记这个?这似乎是一个特定于SQL Server的问题,除非我遗漏了什么…请不要使用不适用于您的问题的标记我向John道歉,但添加这些标记的目的是,如果他们知道,也可以回答这个问题。为此你不需要投票。如果你知道答案,你可以回答它,而不是看一大堆问题。这些标签与这个问题有关。这是常见的数据库问题。阿比,不管你为什么这么做,这都不是在这个网站上获得帮助的正确方式。这是常见的数据库问题。我是新的数据库和编码只是需要帮助,如果你有一个问题,但没有在这里回答,请张贴一个新的问题。如果需要引用,可以在新问题中链接到此问题。