WSO2 Oracle DDL 脚本使用 Varchar 而不是 Varchar2

WSO2 Oracle DDL script uses Varchar and not Varchar2

我们希望在我们当前的客户端使用 WSO2 API 管理器,并且需要使用提供的 Oracle DDL 为 Carbon、API 管理器和消息代理设置必要的表。客户的 dba 回来询问为什么脚本在相关字段中使用 varchar 而不是 Varchar2,这是一个很好的问题,因为 oracle 的标准方法是 "Varchar2 is the industry standard, don't use varchar."

oracle 脚本使用 Varchar 而不是 Varchar2 是否有充分的理由?当在 Oracle 之上实施时,WSO2 在做什么,需要能够区分 null 和 empty?

这可能是一个无关紧要的简单错字。

看起来只有 AM_API.INDEXER 列使用 VARCHAR 而不是 VARCHAR2。该程序还包含 H2、MS SQL、MySQL 和 PostGreSQL 的脚本。所有其他数据库都使用 VARCHAR。对于支持多个数据库的产品来说,这是一个很常见的错误。

请记住,在 Oracle 中 VARCHARVARCHAR2 之间没有有意义的区别。文档 声称 总有一天会有所不同,但我对此表示高度怀疑。这个问题已经存在很长时间了,并且有大量依赖于旧行为的遗留代码。我敢打赌 Oracle 永远不会 VARCHAR 使用不同的 NULL 比较语义。

我尝试更改脚本并创建了一个 pull request。我不了解这个项目,几乎可以肯定做错了什么。因此,如果请求被拒绝,请不要感到惊讶。但也许它会以某种方式帮助解决问题。