Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
store proc 작성및 사용방법 (tools : 델파이 db:oracle)알려줘잉
저는 델파이 초보입니다.
stored proc 에 대해 꼭배우고 싶은데 서적에 자세히 쓰인게 없네요
자세한 예제 부탁드립니다.
1
COMMENTS
이희정
•
2001.04.20 18:49
박형근 wrote:
> 저는 델파이 초보입니다.
> stored proc 에 대해 꼭배우고 싶은데 서적에 자세히 쓰인게 없네요
> 자세한 예제 부탁드립니다.
일별합계내는 프로시져 소스 올려드리져.. 참고하세염.. ^^
CREATE PROCEDURE PS_DAY_TOTAL
(I_SDATE IN DATE, /* 시작일자 */
I_EDATE IN DATE) /* 종료일자 */
AS
-- I_SDATE DATE DEFAULT '2000/12/31'; /* 시작일자 */
-- I_EDATE DATE DEFAULT '2000/12/31'; /* 종료일자 */
ERROR_CODE VARCHAR2(1) DEFAULT 'N'; /*에러메세지*/
INWON_CNT1 NUMBER(3) DEFAULT 0; /* 일반인원 */
INWON_CNT2 NUMBER(3) DEFAULT 0; /* 후불인원 */
INWON_CNT3 NUMBER(3) DEFAULT 0; /* 학생인원 */
INWON_CNT4 NUMBER(3) DEFAULT 0; /* 원호1인원 */
INWON_CNT5 NUMBER(3) DEFAULT 0; /* 원호2인원 */
TEMP_EXP_DATE DATE; /* 등록일자 */
TEMP_SA_CODE VARCHAR2(4); /* 영업소코드 */
TEMP_WAY_CODE VARCHAR2(4); /* 노선코드 */
TEMP_BUS_GBN VARCHAR2(1); /* 고속버스구분 */
TEMP_PRICE1 NUMBER(5) DEFAULT 0; /* 승차운임 */
TEMP_PRICE2 NUMBER(5) DEFAULT 0; /* 승차운임 30% */
TEMP_PRICE3 NUMBER(5) DEFAULT 0; /* 승차운임 50% */
INWON_AMT1 NUMBER(8) DEFAULT 0; /* 일반인원금액 */
INWON_AMT2 NUMBER(8) DEFAULT 0; /* 후불인원금액 */
INWON_AMT3 NUMBER(8) DEFAULT 0; /* 학생인원금액 */
INWON_AMT4 NUMBER(8) DEFAULT 0; /* 원호1인원금액 */
INWON_AMT5 NUMBER(8) DEFAULT 0; /* 원호2인원금액 */
TEMP_WAY_CNT1 NUMBER(2) DEFAULT 0; /* 정규편도수 */
TEMP_WAY_CNT2 NUMBER(2) DEFAULT 0; /* 심야편도수 */
TEMP_WAY_CNT3 NUMBER(2) DEFAULT 0; /* 임시편도수 */
TEMP_WAY_CNT4 NUMBER(2) DEFAULT 0; /* 기타편도수 */
TEMP_AMOUNT NUMBER(8) DEFAULT 0; /* 현금승차액 */
TEMP_TOTAL NUMBER(9) DEFAULT 0; /* 합계금액 */
BEGIN
DECLARE
CURSOR T_CUS IS
SELECT EXP_DATE,
SA_CODE,
WAY_CODE,
BUS_GBN,
SUM(AMOUNT),
SUM(INWON1),
SUM(INWON2),
SUM(INWON3),
SUM(INWON4),
SUM(INWON5),
SUM(DECODE(BUS_GBN1, 1, 1, 0)),
SUM(DECODE(BUS_GBN1, 2, 1, 0)),
SUM(DECODE(BUS_GBN1, 3, 1, 0)),
SUM(DECODE(BUS_GBN1, 1, 0,
DECODE(BUS_GBN1, 2, 0,
DECODE(BUS_GBN1, 3, 0, 1))))
FROM SM05_EXP_MAST
WHERE EXP_DATE BETWEEN I_SDATE AND I_EDATE
GROUP BY EXP_DATE,
SA_CODE,
WAY_CODE,
BUS_GBN;
BEGIN
dbms_output.enable;
OPEN T_CUS;
LOOP
FETCH T_CUS INTO TEMP_EXP_DATE, TEMP_SA_CODE, TEMP_WAY_CODE, TEMP_BUS_GBN, TEMP_AMOUNT,
INWON_CNT1, INWON_CNT2, INWON_CNT3, INWON_CNT4, INWON_CNT5,
TEMP_WAY_CNT1, TEMP_WAY_CNT2, TEMP_WAY_CNT3, TEMP_WAY_CNT4;
EXIT WHEN T_CUS%NOTFOUND;
BEGIN
SELECT MAX(PRICE1), MAX(PRICE2), MAX(PRICE3)
INTO TEMP_PRICE1, TEMP_PRICE2, TEMP_PRICE3
FROM SM02_TIK_MAST
WHERE SA_CODE = TEMP_SA_CODE
AND BUS_CODE = TEMP_WAY_CODE
AND TIKET_TYPE = TEMP_BUS_GBN || '1';
EXCEPTION
WHEN NO_DATA_FOUND THEN
BEGIN
ERROR_CODE := 'Y';
EXIT;
END;
END;
INWON_AMT1 := NVL(INWON_CNT1, 0) * NVL(TEMP_PRICE1, 0);
INWON_AMT2 := NVL(INWON_CNT2, 0) * NVL(TEMP_PRICE1, 0);
INWON_AMT3 := NVL(INWON_CNT3, 0) * NVL(TEMP_PRICE3, 0);
INWON_AMT4 := NVL(INWON_CNT4, 0) * NVL(TEMP_PRICE2, 0);
INWON_AMT5 := NVL(INWON_CNT5, 0) * NVL(TEMP_PRICE3, 0);
TEMP_TOTAL := NVL(INWON_AMT1, 0) + NVL(INWON_AMT2, 0) + NVL(INWON_AMT3, 0) +
NVL(INWON_AMT4, 0) + NVL(INWON_AMT5, 0) + NVL(TEMP_AMOUNT, 0);
BEGIN
INSERT INTO SM06_DAY_EXP
(EXP_DATE, SA_CODE, WAY_CODE, BUS_GBN,
INWON1, AMOUNT1, INWON2, AMOUNT2, INWON3, AMOUNT3,
INWON4, AMOUNT4, INWON5, AMOUNT5,
WAY_CNT1, WAY_CNT2, WAY_CNT3, WAY_CNT4, AMOUNT6, AMT_HAP)
VALUES
(TEMP_EXP_DATE, TEMP_SA_CODE, TEMP_WAY_CODE, NVL(TEMP_BUS_GBN, '9'),
INWON_CNT1, INWON_AMT1, INWON_CNT2, INWON_AMT2, INWON_CNT3, INWON_AMT3,
INWON_CNT4, INWON_AMT4, INWON_CNT5, INWON_AMT5,
TEMP_WAY_CNT1, TEMP_WAY_CNT2, TEMP_WAY_CNT3, TEMP_WAY_CNT4, TEMP_AMOUNT, TEMP_TOTAL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
BEGIN
ERROR_CODE := 'Y';
EXIT;
END;
END;
-- NULL;
-- EXIT;
END LOOP;
CLOSE T_CUS;
COMMIT WORK;
END;
END;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
미키
2001.04.20 19:53
0
COMMENTS
/
0
LIKES
양수일 경우 DBEdit에서 +를 보여주는 maskEdit는?
이정석
2001.04.20 19:23
0
COMMENTS
/
0
LIKES
그리드,엑셀,큐리포트에 대해..;;;;(__);;;;;;도움주세요..ㅠㅠ
왕초보 델
•
2001.04.20 19:41
2
COMMENTS
/
0
LIKES
c:와,d:로 나누어서,메모장에디렉토리로 나타나게하려는데..꼭
최은석
•
2001.04.20 19:48
메모장을 사용하시는 대신에....... drivecombobox 와 directorylistbox 를 사용하심이 어떨지... driv...
왕초보 델
•
2001.04.20 20:01
최은석 wrote: > 메모장을 사용하시는 대신에....... > > drivecombobox 와 directorylistbox 를 사용...
쫑아랍니다.
•
2001.04.20 19:21
1
COMMENTS
/
0
LIKES
Listview의 item 클릭시.......
최용일
•
2001.04.20 21:15
안녕하세요. 최용일입니다. for문을 이용해서 범위에 있는가를 판단하시면 되죠... procedure TForm...
문상연
•
2001.04.20 19:16
1
COMMENTS
/
0
LIKES
TreeView에서 앞에 나오는 +표시를 보이지않게 할려면?
컴맹..
•
2001.04.20 20:57
안녕하십니까.. 컴맹입니다. TreeView 의 Property에 ShowButtons라구 있는데여.. 요걸 False로 설정...
안종필
2001.04.20 19:03
0
COMMENTS
/
0
LIKES
크리스탈리포트 => A4, B4, A3 등의 용지변경
초짜
2001.04.20 18:54
0
COMMENTS
/
0
LIKES
Filter
박형근
•
2001.04.20 18:40
1
COMMENTS
/
0
LIKES
store proc 작성및 사용방법 (tools : 델파이 db:oracle)알려줘잉
저는 델파이 초보입니다. stored proc 에 대해 꼭배우고 싶은데 서적에 자세히 쓰인게 없네요 자세한 예제 부탁드립니다.
이희정
•
2001.04.20 18:49
박형근 wrote: > 저는 델파이 초보입니다. > stored proc 에 대해 꼭배우고 싶은데 서적에 자세히 쓰인...
이상남
•
2001.04.20 11:07
1
COMMENTS
/
0
LIKES
퀵레포트에서 인쇄버튼이 활성화가 안되요..?
윤미영
•
2001.04.20 23:00
저도 같은 문제로 고심하고 있습니다. 제가 테스트한 결과 QuickRep의 onNeedData 이벤트안의 내용을 삭제...
Justy Ueki Tylor
2001.04.20 10:43
0
COMMENTS
/
0
LIKES
Dll 에러임다.
Lee
2001.04.20 09:43
0
COMMENTS
/
0
LIKES
유동 ip
프리맨
•
2001.04.20 08:55
3
COMMENTS
/
0
LIKES
TCP/IP 프로그램 문의드립니다.
이경문
•
2001.04.20 09:18
10061은 Remote의 IP, Port에서 listen하지 않을 때 나타나는 현상입니다. 즉 ServerSocket이 Open되어 있...
프리맨
•
2001.04.20 20:07
이경문 wrote: > 10061은 Remote의 IP, Port에서 listen하지 않을 때 나타나는 현상입니다. > 즉 ServerS...
이경문
•
2001.04.20 22:05
procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCusteomWinSocket; ErrorEvent: TErro...
처루
2001.04.20 06:54
0
COMMENTS
/
0
LIKES
sql 에 대해서 기본적인 소스를 부탁합니다..
눈길
2001.04.20 06:58
0
COMMENTS
/
0
LIKES
질문) 퀵리포트에서 pageskip
이현신
2001.04.20 05:26
0
COMMENTS
/
0
LIKES
현재 화면이 다이렉트 출력화면인지 아닌지?
초보
•
2001.04.20 05:24
4
COMMENTS
/
0
LIKES
[으메 열받는거..] listbox1.CopyToClipboard는 왜 안돼죠?
초보
•
2001.04.20 06:23
답변 감사드립니다. 근디, 갈켜주시는 김에 인심좀 더쓰셔서 사용법도 좀 갈켜조요. 델파이 도움말을 봐...
최용일
•
2001.04.20 08:01
안녕하세요. 최용일입니다. 헬프에 보시면 메소드 설명이 있잖아여 읽어보시면 될텐데... // ListBox...
초보
•
2001.04.20 21:43
.
똥개
•
2001.04.20 06:09
CopyToClipBoard는 엄또도.. TClipBoard라는게 있어요.. 요놈을 잘까 굽구~ 튀기고~
김기정
2001.04.20 04:30
0
COMMENTS
/
0
LIKES
Async 콤포넌트의 RequestHangup에 대해 아시는 분?
석
•
2001.04.20 03:45
3
COMMENTS
/
0
LIKES
tabsheet에서요..
hobakpa
•
2001.04.20 04:17
석 wrote: > active된 page의 tabsheet의 caption의 색깔을 바꾸려고 하는데, > property를 못찼겠어요.....
석
•
2001.04.20 04:20
아 그런데, 이건, 마우스가 on일때만 인데,.. active된 페이지의 caption을 계속어던 색으로 유지하려고...
조복기
•
2001.04.20 05:30
석 wrote: > > 아 그런데, 이건, 마우스가 on일때만 인데,.. > active된 페이지의 caption을 계속어던 ...
왕초보
2001.04.20 03:34
0
COMMENTS
/
0
LIKES
[질문여]클립보드로 복사 어케해요?
이태수
•
2001.04.20 03:20
1
COMMENTS
/
0
LIKES
[Q] SQL*NET 없이 Oracle8에 접속하는 방법
성더기
•
2001.04.23 21:19
이태수 wrote: > D5 와 Oracle8을 가지고 작업을 하려고 하는데, > oracle접속시 sql*net을 사용하지않으...
박형근
2001/04/20 18:40
Views
216
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 저는 델파이 초보입니다.
> stored proc 에 대해 꼭배우고 싶은데 서적에 자세히 쓰인게 없네요
> 자세한 예제 부탁드립니다.
일별합계내는 프로시져 소스 올려드리져.. 참고하세염.. ^^
CREATE PROCEDURE PS_DAY_TOTAL
(I_SDATE IN DATE, /* 시작일자 */
I_EDATE IN DATE) /* 종료일자 */
AS
-- I_SDATE DATE DEFAULT '2000/12/31'; /* 시작일자 */
-- I_EDATE DATE DEFAULT '2000/12/31'; /* 종료일자 */
ERROR_CODE VARCHAR2(1) DEFAULT 'N'; /*에러메세지*/
INWON_CNT1 NUMBER(3) DEFAULT 0; /* 일반인원 */
INWON_CNT2 NUMBER(3) DEFAULT 0; /* 후불인원 */
INWON_CNT3 NUMBER(3) DEFAULT 0; /* 학생인원 */
INWON_CNT4 NUMBER(3) DEFAULT 0; /* 원호1인원 */
INWON_CNT5 NUMBER(3) DEFAULT 0; /* 원호2인원 */
TEMP_EXP_DATE DATE; /* 등록일자 */
TEMP_SA_CODE VARCHAR2(4); /* 영업소코드 */
TEMP_WAY_CODE VARCHAR2(4); /* 노선코드 */
TEMP_BUS_GBN VARCHAR2(1); /* 고속버스구분 */
TEMP_PRICE1 NUMBER(5) DEFAULT 0; /* 승차운임 */
TEMP_PRICE2 NUMBER(5) DEFAULT 0; /* 승차운임 30% */
TEMP_PRICE3 NUMBER(5) DEFAULT 0; /* 승차운임 50% */
INWON_AMT1 NUMBER(8) DEFAULT 0; /* 일반인원금액 */
INWON_AMT2 NUMBER(8) DEFAULT 0; /* 후불인원금액 */
INWON_AMT3 NUMBER(8) DEFAULT 0; /* 학생인원금액 */
INWON_AMT4 NUMBER(8) DEFAULT 0; /* 원호1인원금액 */
INWON_AMT5 NUMBER(8) DEFAULT 0; /* 원호2인원금액 */
TEMP_WAY_CNT1 NUMBER(2) DEFAULT 0; /* 정규편도수 */
TEMP_WAY_CNT2 NUMBER(2) DEFAULT 0; /* 심야편도수 */
TEMP_WAY_CNT3 NUMBER(2) DEFAULT 0; /* 임시편도수 */
TEMP_WAY_CNT4 NUMBER(2) DEFAULT 0; /* 기타편도수 */
TEMP_AMOUNT NUMBER(8) DEFAULT 0; /* 현금승차액 */
TEMP_TOTAL NUMBER(9) DEFAULT 0; /* 합계금액 */
BEGIN
DECLARE
CURSOR T_CUS IS
SELECT EXP_DATE,
SA_CODE,
WAY_CODE,
BUS_GBN,
SUM(AMOUNT),
SUM(INWON1),
SUM(INWON2),
SUM(INWON3),
SUM(INWON4),
SUM(INWON5),
SUM(DECODE(BUS_GBN1, 1, 1, 0)),
SUM(DECODE(BUS_GBN1, 2, 1, 0)),
SUM(DECODE(BUS_GBN1, 3, 1, 0)),
SUM(DECODE(BUS_GBN1, 1, 0,
DECODE(BUS_GBN1, 2, 0,
DECODE(BUS_GBN1, 3, 0, 1))))
FROM SM05_EXP_MAST
WHERE EXP_DATE BETWEEN I_SDATE AND I_EDATE
GROUP BY EXP_DATE,
SA_CODE,
WAY_CODE,
BUS_GBN;
BEGIN
dbms_output.enable;
OPEN T_CUS;
LOOP
FETCH T_CUS INTO TEMP_EXP_DATE, TEMP_SA_CODE, TEMP_WAY_CODE, TEMP_BUS_GBN, TEMP_AMOUNT,
INWON_CNT1, INWON_CNT2, INWON_CNT3, INWON_CNT4, INWON_CNT5,
TEMP_WAY_CNT1, TEMP_WAY_CNT2, TEMP_WAY_CNT3, TEMP_WAY_CNT4;
EXIT WHEN T_CUS%NOTFOUND;
BEGIN
SELECT MAX(PRICE1), MAX(PRICE2), MAX(PRICE3)
INTO TEMP_PRICE1, TEMP_PRICE2, TEMP_PRICE3
FROM SM02_TIK_MAST
WHERE SA_CODE = TEMP_SA_CODE
AND BUS_CODE = TEMP_WAY_CODE
AND TIKET_TYPE = TEMP_BUS_GBN || '1';
EXCEPTION
WHEN NO_DATA_FOUND THEN
BEGIN
ERROR_CODE := 'Y';
EXIT;
END;
END;
INWON_AMT1 := NVL(INWON_CNT1, 0) * NVL(TEMP_PRICE1, 0);
INWON_AMT2 := NVL(INWON_CNT2, 0) * NVL(TEMP_PRICE1, 0);
INWON_AMT3 := NVL(INWON_CNT3, 0) * NVL(TEMP_PRICE3, 0);
INWON_AMT4 := NVL(INWON_CNT4, 0) * NVL(TEMP_PRICE2, 0);
INWON_AMT5 := NVL(INWON_CNT5, 0) * NVL(TEMP_PRICE3, 0);
TEMP_TOTAL := NVL(INWON_AMT1, 0) + NVL(INWON_AMT2, 0) + NVL(INWON_AMT3, 0) +
NVL(INWON_AMT4, 0) + NVL(INWON_AMT5, 0) + NVL(TEMP_AMOUNT, 0);
BEGIN
INSERT INTO SM06_DAY_EXP
(EXP_DATE, SA_CODE, WAY_CODE, BUS_GBN,
INWON1, AMOUNT1, INWON2, AMOUNT2, INWON3, AMOUNT3,
INWON4, AMOUNT4, INWON5, AMOUNT5,
WAY_CNT1, WAY_CNT2, WAY_CNT3, WAY_CNT4, AMOUNT6, AMT_HAP)
VALUES
(TEMP_EXP_DATE, TEMP_SA_CODE, TEMP_WAY_CODE, NVL(TEMP_BUS_GBN, '9'),
INWON_CNT1, INWON_AMT1, INWON_CNT2, INWON_AMT2, INWON_CNT3, INWON_AMT3,
INWON_CNT4, INWON_AMT4, INWON_CNT5, INWON_AMT5,
TEMP_WAY_CNT1, TEMP_WAY_CNT2, TEMP_WAY_CNT3, TEMP_WAY_CNT4, TEMP_AMOUNT, TEMP_TOTAL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
BEGIN
ERROR_CODE := 'Y';
EXIT;
END;
END;
-- NULL;
-- EXIT;
END LOOP;
CLOSE T_CUS;
COMMIT WORK;
END;
END;