본문 바로가기
TechNical/ETC.

ProC 초간단 정리...

by 강멍멍이 2011. 3. 20.
반응형
니미.. 이제 살다살다 Proc까지 알아야 하나.. 하하.
요즘 참.. 살기 힘들다. 날 너무 힘들게 하는군~ 하지만 버텨야지 어떻하겠냐.
딴 방법이 생길때 까지.... 슬픈 현실이다.
각설하고..

왜 Proc를 사용하느냐.. 이딴건 개나 줘버리고.
그냥 DB랑 하는 일들 sql문을 쉽게 날리고 싶어서 쓴다고 치자.

test.pc로 맨들어서 컴파일 하면 test.c가 맨들어지고 얘를 또 컴파일하면 test.o가 맨들어진다.

C와 비스므리하게 되어 있다.
변수 쓸라면 선언해야 하고 if, for, while 다 있다.

sql변수 선언은 구역선하고 해야 한다.
이런식으로..

EXEC SQL BEGIN DECLARE SECTION;
int id;
varchar name[20];
char sex[1];
EXEC SQL END DECLARE SECTION;

varchar쓸라면 좀 그지같다. 길이를 정해줘야 한단다.

strcpy(name.arr, "scott");
name.len = strlen(name.arr);

뭐 이렇게 해야 한다고 한다.


쿼리 날려서 값 받아서 변수에 담기
INTO :var 이렇게 가져온다.

EXEC SQL select id, sex INTO :id, :sex FROM emp WHERE name = :name;

이렇게 하면 조회한 값 넣을 수 있다.

sqlca란게 있다.
EXEC SQL INCLUDE sqlca;
이렇게 대가리 부분에 적어서 첨부해줘야 한다.
요걸 하면은 조회한 것의 결과값을 알 수 있다. 데이터를 말 하는게 아니고 .. 그 결과.. 에라 그냥 그래.

if (sqlca.sqlcode != 0 ) {
}
이런식으로 쓸 수 있다.
0이 아니면 에러가 발생한 거야.
코드값이 뭔지 알고 싶으명 명령어를 이렇게 날려보면 나온단다.

> oerr ora 에러코드값

여러건의 데이터를 처리할려면 커서를 쓰자.

EXEC SQL DECLARE t_cursor CURSOR FOR
 select name from emp;

EXEC SQL OPEN t_cursor;

for(;;) {
 EXEC SQL FETCH t_cursor
          INTO :name;

printf("%S", name);
}

EXEC SQL CLOSE t_cursor;



ProC가 대충 이렇다..ㅡ.ㅡ 끝.
잠와죽긋네..
반응형

댓글