Oracle8 oci

Hello,
I need to connect from php to an old oracle8i database (8.1.6).
I used the old php_oracle.dll extension witch is no longer supported. I want to use some new features in the php_oci8.dll extensions like oci_bind_by_name.
The problem is that I haven't managed to make it work.
When php_oci8.dll tries to use oci.dll from the 8i installation, it fails.
Soon I found the php_oci8.dll note:
"Note: This extension does not support Oracle 8 client libraries anymore. Though you still can connect to Oracle 8 servers as long as the client library (v.9+) supports this. "
I downloaded and tried to use some other oci instant client from http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html but soon I realized they don't support Oracle 8. (ORA-03134: Connections to this server version are no longer supported)
I guess I have to download the instant client for Oracle 9. Is there a place to do that?
Or shall I download the full Oracle9 client?

That will for sure solve the problem but is not an available solution. That database will not get upgraded.
Maybe some other connect solution will help.
I use old php_oracle with is no longer supported and doesn't have some extra featurea.
Actually I want to use some oracle functions that will return some values. The function cannot be placed in a select because it has dml statements.
And oci_bind_by_name will be very helpfull because binds php variables to oracle placeholders.
Are there any other connection tools that can get variables from plsql blocks?

Similar Messages

  • ORACLE8 ENTERPRISE EDITION의  주요 신기능

    제품 : ORACLE SERVER
    작성날짜 : 2004-08-16
    Oracle 8 Enterprise Edition 의 주요 신기능
    ==========================================
    Purpose
    이 자료는 Oracle8 version의 주요한 new feature에 대해 간략히 설명한다.
    * Oracle8 Enterprise Edition 릴리스 8.0의 주요 기능은 다음과 같다.
    분할 테이블과 인덱스를 통한 사용과 관리의 편리함
    병렬 처리의 향상
    데이타 웨어하우스 애플리케이션의 성능 및 관리 기능 향상
    메인프레임 급의 OLTP 지원
    보안 관리 향상
    분산 컴퓨팅 향상
    객체(Object) 기술과 확장성
    사용하기 쉬운 관리 툴
    이전 버전과의 원활한 통합과 상호 운용 지원
    Explanation
    1. 테이블과 인덱스의 분할
    대용량 데이타베이스로 인해 기업은 어려움을 겪고 있다. 특히 많은 양의 데이타를
    관리하고 운영하는 것은 쉬운 일이 아니다. 대부분의 작업이 짧은 시간에
    이루어지므로 온라인 처리 성능에 큰 영향을 미치지 않는다. 하지만 테이블이
    많아짐에 따라, 작업을 원하는 시간에 완료하기 위해서는 데이타의 임포트 및
    익스포트, 백업 및 복구, 테이블 분할(defragment)과 같은 작업을 수동적으로
    나누어 처리해야 한다. 또한, 큰 테이블의 일부를 포함하는 디스크에 장애가 발생
    하면 전체 테이블을 이용할 수 없게 되므로 이 테이블과 관련된 모든 프로세스는
    멈추게 된다.
    Oracle8은 테이블과 인덱스를 키 값에 따라 더 작은 부분으로 분할하거나
    나눔으로써 관리를 쉽게 하며 미션-크리티컬 데이타의 이용, 질의(query) 및
    데이타 처리 언어(DML)의 성능을 향상 시켜 준다. 분할(Partitioning)은 데이타
    웨어하우스와 OLTP 시스템의 관리와 성능면에서 향상된 기능을 제공한다. 분할된
    테이블들은 각각 독립적으로 운영되기 때문에, 분할된 테이블 중 한곳에 이상이
    발생하더라도 다른 곳의 분할된 테이블의 데이타는 이용할 수 있다. 분할을 통해
    큰 테이블을 작게 나누어 관리를 쉽게 하고 병렬 처리도 할 수 있다. 테이블과
    인덱스 분할은 사용되지 않는 부분을 실행 계획 단계에서 제거하므로 데이타 처리
    속도를 향상 시킬 수 있다.
    분할은 애플리케이션과 표준 DML 문에 투명성을 제공한다. Oracle8 옵티마이저
    (optimizer)는 분할 기능을 제공하며 질의(query)시 필요한 데이타를 포함하지
    않는 분할된 테이블은 검색에서 제외되므로 수행 성능을 향상 시킨다.
    (1) 분할(Partitioning) 이란?
    하나의 테이블과 인덱스는 여러 작은 조각으로 분할되거나 나누어 질 수 있다.
    테이블과 인덱스의 구조를 생성할 때 분할을 정의한다. 분할 키(partition key)로
    사용될 하나의 컬럼이나 여러 컬럼을 선택한다. 이 키로 데이타가 분할된 위치를
    찾아간다. Oracle8은 삽입(insert) 작업시 데이타를 적절히 분할한다-
    애플리케이션의 재작성 없이 분할 기능을 활용할 수 있다.
    테이블에 관한 모든 조작이 분할된 테이블의 각각에 대해서도 수행될 수 있다.
    예를 들면, 전체 테이블을 익스포트하지 않고 분할된 테이블의 한 부분만
    익스포트 할 수 있으며, 분할된 테이블 각각에 대해 ANALYZE 명령을 동시에
    수행하여 비용-기반(cost-based)의 최적화 값을 신속히 얻을 수 있다.
    분할된 테이블과 인덱스는 각각 독립적으로 운영되므로 분할된 테이블이나
    인덱스에서 수행되는 조작은 다른 곳의 분할된 테이블이나 인덱스에 영향을 미치지
    않는다. 만약 디스크 장애나 관리 미숙으로 인해 분할된 부분에 장애가 발생
    하더라도 다른 부분에 있는 데이타는 여전히 작동한다.
    (2) 향상된 데이타 컨트롤
    화일 시스템에서 분할에 관한 정보 즉, 저장 속성과 위치 등을 명시하여 대용량
    데이타베이스에 대한 컨트롤 효과를 높여준다. 분할된 부분 각각에서 오프라인,
    온라인, 백업, 복구, 익스포트, 임포트, 로딩 등이 수행될 수 있다-관리 시간을
    줄여준다. 하나의 분할 테이블에 하나의 분할 인덱스를 생성하여 인덱스 관리
    시간을 줄일 수 있다. 지역(local)과 전역(global) 인덱스를 위해 다양한 기능을
    제공한다. 분할 조작은 병렬로 수행될 수 있으며 다운되거나 오프라인 된 부분의
    데이타를 요구하지 않는 애플리케이션의 경우는 애플리케이션 장애에도 불구하고
    계속 수행될 수 있는 장점을 가진다.
    (3) 관리 용이
    Oracle8은 사용하기 쉬운 분할 기능을 제공한다. 예를 들어, 연속적인 데이타를
    포함하는 테이블의 경우 단지 일년간의 데이타만 테이블이 가질 수 있다. 이를
    위해 새로 분할된 부분을 테이블 끝에 첨가하고 일년 이상 된 데이타를 포함하는
    부분을 드롭하면 된다. 분할된 데이타간의 밸런스를 위해 다시 분할하여 재 조정
    할 수도 있다. 또한 Oracle7* 릴리스 7.3 UNION ALL 뷰(view)를 이용하는
    stand-alone 테이블이 하나의 테이블 분할로 전환되므로 대용량 Oracle7
    데이타베이스 사용자가 큰 테이블을 재 구축하지 않고도 Oracle8 분할 기능을
    활용할 수 있다.
    2. 데이타 웨어하우스 성능 향상
    Oracle7 릴리스 7.3의 데이타 웨어하우스 기능이 Oracle8에서 향상되었다.
    Oracle7에서 제공된 데이타 웨어하우스 애플리케이션을 위한 기능과 함께
    Oracle8은 다음 주요 기능을 제공한다:
    * 향상된 스타 질의(star query) 프로세싱
    * 병렬 처리 기능 향상
    * 데이타베이스 사이즈 증가
    (1) 향상된 스타 질의(Star Query) 프로세싱
    Oracle8은 데이타 웨어하우스 애플리케이션에서 보편적으로 수행되는 스타 질의에
    대한 성능을 향상시켰다. 스타 질의 또는 스타 스키마(star schema)는 팩트
    (fact) 테이블이라 불리는 하나 이상의 큰 테이블이 존재할 때 일어난다. 팩트
    테이블은 여러 개의 더 작은 테이블인 차원(dimension) 테이블과 연관되어있다.
    Oracle7에서 성능 향상을 위해 최적화된 스타 질의 기능을 소개하였고 Oracle8에서
    스타 질의는 훨씬 더 향상된 기능을 보여준다.
    Oracle8에서, 스타 질의를 실행하는 혁신적인 새로운 방법이 도입되었다 . 더
    효과적인 알고리즘을 이용하므로, Oracle8의 스타 질의는 데이타 웨어하우스
    애플리케이션을 위해 최적의 성능을 제공한다.
    Oracle8에서 여러 타입의 스타 질의 성능이 향상되었으며 조건을 통해 팩트
    테이블의 많은 행을 제거한 스파스(sparse) 테이블을 가진 스타 스키마는 그 좋은
    예이다. 또한, 하나의 스키마가 여러 팩트 테이블을 가질 때도 옵티마이저는
    효과적으로 질의를 수행한다. Oracle8은 크고 많은 차원 테이블, 제약 없는
    (unconstrained) 차원 테이블, 많은 양의 스키마 디자인을 가진 차원 테이블에
    대해 효과적으로 스타 질의를 수행한다.
    Oracle7과 달리, Oracle8 스타 질의 최적화 알고리즘은 카티션(Cartesian-
    product) 조인을 하지 않는다. Oracle8은 두 가지 기본 단계로 스타 질의를
    수행한다. 첫째 단계는, 팩트 테이블로 부터 필요한 행(row)을 조회하며, 이
    조회는 비트맵 인덱스(bitmapped index)를 통해 효과적으로 이루어진다. 둘째
    단계는 팩트 테이블에서의 결과를 관련 차원 테이블과 결합하는 것이다. 이로
    인해 여러 팩트 테이블을 가진 복잡한 스타 질의의 성능이 향상될 수 있다.
    B-tree 인덱스를 이용한 이전 방법에 비해 새로운 알고리즘은 비트맵 인덱스를
    통해 저장 공간을 절약할 수 있다. 새로운 알고리즘은 분할 테이블과 비분할
    테이블 모두에 대해 병렬 인덱스 스캔을 할 수 있으며 완벽한 병렬 기능을 제공한다.
    (2) 새로운 병렬 옵션
    삽입, 갱신, 삭제 트랜잭션이 Oracle8에서 병렬로 수행될 수 있다. 병렬 DML
    (Data Manipulation Language)로 잘 알려진 이 오퍼레이션은 여러 프로세스를
    통해 병렬로 실행된다. 오퍼레이션이 병렬로 실행되므로, 동일한 트랜잭션이
    순차적으로 실행되었을 때보다 트랜잭션은 훨씬 더 빠르게 수행된다. 병렬 DML은
    질의와 수정을 병렬로 실행하여 기존의 병렬 질의 기능을 보강시켰다. 병렬 DML은
    대량의 DML 오퍼레이션이 많이 일어나는 의사 결정 시스템(DSS) 또는 데이타
    웨어하우스 환경에 유용하다. 또한, 병렬 DML 오퍼레이션은 OLTP 데이타베이스에서
    운영 중인 일괄처리 작업을 빠르게 수행할 수 있다.
    Oracle8은 분할된 테이블에 대한 병렬 삽입, 갱신, 삭제 기능을 지원한다.
    Oracle8은 분할되지 않은 테이블에 대한 병렬 삽입도 지원한다. 병렬 삽입
    오퍼레이션은 Oracle7의 직접 경로(path) 로드와 유사하다. 테이블에 대한 병렬
    삽입은 디스크 블록을 직접 데이타 화일로 포맷하고 작성하므로 버퍼 캐시와
    스페이스 관리의 어려움을 해결해 준다. 이 경우 질의에 대한 각각의 스캔
    프로세스가 데이타를 테이블의 high watermark(강물의 수준점과 같이 테이블이
    데이타로 채워져 있을 때 가장 윗부분) 다음의 세그먼트로 삽입한다. 모든 삽입
    프로세스가 완료 되었을 때, 트랜잭션은 커밋되고 high watermark는 새로운
    세그먼트 다음으로 이동한다.
    병렬 DML은 삽입, 갱신, 삭제 오퍼레이션 실행 이전에 지정되어야 한다.
    일반적으로 병렬 DML은 배치(batch) 프로그램이나 대량의 삽입, 갱신, 삭제 작업을
    실행하는 애플리케이션 내에서 이루어진다. 병렬 DML에 대한 새로운 힌트도 제공된다.
    (3) 증가된 데이타베이스 사이즈
    Oracle8은 수백 테라 바이트까지 확장 가능한 대용량 데이타베이스를 지원한다.
    데이타 웨어하우스의 사이즈는 계속해서 증가하며, 그 사이즈로 인해 관리는 더
    어려워 지고 있다. Oracle8은 화일과 메모리의 향상된 사용을 위해 64-비트 화일
    시스템을 지원한다. 또한, 오라클은 테이블 저장 공간의 무한한 확장을 지원한다.
    물론, 데이타를 백업, 로딩, 재저장할 수 있는 툴을 가지고 있지않다면 대용량의
    데이타를 저장하는 것은 무의미할 것이다. Oracle8은 분할, 향상된 병렬 처리,
    고도의 백업 및 복구 툴 과 대용량 데이타 관리를 위해 여러 기능을 제공한다.
    3. 메인프레임 급의 OLTP
    Oracle8은 OLTP 애플리케이션을 위한 확장성, 수행 성능, 관리 기능의 향상도
    제공한다.
    (1) 대량의 사용자 지원
    Oracle8 Server와 네트웍 기능의 향상으로 운영 체계와 네트웍 자원의 활용도가
    증가되었다. 커넥션 풀링(connection pooling)은 요청이 없는 사용자를
    일시적으로 드롭하여(요구가 있으면 연결이 다시 확립된다) , 더 많은 사용자를
    지원할 수 있는 기술이다. 오라클 커넥션 매니저(Oracle Connection Manager)는
    멀티플렉싱을 이용 여러 소스로 부터 다양한 프로토콜을 지원하는 단일 서버로
    데이타를 넘겨주고, 필요시 방화벽으로 작용한다. 공유 데이타베이스는 많은
    사용자를 한번의 연결로 하나의 데이타베이스 서버에 링크하므로 특히, 다중
    애플리케이션 구조에서 필요한 자원의 요구를 줄일 수 있다.
    (2) 첨단 큐잉(Queuing)
    첨단 큐잉은 트랜잭션을 나중에 실행한다거나 특정한 순서로 실행할 수 있는 기능을
    추가한다. 이로 인해 분산 애플리케이션의 커플링을 피할 수 있으며 고도의
    확장성이 요구되는 애플리케이션을 위해 외부 시스템에 대한 종속을 없애준다.
    인큐(enque)와 디큐(dequeue) 오퍼레이션은 트랜잭션 내의 프로세싱을 백그라운드
    프로세싱으로 전환하는데 이용되어 트랜잭션 응답 시간을 줄일 수 있다. 또한 큐는
    데이타의 상태가 변함에 따라 데이타를 시스템으로 옮기는 워크플로우
    애플리케이션을 구현하는 데 사용될 수 있다. 예를 들어, 하나의 주문이 전체 주문
    단계 동안 주문 엔트리로 부터 출하 시스템으로, 그리고 이를 청구 시스템으로
    옮기는 애플리케이션을 생각해볼 수 있다. Oracle8의 첨단 큐는 Tuxedo의 /Q와
    같은 인기 있는 트랜잭션 프로세싱(TP) 모니터와 결합하여 사용될 수 있다.
    (3) 향상된 병렬 서버
    Oracle8 병렬 서버(Oracle8 Parallel Server*)는 수행 성능, 확장성, 메모리
    이용, 가용성 등에서 뛰어난 향상을 가져왔다. 통합된 기능을 제공하는 분산 록
    매니저(distributed lock manager)는 다른 OS 업체에 의해 제공된 록 매니저와
    달리 대부분의 플랫폼에서 우수한 성능과 이식성을 제공한다. 수행 성능의 향상은
    Oracle8 병렬 서버의 속도를 향상시켰다. 또한, 새로운 전역(global) V$
    테이블의 관리도 용이해졌다.
    Oracle8 병렬 서버는 노드 간 요청을 처리를 위해 자체에서 제공하는 통합된 분산
    록 매니저(DLM)를 이용한다. 이전에 오라클은 특정 OS 업체가 제공하는 DLM
    기능에 의존하였고, 따라서 주어진 플랫폼만 지원했었다. 이제 Oracle8과 DLM의
    통합으로 병렬 서버가 모든 플랫폼에 걸쳐 다양한 기능을 제공할 수 있게 되었다.
    이로 인해 자원의 크로스-노드 공유를 지원하지 않던 플랫폼에서도 이제 Oracle8
    병렬 서버를 사용할 수 있게 되었다.
    Oracle8에서는 병렬 서버의 성능 향상을 위해 여러 특징이 추가되었다. 시스템
    변경 번호 (System Change Number : SCN) 생성이 최적화되어 인스턴스간 SCN
    부여가 더 효과적이 되도록 하고 있다. 이 기능 향상만으로 약 10-15%의 병렬 서버
    성능 향상을 가져올 수 있다. 또한, DLM은 록 정보가 노드를 통해 분산되는 것을
    막기 위해 록을 캐시한다. 충돌 블록에 대한 액세스를 통제할 수 있는 알고리즘이
    노드에 있는 블록들의 핑(Ping)과 충돌을 줄여 준다. 리버스 키(reverse-key)
    인덱스는 블록의 바이트를 전환하여 인스턴스상의 블록 충돌을 없애므로 *hot
    spot*인덱스 - 특히 주 키 (primary key)인덱스 - 에서의 충돌을 줄여준다.
    분할을 통해 사용자가 위치를 파악하므로 병렬 서버 성능을 향상 시킬 수 있고,
    따라서 Oracle8 병렬 서버의 록킹 관련 메모리 부하를 줄일 수 있다.
    Oracle8에서 병렬 질의 혹은 병렬 DML 프로세싱을 위한 인스턴스를 지정할 수
    있다. 어느 그룹에 인스턴스가 속하는지 파악할 수 있으며 특정 애플리케이션으로
    부터 문장을 처리하기 위해 그 그룹을 이용할 수 있다. 이것은 서버간 데이타
    웨어하우스 프로세싱과 OLTP를 분리하는데 매우 유용하다. Oracle8 병렬 서버는
    분리된 인스턴스를 이용하므로 데이타 웨어하우스 질의가 OLTP 애플리케이션의
    성능에 영향을 미치지 않는다.
    Oracle8은 Oracle8 병렬 서버에 대한 글로벌 고정 뷰(global fixed view)를
    제공한다. 이로 인해 관리자는 병렬 서버상의 하나의 인스턴스에 로그인 하여 전체
    환경에 대한 모니터링을 수행하므로 조작을 간단하게 할 수 있으며 생산성을 향상
    시킬 수 있다.
    (4) 투명한 애플리케이션 장애 복구(Failover)
    병렬 서버상의 하나의 노드에 장애가 발생하였을 때, 투명한 애플리케이션 장애
    복구에 의해 사용자의 커넥션이 다른 노드의 세션으로 옮겨지며 세션이 자동으로
    재확립된다. 애플리케이션이 계속해서 실행되므로 사용자들은 장애를 인식하지
    못한다. 이것은 계획된 사건이나 계획되지 않은 장애 발생시 지속적인 이용을
    보장한다.
    클라이언트에서 발생하는 부하의 양에 따라, 인스턴스 장애 발생시 사용자를 장애
    복구 노드로 완벽하고 투명하게 이전 연결해 준다. 모든 질의는 클라이언트에
    저장되어 장애 복구 노드상에서 다시 실행될 수 있다. 또한, 세션을 장애 복구
    노드에 미리 연결할 수 있어 장애 복구 인스턴스에 다시 연결하는 시간을 줄일 수도
    있다.
    투명한 애플리케이션 장애 복구는 가용성을 높일 뿐 아니라, 수동적인 부하
    조절이나 강제적인 시스템의 셧다운에도 효과적이다. 너무 많은 사용자가
    인스턴스에 연결하였을 경우, 일부 세션을 정지하고 다른 노드로 투명하게 이전할
    수 있다. 또한 현재의 트랜잭션이 완료된 후에 노드를 셧다운하고 장애 복구 노드로
    투명하게 이전할 수 있게 한다. 사용자의 작업은 셧 다운으로 인해 더 이상 방해
    받지 않게된다.
    (5) TP 모니터 지원 향상
    다이내믹 XA 지원으로 산업 표준 XA 호환 TP 모니터를 이용한 다층 애플리케이션이
    최적의 성능을 발휘할 수 있게 되었다. Oracle8은 다음과 같은 XA 인터페이스에
    대한 기능을 지원한다:
    * 다이내믹 등록(registration) 지원
    * 약결합(loosely-coupled) 트랜잭션 지원
    * Oracle 병렬 서버에 대한 향상된 트랜잭션 복구
    * 세션 캐싱의 불필요
    * Oracle Call Interface* (OCI) 애플리케이션을 위한 SQLLIB 불필요
    * 모든 플랫폼에서의 OPS를 위한 XA 라이브러리 제공
    * Oracle8에서 XA 애플리케이션을 실행하기 위한 스크립트 인스톨 불필요
    * Oracle8은 동일 XA 연결내에서 전역 및 지역 트랜잭션 동시 허용
    (6) 백업/복구 서브시스템의 확장
    Oracle8 서버는 고도의 백업 및 복구 기능을 제공한다. Oracle8은 백업 시작
    시간, 백업할 데이타베이스의 부분, 화일이 저장될 위치 등에 관한 상세한
    정보를 가지고 있다. 복구가 필요하다면 Oracle8은 데이타베이스의 상태를 분석하며
    수행에 필요한 오퍼레이션을 결정한다. Oracle8은 이러한 조작을 자동으로
    수행하므로 관리자의 작업을 단순화하며 에러 발생을 줄여 준다. Oracle
    Enterprise Manager*의 그래픽 사용자 인터페이스는 백업과 복구 작업을 수행할
    수 있으며 써드-파티 애플리케이션을 위한 애플리케이션 프로그래밍 인터페이스
    (API)도 제공된다. Legato 와 같이 써드-파티의 테이프 관리 제품을 위한 미디어
    관리 인터페이스가 있다.
    Multilevel, incremental 백업은 단지 변화된 블록만을 백업하므로 백업 사이즈를
    상당히 줄일 수 있다. 이로 인해 데이타 화일의 백업 시간을 상당히 줄일 수 있다.
    테이블스페이스(Tablespace)의 적절한 복구로 하나 이상의 테이블스페이스가 좀더
    빠른 시간에 복구 되게 하며 나머지 데이타베이스는 계속 운영될 수 있다. 이로
    인해 사용자 에러가 쉽게 수정될 수 있다. 예를 들면, 사용자 실수로 테이블의 여러
    레코드를 갱신하는 작업을 배치 형태로 실행하였을 때, 테이블은 배치 작업이
    일어나기 이전 형태로 다시 저장될 수 있다. 또한, 테이블이 우연히 드롭되거나
    잘려졌을 때, 조작 이전 단계로 다시 저장될 수 있다.
    Oracle8은 블록을 읽고 쓰는 수를 제한하므로 장애 및 인스턴스 복구 속도를 항상
    시켰다. 이는 미션-크리티컬 시스템의 이용성을 높여 준다. Oracle은 인스턴스
    복구를 위한 초기 변수를 최대치로 설정할 수 있다. 따라서 버퍼 캐시가 매우 큰
    상황에서 적절한 복구 시간을 설정할 수 있다.
    4. 보안 관리 향상
    Oracle8은 사용자와 롤(role)을 중앙에서 관리할 수 있는 환경인 Security
    Server를 포함한다. Oracle Security Server는 공공/개인 키 검증을 위한 X.509
    인증 기반의 보안 표준과 호환된다. 클라이언트와 서버 간의 완벽한 검증은
    클라이언트 통신을 갈무리하기 위해 디자인된 "rogue" 데이타베이스로 부터 방해
    받지 않도록 한다. 또한 디지털 서명(signature) 툴 킷으로 애플리케이션 생성시
    데이타의 부정 갱신을 방지 할 수 있다.
    Oracle8은 향상된 패스워드 유지와 관리 기능을 제공한다. Oracle8에서 보안
    스키마를 강화하기 위해 패스워드 프로필(profile)을 정의할 수 있다. 패스워드는
    특정시간이 지난 후에 소멸되거나 유효성 여부가 체크될 수 있다. 자신만의
    패스워드를 생성하거나 새로운 패스워드의 길이, 내용, 재사용 여부 등을 체크하기
    위해 표준 저장 함수(stored function)를 이용할 수 있다. 사용자 계정을 생성할
    수 있으며 사용자는 시스템에 최초 액세스 하였을 때 패스워드를 즉시 변경해야 한다.
    Oracle8은 또한 특권이 부여된 링크를 통해 데이타베이스 링크시 패스워드가 필요
    없게 하기도 하며, OCI 와 PL/SQL*에서 부를 수 있는 데이타 해독(encryption)
    서비스도 제공한다.
    5. 복제(이중화; REPLICATION)
    복제 옵션 부분도 현저하게 개선되었다. Oracle8의 복제는 광범위하게 구축된
    분산 시스템, 높은 생산성의 장애 복구 환경, 데이타 웨어하우스 시스템 등을
    지원한다.
    영업활동을 지원하기 위한 "Salesforce Automation 애플리케이션"과 같은 대량
    전개(mass deployment) 시스템은 Oracle8의 서브 세팅(subsetting) 기능으로
    관리와 디자인이 훨씬 간편해질 수 있다. 복잡한 부분 질의(subquery) 스냅샷
    (snapshot)은 다른 테이블 질의에 기반한 스냅샷을 구축할 수 있도록 *fast
    refresh* 항목을 포함할 수 있다. 예를 들면, ORDERS 테이블에 기반해서 각각의
    영업사원에 대한 스냅샷을 구축할 수 있다. 이 스냅샷은 ASSIGNMENTS 테이블로
    부터 표준에 맞는 주문을 선택하여 각각의 영업 사원에 대한 주문만을 포함하게
    된다. 각 영업 사원은 자신의 주문만을 볼 수 있으며 새로운 주문을 반영할 경우
    마스터 테이블과 연동한다.
    Oracle8에서 복제의 성능이 상당히 향상 되었다. 복제 사이트에 대한 변화 적용은
    병렬로 처리되며 복제시 처리량의 제한은 없으며, 트랜잭션 무결성 또한 유지된다.
    또한, 대부분의 복제 기능은 PL/SQL 트리거에서 C코드로 재 작성되었으며 오라클
    커널에서 높은 성능을 제공하고 있다. 마침내, 네트웍을 통해 각각의 복제된
    트랜잭션으로 보내져야 할 데이타의 양이 현저히 감소하여 네트웍 부하를 최소로
    줄여 준다.
    Oracle8 복제 기능은 관리와 사용면에서도 향상을 가져왔다. 위저드(wizard)를
    포함한 Oracle Replication Manager*의 기능 향상으로 복제 환경을 더 쉽게 설치
    하고 유지할 수 있다. 이외에 복제 관리를 위한 개선 사항으로는, 어느 사이트가
    스냅샷과 관계를 맺고 있는지 정보를 알 수 있는 스냅샷 등록, 테이블 재구성 후
    더 빠른 스냅샷 refresh를 제공하는 주 키(primary key) 스냅샷, 편리한
    관리를 위한 새로운 보안 알고리즘; 다른 사람이 작업 중일 때 하나의 복제 그룹에
    스키마 레벨의 변화를 가할 수 있는 fine-grain quiesce등이 있다.
    6. 객체-관계형(OBJECT-RELATIONAL) 데이타베이스
    Oracle8은 객체-관계형 패러다임으로 데이타 관리 기술을 한 차원 높였다. 오늘
    날의 데이타베이스 스키마와 애플리케이션은 점점 복잡해 지고 있다. 종종 고객
    정보, 청구, 발송과 같이 비슷한 데이타를 가진 여러 분리된 애플리케이션들이 다른
    데이타베이스 스키마로 존재하며 MIS 부서는 상호작용에 대해 고려해야 한다. 여러
    업체에서 제공되는 서로 다른 관계형 객체와 애플리케이션을 더 밀접한 엔드-유저
    데이타 모델로 통합하는 정보의 통합 관리는 쉬운 일이 아니다. 완벽한 객체-관계형
    솔루션을 위해 관계형 데이타베이스에 객체 개념을 추가하므로, 오라클은 데이타
    모델링을 단순화하며 새로운 데이타 타입으로 데이타베이스를 확장할 수 있다.
    (1) 오라클의 객체-관계형 데이타베이스 기능은 다음과 같다
    * 애플리케이션 중심으로 서버를 확장하기 위한 객체 타입(object type)
    * 객체 메쏘드로서 외부 프로시저(external procedure)
    * 빠른 클라이언트-사이드 객체 검색 지원
    * 기존 관계형 환경의 개선
    * 객체 모델링을 위한 개발 툴
    * 비정형 데이타 지원(이미지, 비디오, 텍스트 등)
    * 개방형, 산업 표준 데이타 조작을 위한 자바 지원
    객체(object)는 모든 서버 레벨에서 Oracle8 전체에 걸쳐 완벽하게 통합된 기능을
    제공한다. Oracle universal data server 의 강력한 기능들은 객체와 함께 제공
    되며 오라클의 정교한 동시성 (concurrency) 모델 , 수행 성능, 확장성, 신뢰성,
    관리성, 가용성 등을 포함한다.
    (2) 객체 타입(Object Type)
    객체 타입은 오라클의 관계형 데이타 시스템의 확장을 위한 방법을 제공한다.
    관계형 데이타베이스는 세 가지 데이타 타입을 지원한다: character, number,
    date. 객체 타입으로 새로운 데이타 타입을 정의할 수 있으며 관계형 데이타
    타입을 정규화하는 것과 같이 사용할 수 있다. 예를 들어, 주소라는 새로운 타입을
    생성할 수 있다. 이 객체 타입은 속성이라 불리는 우편번호, 시, 구와 같은
    데이타를 가진다. 객체 타입은 또한 주소간의 길이를 계산하는 거리와 같은
    메쏘드를 가진다. 이 메쏘드는 PL/SQL, C 또는 자바로 작성될 수 있다. 주소는
    컬럼 정의, PL/SQL 변수 또는 객체 테이블을 위한 정의 등 데이타 타입 정의가
    가능한 모든 곳에서 사용될 수 있다.
    오라클의 객체 타입은 복잡한 객체 지원을 위해 강력한 객체 모델링 기능을 이용
    한다. 예를 들어, 배열 구조나 삽입(nested)된 테이블에서 비슷한 객체의 모임을
    표현할 수 있다. 테이블을 조인하지않고 빠르게 검색하기 위해 객체에 대한
    포인트를 저장할 수 있다.
    객체 타입은 개발자가 애플리케이션 로직을 클라이언트-사이드에 코딩하는 것이
    아니라 데이타베이스나 미들 계층인 애플리케이션 서버에서 코딩할 수 있게 한다.
    모든 애플리케이션은 새로운 데이타 타입의 로직을 공유하므로 개발자는 코드를
    다시 작성할 필요가 없다. 이것으로 재사용 가능한 코드 컴포넌트 생성과 투명한
    애플리케이션 분할이 가능하며 코드는 다음 중 최상의 성능을 지닌 계층에 위치하여
    실행될 수 있다: 클라이언트, 애플리케이션 서버, 데이타베이스 서버.
    Oracle8은 객체 타입 정의와 객체 모델링 기술을 위해 SQL3 표준을 따른다.
    SQL3는 객체 타입 생성 및 수정, 객체 식별자(object identifier, OID) 생성 및
    저장, 객체에 관한 레퍼런스 또는 포인터를 생성 및 저장, 비슷한 객체의 모임을
    모델링하기 위한 문장을 정의한다.
    (3) 데이타베이스내에서 외부 프로시저 호출
    오라클은 데이타베이스에서 C, C++, 혹은 자바로 작성된 외부 프로그램을 호출할
    수 있는 안전하고 빠른 방법을 제공한다. 호출은 HTTP나 IIOP(CORBA 표준)와 같은
    개방형 프로토콜을 통해 이루어질 수 있다. 외부 프로시저를 통해 기존 애플리케이션
    코드를 사용하거나 Fast Fourrier Transform (FFT)와 같이 수치적으로 복잡한
    알고리즘을 위해 고도로 최적화된 코드로 작성할 수 있다.
    또한 다른 애플리케이션 또는 삽입된 시스템과 같은 특정 장치와의 연동을 위해
    외부 프로시저를 이용할 수 있다.
    (4) 클라이언트-사이드 객체 지원
    클라이언트-사이드 객체 캐시는 사용자 애플리케이션이 복잡한 수직 구조의 객체를
    애플리케이션 캐시로 읽어 들이게 한다. 애플리케이션은 추가적이 네트웍 검색
    없이 객체를 검색 (traverse) 할 수 있다. 이런 편리하고 빠른 방법으로
    클라이언트 애플리케이션에서 객체를 사용할 수 있으며 네이티브 객체-지향 코드와
    같은 코드를 작성할 수 있다.
    (5) 관계형 환경의 개선
    Oracle8은 사용자가 쉽게 새로운 객체-지향 기능을 이용하도록 디자인 되었으며
    기존의 모든 애플리케이션에 대해 호환성을 제공한다. 새로운 객체-관계형 기능은
    관계형 기능과 동일한 기초에 기반하여 구축되었으므로 사용자들이 Oracle8으로
    마이그레이션 하기 위해 기존의 관계형 애플리케이션을 버리거나 다시 작성할
    필요가 없다. 다른 객체-관계형 데이타베이스와 달리, 이것은 행과 열을 읽고 쓰는
    전통적인 관계형 애플리케이션이 객체를 읽고 쓰는 객체-지향 애플리케이션과 공존할
    수 있게 한다. Oracle8은 관계형 데이타를 조회하여 마치 그것이 객체 데이타인
    것처럼 클라이언트에 나타내거나 그 반대로 데이타를 나타낼 수 있는 객체 뷰를
    제공한다.
    예를 들어, 기존 관계형으로 구현된 주문 입력(order-entry) 시스템은 월드
    와이드 웹을 위해 새로운 전단부(front-end )를 필요로 할 수 있다. 관계형
    데이타베이스 스키마에 액세스하는 기존 애플리케이션은 유효하면서 웹
    클라이언트에서의 객체 표현을 위해 새로운 객체 뷰가 개발될 수 있다. 새로운
    애플리케이션과 기존 애플리케이션이 동일한 데이타에 기반할 수 있으나 각각은
    자신만의 표현을 가진다.
    (6) 객체 모델링을 위한 개발 툴
    개발 툴과 그래픽한 모델링 툴은 개발 프로젝트의 성공을 위해 매우 중요한
    요소이다. 새로운 객체 모델링 툴인 Designer/2000* 과 컴포넌트 조합 환경인
    Sedona는 완벽하게 Oracle8의 객체 모델을 지원한다.또한, Rational Software와
    같은 써드-파티 업체들이 Oracle8의 객체 개발을 지원한다.
    멀티미디어 데이타
    Large Object (LOB)는 이미지, 사운드, 비디오, 텍스트와 같은 비정형 데이타를
    처리하며 LONG이나 LONG RAW보다 훨씬 더 강력한 기능을 가진다. Character LOB
    (CLOB 혹은 NCLOB), Binary LOB, 그리고 BFILES (혹은 외부 저장된 LOB)는 복제
    되거나 객체의 속성이 될 수 있다. 테이블/객체 당 하나 이상의 LOB를 가질 수
    있다. LOB는 LONG 보다 더 큰 최대 사이즈를 가지며 읽기 일관성과 임의 액세스를
    위해 차별되는 메커니즘을 가지고 있다.
    LOB 데이타는 빠른 액세스를 위해 특정 바이트에서 시작할 수 있도록 인덱스 된다.
    예를 들어 특정 바이트-오프셋을 읽거나 쓸 수 있다. Oracle8 버퍼 캐시를 통해
    LOB를 읽고 쓰거나 디스크로 부터 LOB에 직접 액세스 할 수 있다.
    (7) 개방형 산업 표준 지원: 자바
    오라클의 두 가지 자바 지원 전략은 오라클의 객체 타입과 더 잘 통합될 수 있도록
    제공되는 JDBC 드라이버와 SQL문을 자바에 삽입하는 JSQL이다. JDBC는 자바
    클라이언트가 Oracle8에 액세스하게 해준다. 오라클은 Oracle8에서의 더 나은
    수행 성능을 위해 JDBC 드라이버를 제공할 것이다. JSQL은 SQL 문을 자바
    애플리케이션 내에 포함하게 한다. 그런 후 JSQL precompiler가 SQL을 JDBC
    call로 전환한다. 이로 인해 기존의 SQL 문을 새로운 자바 애플리케이션에서
    사용할 수 있다.
    7. 기타 향상된 기능
    인덱스로 구조화된 테이블은 Oracle8 B-tree 인덱스 구조의 노드 내에 컬럼
    데이타를 저장한다. 이는 대부분의 컬럼이 인덱스 되었을 때 인덱스와 분리된
    테이블 모두를 저장하는 것이 아니라 컬럼을 단 한번만 저장하므로 전체 저장
    공간을 줄여준다. 인덱스로 구조화된 테이블은 두 곳이 아니라 한 곳에서 모든
    컬럼을 조회하므로 액세스 시간을 줄여준다. PL/SQL에서 SQL를 부르는 속도가
    향상됨에 따라 PL/SQL 성능도 향상되었으며 반대의 경우도 마찬가지이다.
    Oracle8에서는 제약조건(constraint) 프로세싱이 향상되었으며 UNIQUE와
    PRIMARY KEY 제약 조건을 위해 non-unique 인덱스를 이용할 수 있다. 이로
    인해 엄청난 양의 인덱스를 제거할 수 있으며 제약 조건을 사용할 수 없게
    되더라도 인덱스는 유효하게 남아 있다. 지연-제약 조건(deferred-constraint)
    체크는 문장 실행 마지막이 아니라 트랜잭션 실행 마지막에 무결성-제약 조건
    (integrity-constraint) 체크가 이루어진다. 이로 인해 무결성-제약 조건을
    수반하는 오퍼레이션의 코딩이 간편해진다. 모든 제약 조건은 다른 제약 조건들과
    동시에 그리고 병렬로 처리될 수 있으며 concurrent DML을 처리한다.
    새로운 NCHAR 데이타 타입은 하나의 데이타베이스에서 두 번째 character set을
    사용할 수 있게 한다. 이는 아시아 언어와 멀티 바이트 문자 데이타에 대한
    성능과 저장 예측력을 향상시켰다. 고정-길이 네이티브 Unicode 2.0과 Chinese
    GBK 를 지원한다.
    리버스 키(reverse key) 인덱스를 통해 주 키(primary key) 인덱스의 부담을
    줄일 수 있다. 불균형 인덱스는 인덱스를 점점 심화되게 할 수 있다. 리버스 키
    인덱스는 블록 엔트리 바이트를 역으로 전환하여 인덱스가 "빠지는 것(sliding)"
    을 방지한다.
    Oracle8은 정교한 애플리케이션을 쉽게 개발할 수 있도록 여러 가지 강력한 툴을
    제공하고 있다. 이제 관계형 뷰에 기반한 데이타를 수정할 수도 있다. 새로운
    트리거는 사용자 자신의 로직을 동원하여 뷰(view)에서 INSERT, UPDATE, DELETE
    작업을 수행하므로 복잡한 조인 조건을 가진 뷰라 하더라도 수정될 수 있다. 또한
    질의의 select 리스트에 부분 질의를 둘 수 있으므로 조인을 수행하지 않고
    상세(detail) 테이블의 임의 목록으로 부터 결과값을 얻을 수 있다. Select
    리스트에 커서(cursor)를 사용하여 FROM 절에 복잡한 조인 조건을 사용하지 않고
    3GL 프로그램에 있는 상세 테이블로 부터 행을 가져올 수 있다. Oracle8은
    데이타베이스에서 C로 작성된 3GL 코드를 부를 수 있으므로 데이타베이스 테이블과
    외부 하드웨어를 통합할 수 있으며 기존 애플리케이션 코드를 이용하거나
    수치적으로 복잡한 프로세스를 처리할 수 있다.
    8. 마이그레이션(MIGRATION)과 상호 운용성(INTEROPERABILITY)
    간단하고 빠른 마이그레이션 유틸리티가 데이타 사전을 재 구축하며 콘트롤 화일,
    로그 화일, 데이타 화일 헤더를 전환한다. 마이그레이션 유틸리티는 Oracle 7.1,
    7.2, 7.3등을 포함하는 모든 데이타베이스를 Oracle8으로 전환해 준다. Oracle7
    애플리케이션은 아무런 변경 없이 Oracle8과 연동하고, Oracle8의 분산 명령
    또한 Oracle7에도 작용한다.

  • OCI8: returning cursors from stored procedures

    The short version of my question is:
    In OCI8, how do open a cursor from the database stored procedure, return it to my C++ program and fetch from it, given that in OCI8 cursors and cursor functions are becoming obsoleted?
    The long version of the same question is:
    I am converting my C++ code from the Oracle 7.3 OCI driver to the Oracle8 OCI driver. One thing I did very frequently in Oracle 7.3 OCI code is open a multi-row select cursor within a stored procedure and return that cursor to my program. In the program, I would then do the fetching with the returned cursor. This was very useful, as it allows me to change the queries in the stored procedure (for example, to append information to certain columns or make some data in all uppercase) without recompiling the application due to a changed SQL string.
    My 7.3 psuedocode is as follows:
    stored procedure def:
    TYPE refCurTyp IS REF CURSOR;
    FUNCTION LoadEmployeeData RETURN refCurTyp;
    stored procedure body:
    FUNCTION LoadEmployeeData RETURN refCurTyp IS
    aCur refCurTyp;
    BEGIN
    OPEN aCur FOR
    SELECT emp_id, emp_name
    FROM employee_table
    ORDER BY emp_name;
    return aCur;
    END;
    OCI code: // all functions are simplified, not actual parameter listing
    // declare main cursor variable #1 and return cursor variable #2
    Cda_Def m_CDAstmt, m_CDAfunction;
    // open both cursors
    oopen(m_CDAstmt, ...);
    oopen(m_CDAfunction, ...);
    // bind cursor variable to cursor #2
    oparse(&m_CDAstmt, "BEGIN :CUR := MYPACKAGE.LoadEmployeeData; END;");
    obindps(&m_CDAstmt, SQLT_CUR, ":CUR", &m_CDAfunction);
    // run cursor #1
    oexn(&m_CDAstmt);
    // bind variables from cursor #2, and fetch
    odefineps(&m_CDAfunction, 1, SQLT_INT, &m_iEmpId);
    odefineps(&m_CDAfunction, 2, SQLT_CHAR, &m_pEmpName);
    while (!ofen(&m_CDAfunction))
    // loop: do something with fetch
    // values placed in m_iEmpID and m_pEmpName
    This works perfectly, and has really helped to make my code more maintainable. Problem is, in Oracle 8 OCI both cursors and the cursor functions (such as oopen()) are becoming obsoleted. Now it uses statement and environment handles. I know I can still use Cda_Def and cursors--for a while--within OCI8, but I need to know the official up-to-date method of returning a cursor from the database and fetching within my C++ code. Any code fragment, or explanation of what I need to do in OCI8 would be appreciated (perhaps I need to bind to a statement handle instead? But the stored procedure still returns a cursor.)
    The Oracle8 OCI has a new SQLT_ type, SQLT_RSET, which the header file defines as "result set type". Unfortunately, it's almost completely undocumented in the official documentation. Am I supposed to use this instead of the obsolete SQLT_CUR?
    Thanks,
    Glen Mazza

    Email me diorectly and I will get you some code that might help. I fail to see the relevance of posting this type of information in the JDeveloper forum.

  • Ada programming language

    Before I ask my coding question, is anyone familiar with the Ada programming language? thanks

    I remember back in approximately Oracle6/7 timeframe, I was porting, including porting Pro*Ada, but I don't think we ever did OCI for Ada. For sure, it does not exist with the Oracle8 OCI. I am surely no ADA expert, but wouldn't it generally be a problem to have something in ADA, that is so dependent on have the concept of an address as OCI is? Don't Oracle still have SQL*Module for ADA?

  • Oci oracle8i - how do oci to pass a varray parameter to a function

    How do oci to pass a varray parameter to a function?

    don't declare a variable inside a function body unless you want it to be local to that function/function call.  ie, use:
    var cont:int;
    function whatever(){
    cont=whatever;

  • JDBC/OCI driver for JDK1.2

    Hi,
    I have an evaluation copy of Oracle8 version 8.0.3.0 and
    downloaded the JDBC/OCI driver for JDK1.1 (classe111.zip). The
    example I used was also taken from this site, which connects to
    the database and lists ename from emp, using scott/tiger.
    Everything worked fine under JDK1.1 but I can't get the code to
    work with JDK 1.2
    Does Oracle provide a JDBC/OCI driver that will work with JAVA
    1.2 or am I missing something. Please note that I am not using
    Oracle8i.
    Any assistance would be greatly appreciated.
    Karim
    null

    Karim,
    Openlink Software (http://www.openlinksw.com) provides JDBC 2.0
    drivers in version 3.2. This version will be hitting our public
    web site next week, but you can get pre-release components from
    ftp://ftp.openlinksw.com/pre-3.2/index.html
    The JDK 1.2 drivers are all the way at the bottom under the
    Windows section.
    HTH,
    Stephen
    Karim (guest) wrote:
    : Hi,
    : I have an evaluation copy of Oracle8 version 8.0.3.0 and
    : downloaded the JDBC/OCI driver for JDK1.1 (classe111.zip). The
    : example I used was also taken from this site, which connects
    to
    : the database and lists ename from emp, using scott/tiger.
    : Everything worked fine under JDK1.1 but I can't get the code
    to
    : work with JDK 1.2
    : Does Oracle provide a JDBC/OCI driver that will work with JAVA
    : 1.2 or am I missing something. Please note that I am not using
    : Oracle8i.
    : Any assistance would be greatly appreciated.
    : Karim
    null

  • How do you install the JDBC-OCI patch for a Windows NT4 IFS Installation?

    I am about to install IFS on a Windows NT4 Server. I dont understand the instructions for installing the JDBC-OCI patch.
    How do you install the JDBC-OCI drivers?
    Do I install them after installing Oracle 8.1.6? and before installing IFS?
    Is it necessary to install them?
    I would be grateful for as much help as possible, I have never done anything like this before.
    [email protected]

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Jaikishan Tada, Oracle Support:
    Before installing iFS, you need to install
    Oracle8i Client (with Administrator option).
    This installs JDBC-OCI driver and other
    common Oracle components such as Net8,
    OEM ....
    The JDBC-OCI driver patch is available from
    technet to download. Go to the url - http://technet.oracle.com/software/tech/java/sqlj_jdbc/software_index.htm
    and download Oracle8i 8.1.6.0.1 JDBC Drivers for use with JDK 1.1.x.
    Apply the patch and carry out iFS installation/configuration.
    Go through the iFS installation guide.
    Good Luck,<HR></BLOCKQUOTE>
    null

  • OCI Release 9.0.1 with Oracle 8i

    Consider the following situation:
    oracle8i (8.1.7) server on a win2000 machine
    there is an application using oci8 on another machine (linux) with the oracle 8.1.7 client libraries (there is no support for "scrollable" cursors)
    My question is:
    If i change (on linux) the client with that of 9.0.1 with the new oci and the new libraries (and, of course, rewrite the application), can I use the new scrollable cursors with the Oracle 8.1.7 database (we desperately need resultset data seek and row count)

    :) 10x
    then i am asking this, in terms of OCI:
    Is the scrollable cursor (and the row count of a select statement) is a client or a database feature?
    i am asking this because the cursor library in odbc and ado is allowing such things.

  • JDBC OCI on Linux crashes, pls help

    Hi!
    I'm trying to use jdk 1.2.2, and jdbc2 of 8.1.6(classes12_01.zip), on linux Oracle8i 8.1.5, and at some moment the app crashes with a SIGSEGV, after making several sqlqueries:
    SIGSEGV 11* segmentation violation
    si_signo [11]: SIGSEGV 11* segmentation violation
    si_errno [0]: Success
    si_code [0]: SI_USER [pid: 0, uid: 0]
    stackpointer=0x44bbcff4
    Full thread dump Classic VM (1.2.2-L, green threads):
    "CaducatorThread" (TID:0x40eb5ab8, sys_thread_t:0x89af9e8, state:R) prio=1
    at oracle.jdbc.oci8.OCIDBAccess.open_statement(Native Method)
    at oracle.jdbc.oci8.OCIDBAccess.open(OCIDBAccess.java:458)
    at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:288)
    at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:307)
    at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:194)
    at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:177)
    at oracle.jdbc.driver.OracleConnection.prepareStatement(OracleConnection.java:339)
    at server.persistence.jdbc.JdbcProcessInstancePersMgr.getInstancesToDispose(JdbcProcessInstancePersMgr.java:1111)
    I tried with the examples on jdbc/OCI and they worked, but my app, that is multithreaded, crashes.
    Pls I don't know where to look anymore, I'm desperate.
    Million Thanks in advance.
    Mariano

    Try placing the jar file in the
    {cfmx-root}/runtime/servers/lib (create if not already there)
    directory if you have the server install or the
    {jrun-root}/servers/lib directory if you have the multiserver or
    j2ee install on JRun. Restart the Coldfusion applicatioin server.
    Ted Zimmerman

  • Cursor Parse Exception With OCI Drivers

    I am getting the following Error if I call an Oracle Function with two
    Params. Based on the values of parameters the where clause is changed but
    returns the same Resultset. If I already have called the fucntion once and
    then pass different values to the parameters I get the following erros.
    I am closing the Connection, Resultset, and Callable statement at the end of
    my call to the Function.
    I am using OCI Drivers
    I am using Bind Variables in Oracle Function.
    Here is the Error
    Label Code is SMOCONTESTS
    java.sql.SQLException: ORA-01475: must reparse cursor to change bind
    variable da
    tatype
    at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:238)
    at weblogic.jdbcbase.oci.Statement.executeUpdate(Statement.java:869)
    at weblogic.jdbcbase.oci.Statement.execute(Statement.java:1364)
    at
    weblogic.jdbc.pool.PreparedStatement.execute(PreparedStatement.java:4
    5)
    at
    weblogic.jdbc.rmi.internal.PreparedStatementImpl.execute(PreparedStat
    ementImpl.java:289)
    at
    weblogic.jdbc.rmi.SerialPreparedStatement.execute(SerialPreparedState
    ment.java:398)

    Make sure ORACLE_HOME is properly set in your environment.
    Also WLS is not able to find the library in PATH env variable.
    Otherwise do this
    java -Djava.library.path=$WL_HOME/bin/oci815_8 etc. etc.. weblogic.Server
    where WL_HOME is your weblogic installation directory and i assume you want to
    use oci815 or load the
    appropriate dll.
    Hope this helps
    Let us know if you still see problems.
    Kumar
    Lee Mei Wah wrote:
    Hi
    I've the problem of creating the oracle connection pool wtih error
    message:
    java.sql.SQLException: System.loadLibrary threw
    java.lang.UnsatisfiedLinkError with the
    message 'no weblogicoci36 in java.library.path'.
    I'm running Weblogic 5.1 and oracle8.0.5 on NT.
    Has anyone got a solution for that?
    Lee
    "Jennifer Yang" <[email protected]> wrote in message
    news:3998a1d1$[email protected]..
    I was running batch update example, and I ran into the same problem, buton
    NT.
    What do I need to do?
    We are using WebLogic 5.1
    Jennifer
    "Kelvin Yip" <[email protected]> wrote in message
    news:3994602b$[email protected]..
    I think you may have followed their documentation and it is wrong. You
    may
    have set your LD_LIBRARY_PATH to
    oci80x_x but you should look for ...weblogic/lib/soloris/oci80x_xinstead.
    You are picking up the NT dll not the soloris so.
    "Sudharsan Srinivasan" <[email protected]> wrote in message
    news:39919e36$[email protected]..
    Hi I'm using the WebLogic's driver. It is giving the following error
    when
    I try to start the connection pool.
    "<JDBC Pool> Failed to create connection pool "oraclePool"
    <JDBC Pool> weblogic.common.ResourceException:
    weblogic.common.ResourceException:
    Could not create pool connection. The DBMS driver exception was:
    java.sql.SQLException: System.loadLibrary threwjava.lang.UnsatisfiedLinkError
    with the message 'no weblogicoci34 in java.library.path'."
    I'm running WebLogic 4.5.2 and I have setup the LD_LIBRARY_PATH.
    Thanks in advance.
    -Sudharsan.

  • OCI-22303 in by OCITypeByName

    Hi,
    I am getting an error OCI-22303 when trying to use OCITypeByName method.
    Basically I am trying to use publish-subscribe notification mode to get get notification whenever a new message comes in the queue.
    I am able to register my callback function with the oracle queue and whenever a new message is coming to the queue its my callback function is being invoked by oracle
    but the problem is ,in that callback function when I am trying to dequeue the message it gives error on OCITypeByName method(ie OCI-22303).
    Same code inside callback function is working fine when I am directly calling the callback function ie(not invoked by oracle).
    Could you help me out what is the reason behind it?
    Oracle version :8.1.6
    In queue table payload is object type.
    I have tried this with oracle8.1.7's catexp.sql also but it dint work
    Please help me out
    rajeev

    Hi Rajiv,
    Could you please provide more details?
    Specifically, I would like to see how your
    callback looks.
    And you mentioned that if you directly called
    the callback function, then OCITypeByName
    worked. I am assuming you called this callback in some OCI program. So, I would also like to see the OCI program.
    And one other thing. Did you make sure you had the same user session in both the cases?
    thx,
    Ravi

  • Problem linking with OCI

    Hi,
    I am using Oracle 8.0.5.0 and am trying to compile a C++ program
    using the OCI. I am using RedHat Linux v5.1 with g++ egcs
    version 2.90.27.
    This is my library and object list from the makefile:
    ORALIBS = -lnetwork -lclient -lnetv2 -lncr -lgeneric -lmm -lepc -
    lcore4 \
    -lnlsrtl3 -lcommon \
    -lnetwork -lcore4 -lnlsrtl3 -lncr -lnttcp \
    -lnetwork -lepc -lclient -lepcpt -lnlsrtl3 -lclient -ldl
    ORAOBJS = $(ORACLE_HOME)/lib/naedhs.o $(ORACLE_HOME)/lib/naect.o
    $(ORACLE_HOME)/lib/naeet.o
    $(ORACLE_HOME)/rdbms/lib/defopt.o
    When I issue the make command, I get the following link errors:
    /disk2/oracle8/lib/libnetwork.a(nau.o): In function `nau_gettab':
    nau.o(.text+0x164b): undefined reference to `nautab'
    nau.o(.text+0x1651): undefined reference to `nautabnum'
    /disk2/oracle8/lib/libnetwork.a(nau.o): In function `nau_dis':
    nau.o(.text+0x2fb2): undefined reference to `nautab'
    Has anyone else seen this and if so, can you help me out please?
    It is pretty urgent.
    Thanks in advance.
    Timothy Sim
    null

    Link with client-shell -lclntsh

  • Thin instead of oci driver

    i am working with advanced queue.
    Message jms_msg = null;
    TopicReceiver t_recv = null;
    jms_msg = (t_recv.receive(10));
    for this i need oci driver. Is it possible to use thin driver instead?
    Edited by: user13256715 on 20.7.2010 23:47

    AW> Hi Henry. My comments are preceded with AW>.
    I upgraded my oracle client from 8i to 9i. I am trying to connect to 9ifs server running on different machine using Ifs api.
    When i use the following url in IfsDefault.properties then i get the exception("ORA-12514: TNS:listener could not resolve SERVICE_NAME ") while creating LibrarySession
    IFS.SERVICE.JDBC.DatabaseUrl=jdbc:oracle:oci8:@MYEST
    Note: TNDPing works fine for MYTEST service. When i was using the oracle 8 client + drivers i have no problem conneting to 9ifs using the above urlAW> This problem should also manifest through SQL*Plus.
    AW> You should compare your TNSNAMES.ora and your SQLNET.ora from Oracle8 versus Oracle9i, and see what the differences are. There may be a typo, or you may need to append ".world" to the end of your service name. Ask the SQL*Net people for more help on this.
    Everything works file if use the following url in ifsDefault.properties file
    IFS.SERVICE.JDBC.DatabaseUrl=jdbc:oracle:thin:@mydbmachine:1521:MYTEST.
    My question is it ok to use thin driver instead of oci driver for ifs connection. Would it cause any problem when i move my java code to production machine and use the thin driver for ifs connection AW> Unfortunately, the thin driver is not certified. There are performance problems when retrieving large documents across the net, and there have been unconfirmed instability problems.
    AW> Hope that helps.
    AW> Alan
    AW> iFS Product Management

  • Oracle8i and Oracle9i with BWLS5.1

    Hi, I need help!!!
    I ve a Oracle8i and an Oracle9i connection pools in WLS 5.1
    The Oracle9i connection pool is not stable, and have been told to upgrad the drivers for it. I wonder if there is any problem use connection pool to an Oracle8i and Oracle9i, without any conflicts.
    Can WLS5.1 handle it? how should I do ?
    Pleaaaase!
    regards / John Cokoulo

    Hi Sree,
    Sorry, I was wrong, I found the JDBC drivers for the Oracle9i.
    The JDBC pack contains the OCI and Thin drivers.
    Thanks alot.
    best regards, John.
    "John" <[email protected]> wrote:
    >
    Hi Sree,
    thanks alot for your help!
    I was looking for Oracle 9i Thin driver, but could not find any!
    The only I could find was Oracle 9i thin JDBC driver for Mac OS X.
    and thanks again for your help.
    regard, John!
    "Sree Bodapati" <[email protected]> wrote:
    Hi John,
    WebLogic jDriver for Oracle 9i is not available for WLS5.1. Its only
    available for WLS6.1SP2 and above.
    I suggest you use the Oracle thin driver from Oracle to connect to the
    9i
    database.
    when you download and install the 9i thin driver, the connection pool
    can be
    configured as,
    weblogic.jdbc.connectionPool.O9iPool=\
    url=jdbc:oracle:thin:@9imachinename:port:SID,\
    driver=oracle.jdbc.driver.OracleDriver,\
    loginDelaySecs=1,\
    initialCapacity=5,\
    maxCapacity=12,\
    capacityIncrement=2,\
    allowShrinking=true,\
    shrinkPeriodMins=15,\
    refreshMinutes=12,\
    props=user=o9iusr;password=o9ipwd;weblogic.oci.min_bind_size=660
    You cannot use two different OCI drivers at the same time to create
    Connection pools in a single server.
    HTH
    sree
    "John" <[email protected]> wrote in message
    news:[email protected]...
    Hi Sree, thanks for your help... now this information is what I got.
    Some data:
    ORACLE_HOME=/oracle/product/8.1.7
    PATH includes $ORACLE_HOME/bin
    My ld library path include the oracle driver: oci815_8:$ and ORACLE_HOME/lib
    As I can see is the oci815_8 in use.
    weblogic.jdbc.connectionPool.O8iPool=\
    url=jdbc:weblogic:oracle,\
    driver=weblogic.jdbc.oci.Driver,\
    loginDelaySecs=1,\
    initialCapacity=5,\
    maxCapacity=12,\
    capacityIncrement=2,\
    allowShrinking=true,\
    shrinkPeriodMins=15,\
    refreshMinutes=12,\
    props=user=o8iusr;password=o8ipwd;server=O8iServer;weblogic.oci.min_bind_siz
    e=2000
    weblogic.jdbc.connectionPool.O9iPool=\
    url=jdbc:weblogic:oracle,\
    driver=weblogic.jdbc.oci.Driver,\
    loginDelaySecs=1,\
    initialCapacity=5,\
    maxCapacity=12,\
    capacityIncrement=2,\
    allowShrinking=true,\
    shrinkPeriodMins=15,\
    refreshMinutes=12,\
    props=user=o9iusr;password=o9ipwd;server=O9iServer;weblogic.oci.min_bind_siz
    e=660
    Now Can I Make Tow Connection Pools To Oracle With Different Drivers
    Like Let The O8i Go To The Old oci815_8 Drivers,
    And Install New Oci Drivers For The Oracle9i ??????
    "Sree Bodapati" <[email protected]> wrote:
    Can you post the connection pool properties url and driver, they should
    tell
    us what driver you may be using.
    sree
    "John" <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    I dont know exactly what driver we use, but I know that the same driver
    is
    in
    use for bothe 8i and 9i. And I know that the driver is old, (from 2000).
    The behavior is that connection duo the 9i are rollin back sometimes,
    about
    30%
    of all transactions are rolling back.
    Thats why I ve been told to use newer drivers (9i drivers).
    So, yes, I see exceptions, roll back exceptions of the transactionsthat
    are
    trying
    to connect to the database pool.
    But I wonder how to do that, and how can I see exactly what driver
    we
    use
    now?
    Please help me!!!!
    "Sree Bodapati" <[email protected]> wrote:
    John,
    What driver are you using to connect to 8i and 9i? What is the behavior
    you
    are seeing with the pool connections, when you say pool is not stable?
    do
    you see any exceptions/hangs ?
    Also ensure that you have testConnsOnReserve=true (on the 9i pool)
    so
    that
    the connections get recreated if they go bad.
    hth
    sree
    "John" <[email protected]> wrote in message
    news:[email protected]...
    Hi, I need help!!!
    I ve a Oracle8i and an Oracle9i connection pools in WLS 5.1
    The Oracle9i connection pool is not stable, and have been told to
    upgrad
    the
    drivers for it. I wonder if there is any problem use connection pool
    to an
    Oracle8i and Oracle9i, without any conflicts.
    Can WLS5.1 handle it? how should I do ?
    Pleaaaase!
    regards / John Cokoulo

  • OCI & thin drivers

    I am using Oracle8i and I find two drivers are available for usage in JDBC applications: OCI8 and thin
    What is the distinction between OCI and thin dirvers?
    To which type of dirver does these two belong to?
    When should I use which dirver?
    A detailed explation would be appreciated.
    Thanks in Advance.
    RP

    The OCI driver requires an Oracle client install on the same machine while the thin driver does not. If you cannot install additional files on the client computer (such as using an applet) you have to use the thin diver.
    The OCI driver is slightly faster since a portion of it is written in C. It also supports things such as Oracle object types and PL/SQL tables while the thin driver does not.

Maybe you are looking for

  • Addition of dynamic selection fields on FBL3N

    Hi all, I want to add LIFNR(vendor accnt) and NAME1(vendor name) on the 'dynamic selections' screen of transaction FBL3N. I need to get these fields from LFA1 but LFA1 is not present in the Logical database of this program. Please help me and tell me

  • Unknown error when editing Pages document.

    I uploaded a Pages document to the iCloud Drive via the web browser. I can open and read the document using Pages on my iPad. However, when I attempt to edit the document, it tells me "Unknown Error: Document must be closed." Is this a bug that Apple

  • [Solved]D-bus problem's after upgrade hal to 5.13 and xorg-server.

    Hello Toaday I upgraded my system to following packages. startx and I got freeze Hal restart fail. Dbus restart. Fail. Error: Failed to start message bus: Error in file /etc/dbus-1/system.d/xorg-server.conf collumn 1 line 0 elemnt not found I seen th

  • Character Movement + Rotation

    Hello, I am currently working on a car racing game but I am new to designing the engine for my game such as the physics for my car. So, I took help from a tutorial but could'nt quite understand the trigonometry part, can you explain it. The part I di

  • Client Upgrade tool - run-time error on client?

    Hello, Iu2019m facing an issue sending out Client Upgrade Packages. The package arrives on the client, but it the install process gets stuck immediately with the Run-time error 35603. Have you got this error below u2013 or do you have any idea what I