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 7078 게시물 읽기
No. 7078
execute 리턴값
작성자
난파
작성일
2007-03-16 14:17
조회수
4,719

function안에서 

쿼리문을 동적으로 생성하고 

execute (쿼리) 하였는데.


ret_val = execute(쿼리);


ret_val를 어떻게 확인 할수 있을까요?

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

질문이 모호합니다. 

먼저 쿼리를 응용프로그램에서 실행했다는 것인지, 
서버 응용프로그램 - 사용자 정의 함수 - 에서 실행했다는 것인지, 

사용한 언어가 어떻게 되는지, 

그 리턴되는 값이 record 인지, record set 인지, 단순 column 인지, 
아니면, 그 쿼리의 작동이 정상적으로 끝났는 것을 확인 하기 위한 것인지, 

꽤 복잡하죠?

질문이 명확하면 답도 명확합니다. 

김상기(ioseph)님이 2007-03-16 15:38에 작성한 댓글입니다.
CREATE OR REPLACE FUNCTION abc()
RETURNS integer AS
$abc$
DECLARE
  l_sql text;
BEGIN
 
 l_sql := 'Update 쿼리문';       
 l_ret = EXECUTE (l_sql);
 
 RETURN 0;
END;
$abc$
LANGUAGE plpgsql;



위와 같이 trigger function 생성해서 EXECUTE 리턴값을 알고 싶습니다.
질문이 모호해서 죄송합니다.
난파님이 2007-03-16 15:46에 작성한 댓글입니다. Edit

execute(쿼리문) 구문은 


EXECUTE command-string [ INTO [STRICT] target ];

이렇게 생겼네요. 8.2.x 버전 이야기입니다. 


문제는 update 구문인데, 


아직도 질문이 모호한 것이, 


ret 값을 구하려고 하는 이유가, 


1. 그 동적 쿼리의 구문 오류가 있는 것을 확인하려고 하는 것인지, 


2. 그 쿼리가 정상적으로 잘 실행되었는지를 확인하려고 하는 것인지,


3. 그 update 된 로우들이 어떤 것이 있었는지를 확인하려고 하는 것인지, 


4. 그 update 된 자료에 대한 그 다음 값이 어떤 것인지,


이런 다양한 상황이 있습니다. 


일반적으로 

첫번째,두번째 경우는 구문 오류 문제는 쿼리의 실행 예외처리 exception 로 풀어야하고요. 

세번째와 네번째 경우는 윗 execute 구문처럼 into 구문을 사용하면 쉽습니다. 


그와 다른 방법으로 multi row 일 경우라면, 

그 쿼리를 returing 절을 이용해서 multi row를 리턴하고, 

for target in execute ... 

순환 구문을 이용해서 처리를 합니다.


 

김상기(ioseph)님이 2007-03-19 09:40에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7081년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들고 싶은데... [3]
임형구
2007-03-19
6337
7080프로시저 이용 외부 실행파일 실행하기 질문드립니다. [2]
이승미
2007-03-17
5171
7079irc에서 postgresql유저 채널 혹시 아시나용? [1]
PG짱
2007-03-16
4223
7078execute 리턴값 [3]
난파
2007-03-16
4719
7077질문있습니다. [4]
조진우
2007-03-16
4273
7076psql 초보입니당 table을 예재를 보고 만들었는데 ... [1]
오승환
2007-03-15
4338
7075두 sql결과가 틀린 이유가 뭔지 혹시 아시나요? [1]
궁금이
2007-03-14
4198
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다