#define SQL_CD sqlca.sqlcode;
#define SQLCA_STORAGE_CLASS extern
EXEC SQL INCLUDE sqlca;
void CMyProc::PrepareCursor()
{
EXEC SQL BEGIN DECLARE SECTION;
char strSelect[1024];
EXEC SQL BEGIN DECLARE SECTION;
memset(strSelect, 0x00, sizeof(strSelect));
sprintf(strSelect,
" SELECT ₩n"
" SEQID, CODE ₩n"
" FROM mytable SUBPARTITION(SP%d) ₩n"
" WHERE STATE='1' ₩n", 1);
try
{
EXEC SQL PREPARE PREF_TB_READ FROM :strSelect;
if (SQL_CD != 0)
throw SQL_CD;
EXEC SQL DECLARE mycursor CURSOR FOR PREF_TB_READ;
if (SQL_CD != 0)
throw SQL_CD;
}
catch (int &ex)
{
;
}
}
void CMyProc::OpenCursor()
{
EXEC SQL OPEN mycursor;
if (SQL_CD != 0)
throw SQL_CD;
}
}
int CMyProc::FetchCursor()
{
EXEC SQL BEGIN DECLARE SECTION;
struct stData stDataDB;
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL FETCH mycursor INTO :stDataDB;
if (1403 == SQL_CD) // No data found
{
return SQL_CD;
}
else if (-1001 == SQL_CD) // invalid cursor
{
return SQL_CD;
}
else (0 == SQL_CD) // success
{
// todo : trim space & treat data
}
if (SQL_CD != 0)
throw SQL_CD;
}
}
'IT > DB' 카테고리의 다른 글
Pro*C (0) | 2022.12.29 |
---|---|
SQL 연산자 BETWEEN, LIKE (0) | 2022.02.24 |
Oracle 컬럼 값 연결하여 SELECT 하기 (0) | 2022.02.21 |
Oracle 5분간 실패율 10%이상 집계 쿼리 (0) | 2021.11.22 |
오라클 Pro*C 몇 분 지났는지 정보구하기 (0) | 2021.11.16 |
오라클 ProC 분단위 기간 정보 구하기 (0) | 2021.11.15 |
Oracle 두 시간 사이의 차이 구하기 (0) | 2021.10.23 |
Oracle PL/SQL 블록의 구조 (0) | 2021.07.17 |
PL/SQL 데이터 타입 (0) | 2021.07.17 |
댓글