Back to OIM Explorer

dbo.QBM_FCVStringToInt

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 1.006 characters

Interpretation

  • Database function. Usually supports views, validation, or calculated predicates; look at referenced-by entries for callers.

Relations

  • No extracted relations.

Typed Edges

  • No typed edges extracted for this source.

References

  • No direct source references extracted.

Referenced By

Complete Source

SQL55 lines
1CREATE FUNCTION dbo.QBM_FCVStringToInt(2  @InputValue nvarchar(256),3  @defaultvalue int4) RETURNS int5  WITH SCHEMABINDING6AS7BEGIN8  DECLARE @work nvarchar(256)9  DECLARE @ergFloat float10  DECLARE @erg int11  DECLARE @work2 nvarchar(256)12  DECLARE @in nvarchar(256) = replace(replace(trim(isnull(@InputValue, '')), N ',', N '.'),13  N ' ',14  N '')15  SELECT16    @erg = TRY_CONVERT(int,17    @in)18  IF @erg IS NOT NULL AND @in > ' '19  BEGIN20    RETURN(@erg)21  END22  SELECT @work = @in23  SELECT @work2 = N ''24  IF25  LEFT(@work,26  1) = N '-'27  BEGIN28    SELECT @work2 = N '-'29    SELECT30      @work = substring(@work,31      2,32      255)33  END34  IF ltrim(translate(@work, '1234567890.', '           ')) = N ''35  BEGIN36    SELECT @erg = @defaultvalue37    RETURN(@erg)38  END39  SELECT40    @work2 += substring(@work,41    1,42    len(@work) + 1 - len(ltrim(translate(@work + '#', '1234567890.', '           '))))43  IF @work2 = N ''44  BEGIN45    SELECT @erg = @defaultvalue46    RETURN(@erg)47  END48  SELECT49    @ergFloat = convert(float,50    @work2)51  SELECT52    @erg = convert(int,53    round(@ergFloat, 0)) endLabel:54  RETURN(@erg)55END
Open raw exported source
SQL · Raw8 lines
1  create   function dbo.QBM_FCVStringToInt (@InputValue nvarchar(256) , @defaultvalue int ) returns int with SCHEMABINDING as begin declare @work2 nvarchar(256) declare @ergFloat float declare @erg int declare @work2 nvarchar(256)  declare @in nvarchar(256) = replace(replace(trim(isnull(@InputValue3, '')) , N',', N'.') , N' ', N'') select @erg = TRY_CONVERT(int, @in) if @erg is not null and @in > ' ' begin  return(@erg)  end select @work = @in  select4 @work2 = N'' if left(@work,1) = N'-' begin select @work2 = N'-' select @work = substring( @work, 2,255) end if ltrim(translate (@work, '1234567890.', 5'           ')) = N'' begin select @erg = @defaultvalue  return(@erg)  end        select @work2 += substring(@work, 1, len(@work) + 1 - len(ltrim(translate6 (@work + '#', '1234567890.', '           ')))) if @work2 = N'' begin select @erg = @defaultvalue  return(@erg)  end select @ergFloat = convert(float, 7@work2) select @erg = convert(int, round(@ergFloat,0)) endLabel: return(@erg) end 8