如题:
1.如何理解varchar2类型采用non-padded,而char采用Blank-Padded方式比较?
2.oracle中统计信息如何收集?
3.计算2的64次方结果不对,不知什么原因?
代码清单:2的64次方根
SQL> select power(2,64) from dual;
 
POWER(2,64)
-----------
1.844674407SQL> select power(64,2) value from dual;
 
     VALUE
----------
      40964.rowidtochar(将rowid数据类型转换为字符类型)和chartorowid(将字符数据类型转换为rowid类型)的使用场合
5.请教dump的用法SQL> select dump(sysdate) from dual;
 
DUMP(SYSDATE)
--------------------------------------------------------------------------------
Typ=13 Len=8: 218,7,5,5,10,48,25,0
  期待大家的解答!

解决方案 »

  1.   

    3.
    SQL> set numformat 999999999999999999999999999999999999999--输出前,先设置一个输出数字的格式
    SQL> select power(2,64) from dual;                             POWER(2,64)
    ----------------------------------------
                        18446744073709551616
      

  2.   

    1、varchar2类型比较时,忽略位数,char比较时,跟位数有关
    简单的说
    {'a','a'} in
    table a (a1 vc(20),a2 c(20))
    select '1' from a where a1=a2  结果 no rows
    a1='a' a2='a                ' 
    http://www.itpub.net/thread-1080616-1-1.html
    2、http://www.cnblogs.com/rootq/archive/2010/02/04/1663622.html
    3、结果没错,只不过显示不开
    code:
    select to_char(power(2,64)) from dual;
    可看到 18446744073709551616
      

  3.   

    2:通过系统视图获取
    3:
    SQL> select power(2,64) from dual;
     
    POWER(2,64)
    -----------
    1.844674407
    你的是列宽太短,长度增加下5.dump记录列在DATAFILE中的类型和信息
      

  4.   

    4
    下面一段内容摘自Oracle® Database SQL Reference 10g Release 2 (10.2)PurposeROWIDTOCHAR converts a rowid value to VARCHAR2 datatype. The result of this conversion is always 18 characters long.ExamplesThe following example converts a rowid value in the employees table to a character value. (Results vary for each build of the sample database.)SELECT ROWID FROM employees 
       WHERE ROWIDTOCHAR(ROWID) LIKE '%JAAB%';ROWID
    ------------------
    AAAFfIAAFAAAABSAAb大多数时候ORACLE会自动对其进行隐式转换的
    SQL> select t3.*,rowid,rowidtochar(rowid) from t3;
     
            ID NAME                 ROWID              ROWIDTOCHAR(ROWID)
    ---------- -------------------- ------------------ ------------------
             1 a                    AAASOZAAEAAAK1IAAA AAASOZAAEAAAK1IAAA
             2 b                    AAASOZAAEAAAK1IAAB AAASOZAAEAAAK1IAAB
             3 c                    AAASOZAAEAAAK1IAAC AAASOZAAEAAAK1IAAC
             4 d                    AAASOZAAEAAAK1IAAD AAASOZAAEAAAK1IAAD
    SQL> select * from t3 where rowid = chartorowid('AAASOZAAEAAAK1IAAA');
     
            ID NAME
    ---------- --------------------
             1 a
     
    SQL> select * from t3 where rowid = 'AAASOZAAEAAAK1IAAA';
     
            ID NAME
    ---------- --------------------
             1 a