【问题标题】:How to check if a CLOB column has a non ASCII charatcer?如何检查 CLOB 列是否有非 ASCII 字符?
【发布时间】:2018-12-25 11:22:30
【问题描述】:

我有一个表EMPLOYEE,其中有一列名为LAYOUTLAYOUTCLOB

如何检查LAYOUT 是否包含非ASCII 字符?理想情况下,我希望看到包含非 ASCII 字符的行

【问题讨论】:

  • 看看这个:stackoverflow.com/questions/50914930/… CONVERT 甚至可以使用 CLOB
  • 我不是说你这样做,但我看到术语“ASCII”和“Unicode”经常被滥用。如果有更直接的方法,知道你的最终目标会很有趣。
  • @WernfriedDomscheit - 我无法让CONVERT 方法工作。选择 select * from employee where layout != CONVERT(layout, 'US7ASCII'); 时出现不一致的数据类型错误
  • 奇怪,根据documentation CLOB 被支持作为输入和输出。也许您必须循环处理 CLOB 的卡盘。
  • @WernfriedDomscheit - 把它放到一个循环中就可以了。没有错误

标签: oracle clob non-ascii-characters


【解决方案1】:

我在 cmets 的帮助下解决了这个问题

Begin
    for empData in (select * from EMPLOYEE)
    LOOP
        IF CONVERT(empData.LAYOUT, 'US7ASCII') != empData.LAYOUT THEN
            DBMS_OUTPUT.PUT_LINE('Non ASCII found!');
        END IF;
    END LOOP;
END;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2011-04-04
    • 2015-09-08
    • 2010-09-16
    • 2016-02-05
    • 1970-01-01
    相关资源
    最近更新 更多