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 6948 게시물 읽기
No. 6948
create function에 궁금한게잇습니다.
작성자
보두남
작성일
2006-12-10 18:25
조회수
4,544

create table TEST_TABLE (

ONEFIELD varchar primary key,

TWOFIELD varchar

);


create function test(varchar,varchar) RETURNS integer AS '

DECLARE

v_sql TEXT;

v_onechar VARCHAR;

v_twochar VARCHAR;


BEGIN

v_onechar := $1;

v_twochar := $2;


v_sql := '' INSERT INTO TEST_TABLE(ONEFIELD,TWOFIELD) VALUES(''

               || quote_literal(v_onechar)

               || '',''

               || quote_literal(v_twochar)

               || '')'';

EXECUTE v_sql;

END;

'language pgpsql;



TEST_TABLE 에서 ONEFIELD 컬럼을 primary key로잡아서

중복된 키 데이터를 입력시에 프로시저는 실행중단하고 에러를 내뱉잔아요

duplicated key 이메시지 출력 안되게할수없나요?

 에러가날시

key중복 메시지가아닌 다른메시지로 RAISE ERROR로 뿌릴려고합니다 -_-;

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

위와 같은 에러를 잡는 것은 메뉴얼에 있는 내용 이구요

예제를 하나 적어보면 =>

INSERT INTO mytab(firstname, lastname) VALUES('Tom', 'Jones');
    BEGIN
        UPDATE mytab SET firstname = 'Joe' WHERE lastname = 'Jones';
        x := x + 1;
        y := x / 0;
    EXCEPTION
        WHEN division_by_zero THEN
            RAISE NOTICE 'caught division_by_zero';
            RETURN x;
    END;
초보대왕님이 2006-12-10 20:18에 작성한 댓글입니다.
이 댓글은 2006-12-10 21:35에 마지막으로 수정되었습니다. Edit

혹 8.0부터 exception 지원하는거아닌가요?

매뉴얼 7.4버젼엔 안나와있는데..

보두남님이 2006-12-11 14:41에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6972특수문자(?,*,(,))를 문자로 인식 [2]
황보정
2006-12-13
6032
6971postgresql 의 pg_dump에 대한.. 질문입니다.. [2]
이현철
2006-12-11
5949
6949Ms-SQL과의 쿼리 속도차. [18]
이기자
2006-12-11
8347
6948create function에 궁금한게잇습니다. [2]
보두남
2006-12-10
4544
6947버전업그레이드 문제...
초보
2006-12-09
3885
6946PostgreSQL 8.2 벤치결과 [5]
jaker
2006-12-09
5547
6945PostgreSQL 8.2 Released
jaker
2006-12-08
4671
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다