在通过脚本连续触发的大量查询中,单个查询使用 REGEXP_LIKE。在其中我不希望正则表达式 ([az]) 匹配变音符号 (á, õ,ì)。我发现这样做的唯一方法是将 NLS_SORT 设置为 BINARY。但是,此查询不应影响之后运行的任何其他查询。
因此,我只想为此查询设置变量 NLS_SORT。但是,我宁愿不求助于 PL/SQL。有什么办法可以做到这一点?
我更喜欢这个,但根据我发现的文档,不存在这样的参数:
SELECT * FROM dual WHERE REGEXP_LIKE('ë', '[a-z]', BINARY);
我可以想象这样的事情:
SELECT * FROM dual WHERE REGEXP_LIKE('ë', '[a-z]'); -- match
ALTER SESSION SET NLS_SORT = BINARY;
SELECT * FROM dual WHERE REGEXP_LIKE('ë', '[a-z]'); -- no match
ALTER SESSION SET NLS_SORT = DEFAULT; -- not working
ALTER SESSION RESET NLS_SORT; -- not working
- 除了设置 NLS_SORT 之外,还有其他方法可以让正则表达式排除变音符号吗?
- 有没有办法在没有 PL/SQL 的情况下恢复 NLS_SORT 设置?