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 430 게시물 읽기
No. 430
Re: [질문]plpgsql에서의 오류...
작성자
정재익
작성일
2000-01-14 20:34
조회수
14,364

> 안녕하새요.

> (한동안 조용하다가 질문을 들고 돌아왔습니다.)

>

> 거두절미...(설명을 잘 못하는 고로...)

> 밑의 코드에서 어떤 문제가 있는 건가요?

>

> create function atom_6_insert() returns opaque as '

> declare

> seq_number int8;

> new text;

> begin

> select nextval(''atom_6_count'') into seq_number;

> new1 := substring(NEW.code from 1 for 16) || lpad(seq_number, 5,

> ''0'');

> insert into atom_6 ( code, company_name, business_number,

> president, addres, zip_code)

> values ( new1, NEW.company_name, NEW.business_number,

> NEW.president, NEW.addres, NEW.zip_code);

> return NEW;

> end;

> ' Language 'plpgsql';

>

> create trigger atom_6_insert

> before insert

> on atom_6

> for each row

> execute procedure atom_6_insert();

> );

>

> 좀 길다 싶어서 줄여도 보기에 흉하게 변하는군요.(끙)

> ODBC로 입력하건 아니면 psql에서 입력하건간에 시간이 지연된 후에

> 에러를 내고는 빠져 나가버립니다.(연결이 끊어짐)

>

> 에러의 내용은

> pqReadData() // backend closed the channel unexpectedly.

> This probably means the backend terminated abnormally

> before or while processing the request.

> We have lost the connection to the backend, so further processing is i

> mpossible. Terminating.

> 입니다.

>

> 이건 왜그런 건가요? (아... 힘들다...)

>

> 인천의 나사 풀린 산호...

 

정말 오랜만이네요. :/)

 

그런데 그동안 많은 발전을 느끼게 만듭니다. 벌써 PL/pgSQL 을 공부하시다니...

 

저부분은 t1 자체에 대한 trigger 에서 t1 에 write 를 하기 때문에 생성되는 에러라고 생각됩니다.

 

다음에 저가 써 놓은 함수를 참조하시기 바랍니다.

(저는 table 구조를 잘 모르기 때문에 나름대로 테이블을 만들었습니다.

만든 테이블은 다음과 같습니다.

create table t1 (code text, f1 text, f2 int);

create sequence tseq;

)

 

create function pl () returns opaque as '

declare

snum int8;

new1 text;

begin

select nextval( ''tseq'') into snum;

new1 := substring(NEW.code from 1 for 16) || lpad(snum, 5, ''0'');

NEW.code = new1;

return NEW;

end;

' Language 'plpgsql';

 

create trigger tt1

before insert

on t1

for each row

execute procedure pl ();

 

이것으로서 원하는 결과를 얻으실수 있습니다.

(무엇이 잘못되었는지는 결과를 보시면 알겠지요. :/))

 

이제 실력이 예전에 처음 질문하실때와는 비교도 안될 정도로 올라왔네요.

이제 여기 게시판에 답변좀 올리세요.

저 혼자 미치겠심다.

[Top]
No.
제목
작성자
작성일
조회
438게시판 만들 때..
세궈니
2000-01-17
11679
439┕>Re: 게시판 만들 때..
정재익
2000-01-17 21:46:33
12772
436psql 설치에 관하여
한순재
2000-01-17
13269
440┕>Re: psql 설치에 관하여
정재익
2000-01-18 01:14:42
13942
432백업은 어떻게 하나요?
뉴비
2000-01-17
13252
433┕>Re: 백업은 어떻게 하나요?
엠브리오
2000-01-17 03:02:53
14208
434 ┕>Re: Re: 백업은 어떻게 하나요?
정재익
2000-01-17 08:06:34
14576
437┕>Re: 백업은 어떻게 하나요?
신현호
2000-01-17 12:04:24
14291
428[질문]plpgsql에서의 오류...
신현호
2000-01-14
13571
430┕>Re: [질문]plpgsql에서의 오류...
정재익
2000-01-14 20:34:17
14364
435 ┕>Re: Re: plpgsql의 경과 보고
신현호
2000-01-17 08:51:54
14206
431┕>현호님... 그리고 한가지 드릴 말씀이..
정재익
2000-01-15 07:05:33
14363
424psql 에서 COPY 명령...
이정호
2000-01-14
14766
425┕>Re: psql 에서 COPY 명령...
정재익
2000-01-14 15:21:15
14691
426 ┕>Re: Re: 감사합니다. 근데...자꾸 에러가 나요...
이정호
2000-01-14 16:02:23
14552
427  ┕>Re: Re: Re: 감사합니다. 근데...자꾸 에러가 나요...
정재익
2000-01-14 17:35:27
14084
421Psql 설치에 관한 질문
한순재
2000-01-14
13635
423┕>Re: Psql 설치에 관한 질문
정재익
2000-01-14 11:51:42
14406
420revoke 에 관해서 또 ^^
임병균
2000-01-14
14085
422┕>Re: revoke 에 관해서 또 ^^
정재익
2000-01-14 11:48:49
14487
429 ┕>Re: Re: revoke 에 관해서 또 ^^
임병균
2000-01-14 19:23:52
14538
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다