怎么查询出ORACLE表的列的值是中文的如 表的一列 有中文  。数字 、英文字母,我要怎么查询出是 中文的值,是数字的值,是英文字母的值?

解决方案 »

  1.   

    10以前用ascii判定,10以后用正则表达式判定
      

  2.   

    where length!(column_name)=lengthb(column_name)
      

  3.   


    select * from user_tab_cols where  length(column_name)<>lengthb(column_name)
      

  4.   

    实测数据:-- 只查询中文数据
    CREATE TABLE T63
    (
        ID NUMBER(4),
        NAME VARCHAR2(20)
    );INSERT INTO T63 VALUES(1, '123');
    INSERT INTO T63 VALUES(2, 'xt');
    INSERT INTO T63 VALUES(3, '张');
    实测结果:
      

  5.   

    正则表达式和一门语言差不多. 很难一下说清楚. 在处理文本方面正则表达式有优势,就是学习起来比较复杂. 另外oracle的正则表达式支持数据库核心字符集中所有字符.