ProC 를 사용할 걸 권하고 쉽군요. 그러면 SQL 문을 OCI format으로 프리 컴파일 해주니 무척 좋지요.! 관련 문서는 oracle홈의 테크넷에 가면 메뉴얼이 있으니 보구요.
그리고 연결문제는 제 생각에는 Listener를 설정하지 않으신것 같군요^^;
Net8 Configuration Assistance로 리스너를 리눅스로 설정하세요.
서버가 Local에 있으면 ID/PASS 만 넘겨주면 연결되지만 리스너가 설정되지 않은 상태에서 서비스 명까지 넘겨 주어야 하는데 이건 약간 문제가 있습니다.
물론 ID넘겨줄때 위의 방식에 즉 ID/PASS@서비스명 이렇게 넘겨줘 버리면 되지만 경우에
따라 문제가 되는 경우도 있습니다. 그러니 리스너 설정하세요.
연결하는 예제는 다음과 같습니다.(ProC)
int oifc_connect(char* arg_id,char* arg_pass, char* arg_service)
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
EXEC SQL END DECLARE SECTION;
strcpy((char *) username.arr, arg_id);
username.len = (unsigned short) strlen((char *) username.arr);
strcpy((char *) password.arr, arg_pass);
password.len = (unsigned short) strlen((char *) password.arr);
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n");
EXEC SQL CONNECT :username IDENTIFIED BY :password;
// 이부분이 연결하는 SQL 명령이죠! 한꺼번에 처리하려면 username
// 에 scott/tiger@service_name 이런식으로 하면 됩니다.
return DB_CON_SUCCESS;
}
그람. ProC 메뉴얼 보면 아주 자세히 나와 있떠요. ^^
|