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 35548 게시물 읽기
No. 35548
프로시져를 이용하여 레코드셋을 만드는 방법?
작성자
꼬마파랑(littblue1)
작성일
2009-04-15 20:58
조회수
4,633

CREATE OR REPLACE PROCEDURE MY.GETBAD(
sGROUP IN  CHAR
) IS

BEGIN
  SELECT BAD
 FROM mt_BAD
 WHERE BADCD = sGROUP
END GETBAD;

오라클을 처음 배우는 입장에 있습니다.

mt_bad란 테이블의 데이터가 수십건 있는데 그걸 그룹조건에 조회해서 결과값을 레코드셋으로 가져오고 싶습니다.
그런데 이렇게 프로시져를 작성하니까 
아래와 같은 오류가 납니다.

PLS-00428: 이 SELECT문에는 INTO 절이 필요합니다

구문은 이상은 없는것 같은데 왜 이런 오류가 나타나는지 모르겠습니다.
도움 부탁드립니다.

이 글에 대한 댓글이 총 2건 있습니다.

위의 프로시져가 에러 없을려면...변수 하나 선언하고
create .....
is
변수선언
begin
select ....
into 변수 from

위와 같이 만들어야 됩니다. 다만 이때는 변수에 데이타가 여러개 있다 하더라도..최종값만 들어가겠지요..
진짜 원하시는건 아래 cursor 선언하는 것일 겁니다.
create....
is
cursor cursor_명 is
select * from table_name;
begin
for r1 in cursor_명 loop
처리....
end loop;

도움이 되시길...

- 삽질중 -


서수교(purewolf)님이 2009-04-16 10:35에 작성한 댓글입니다.
CREATE package dpk_refcursor
as
    type genericref is ref cursor;
end dpk_refcursor;

CREATE OR REPLACE PROCEDURE MY.GETBAD(
       sGROUP IN  CHAR,
       resultset out dpk_refcursor.genericref )
IS
BEGIN
    open resultset  for
    SELECT BAD
    FROM mt_BAD
    WHERE BADCD = sGROUP;
END GETBAD;
ㅁ님이 2009-04-16 12:20에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
35551Object_Type [1]
이슬이
2009-04-16
3201
35550오라클 필드명 대문자 관련 [5]
전정주
2009-04-16
8948
35549Oracle9i 설치시 에러.. 도와주세요 ㅜㅜ; [2]
정영근
2009-04-16
2617
35548프로시져를 이용하여 레코드셋을 만드는 방법? [2]
꼬마파랑
2009-04-15
4633
35547하나의 행을 여러행으로 변경 [3]
김명근
2009-04-15
4251
35546RMAN에서 컨트롤 파일 자동백업에 대하여.....
윤철민
2009-04-15
2645
35545RMAN으로 백업하는데 아카이브 파일에 대하여...
윤철민
2009-04-15
2946
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다