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 2970 게시물 읽기
No. 2970
Re: function에서 Select문이 안먹는 이유가 뭘까요?
작성자
김일형
작성일
2001-06-18 21:56
조회수
2,243

안녕하세요, 김일형입니다.

 

제가 출근시간 전이라서 제 답변에 대한 검증은 못해봤는데요.... ^_^;;

 

기본적으로 pl/pgsql에서는 그냥 select문을 쓸 수 없습니다.

대신 Select into를 사용하죠.

그래서 결과값을 어떤 변수에 넣는다는 개념입니다.

 

아래의 예를 참고 바랍니다.

 

create function cs_refresh_one_mv(integer) returns integer as '

DECLARE

key ALIAS FOR $1;

table_data cs_materialized_views%ROWTYPE;

BEGIN

SELECT INTO table_data * FROM cs_materialized_views

WHERE sort_key=key;

 

IF NOT FOUND THEN

RAISE EXCEPTION ''View '' || key || '' not found'';

RETURN 0;

END IF;

 

// cs_materialized_views의 mv_name

// 칼럼은 view의 이름을 저장한다.

 

TRUNCATE TABLE table_data.mv_name;

INSERT INTO table_data.mv_name || '' '' || table_data.mv_query;

 

return 1;

end;

' LANGUAGE 'plpgsql';

 

일호님께서 올린 예하고 틀린 부분이 눈에 띄죠?

그리고 좀더 자세한 것은 제가 PL/pgSQL 메뉴얼을 번역해 놓은 것이 있습니다.

여기 초기화면 104번 공지사항을 보시면 링크 되어있으니 참고 바랍니다.

 

김일형.

 

 

 

>>김일호 님께서 쓰시길<<

 

::

:: 다음과 같은 문장을 작성했는데요 에러가 발생하는군요.

::

:: DROP FUNCTION MakeHourStat();

:: CREATE FUNCTION MakeHourStat() RETURNS BOOLEAN AS '

:: BEGIN

:: Select * From PG_CLASS WHERE RELNAME = 'statistics';

:: IF NOT FOUND THEN

:: RAISE NOTICE ''결과가 없습니다'';

:: RETURN TRUE;

:: ELSE

:: RAISE NOTICE ''결과가 있습니다'';

:: RETURN FALSE;

:: END IF;

::

:: END;

:: ' LANGUAGE 'plpgsql';

::

:: 함수를 실행하면 (Select MakeHourStat();) 다음과 같은 에러가 발생합니다.

::

:: ERROR: unexpected SELECT query in exec_stmt_execsql()

::

:: 도대체 이유가 뭔지 모르겠습니다. T.T

::

::

[Top]
No.
제목
작성자
작성일
조회
2974시퀀스 질문입니다 답변부탁드리겠습니다 (__)
강민철
2001-06-19
2158
2977┕>Re: 시퀀스 질문입니다 답변부탁드리겠습니다 (__)
정재익
2001-06-19 22:35:05
2068
2978 ┕>Re: Re: 재익님 질문에 답변해주셔서 감사합니다 말씀대로 하니 되는군요 ^^*
강민철
2001-06-20 09:27:48
2070
2968꼭 답변을 부탁합니다.
조용주
2001-06-18
1746
2972┕>Re: 꼭 답변을 부탁합니다.
정재익
2001-06-18 22:04:47
1909
2965jdbc연결이 안되여...ㅡㅡ;
이쁜수정이
2001-06-18
1975
2971┕>Re: jdbc연결이 안되여...ㅡㅡ;
김일형
2001-06-18 22:04:25
2157
2964function에서 Select문이 안먹는 이유가 뭘까요?
김일호
2001-06-18
2177
2970┕>Re: function에서 Select문이 안먹는 이유가 뭘까요?
김일형
2001-06-18 21:56:48
2243
2973 ┕>Re: Re: function에서 Select문이 안먹는 이유가 뭘까요?
김일호
2001-06-19 13:25:03
2222
2962postgresql 은 윈도우 버젼이 없습니까?
이상학
2001-06-18
2129
2966┕>Re: postgresql 은 윈도우 버젼이 없습니까?
정재익
2001-06-18 17:23:36
2033
2969┕>Re: postgresql 은 윈도우 버젼이 없습니까?
김일형
2001-06-18 21:49:10
2043
2957문자열 합치기...
장정철
2001-06-18
3608
2963┕>Re: 문자열 합치기...
정재익
2001-06-18 15:13:03
2405
2967 ┕>Re: Re: 문자열 합치기...
장정철
2001-06-18 18:07:14
2482
2954명령어를 모르겠습니다. 아웅.....
테란아찌
2001-06-17
2324
2955┕>Re: 명령어를 모르겠습니다. 아웅.....
이태웅
2001-06-17 22:05:33
2115
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다