我想让 Oracle 数据库将 'abc' 和 'abc' VARCHAR2s 视为在所有比较中相等(WHERE 子句、排序......)。基本上这意味着忽略尾随空格,就像在 MariaDB/MySQL 中的 PADSPACE 排序规则一样。
有一些可用的解决方案,比如使用 RTRIM 函数,但我特别关注使用排序规则的解决方案,因为我需要一些透明且对性能没有巨大影响的东西(即在等式的左侧应用 RTRIM)。我似乎确实记得,在过去的某个时候,在较旧的 Oracle 安装中,我通过选择正确的排序规则(即,将 NLS_COMP 设置为语言,然后为 NLS_SORT 设置一些值)来实现此行为。现在几年后,使用更新的 Oracle 安装 (12c),我似乎无法再复制相同的行为。虽然它只是一个记忆,所以我可以将它与 MySQL 中的用例混合,而不是“旧 Oracle”。
Oracle12c 中是否有任何排序规则忽略比较中的尾随空格(即相当于 MySQL/MariaDB 中的 PADSPACE 排序规则)?我已经尝试了多个排序规则(BINARY_AI、FRENCH、XFRENCH、FRENCH_M、UCA0610_DUCET 和 UCA0620_DUCET),但均无济于事。
提前致谢!