본문 바로가기

Pro C

Pro*c를 이용한 오라클 PL/SQL function 호출 Proc*c를 이용해 Sub Program(Procedure or Function)을 호출 하는 방법에 대해 설명한다. 자료를 찾아보면 대부분의 샘플 코드가 Procedure 로만 되어 있다. 여기서는 Function을 호출 해 보기로 한다. 사실 호출 방법은 거의 비슷 하다. - 컴파일 방법 PL/SQL 구문을 사용하기 때문에 proc 컴파일 옵션을 주어야 한다. 그런데, 컴파일 옵션을 주면 다른 Pro*c 구문에서 컴파일이 안되는 일이 발생을 한다. 따라서, PL/SQL 구문을 사용하는 소스는 별도 .pc 파일로 때어 내어서 별도 컴파일을 해야한다. $ proc include=../inc iname=sub.pc SQLCHECK=SEMANTICS userid=oracleid/oraclepwd 여기서 기.. 더보기
ORA-01002 fetch out of sequence ORA-01002 fetch out of sequence 는 여러 경우에 발생을 한다. 그중 한가지에 대한 오류 발생 사례 이다. DB Link로 Remote 테이블을 참조 하고 있는 프로세스가 작업을 수행하고 있는 상태에서, Remote DB가 Shutdown 되는 경우 위 에러가 발생 한다. Remote DB가 Start되고 새로운 세션을 맺어야 프로세스가 정상 동작을 한다. 세션을 유지한 상태에서 Remote DB가 Start 되어도 위 에러가 계속 발생한다. 말이 어렵다 테스트 해보자. 1. ORA TNS에 RemoteDB를 추가한다. 2. DB 링크를 생성한다. CREATE PUBLIC DATABASE LINK test_link CONNECT TO remoteDBid IDENTIFIED BY r.. 더보기
oracle 유용한 쿼리 Join UPDATE UPDATE AA A SET A.TARGET = ( SELECT B.TARGET FROM BB B WHERE A.PK = B.PK ) WHERE EXISTS ( SELECT 1 FROM BB B WHERE A.PK = B.PK ); 쿼리 시간 보기 set timing on; set timing off; PLAN 정보 보기 set autot on exp 사용자 쿼리 set autot off rollback; 현재 연결된 세션 select count(*) from v$session; 세션 정보 select status, sid from v$session; 사용자명 별 연결 세션 select USERNAME, count(1) from v$session group by USERNAME; 케.. 더보기