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 8100 게시물 읽기
No. 8100
테이블명을 전달인자로 해서 호출하기
작성자
궁굼이
작성일
2009-07-03 16:14
조회수
6,274

안녕하세요

제가 하고 싶은것은 테이블명을 전달인자로 보내서 

이제 해당 테이블을 전체값을 읽어 오는 함수를 만들려고 하는데요

text로해서 전달인자를 하나 만들고 

DECLARE
rec RECORD;
viewname text := $1;
BEGIN
FOR rec IN SELECT * FROM viewname LOOP
RETURN NEXT rec ;
END LOOP;
RETURN;
END;


이런식으로 호출했는데 에러가 발생하네요

해결 방법이 없을까요?

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

for rec in query loop

end loop;


구문을


for rec in execute 'query string' loop

end loop;


구문으로 바꾸시면 될 것 같네요.

김상기(ioseph)님이 2009-07-06 16:26에 작성한 댓글입니다.

우선 답변 감사드립니다.


그런데 하기와 같이 query문을 ''로 묶으면


전달인자로 받은 값을 적용하기가 어렵습니다.


예를 들어서 전달인자를 allview를 넣으면 for rec in execute 'select * from allview' loop


이렇게 하고 싶은데 변수명인 viewname이 for rec in execute 'select * from viewname 'loop


들어갑니다.


전달인자를 sql문에 넣을 순 없을까요?


for rec in execute 'query string' loop

end loop;

김영환님이 2009-07-06 18:28에 작성한 댓글입니다. Edit

자답입니다.


for rec in execute 'select * from allview' loop


이 부분을 아래와 같이 수정했더니 잘 되네요


너무 아는게 없어서 삽질만 했네요


for rec in execute 'select * from ' ||$1 loop


아무튼 답변주신분 읽어 주신분들 감사

궁굼이님이 2009-07-07 09:42에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
8120insert 문에 반복처리를 넣을 수 있나요? [6]
souler
2009-07-05
8071
8117[TIP] Windows PostgreSQL 에서 dblink 설치
제임스강
2009-07-05
7318
8107특정컬럼 삭제하기.. [1]
souler
2009-07-04
6408
8100테이블명을 전달인자로 해서 호출하기 [3]
궁굼이
2009-07-03
6274
8099[검증요청]오라클의 add_months()처럼 할려면??
급해요
2009-07-03
7119
8092응용프로그램에서 DB현재시간 가져오기... [1]
이기자
2009-07-02
8749
8087【질문】WHERE절에서 IN안에 Case When으로 복수개의 조건 입력하기?? [4]
아빠
2009-07-02
8042
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다