各位高人:请教:Orcle字符字段比如某字段定义为char(3)或者varch2,能否写入十六进制数
insert into table(char_type) values ('321'),通过,为什么insert into table(char_type) values (ox31),即写入字符的16进制ascii码值就不行了呢?
某字段要用16进制显示,有什么办法吗?
多谢?

解决方案 »

  1.   


    可以的,例如:oracle中10进制和16进制的相互转化
    这个写的有错吗select to_number('18','xxx') from dual;  
    16进制转化为10进制
               TO_NUMBER('18','XXX')
    1        24
    表示16进制的18是10进制的24select to_char('123','xxx') from dual;
    10进制转化为16进制
               TO_CHAR('123','XXX')
    1          7b表示10进制的123表示16进制的7b
      

  2.   

    十六进制:
    SQL> select to_char(1000,'0xxxxx') aaa from dual;AAA
    -------
     0003e8SQL> select to_char(20,'0xxxxx') aaa from dual;AAA
    -------
     000014SQL> select to_char(20,'0x') aaa from dual;AAA
    ---
     14SQL> 
      

  3.   

    请教:Orcle字符字段比如某字段定义为char(3)或者varch2,能否写入十六进制数 
    字符型和数字型是不同的,字符型只能存储字符串,虽然这个字符串可以是一个数字字符组成的字符串,比如“123" 甚至 "FA8C".
    insert into table(char_type) values ('321'),通过,为什么insert into table(char_type) values (ox31),即写入字符的16进制ascii码值就不行了呢? 
    写入十进制数字也是不行的。只不过ORACEL会做一些类型转换。但 0x31 没人知道这是什么。除非事先讲好0x为hex,但除了C里面大家讲好了之外,ORACLE中还象还没这种定义。某字段要用16进制显示,有什么办法吗? 
    显示是可以的,显示和存贮是不同的,楼上的to_char函数就行了。
    QQ群 48866293 / 12035577 / 7440532 / 13666209
    http://forum.csdn.net/BList/OtherDatabase .
    http://www.accessbbs.cn/bbs/index.php .
    http://www.accessoft.com/bbs/index.asp .
    http://www.access-programmers.co.uk/forums .
    http://www.office-cn.net .
    .
    http://www.office-cn.net/home/space.php?uid=141646 .