Oracle PL/SQL 및 C/C++ 언어에 익숙하며 데이터베이스에서 데이터를 가져 와서 결과를 콘솔/명령/출력 스트림으로 출력하는 코드를 작성할 수 있습니다. /기타.CXX-E-UNDECLARED 식별자 "exec"가 정의되지 않았습니다.
그러나 openVMS 개발에 익숙하지 않습니다. 하지만 (운영 체제에 내장), CXX
컴파일러/컴파일 연결 및 다음 코드를 실행 한 후 작동하는지 확인 할 수 있었다 : 이제
#include <stdio.h>
void main(void) {
printif("Hello World!\n");
}
을, 나는 (오라클 데이터베이스에 연결하기 위해 최선에 노력 동일한 서버에 설치되어 있고 다른 C/CP 파일을 데이터베이스에서 끌어 오기 위해 작성된 및 잘 작동합니다.),하지만 데이터베이스에서 읽으려고 모든 코드를 컴파일 할 수 없습니다. 나는 것을 컴파일 할 때
#include<stdio.h>
void main(void) {
int cnt = -1;
exec sql SELECT count(*) INTO :cnt FROM EMPLOYEES;
printif("Number of employees: %d", cnt);
}
, 내가 얻을 : 처음에는
%CXX-E-UNDECLARED, identifier "exec" is undefined
내가 상기 라이브러리를 누락 될 수 있다고 생각, 단순화를 위해, 여기에 데이터베이스에 액세스하려고 코드입니다
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#ifdef PC
#include <fcntl.h>
#else
#include <unixio.h>
#include <file.h>
#endif
#include <ctype.h>
하지만 위의 라이브러리 중 어느 것도 컴파일러가 exec sql
statetment에 대해 불평 중지 발생하지 : 헤더, 그래서 나는 다음 시도했다.
openVMS에서 C 프로그램을 작성하는 것에 대한 오라클 기술 문서를 살펴본 결과 <sqlca.h>
과 <sql_sqlda.h>
등의 샘플 코드가 있지만 그 중 아무 것도 내 문제를 해결하지 못했습니다.
,
(??? 컴파일시에 즉석에서 종속 라이브러리를 부착하여) 어떻게 든 EXEC SQL 문을 담당 특별 명령으로 컴파일 이전에 작성된 다른 C 파일을 할 수있다 그래서 내 질문은 : 내 코드를 컴파일하고 특정 테이블의 레코드 수를 얻으려면 어떻게해야합니까?