如题,举例如下:
2008-03-30转成 二OO八年三月三十日
谢谢

解决方案 »

  1.   

    oracle公司没有考虑过这个事情
      

  2.   

    SQL> create or replace type T_CHAR_ARR is table of varchar2(20);
      2  /SQL> create or replace function to_chdate(v_date date) return varchar2
      2  is
      3  v_return varchar2(60);
      4  v_year varchar(30);
      5  v_month varchar(15);
      6  v_day varchar(15);
      7  v_numarry1 T_CHAR_ARR  ;
      8  v_numarry2 T_CHAR_ARR  ;
      9  begin
     10  v_numarry1 := T_CHAR_ARR('零','一','二','三','四','五','六','七','八','九');
     11  v_numarry2 := T_CHAR_ARR('一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一');
     12  v_year := to_char(v_date, 'yyyy');
     13  v_month := to_char(v_date, 'mm');
     14  v_day := to_char(v_date, 'dd');
     15  v_month := v_numarry2(to_number(v_month));
     16  v_day := v_numarry2(to_number(v_day));
     17  
     18  for ind in 1..length(v_year) loop
     19  v_return := v_return || v_numarry1(to_number(substr(v_year, ind, 1))+1);
     20  end loop;
     21  v_return := v_return || '年' || v_month || '月' || v_day || '日';
     22  return v_return;
     23  end;
     24  /
     
    Function created
    SQL> select to_chdate(sysdate) from dual;
     
    TO_CHDATE(SYSDATE)
    --------------------------------------------------------------------------------
    二零零九年八月六日
     
    一个笨方法。
      

  3.   

    3楼的是自己写个PL/SQL实现的。
    难道ORACLE公司真就没考虑过这事?
    ORACLE中国分公司那些人就不替自己考虑考虑?