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 6507 게시물 읽기
No. 6507
dblink 프로시져 사용하기
작성자
월이
작성일
2006-01-13 09:38
조회수
3,429

안녕하세요?

항상 많은 내용을 얻고 있는 월이 입니다.

오늘은 dblink를 사용한 프로시져 인데요

걍 app에서 쿼리로 직접쓰라고 하니까 프로시져로 만들라고 그러네요

근데 제가 프로시져 초보라 좀 어렵네요

그냥 하나 하나 하면 잘 되는데 몇가지를 하니까 안되요

내용은 물리적으로 떨어진 디비에 접속해서 로그인하고 데이터를 셀렉트 하는건데요

CREATE OR REPLACE FUNCTION "public"."login1" (varchar, varchar) RETURNS smallint AS
$body$
Begin
Select dblink_connect('login','hostaddr=111.111.111.111 port=5432 dbname=test user=tester password=1234');
select id,pass from
dblink('login','SELECT id,pass FROM testmem')
AS testmember (id varchar(20), pass varchar(20))
where testmember.id = $1 and testmember.pass = md5($2);
--return 0;
End

위와 같이 한 후 실행하니 아래와 같이 에러가 나네요

ERROR: SELECT query has no destination for result data
HINT: If you want to discard the results, use PERFORM instead.
CONTEXT: PL/pgSQL function "login1" line 6 at SQL statement

 

고수님들이 보시기에 정말 엉터리지만 많이 갈켜주세요^^

새해복 많이 받으시구요
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

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

오류 내용은 return 값을 지정해주라는 소리입니다.

 

함수 선언에서는 리턴값이 smallint 라고 정해놓고,

함수 본문에서는 그 어디도 return 하는 것이 없을 때 발생하는 오류입니다.

김상기(ioseph)님이 2006-01-13 17:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6515테이블마다 설정되어 있는 모든 인덱스를 삭제하려고 합니다. [3]
한승전
2006-01-19
2526
6511pg_log파일 볼수 있는 법 [1]
dba
2006-01-16
2330
6508솔라리스에 pgsql 현재 connection 수를 체크하고 싶을때..... [1]
김태훈
2006-01-13
3932
6507dblink 프로시져 사용하기 [1]
월이
2006-01-13
3429
6506윈도우용 8.0을 8.1로 버전업 할 때? [2]
박병호
2006-01-12
2636
6505엑세스에 ODBC로 테이블 링크할때? [1]
dba
2006-01-12
2321
6503\d tables 해서 나오는 결과에 대해.. [1]
왕초보
2006-01-12
2259
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다