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 6336 게시물 읽기
No. 6336
Version 7.3.4에서는 Function 안에서 to_char(XXX,'')식의 형변환을 어떻게 하나요?
작성자
조성배(조성배)
작성일
2005-09-26 14:34
조회수
2,282

## Function 생성코드 #############################

CREATE FUNCTION public.func_Stat(INT,TEXT)
RETURNS SETOF RECORD as '
DECLARE
v_code ALIAS FOR $1;
v_detail ALIAS FOR $2;
row RECORD;
BEGIN
IF v_code = 1 THEN
FOR row IN EXECUTE ''
select
data_date, data_hour,
sum(NonConnected) as NonConnected,
sum(Connected) as Connected,
count(*) as connectCount,
sum(connectingtime) as TotalCallTime,
avg(connectingtime) as AvgCallTime
from (
select
to_char(setup_time,''YYYY-MM-DD'') as data_date,
to_char(setup_time,''HH'') as data_hour,
(case when connect_time is null then 1 else 0 end) as NonConnected,
(case when connect_time is null then 0 else 1 end) as Connected,
(disconnect_time - connect_time) as connectingtime
from cdr
where setup_time like (v_detail || ''%'')
) as t_connT
group by data_date, data_hour
''
LOOP
RETURN NEXT row;
END LOOP;

END IF;

RETURN;
END;'
LANGUAGE 'plpgsql';

################################################

 

## Error Code ####################################

>[Error] Script lines: 1-2 --------------------------
ERROR: parser: parse error at or near "YYYY" at character 353

Warnings: --->
W (1): Error occurred while executing PL/pgSQL function func_stat
W (2): line 7 at for over execute statement
<---

################################################


## Description #####################################

첫번째 인수값에 따라 선택적인 query를 실행하는 Function의 단편입니다.

위 에러 코드를 봐서는 to_char(TimeStamp변수,'YYYY') 와 같은 식에서 '' 부분에서

외각에 바디를 감싸고 있는 '' 부분하고의 문제로 인해 에러가 나는듯 한데 '''' 으로 변경하여도

똑같은 에러가 발생한다.

Function 안에 설정된 Query문장은 단독 Query 문으로 실행했을 경우,

문제 없이 실행되며 올바른 결과가 나온다.

################################################

 

## ETC ##########################################

여러 고수님들의 조언을 경청하겠습니다.

많은 답변 부탁드립니다.

갓 Postgresql 을 시작한 초보 개발자 올림

################################################

 

 

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

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

 

이 글을 참조 해 보세요~

딱 보면 ' 네개로 해결 될 것 같은데 안되면 6개, 8개로 늘리면서 테스트 해보세요~

신기배(소타)님이 2005-09-26 16:25에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6341DB서버 상태가 이상합니다 ㅠ_ㅠ; [9]
신기배
2005-09-28
5598
6339to_timestamp가 이상합니다. [2]
이현순
2005-09-27
2473
6338schema_path초기화 하려면? [1]
이세진
2005-09-26
1868
6336Version 7.3.4에서는 Function 안에서 to_char(XXX,'')식의 형변환을 어떻게 하나요? [1]
조성배
2005-09-26
2282
6335이 함수좀 봐주세요... 실행하다 에러가 나네요 [1]
조성배
2005-09-23
1880
6334select 시 order by 문제 [1]
곽여송
2005-09-23
1791
6333시간 함수에 관련해서 질문 드려요 [1]
알려주세요
2005-09-23
1996
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다