进制转换以及成功处理完全可以增加个参数表示转换 几进制 
if object_id('f_toOctal') is not null drop f_toOctal
go
/* 将数字转为八进制 hanjs 080612 */
create function f_toOctal(@source int)
returns varchar(100)
as
begin
  declare @octal varchar(100)
  declare @mod int,@remainder int
  set @mod=@source
  set @octal=''
  while @mod<>0
    begin
      set @remainder=@mod%8
      set @octal=rtrim(@remainder)+@octal
      set @mod=@mod/8
    end
  return @octal
end
goselect dbo.f_toOctal(8)10

解决方案 »

  1.   

    如可以转换2、8、16
    create function f_10to2816(@source int,@digit int)
    returns varchar(100)
    as
    begin
      declare @octal varchar(100)
      declare @mod int,@remainder int
      set @mod=@source
      set @octal=''
      while @mod<>0
        begin
          set @remainder=@mod%@digit
          set @octal=rtrim(@remainder)+@octal
          set @mod=@mod/@digit
        end
      return @octal
    end
    goselect dbo.f_10to2816(8,8),dbo.f_10to2816(8,2),dbo.f_10to2816(8,16)10 1000 8
      

  2.   

    字节要怎么才能处理啊?目前只有unicode编码的,怎么变通下呢?