2017-05-10 12 views
1

우리는 현재 클라이언트에서 WSO2 API 관리자를 사용할 계획이며 제공된 Oracle DDL을 사용하여 Carbon, API 관리자 및 메시지 브로커에 필요한 테이블을 설정해야합니다. 클라이언트의 dba가 관련 필드에 대해 Varchar2 대신 varchar를 사용하는 이유를 묻습니다. Oracle의 표준 접근법은 "Varchar2는 업계 표준이므로 varchar를 사용하지 마십시오."라는 질문이 좋습니다.WSO2 Oracle DDL 스크립트는 Varchar2가 아닌 Varchar를 사용합니다.

오라클 스크립트가 Varchar2 대신 Varchar를 사용하는 이유는 무엇입니까? Oracle 위에 구현 될 때 WSO2는 null을 공백과 구별 할 수있는 기능이 필요합니까?

답변

2

이것은 아마도 중요하지 않은 간단한 오타였습니다.

AM_API.INDEXERVARCHAR2 대신 VARCHAR을 사용합니다. 이 프로그램에는 H2, MS SQL, MySQL 및 PostGreSQL 용 스크립트도 포함되어 있습니다. 다른 모든 데이터베이스는 VARCHAR을 사용합니다. 이것은 여러 데이터베이스를 지원하는 제품에서 흔히 볼 수있는 실수입니다.

오라클에는 VARCHARVARCHAR2 사이에는 의미있는 차이가 없습니다. 문서 이라고 언젠가는 차이가있을 것이라고 주장하지만, 나는 그것을 매우 의심합니다. 이 문제는 오랫동안 존재 해 왔으며 이전 행동에 따라 달라지는 많은 레거시 코드가 있습니다. 오라클이 절대로 VARCHAR을 사용하지 않아도 좋은 돈을 걸면 다른 의미의 NULL 비교 구문을 사용할 것입니다.

스크립트를 변경하려고 시도하여 pull request을 만들었습니다. 나는이 프로젝트를 이해하지 못하고 거의 틀린 일을 거의 확실하게했다. 요청이 거부되면 놀라지 마십시오. 그러나 어쩌면 그것은 어떤 식 으로든 수정을 이끌어 내는데 도움이 될 것입니다.

+0

감사합니다. @jon 그럴 가능성이 높다고 생각했지만, 이것에 의도적으로 선택했을 수도 있습니다. 잘하면 변화가 받아 들여지는 것은 그것이 감독이라는 확인 일 것입니다. –