2013-10-28 11 views
3

매우 순진한 질문에 대한 사과드립니다.하지만 주제에 대한 저의 경험에 대해서도 마찬가지입니다.OCI & Instant Client SDK 및 Oracle Database

나는 무엇을 이해했는지 나는 그 이해가 올바른지 확인하기를 원한다. 모두 내가 틀린 곳을 찾아내는 것을 환영합니다.

  1. OCI는 C는/C++ 프로그래머가 오라클 데이터베이스에 액세스하는 C/C++ 응용 프로그램을 작성하는 데 사용할 수있는 API 세트는 기본적이다.

  2. a) Oracle 인스턴트 클라이언트 SDK는 OCI (???)를 사용하는 (DLL/공유 라이브러리)입니다. C/C++ 프로그래머가 작성한 C/C++ 코드는 Oracle 인스턴트 클라이언트 라이브러리 & 에 연결되므로 OCI도 사용됩니다. b) 인스턴트 클라이언트의 이점은 프로그래머가 고통을 덜어서 복합 코드 (??)를 작성한다는 것입니다. C) C 인스턴트 클라이언트 라이브러리를 사용하지 않는, 그들은 여전히 ​​사용할 수 있습니다 OCI &는 작업 (완수/C++ 프로그래머가이 사실인가)

    D) ??이 올바른 경우에도? C/C++ 프로그래머는 이 원격 Oracle 데이터베이스 &에 연결하는 응용 프로그램을 작성하는 데 OCI 라이브러리 만 필요합니까? 우리는 어떤 ODBC
    드라이버도 필요합니까? 그렇다면 왜? oci.lib로 충분하지 않습니까?

  3. 전체 Oracle 클라이언트 & 인스턴트 오라클 클라이언트의 차이점은 무엇입니까? 인스턴트 오라클 클라이언트가 전체 오라클 클라이언트의 일부일 뿐인 것은 사실입니까?

  4. 오라클 데이터베이스 인스턴트 클라이언트의 상호 운용성 매트릭스를 얻을 수 없습니다. Oracle 웹 사이트에서 많이 검색했습니다. 내가 찾을 수있는 유일한 것은 내가 액세스 할 수없는 오라클 지원 사이트에 링크입니다.

내 의구심을 분명히하십시오. 미리 감사드립니다.

답변

3

간단히 :

  • OCI는 C API를 libary이다. 이 C OCCI라는 ++ 라이브러리는 또한,하지만 난 그것을하지 않는 것이 좋습니다 (당신이 C에 문제가있을 수 있습니다 ++ ABI 변경/다양한 컴파일러에 방언)

  • 모두 인스턴트 및 "두께"오라클 클라이언트가 OCI 라이브러리 (OCI.DLL 또는 linclntsh.so)를 포함 . 인스턴트 클라이언트가 제공하는 것은 다소 자급 적입니다. e.i. Oracle 클라이언트와 함께 제공된 다른 libs에 의존하지 않습니다 (Linux의 경우 ldd 또는 Windows의 경우 depwalk과 비교하십시오).

  • 은 모두 또한 필요한 헤더 두 클라이언트에서

  • 는 C API 실질적으로 동일하다이 포함되어 있습니다. 내가 기억하는 유일한 예외는 지원되는 데이터베이스 기본 문자 집합입니다. InstantClient는 UTF8, ISO Latin1ASCII 만 지원합니다.

  • "thick"클라이언트에도 "libxml"이라는 라이브러리가 있습니다.A는 두께 "클라이언트도 InstantClient가 tnsping

  • 같은 몇 가지 편리한 진단 도구가 포함되어 있습니다"하는 당신이 데이터 형식 SYS.XMLTYPE를 사용하고자 할 때 필요하다.이 라이브러리는

  • InstantClient

    함께 번들로 제공 (일부 알 수없는 이유로) 아니다 " "설정". 사용자는 단순히 하나의 .zip 파일을 압축 해제하는 것은 매우 쉽습니다은.. ORACLE_HOMEPATHLD_LIBRARY_PATH ENV. 변수를 설정하려면 단순히 dlopen을() 하나의 라이브러리 파일이 없어 그게 다야.

  • InstanctCli을 ent는 (지원하지만) 대신 사용할 수 있습니다. EZCONNECT

  • 오라클 비즈니스 파트너가 아닌 한 두 가지 유형의 클라이언트가 재배포되지 않을 수 있습니다. 따라서 응용 프로그램에 이러한 드라이버의 lib를 포함하면 안됩니다. 각 사용자는 개별적으로 다운로드해야합니다.

  • 지금까지 C API 방식으로 InstantClient OCI.DLL libary를 구분하는 방법을 찾지 못했습니다.

  • 에서 InstantClient 특정 섹션이 있습니다 오라클 콜 인터페이스 프로그래머 가이드

  • 난 당신이 ORACLE_HOME ENV를 설정할 때 InstantClient 몇 가지 문제가있을 수 있습니다 기억합니다. 변수와 그것의이 끝 값 (? 또는 끝나지 않는다?) 슬래시 '/'

0

오라클 인스턴트 클라이언트가 전체/"두께"고객의 작은 하위 집합입니다. 여기에는 C, Perl, Python, Java, Scala 등으로 작성된 프로그램이 Oracle 데이터베이스 서버에 연결할 수 있도록 해주는 OCI C 라이브러리, JDBC 및 ODBC가 포함됩니다. 인스턴트 클라이언트에는 sqlplus, sqlldr, exp, imp 등의 익숙한 Oracle 도구가 없습니다. 그러나 sqlplus는 전체 클라이언트가 필요없이 인스턴트 클라이언트와 함께 작동하도록 별도로 설치 될 수 있습니다.