Regex PL/SQL Oracle正则表达式不';如果出现零,则不工作
我在Oracle PL/SQL中匹配正则表达式时遇到问题。 更具体地说,问题是正则表达式不希望匹配任何零出现。 例如,我有一些类似于:Regex PL/SQL Oracle正则表达式不';如果出现零,则不工作,regex,oracle,plsql,Regex,Oracle,Plsql,我在Oracle PL/SQL中匹配正则表达式时遇到问题。 更具体地说,问题是正则表达式不希望匹配任何零出现。 例如,我有一些类似于: select * from dual where regexp_like('', '[[:alpha:]]*'); 这不管用。但如果我在这句话中留点空白: select * from dual where regexp_like(' ', '[[:alpha:]]*'); 它起作用了 我想让第一个例子运行,这样这个人就不必给它留出空间。 非常感谢您的帮助,谢
select * from dual where regexp_like('', '[[:alpha:]]*');
这不管用。但如果我在这句话中留点空白:
select * from dual where regexp_like(' ', '[[:alpha:]]*');
它起作用了
我想让第一个例子运行,这样这个人就不必给它留出空间。
非常感谢您的帮助,谢谢您抽出时间
TOracle是否仍将空字符串视为空字符串?如果是这样的话,带有空输入源字符串的regexp_是否会返回UNKNOWN?这两种情况都是半合理的,也是测试无法按预期工作的原因。对于Oracle,空字符串被视为NULL:
SQL> select * from dual where '' like '%';
DUMMY
-----
在使用Oracle进行查询时要考虑到这一点:
SQL> SELECT *
2 FROM dual
3 WHERE regexp_like('', '[[:alpha:]]*')
4 OR '' IS NULL;
DUMMY
-----
X