우리는 Cakephp를 사용하여 거대한 프로젝트를 진행하고 있습니다. 우리는 MySQL을 사용하기 시작했지만 이제는 Oracle 로의 전환을 요청하고 있습니다! 자, 이제이 멋진 작업을 시작했습니다! :)CakePHP + Oracle + CamelCase 컬럼 테이블 이름 문제
우리는 cakephp 패턴을 사용하여이 아닌 입니다. 그러나 테이블과 해당 열에 대해서는 낙타가 포함 된 이름입니다 (클라이언트 요구 사항입니다!).
Oracle의 열 테이블 이름은 테이블을 만들 때 ""(큰 따옴표) 사이에 이름을 넣을 때 대/소문자를 구분합니다. 우리가하지 않으면 Oracle은 대문자를 씁니다.
그러나 cakephp의 오라클 드라이브는 camelcased 구성을 무시하는 것으로 보입니다. 필드 이름을 항상 대소 문자를 구분하지 않고 구문 분석하고 쿼리 결과 배열에서 이름을 소문자로 바꿉니다. 대신
$res['TableName']['ColumnName'] //camelcased
의
내가
있어$res['TableName']['columnname'] //lowercased! :(
사람이 그것을 어떻게 극복하기 위해 어떤 생각을 가지고 있습니까?
oracle dbms **의 열 이름은 대소 문자를 구분합니다. 그리고 명시 적으로 큰 따옴표로 지정하지 않으면 모든 이름이 대문자입니다. – zerkms
당신이 맞아요, zerkms! 질문을 업데이트했습니다. – colares
업데이트 : 변경 CamelCase 표기법은 옵션이 아닙니다. - 오라클 용 CakePHP 드라이버 개선 (나중에 게시 할 수 있습니다!) - 테이블 이름을 매핑하는 스크립트를 만들었습니다 (예 : idperson => IdPerson). 그것은 아마도 최선의 방법이 아닙니다. 최소한 쿼리 캐시를 사용합니다. ;) 또한 우리는 CakePHP에서 MySQL과 Oracle의 차이점으로 인해 발생하는 많은 문제에 직면 해 있습니다. "그냥 변화하는 운전자"는 순수한 환상이라는 것을 이미 알고 있습니다. 그러나 여전히 예상치 못한 문제가있었습니다. 이것은 좋은 종이가 될 것입니다. 계속 게시 해 드리겠습니다. – colares