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
운영게시판
최근게시물
PostgreSQL Q&A 8492 게시물 읽기
No. 8492
[질문] 재귀호출을 만들었는데...도움 부탁 드립니다.
작성자
kuroro(kuroro)
작성일
2009-09-19 16:12ⓒ
2009-09-19 16:13ⓜ
조회수
7,116

먼저 code = $1 에 해당하는 row를 가져온 뒤, prevcode 가 있을 경우 code = prevcode 라는 조건으로 데이터를 취득하는 재귀호출문을 만들었는데...무한루프에 빠져버렸습니다...-_-; 제 머리도 같이 무한루프로... 조언 좀 부탁 드립니다.

 

 

 

CREATE OR REPLACE FUNCTION USERFUNC(text) RETURNS SETOF record as '

DECLARE

node RECORD;

subnode RECORD;

BEGIN

FOR node IN

SELECT price, yyyy, changerate, code, prevcode

FROM USER_TABLE

WHERE code = $1 order by yyyy desc

LOOP

return next node;

 

IF node.prevcode IS NOT NULL THEN

 

FOR subnode IN

SELECT price, yyyy, changerate, code, prevcode

FROM USERFUNC(node.prevcode) as s(price integer, yyyy integer, changerate double precision, code character, prevcode character)

LOOP

RETURN NEXT subnode;

END LOOP;

 

END IF;

 

END LOOP;

RETURN;

END

'

LANGUAGE 'plpgsql';

 

select * from USER_TABLE('1310405009') as s(price integer, yyyy integer, changerate double precision, code character, prevcode character);

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

재귀호출에서 꼭 생각하셔야 할 부분은 언제 그 loop에서 빠져나올 것인가입니다.


http://database.sarang.net/?inc=read&aid=4585&criteria=pgsql


이 문서 참고 하셔서 열심히 풀어보세요.

김상기(ioseph)님이 2009-09-20 01:14에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8513멀티 접속시 값이 이상합니다. [1]
주지훈
2009-09-24
6910
8506pgpool 의 간단한 개념좀 부탁드려요. [3]
지우개
2009-09-21
10204
8505애매한 상황입니다-.- [1]
슬푸다
2009-09-20
7081
8492[질문] 재귀호출을 만들었는데...도움 부탁 드립니다. [1]
kuroro
2009-09-19
7116
8491[Greenplum] 1년 성과에 대해서 나누고 싶습니다. [4]
박춘삼
2009-09-19
7715
8490dblink 인코딩 오류 질문 드립니다. [3]
김태우
2009-09-15
7920
8489ecpg -D option 사용 [1]
서경석
2009-09-15
7424
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다