Back to OIM Explorer

dbo.QBM_FCVBinarySetBit

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 1.401 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

SQL56 lines
1CREATE FUNCTION dbo.QBM_FCVBinarySetBit(2  @InVector varbinary(200),3  @PositionToSet int4) RETURNS varbinary(2005)6  WITH SCHEMABINDING7AS8BEGIN9  DECLARE @InVector_intern varbinary(200)10  DECLARE @Erg varbinary(200)11  DECLARE @ByteGruppenpotenz int12  DECLARE @BitmusterGruppenpotenz int13  DECLARE @einByte varbinary(1)14  DECLARE @len int15  SELECT @ByteGruppenpotenz =(@PositionToSet / 8) +116  SELECT17    @BitmusterGruppenpotenz = power(2,18    @PositionToSet % 8)19  IF @InVector IS NOT NULL20  BEGIN21    SELECT @len = datalength(@InVector)22    IF @len < @ByteGruppenpotenz23    BEGIN24      SELECT25        @InVector_intern = convert(varbinary(200),26        replicate(convert(varbinary(1), 0x00), @ByteGruppenpotenz -@len)) + @InVector27    END28    ELSE29    BEGIN30      SELECT @InVector_intern = @InVector31    END32    SELECT @len = datalength(@InVector_intern)33    SELECT34      @einByte = convert(varbinary(1),35      convert(int, substring(@InVector_intern,(@len+1-@ByteGruppenpotenz), 1)) | @BitmusterGruppenpotenz)36    SELECT @erg = CASE37    WHEN @ByteGruppenpotenz = 1 AND @len = 1 THEN38    @einByte39    WHEN @ByteGruppenpotenz = 1 AND @len > 1 THEN40    substring(@InVector_intern,41    1,42    @len - 1) + @einByte43    WHEN @ByteGruppenpotenz = @len AND @len > 1 THEN44    @einByte + substring(@InVector_intern,45    2,46    @len-1)47    ELSE substring(@InVector_intern,48    1,49    @len - @ByteGruppenpotenz) + @einByte + substring(@InVector_intern,50    (@len+2 - @ByteGruppenpotenz),51    @ByteGruppenpotenz -1)52    END53  END54  ende:55  RETURN(@erg)56END
Open raw exported source
SQL ยท Raw11 lines
1   create   function dbo.QBM_FCVBinarySetBit (@InVector varbinary(200),  @PositionToSet int  ) returns varbinary(200) with SCHEMABINDING as begin2 declare @InVector_intern varbinary(200) declare @Erg varbinary(200) declare @ByteGruppenpotenz int declare @BitmusterGruppenpotenz int declare @einByte3 varbinary(1) declare @len int select @ByteGruppenpotenz = (@PositionToSet / 8) +1 select @BitmusterGruppenpotenz = power(2, @PositionToSet % 8) if @InVector4 is not null begin    select @len = datalength(@InVector) if @len < @ByteGruppenpotenz begin  select @InVector_intern = convert(varbinary(200), replicate5(convert(varbinary(1), 0x00), @ByteGruppenpotenz -@len)) + @InVector end else begin select @InVector_intern = @InVector end select @len = datalength(@InVector_intern6)  select @einByte = convert(varbinary(1), convert(int, substring(@InVector_intern, (@len+1-@ByteGruppenpotenz), 1)) | @BitmusterGruppenpotenz ) select7 @erg = case when @ByteGruppenpotenz = 1 and @len = 1 then @einByte when @ByteGruppenpotenz = 1 and @len > 1 then substring(@InVector_intern, 1, @len -8 1) + @einByte when @ByteGruppenpotenz = @len and @len > 1  then @einByte + substring(@InVector_intern, 2, @len-1) else  substring(@InVector_intern, 1,9 @len - @ByteGruppenpotenz) + @einByte + substring(@InVector_intern, (@len+2 - @ByteGruppenpotenz), @ByteGruppenpotenz -1) end end  ende: return (@erg)10 end 11