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 6729 게시물 읽기
No. 6729
SP 호출하여 select 된 결과값받기
작성자
권용재(amadeusj)
작성일
2006-06-09 11:07
조회수
3,533

전에 질문을 올렸었는데 다른분들이 답변을 주셨는데 제가 잘이해를 못해서 다시 질문올립니다


CREATE OR REPLACE FUNCTION test4(
)
RETURNS SETOF record
AS
$body$
DECLARE
rec RECORD;
BEGIN
FOR rec IN SELECT iIndex1, iIndex2, binData1 FROM DBClassTestTable LOOP
RETURN NEXT rec ;
END LOOP;
RETURN;
END;
$body$
LANGUAGE plpgsql


프로시져를 호출해서 select 된결과를 받으려 합니다
근데 위와같은 프로시져를 호출하려면
select * from test4() as tempTable(iIndex1 int, iIndex2 int, binData1 bytea);
이런식으로 호출을 해야 한다고 하는데

제가 VC 에서 프로시져를 호출하는것이라서
어떠한 컬럼이 select 되는것인지 알수가 없습니다
그래서
select * from test4()
이런식으로 호출할수 있게 sp 를 수정할수는 없나요?

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

현재 삽질 하고 있습니다만, 님이 원하시는 대로 하려면 암묵적인 record 타입은 버리셔야 합니다.

 

암묵적인 레코드 타입보다는 미리 type명령어로 해당 값들에 대한

레코드를 선언한 명시적 레코드를 만들어서 사용해야 할것입니다.

 

현재 저는 그런식으로 해서 사용하고 있고, 값의 비교를 하고

있습니다.

채민석(mice73)님이 2006-06-09 12:09에 작성한 댓글입니다.

답변 감사합니다...

죄송한데 무슨말인지 잘모르겠네요.ㅠ

제가 postgresql 은 잘몰라서 그러는데 간단한예제좀 볼수 있을까요? 

권용재(amadeusj)님이 2006-06-09 13:21에 작성한 댓글입니다.

좀 오래되서 답글 다는게 좀 그렇지만...

 

우선 리턴되는 레코드 타입에 대한 타입 선언을 해 주셔야 합니다.

create type total_type (

   aaa integer

,  bbb real );

 

그리고, RETURNS SETOF record 부분을

returns setof total_type 으로 변경하십시요.

 

함수 안쪽의 선언에 대해서도 rec RECORD; 부분을

rec total_type; 으로 변경을 하십시요.

 

이렇게 설정하시면 select * from test4(); 로 사용하는게

가능합니다.

 

다만, 님이 원하시는게 필드를 정해서 사용하는게 아니라면

현재로서는 이 방법은 사용할수 없네요.

역시 원안대로 셀렉트에서 일일이 필드를 정할수 밖에 없습니다.

즉, 어떤 경로로든지 필드를 지정을 해 주어야 하는 건 어쩔수 없는것

같습니다만..

 

그럼 참고가 되셨길..

채민석(mice73)님이 2006-06-19 11:40에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6733select 시에 검색조건이 없을경우 문제 입니다 [6]
권용재
2006-06-09
3419
6732php에서 pgpool 사용에 대한 질문 [1]
vortex
2006-06-09
3030
6731유니코드 등에 대한 질문입니다. [5]
김종화
2006-06-09
8017
6729SP 호출하여 select 된 결과값받기 [3]
권용재
2006-06-09
3533
6728윈도우2000에서 postmaster 실행시 오류.. [1]
김경준
2006-06-07
3201
6727postgresql update
Andrew
2006-06-07
3204
6725php 설치하다 libpq 에러입니다. [1]
김명범
2006-06-07
2927
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.015초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다