Back to OIM Explorer

dbo.QBM_FSQCVColumnToBuffer

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 2.634 characters

Interpretation

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

Relations

  • No extracted relations.

Typed Edges

  • references source dbo.QBM_FCVBigIntToString source text reference
  • references source dbo.QBM_FCVBinaryToString source text reference
  • references source dbo.QBM_FCVBitToString source text reference
  • references source dbo.QBM_FCVDatetimeToString source text reference
  • references source dbo.QBM_FCVFloatToString source text reference
  • references source dbo.QBM_FCVIntToString source text reference
  • references source dbo.QBM_FGIColumnDataLen source text reference
  • references source dbo.QBM_FGIColumnDataType source text reference

Complete Source

SQL178 lines
1CREATE FUNCTION dbo.QBM_FSQCVColumnToBuffer(2  @TableName varchar(30),3  @columnname varchar(30),4  @TableSynonym varchar(64)5) RETURNS nvarchar(max6)7AS8BEGIN9  DECLARE @erg nvarchar(max)10  DECLARE @datatype nvarchar(64)11  DECLARE @DataMaxLen int12  SELECT13    @datatype = dbo.QBM_FGIColumnDataType(@TableName,14    @columnname)15  SELECT16    @DataMaxLen = dbo.QBM_FGIColumnDataLen(@TableName,17    @columnname)18  IF @datatype = 'int'19  BEGIN20    SELECT21      @erg = CONCAT('dbo.QBM_FCVIntToString(',22      @TableSynonym,23      '.',24      @columnname,25      '), 0, null')26      GOTO ende27  END28  IF @datatype = 'bigint'29  BEGIN30    SELECT31      @erg = CONCAT('dbo.QBM_FCVBigIntToString(',32      @TableSynonym,33      '.',34      @columnname,35      '), 0, null')36      GOTO ende37  END38  IF @datatype = 'datetime'39  BEGIN40    SELECT41      @erg = CONCAT('dbo.QBM_FCVDateTimeToString(',42      @TableSynonym,43      '.',44      @columnname,45      '), 0, null')46      GOTO ende47  END48  IF @datatype = 'Float'49  BEGIN50    SELECT51      @erg = CONCAT('dbo.QBM_FCVFloatToString(',52      @TableSynonym,53      '.',54      @columnname,55      '), 0, null')56      GOTO ende57  END58  IF @datatype = 'Bit'59  BEGIN60    SELECT61      @erg = CONCAT('dbo.QBM_FCVBitToString(',62      @TableSynonym,63      '.',64      @columnname,65      '), 0, null')66      GOTO ende67  END68  IF @datatype = 'timestamp'69  BEGIN70    SELECT71      @erg = CONCAT('dbo.QBM_FCVBinaryToString(',72      @TableSynonym,73      '.',74      @columnname,75      ', 0), 0, null')76      GOTO ende77  END78  IF @datatype = 'varbinary'79  BEGIN80    IF @DataMaxLen <= 30081    BEGIN82      SELECT83        @erg = CONCAT('dbo.QBM_FCVBinaryToString(',84        @TableSynonym,85        '.',86        @columnname,87        ', 1), 0, null')88    END89    ELSE90    BEGIN91      SELECT92        @erg = CONCAT('93left(dbo.QBM_FCVBinaryToString(',94        @TableSynonym,95        '.',96        @columnname,97        ', 1), 400)98			, 	case 99					when DATALENGTH(',100        @TableSynonym,101        '.',102        @columnname,103        ') >  300 then 1104					else 0105				end106					, 	case 107							when DATALENGTH(',108        @TableSynonym,109        '.',110        @columnname,111        ') >  300 then dbo.QBM_FCVBinaryToString(',112        @TableSynonym,113        '.',114        @columnname,115        ', 1)116							else null117						end118					')119    END120    GOTO ende121  END122  IF @datatype IN('char',123  'nchar',124  'varchar',125  'nvarchar')126  BEGIN127    IF @DataMaxLen <= 400128    BEGIN129      SELECT130        @erg = CONCAT('',131        @TableSynonym,132        '.',133        @columnname,134        ', 0, null')135    END136    ELSE137    BEGIN138      SELECT139        @erg = CONCAT('140case 141	when ',142        @TableSynonym,143        '.',144        @columnname,145        ' > '' '' then left(',146        @TableSynonym,147        '.',148        @columnname,149        ', 400)150	else null151  end, 						152		case 153			when len(',154        @TableSynonym,155        '.',156        @columnname,157        ') >  400 then 1158			else 0159		end160			, 	case 161					when len(',162        @TableSynonym,163        '.',164        @columnname,165        ') >  400 then ',166        @TableSynonym,167        '.',168        @columnname,169        '170					else null171				end172			')173    END174    GOTO ende175  END176  SELECT @erg = ' message  this_must_be_an_invalid_datatype' ende:177  RETURN(@erg)178END
Open raw exported source
SQL ยท Raw41 lines
1    create   function dbo.QBM_FSQCVColumnToBuffer (@TableName varchar(30) , @columnname varchar(30) , @TableSynonym varchar(64) ) returns nvarchar2(max) as begin declare @erg nvarchar(max) declare @datatype nvarchar(64) declare @DataMaxLen int select @datatype = dbo.QBM_FGIColumnDataType(@TableName3 , @columnname) select @DataMaxLen = dbo.QBM_FGIColumnDataLen(@TableName , @columnname) if @datatype = 'int' begin select @erg = concat('dbo.QBM_FCVIntToString('4 , @TableSynonym , '.' , @columnname , '), 0, null') goto ende end  if @datatype = 'bigint' begin select @erg = concat('dbo.QBM_FCVBigIntToString(' , @TableSynonym5 , '.' , @columnname , '), 0, null') goto ende end if @datatype = 'datetime' begin select @erg = concat('dbo.QBM_FCVDateTimeToString(' , @TableSynonym 6, '.' , @columnname , '), 0, null') goto ende end if @datatype = 'Float' begin select @erg = concat('dbo.QBM_FCVFloatToString(' , @TableSynonym , '.' ,7 @columnname , '), 0, null') goto ende end if @datatype = 'Bit' begin select @erg = concat('dbo.QBM_FCVBitToString(' , @TableSynonym , '.' , @columnname8 , '), 0, null') goto ende end  if @datatype = 'timestamp' begin select @erg = concat('dbo.QBM_FCVBinaryToString(' , @TableSynonym , '.' , @columnname 9, ', 0), 0, null') goto ende end   if @datatype = 'varbinary' begin if @DataMaxLen <= 300  begin select @erg = concat('dbo.QBM_FCVBinaryToString(' , @TableSynonym10 , '.' , @columnname , ', 1), 0, null') end else  begin select @erg = concat('11left(dbo.QBM_FCVBinaryToString(' , @TableSynonym , '.' , @columnname , 12', 1), 400)13			, 	case 14					when DATALENGTH(' , @TableSynonym , '.' , @columnname , ') >  300 then 115					else 016				end17					, 	case 18							when DATALENGTH('19 , @TableSynonym , '.' , @columnname , ') >  300 then dbo.QBM_FCVBinaryToString(' , @TableSynonym , '.' , @columnname , ', 1)20							else null21						end22					'23 ) end goto ende end if @datatype in( 'char' , 'nchar', 'varchar', 'nvarchar') begin if @DataMaxLen <= 400 begin select @erg = concat('' , @TableSynonym24 , '.' , @columnname , ', 0, null') end else  begin select @erg = concat('25case 26	when ' , @TableSynonym , '.' , @columnname , ' > '' '' then left(' 27, @TableSynonym , '.' , @columnname , ', 400)28	else null29  end, 						30		case 31			when len(' , @TableSynonym , '.' , @columnname , ') >  400 then 132			else 033		end34			, 	case 35					when len('36 , @TableSynonym , '.' , @columnname , ') >  400 then ' , @TableSynonym , '.' , @columnname , '37					else null38				end39			' ) end goto ende end  select40 @erg = ' message  this_must_be_an_invalid_datatype' ende: return(@erg) end 41