首页 文章

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

提问于
浏览
1

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

有没有一个很好的理由为什么oracle脚本使用Varchar而不是Varchar2?当在Oracle之上实现时,WSO2做什么需要能够区分null和空?

1 回答

  • 2

    这可能是一个简单的拼写错误无关紧要 .

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

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

    我试图更改脚本并创建了一个pull request . 如果请求被拒绝,我不会感到惊讶 . 但也许它会以某种方式帮助导致修复 .

相关问题