我在oracle中,使用了下列语句:
select cast(jlxh as int) ,zyh,brxm from mrqc_sxtx;
select cast(jlxh as verchar(20)) ,zyh,brxm from mrqc_sxtx;
都可以!但是,在oracle中,是没有int 和verchar类型的,这个为什么还可以成功呢?!

解决方案 »

  1.   

    oracle中是有int和varchar类型的,
    存在int是为了保持与ansi兼容
    varchar与varchar2同义,但oracle推荐使用varchar2,
    因为有可能以后的版本中varchar被定义成与varchar2不同
      

  2.   

    为什么用convert会有如下提示:
    select convert(varchar(20) ,jlxh) ,zyh,brxm from mrqc_sxtx;
    提示缺少表达式
    select convert(int ,jlxh) ,zyh,brxm from mrqc_sxtx;
    提示int无效的标识符
    同时
    select cast(jlxh as decimal) ,zyh,brxm from mrqc_sxtx;
    也是可以通过的,oracle中不会也有decimal吧
      

  3.   

    convert函数是用来转换字符集的
    convert(string,from_set[,to_set])
    decimal支持的,
    oracle支持很多ansi的类型,如:
    CHARACTER
    CHAR
    NCHAR
    VARCHAR
    NUMERIC
    DECIMAL
    DEC
    INTEGER
    INT
    SMALLINT
    FLOAT
    DOUBLE
    REAL
      

  4.   

    是谁告诉你Oracle里没有int和varchar呢?