【问题标题】:WSO2 Oracle DDL script uses Varchar and not Varchar2WSO2 Oracle DDL 脚本使用 Varchar 而不是 Varchar2
【发布时间】:2017-05-10 18:02:01
【问题描述】:

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

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

【问题讨论】:

    标签: oracle oracle11g wso2 wso2-am ddl


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢@jon 我认为可能是这样的,但认为这可能是经过深思熟虑的选择。希望更改被接受,这将确认这是一个疏忽。
    猜你喜欢
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2015-03-12
    • 2018-12-19
    • 2011-07-27
    相关资源
    最近更新 更多