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 2973 게시물 읽기
No. 2973
Re: Re: function에서 Select문이 안먹는 이유가 뭘까요?
작성자
김일호
작성일
2001-06-19 13:25
조회수
2,218

RECORD 변수에 SELECT INTO를 사용했더니 되더군요. 답변 감사합니다~

 

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

 

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

::

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

::

:: 기본적으로 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
2155
2977┕>Re: 시퀀스 질문입니다 답변부탁드리겠습니다 (__)
정재익
2001-06-19 22:35:05
2064
2978 ┕>Re: Re: 재익님 질문에 답변해주셔서 감사합니다 말씀대로 하니 되는군요 ^^*
강민철
2001-06-20 09:27:48
2068
2968꼭 답변을 부탁합니다.
조용주
2001-06-18
1744
2972┕>Re: 꼭 답변을 부탁합니다.
정재익
2001-06-18 22:04:47
1907
2965jdbc연결이 안되여...ㅡㅡ;
이쁜수정이
2001-06-18
1971
2971┕>Re: jdbc연결이 안되여...ㅡㅡ;
김일형
2001-06-18 22:04:25
2153
2964function에서 Select문이 안먹는 이유가 뭘까요?
김일호
2001-06-18
2173
2970┕>Re: function에서 Select문이 안먹는 이유가 뭘까요?
김일형
2001-06-18 21:56:48
2237
2973 ┕>Re: Re: function에서 Select문이 안먹는 이유가 뭘까요?
김일호
2001-06-19 13:25:03
2218
2962postgresql 은 윈도우 버젼이 없습니까?
이상학
2001-06-18
2122
2966┕>Re: postgresql 은 윈도우 버젼이 없습니까?
정재익
2001-06-18 17:23:36
2028
2969┕>Re: postgresql 은 윈도우 버젼이 없습니까?
김일형
2001-06-18 21:49:10
2038
2957문자열 합치기...
장정철
2001-06-18
3606
2963┕>Re: 문자열 합치기...
정재익
2001-06-18 15:13:03
2401
2967 ┕>Re: Re: 문자열 합치기...
장정철
2001-06-18 18:07:14
2479
2954명령어를 모르겠습니다. 아웅.....
테란아찌
2001-06-17
2323
2955┕>Re: 명령어를 모르겠습니다. 아웅.....
이태웅
2001-06-17 22:05:33
2114
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다