ORM이 없으므로 DBAL을 독립 실행 형으로 사용하고 있습니다. 그러나 나는 쿼리에서 오라클 키워드를 사용하여 몇 가지 문제가 있습니다.Doctrine DBAL 및 Oracle 키워드
ORA-01722: invalid number
내가 때문에 순서의 사용의 가정 : 나는 다음과 같은 오류가 발생합니다,
$journal = array(
'LGM_ID' => 'SEQ_JOURNAL.NEXTVAL',
'LGM_USER_LOGIN' => "a user",
'LGM_DATE' => 'CURRENT_TIMESTAMP'
);
$db->insert('JOURNAL', $journal);
그리고이 작동하지 않습니다 는 예를 들어 나는 다음과 같은 코드가 있습니다. 정수와 배열의 첫 번째 항목을 교체 한 후, 나는 다음과 같은 오류가 있습니다
ORA-01858: a non-numeric character was found where a numeric was expected
내가 때문에 CURRENT_TIMESTAMP 키워드의 생각이 시간.
나는 쿼리 키워드를 전달할 때 문자열로 변환되어 작동하지 않는다고 생각합니다. ORM과 같은 특별한 것들을 사용하지 않고 시퀀스 나 다른 키워드를 사용할 수 있습니까?
시퀀스의 경우 nextval을 얻기 전에 다른 요청을 실행할 수 있다고 생각합니다. 그러나 CURRENT_TIMESTAMP의 경우 PHP DateTime을 사용하고 싶지 않습니다. 날짜가 시간대가 지정되어있어 오라클이 완벽하게 처리하는 함수에 대해 너무 많은 추가 코드를 추가하기 때문입니다.
내가 가진 마지막 해결책은 전체 쿼리를 문자열로 작성하고 $ db-> query (...)를 사용하는 것이지만 추상화 계층의 목표는 아닙니다.
도움을 주셔서 감사합니다.
'$ db-> insert ('JOURNAL', $ journal);가 Oracle에 보내는 SQL 문을 로깅 할 수 있습니까? –
안녕하세요, 나는 DBAL에 대해 매우 익숙하므로 쉽게이 작업을 수행하는 방법을 모르겠습니다. 나는 문서를 확인하고 가능한 빨리 돌아올 것입니다. – user1923976