-1
以下SP返回以下错误: 将varchar值“AR118”转换为数据类型int时转换失败。将varchar值“AR118”转换为数据类型int时出现转换失败int
不知道是怎么回事,在底部的测试SP调用它...
ALTER PROCEDURE [DBO]。[pa_ProyectoIngresar]
@IDUsuario varchar(20),
@CodigoPais char(2),
@Nombre varchar(255),
@Alias char(25),
@Sector char(3),
@AporteFonPlata decimal(9),
@AporteLocal decimal(9),
@IDResponsable varchar(20),
@Reembolsable char(1),
@NoProyecto char(5) OUT
AS
BEGIN
SET NOCOUNT ON;
declare @Fecha datetime
declare @No int
set @No = 0
set @Fecha = GetUtcDate()
set @NoProyecto = ''
Select @NoProyecto = max(NoProyecto) from Proyectos WHERE Substring(NoProyecto,1,2) = @CodigoPais
if @NoProyecto is NULL
BEGIN
SET @NoProyecto = @CodigoPais + '101'
END
else
begin
set @No = CAST(SUBSTRING(@NoProyecto, 3, 3) as int) + 1
set @NoProyecto = @CodigoPais + RIGHT('000' + CAST(@No AS Varchar(3)), 3)
end
Insert Into Proyectos
(
NoProyecto, Estado, FechaEstado, HoraEstado, Nombre, Alias, Sector,
AporteFonPlata, AporteLocal, AporteOtros,
AprobacionEstimada, AprobacionProbabilidad, IDResponsable,
FechaAbstracto, EstadoAbstracto, FechaPerfil, EstadoPerfil,
FechaPOperativa, EstadoPOperativa, FechaNegociacion, EstadoNegociacion,
FechaAprobacion, EstadoAprobacion, Reembolsable,
Objetivo, Componentes, Beneficiarios, Ubicacion, NoResolucion,
IDingresado, FechaIngresado, IDModificado, FechaModificado
)
VALUES (
@NoProyecto, 'INA', @Fecha, '', @Nombre, @Alias, @Sector,
@AporteFonPlata, @AporteLocal, 0, 0, '', @IDResponsable,
@Fecha, 'N', @Fecha, 'N', @Fecha, 'N', @Fecha, 'N', @Fecha, 'N',
@Reembolsable, '', '', '', '', '',
@IDUsuario, @Fecha, @IDUsuario, @Fecha
)
if scope_identity() is NULL
begin
set @NoProyecto = ''
end
return @NoProyecto
END
测试SP
declare @IDUsuario varchar(20)
declare @CodigoPais char(2)
declare @Nombre varchar(255)
declare @Alias char(25)
declare @Sector char(3)
declare @AporteFonplata decimal(9,0)
declare @AporteLocal decimal(9,0)
declare @Reembolsable char(1)
declare @IDResponsable varchar(20)
declare @NoProyecto char(5)
set @IDUsuario = 'TRESPONSABLE'
set @CodigoPais = 'AR'
set @Nombre = 'Ingreso Nuevo Proyecto'
set @Alias = 'NUEVO'
set @Sector = 'SOC'
set @AporteFonplata = 25000000
set @AporteLocal = 5000000
set @Reembolsable = 'S'
set @IDresponsable = 'TRESPONSABLE'
set @NoProyecto = ''
EXEC PA_ProyectoIngresar @IDUsuario, @CodigoPais, @Nombre, @Alias, @Sector, @AporteFonplata, @AporteLocal, @IDresponsable, @Reembolsable, @NoProyecto
线索是在你的代码试图AR118''字符串转换''成int值的错误消息,因为它有构成特征'AR'不能被转换成int是不可能的。 –
这是我的问题,我无法找到SP试图从char到int的转换,我忽略了什么? – user3238418
表Proyectos中'NoProyecto'列的数据类型是什么。 –