Pro*C 에서 FETCH시 포인터변수는 못받나요..?

kakazaru의 이미지

 
 
EXEC SQL BEGIN DECLARE SECTION;
 
char    *pDATA;
 
EXEC SQL END DECLARE SECTION;
 
 
pDATA = (char*)malloc(3520);
memset(pDATA, 0x00, 3520);
 
EXEC SQL DECLARE TEST_Cursor CURSOR FOR
         SELECT DATA
           FROM TEST_TABLE
          WHERE ID_KEY = :KEY;
 
EXEC SQL OPEN TEST_Cursor;
 
EXEC SQL FETCH TEST_Cursor
         INTO    :pDATA;
 
EXEC SQL CLOSE TEST_Cursor;

식으로 DATA필드(CLOB)의 값을 얻어오고싶은데

배열로는 얻어와 지고

포인터를 쓰면 데이터가 안들어오는것 같아서요..

혹시 다른 방법이 있을까요 ?

익명 사용자의 이미지


http://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_04dat.htm#i27299

호스트 변수 항목 보시면 스칼라 타입만 가능하다고 나오네요

익명 사용자의 이미지


http://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_04dat.htm#i9172

SQLCODE가 정상이라면 다른 문제일 거 같네요

기초 type (int, long.. )으로 테스트 해보시면 도움이 될 거 같습니다.

kakazaru의 이미지

답변 감사합니다^^