[Linux] OCI (Oracle Call Interface)
OCI란?
Oracle call Interface
맞춤형 패키지 애플리케이션을 위한
오라클 데이터베이스에 대한 포괄적인
고성능 네이티브 C언어 인터페이스 이다.
구글링을 통해 oci 를 치면 2가지가 나오는데, 하나는 oracle call interface 이고 하나는 Oracle Cloud Infrastructure 이다 이 두개는 다른 것이니 구분 할 것 .
Oracle Cloud Infrastructure은 클라우드 서비스를 구현하기 위해 필요한 기본적인 인프라 환경, 즉 컴퓨터 서버, 네트워크 , 스토리지, 보안, 자원 관리 등을 포함하는 오라클 클라우드 기반 환경을 의미하는것.
사실 Oracle Call Interface 는 구글링을 해도 잘 나오지 않는다. 영문 pdf를 번역하면서 내용을 이해하는 것 밖에 답이 없는 상황. 그럼에도 불구하고 oci 접속방식을 통해 sql을 실행시키는 법을 간단하게 예제로 풀어보고자 한다.
Makefile을 생성하는것이 익숙하지 않기 때문에 이번 차트에서는 쉘스크립트를 통해 컴파일 하는 방식을 써보려 한다.
1. OCI를 테스트 할 디렉토리를 생성해준다
**나는 $ORACLE_HOME 즉 /app/oracle/product/19.0.0/db_home_1 에 ocitest 라는 디렉토리를 생성했다
# su - oracle (오라클 계정 접속후 진행)
2. OCI 헤더들이 있는 경로를 파악해준다
예전버전에는 $ORACLE_HOME/rdbms/demo 아래에 존재했지만 이 디렉토리가 없을 경우엔 $ORACLE_HOME/rdbms/public 아래에 있을 수도 있다. 나는 후자의 경로에 oci 헤더파일이 생성되어 있었음
3. 컴파일을 시켜줄 sh(쉘) 파일 생성
* 나는 main 이라는 이름으로 쉘파일을 작성함
$ vi main.sh (쉘 만들기)
쉘 안에 oci 헤더파일 경로를 잘 생각해서 다음과 같은 내용을 넣어주자
4. c 파일을 생성하여 sql 접속 및 쿼리 실행이 가능한 c 언어 파일을 만들자
* 나는 main.c 라는 이름으로 c 파일 작성
$ vi main.c (c 파일 만들기)
5. 쉘파일 컴파일 해주기
$ bash main.sh (쉘파일 컴파일 하는 명령어)
* 초록색 main 이라는 아이가 생성 되었으면 잘 컴파일 된 것
6. main 실행시키기
$ ./main (컴파일된 파일 실행하기)