Oracle 연결을 위한 삽질기

DB Provider 고르기

예전에는..
c#으로 만든 응용프로그램에서 오라클 서버에 접속하기 위해
Oracle Client를 설치하고 TNS 설정을 하는 과정을 거쳤다..
이 방법은 기업용 응용 프로그램일 경우
직접 설치해주면 되므로 어떻게든 설치는 가능하지만 시간도 오래걸리고 모양새가 좋지 않았다..그 다음에 시도한 방법은
Instant Client를 사용하였지만..
포함할 dll 용량이 100MB가 넘었고 역시 TNS 설정이 필요하다.
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

결국.. 돈지랄을 하고 나서야 꽤 쾌적하게 배포가 가능하게 되었으니..
dotConnect for Oracle (구 oraDirect)은 TNS를 통하지 않고도
direct로 oracle에 접속이 가능하며 용량도 1MB가 안된다..
아마 자체적으로 OCI 프로토콜을 구현한듯싶다..
http://www.devart.com/dotconnect/oracle/

유행따라 ORM 사용해보기

java 진영에서 꽤 많이 사용하는 myBatis.NET(구 iBatis.NET)를 써보고 싶었으나
(정확하게 myBatis가 ORM은 아니지만 현재 개발하는 프로젝트에 적합하여 선택함)
dotConnect for Oracle에서는 Entity Framework, NHbernate는 지원하지만
myBatis.NET 는 공식적으로 지원하지 않는듯하다.dotConnect for Oracle이 ADO.NET 과 유사하게 되어 있어서
providers.config 만 잘 건드려주면 될것같아서 몇가지 시도해보았더니..
대부분의 동작이 잘되지만..
결정적으로 update statement에 parameter를 전달시 오류가 발생하거나 성공하지 않는다..

이유를 모르겠다.. 그냥 포기다..

사용자 삽입 이미지

 

본인이 설정한 provider 정보는 아래와 같다.
assemblyName은 .NET Reflector (http://reflector.red-gate.com/download.aspx?TreatAsUpdate=1)로 확인하였고
나머지 정보는 oracle9.2 provider 정보를 기반으로 테스트하여 작성하였다.
<provider
    name="oracleDevart"
    description="Oracle, devart provider V5.70.152.0"
    enabled="true"
    assemblyName="Devart.Data.Oracle, Version=5.70.152.0, Culture=neutral, PublicKeyToken=09af7300eec23701" connectionClass="Devart.Data.Oracle.OracleConnection"
    commandClass="Devart.Data.Oracle.OracleCommand"
    parameterClass="Devart.Data.Oracle.OracleParameter"
    parameterDbTypeClass="Devart.Data.Oracle.OracleType"
    parameterDbTypeProperty="OracleType"
    dataAdapterClass="Devart.Data.Oracle.OracleDataAdapter"
    commandBuilderClass="Devart.Data.Oracle.OracleCommandBuilder"
    usePositionalParameters="false"
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="false"
    parameterPrefix=":"
    useDeriveParameters="false"
    allowMARS="false"
  />

 

테스트만 해본거라 정리가 안된 소스이지만 궁금하신 분 있으시면 아래의 첨부파일 참고하세요..
이 소스는 아래 링크의 web project를 winform에 맞게 수정한 놈입니다. (라이센스 문제가 있어서 삭제하였습니다.)

 

Entity Framework 써야지..

myBatis.NET + dotConnect for Oracle 조합은
완벽하지 않은듯하여 포기하고
Entity Framework + dotConnect for Oracle 을 사용하기로 결정..
아직 테스트 중이라.. 차후 별도로 포스팅 예정임..
기대하시라~~ 두둥~

Notice

  • 이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스
  • 저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.
  • 댓글에 대한 답변은 늦을 수도 있습니다.
  • 댓글 남기기

    이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다