Dapper를 사용하여 Oracle 12 데이터베이스에 부울을 삽입하는 데 문제가 있습니다.Dapper를 사용하여 Oracle에 부울을 삽입 할 수 없습니다.
내가 얻을 예외가 ORA-00932: inconsistent datatypes: expected NUMBER got BOOLEAN
을 인의 CommandText는
INSERT INTO crossqueryb.counterparty (Id,Name,IsBroker,DefaultPortfolioId) VALUES (:Id,:Name,:IsBroker,:DefaultPortfolioId)
IsBroker
이 NUMBER(1)
로 정의된다.
OracleParameter를 검사 할 때 DbType 및 OracleDbType 특성이 Boolean
으로 설정됩니다. 값은 false
이고 값의 유형은 object {bool}
입니다.
매개 변수는 실제 도메인 유형 또는 익명 형식이 아닌 IDictionary<string,object>
으로 Query 메서드에 전달됩니다.
이 경우 사용자 지정 유형 처리기를 작성해야하나요?
그래, Dapper가 나에게 그렇게 해줄 것으로 예상했는데, 그렇지 않다고 말하면서 내 자신의 TypeHandler를 작성해야한다는 말입니까? – John
@ 존 Dapper를 사용하지 않았기 때문에 오라클 측에서 어떤 일이 발생했는지 알려줄 수 있습니다. 그러나 [이 답변] (https://stackoverflow.com/q/23502237/1509264) 및 [이 설명서 페이지] (https://stackoverflow.com/documentation/dapper/6/type-handlers/11/converting- varchar-to-ihtmlstring)는 형식 처리기가 대답이라고 제안합니다. – MT0
@ 존 :이 답변에 따르면 : https://stackoverflow.com/questions/42365865/pass-c-sharp-bool-as-parameter-to-oracle-using-dapper, TypeHandler는 쿼리가 아닌 매개 변수에 적용됩니다. . 당신은 그 해답에서 해결책을 시도 할 수 있습니다. –