database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 1991 게시물 읽기
No. 1991
Re: 미표한 차이점... 미치기 일보 직전..
작성자
김규태
작성일
2000-11-08 19:55
조회수
4,793

>>김동철 님께서 쓰시길<<

 

:: memset(sqlCmd,0x00,sizeof(sqlCmd));

:: sprintf(sqlCmd,"SELECT ScnUserCnt, ScnTotalCnt FROM SYSCOUNT");

:: EXEC SQL PREPARE SQL_SYSCOUNT FROM :sqlCmd;

:: EXEC SQL DECLARE CUR_SYSCOUNT CURSOR FOR SQL_SYSCOUNT;

:: EXEC SQL OPEN CUR_SYSCOUNT;

:: EXEC SQL FETCH CUR_SYSCOUNT

:: INTO :maxLstCnt,:maxLstCntTmp;

::

:: /*

:: EXEC SQL SELECT ScnUserCnt INTO :maxLstCnt FROM SYSCOUNT WHERE ScnSysId = 1;

:: EXEC SQL SELECT ScnTotalCnt INTO :maxLstCntTmp FROM SYSCOUNT WHERE ScnSysId = 1;

:: */

::

:: 둘 다 똑 같은 역활을 하는 Pro*c 문장입니다. 근데요.. 제가 발견한 것인데...

:: 두 개의 정수값을 가지고 오는 둘은 차이점을 보입니다.

:: 원래 1 , 1 이렇게 가지고 와야하는데 주석처리된 문장은 1234, 1 이렇게

:: 가지고 옵니다. 저도 나름 되로 생각해보았습니다. 결론은 모르겠다입니다.

:: 이 둘의 차이점을 아시는 분은 답변해주십시오... 제발... 부탁드립니다..꾸벅~~~

::

:: 커서를 열고 데이터를 가지고 오는 것이 정석인가요.... 아님 밑에 처럼 데이터를

:: 가지고 오는 것이 좋은 방법인가요......... 미치기 일보 직전입니다.

:: 가르쳐주세엽.........

 

저도 프로그램을 많이 짜보지 않아서, 그리고 이 예문이 전체가 아니어서

정확한 판단은 못하겠습니다만...

 

1. 변수는 항상 초기화를 하여야 합니다. --> :maxLstCnt,:maxLstCntTmp

그리고 커서는 반드시 close 하여야 합니다.

또한 DB를 access 할 때마다 반드시 error를 조사해야 합니다.

 

2. 오라클7에서 Dynamic SQL은 4가지 방법이 있습니다.

method1, ... , method4 가 있고 번호가 놓을수록 어려워지죠.

여기서는 간단하게 입력변수가 없고, 출력변수만 있으면 되니 굳이

어려운 방법을 사용할 필요는 없지요.

단지 WHERE 조건절에서 위의 예문처럼 WHERE ScnSysId = 1 있을때

1 대신에 바인드 변수를 사용하면 오라클 DBMS의 성능이 좋아진다는

점입니다.

 

그리고 커서는 여러개의 row를 처리할 때만 반드시 사용하면 되고,

위의 경우처럼 1개의 row를 다루는 경우는 프로그래머의 취향에 따라서 ...

하지만 프로그램을 간결하게 짠 경우 유지보수도 쉽겠지요.

 

다른 분들의 의향은 어떤가요?

[Top]
No.
제목
작성자
작성일
조회
1996sqlplus 를 oracle 계정말고 다른 계정으로 실행시킬수 있는 방법을 가르쳐 주십시요..
이창훈
2000-11-09
4126
1997┕>Re: sqlplus 를 oracle 계정말고 다른 계정으로 실행시킬수 있는 방법을 가르쳐 주십시요..
이창훈
2000-11-09 16:35:35
8406
1989PHP에서 오라클 Stored procedure
성유진
2000-11-08
4364
1988오라클 7.3.2버전의 bin파일이름들입니다...
최시환
2000-11-08
4086
1990┕>Re: 오라클 7.3.2버전의 bin파일이름들입니다...
김규태
2000-11-08 19:43:26
4047
1987미표한 차이점... 미치기 일보 직전..
김동철
2000-11-08
4131
1991┕>Re: 미표한 차이점... 미치기 일보 직전..
김규태
2000-11-08 19:55:09
4793
1985오라클과 php 문제인데 참 야릇한 문제여요
xpurple
2000-11-08
3922
1995┕>Re: 오라클과 php 문제인데 참 야릇한 문제여요
차주현
2000-11-09 12:23:57
4163
1984죄송하지만 그래도 문제가 발생합니다
강동호
2000-11-08
4072
1983오라클8.1.6 + apache_1.3.9 + php 4.0.2 설치 관련....
최시환
2000-11-08
3755
1986┕>Re: 오라클8.1.6 + apache_1.3.9 + php 4.0.2 설치 관련.... -&gt; 해결했슴다.
최시환
2000-11-08 17:07:57
4335
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다