리눅스환경 개발/PRO*C 4

[PRO*C] Dynamic sql (method 1~3)

Method 1 QUERY문이 아니면서 호스트 변수가 없는 경우 Dynamic SQL문을 작성하고 “EXECUTE IMMEDIATE”를 이용하여 즉시 실행함/ SQL문은 QUERY문이 아니어야 하고, 입력용 호스트 변수가 존재하지 않아야 함 ( SQL문이 매번 실행될 때마다 PARSING ) Method 2 QUERY문이 아니면서 호스트 변수가 정해지지 않은 경우 Dynamic SQL문 작성 후 “PREPARE” 와 “EXECUTE” 명령에 의해 실행함 / SQL문은 QUERY문이 아니어야 하고, 여기에서 사용된 호스트 변수는 프리컴파일 시점에는 데이터 타입과 위치는 정해져 있어야함 Method 3 호스트 변수와 SELECT컬럼이 정해진 QUERY문인 경우 Dynamic SQL문 작성 후 “PREPARE..

[PRO*C] PRO*C 개념, 사용이유, 프로그램 개발 과정

Pro*C 란? - 오라클에서 제공하는 전처리 컴파일러 : Pre-Compiler > C프로그램에 포함된 SQL 문장 -> C함수 호출로 변환한다. - 오라클 Pro*C의 특징 > 전처리 컴파일러 > C 프로그램 코드 안에 "SQL 명령어"의 사용을 가능하게 한다. > Pro*C로 작성된 프로그램의 확장자 : .pc > .pc 프로그램의 기본 문법은 C언어 문법을 따른다. Pro*C를 사용하는 이유 > 비교적 쉽게 데이터베이스 연동 프로그램의 작성이 가능하다. > SQL과 가장 가까운 형태의 코드를 사용하여 프로그램이 가능하다. > C를 이용하여 데이터 베이스 기능을 "직접" 호출하는 것 보다 쉽다. Pro*C 를 이용한 프로그램 개발 과정 ① .pc 소스 코드 작성 : C언어 + SQL 명령어 ② Pr..

[PRO*C] PLS-S-00201 ' ' 식별자가 정의되어야 합니다. (오류해결)

PRO*C 개발 도중에 PLS-S-00201 ' ' 식별자가 정의되어야 합니다. 라는 오류가 확인되었다. DML은 SQL언어이므로 구문 검사 시 문제가 안되지만 프로시저는 SQL지정 구문이 아니기 때문에 인식 불가 오류가 발생한다. SQLCHECK를 SEMANTICS로 설정하고 USERID/PASSWD를 입력하여 PRO*C를 실행해주면 된다. [oracle@oracle ~]$ proc iname=sherpa.pc SQLCHECK=SEMANTICS userid=[ID]/[PW] 이후에 make all을 통해 정상적으로 작동