ORA_PROC 매크로는 #ifdef 또는 #ifndef 같은 C 전처리기 지시문에서만 사용할 수 있습니다. EXEC ORACLE 조건문은 C 전처리기 매크로와 동일한 네임스페이스를 공유하지 않습니다. 따라서 다음 예제의 조건은 미리 정의된 ORA_PROC 매크로를 사용하지 않습니다: 16)그룹화 변수 예제로 고유 값을 계산하면 동일한 점수를 받은 학생 수를 어떻게 계산할 수 있습니까?] 또는 스트런치 또는 printf 문길이를 사용하는 경우; 예를 들어, 호스트 구조의 다음 사용이 잘못되어 런타임 오류가 발생합니다. 먼저 포인터 호스트 변수를 선언한 다음 아래 예제와 같이 포인터를 원하는 멤버의 주소로 설정합니다. 구조체 멤버와 포인터 변수의 데이터 형식은 동일해야 합니다. 대부분의 컴파일러는 불일치를 경고합니다. 일반적으로 표시기 변수를 사용하여 입력 호스트 변수에 null을 할당하고 출력 호스트 변수에서 null 또는 잘린 값을 검색합니다. 아래 예제에서는 세 개의 호스트 변수와 하나의 표시기 변수를 선언한 다음 SELECT 문을 사용하여 호스트 변수 emp_number의 값과 일치하는 직원 번호를 데이터베이스에서 검색합니다. 일치하는 행이 발견되면 Oracle은 출력 호스트 변수 급여 및 커미션을 해당 행의 SAL 및 COMM 열 값으로 설정하고 표시기 변수 ind_comm에 반환 코드를 저장합니다. 다음 문은 ind_comm을 사용하여 작업 과정을 선택합니다. 전처리기는 지시문 #과 ##을 무시하고 사전 컴파일러가 인식해야 하는 토큰을 만듭니다.

물론 C 컴파일러의 전처리자가 이를 지원하는 경우 이러한 명령을 순수 C 코드에서 사용할 수 있으므로 사전 컴파일러가 처리할 필요가 없습니다. 이 예제에서는 전처리기 명령 ##을 사용할 수 없습니다. 사전 컴파일러도 길이(짧은 크기)를 반환하고 시스템에 대한 단어 정렬 제한으로 인해 길이 후에 패딩을 추가할 수 있기 때문에 이 기능이 필요합니다. 시스템의 정렬 방법을 모르는 경우 길이와 패딩에 충분한 추가 바이트를 할당해야 합니다(일반적으로 9로 충분해야 있음). 다음 예제에서는 데이터베이스에서 문자 배열로 검색된 값에 대한 CHAR_MAP 옵션 설정의 효과의 가능한 모든 조합을 보여 줍니다. 현재 Pro*C/C++는 다음 예제와 같이 호스트 변수(예: char 또는 VARCHAR)의 크기를 선언할 때 숫자 리터럴과 관련된 간단한 상수 식을 사용할 수 있습니다. 구조는 선택 목록의 연결된 열과 동일한 순서로 선언되지 않습니다.