小弟在写个存储过程,要求输出的参数中有一个是十六进制的数字,例如输出参数0x780001
那位大虾指点一下该怎么做呀?

解决方案 »

  1.   

    SQL> select to_number('f','xxx') from dual;TO_NUMBER('F','XXX')
    --------------------
                      15SQL> select to_char(15,'xxx') from dual;TO_C
    ----
       f
      

  2.   

    以上两个方法我也试过,可是针对0x780001来说,结果确实这样:SQL> select to_number('0x780001','xxx') from dual;
    select to_number('0x780001','xxx') from dual
                     *
    ERROR 位于第 1 行:
    ORA-01722: invalid number
    SQL> select to_char(7864321,'xxx') from dual;TO_CHAR(
    --------
    ####而且to_char了之后返回的是字符型,而我要返回number型
      

  3.   

    SQL> select to_number(substr('0x780001',3),'xxxxxx') from dual;TO_NUMBER(SUBSTR('0X780001',3),'XXXXXX')
    ----------------------------------------
                                     7864321SQL> select to_char(7864321,'xxxxxx') from dual;TO_CHAR
    -------
     780001
    字符型何数字型如果实在需要区分的话,再用to_number转换就是了