【问题标题】:Oracle SQL regexp_like by unicode typesunicode 类型的 Oracle SQL regexp_like
【发布时间】:2018-12-17 05:22:55
【问题描述】:

假设我有一个 unicode 类型(或 Unicode 类别,根据 https://www.regular-expressions.info/unicode.html)的模式

LLLLZLLLZLLLL
NNNN

我正在尝试编写一个 sql 查询,选择与模式完全对应的列中的条目。

我在此列中确实有条目“2343”,以及许多其他混合字母数字或更长(超过 4 个)数字 unicode 字符。

我想准确检索“2343”(或任何 4 个 unicode 数字条目)。

尝试了一些,例如

SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '[^\p{N}{4}S]');

SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '[^\p{N}\p{N}\p{N}\p{N}S]');

没有任何作用。

【问题讨论】:

  • 请用您的 oracle 版本标记。

标签: sql oracle unicode regexp-like


【解决方案1】:

这似乎不是 unicode 字符类的 oracle 语法。

尝试[:digit:] 输入任何数字。

here

【讨论】:

    【解决方案2】:

    谢谢@1010!你把我推向了正确的方向! 这些对我有用:

    4987  -  NNNN
    
    SELECT field1 
    FROM myTable1 
    WHERE regexp_like(field1, '^[[:digit:]]{4}$');
    
    Ivan Joe Test - LLLLZLLLZLLLL
    
    SELECT field1 
    FROM myTable1 
    WHERE regexp_like(field1, '^[[:alpha:]]{4}[[:space:]][[:alpha:]]{3}[[:space:]][[:alpha:]]{4}$');
    

    【讨论】:

      猜你喜欢
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 2019-11-17
      • 1970-01-01
      相关资源
      最近更新 更多