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 7205 게시물 읽기
No. 7205
plpgsql에서 update문을 만들어보려는데 잘 안됩니다.
작성자
심상호(shimsh)
작성일
2007-08-23 21:33
조회수
5,416

동적커리가 아닌 것으로 만들어 보려고 합니다.
동적커리는 됩니다.

테이블은 인자(t1 text)로 넣어주려고 합니다.
그런데 안되더군요!
$1을 어떻게 해야하는지?

CREATE OR REPLACE FUNCTION updb2(t1 text, inte2 integer, inte3 integer, inte4 integer, inte5 integer)
  RETURNS void AS
$BODY$DECLARE
  name text;
BEGIN

update $1  set 주류=$2, 반복=$3 where 일련번호>=$4 and 일련번호<=$5;--업데이트문장만들고
          ==>여기를
              어떻게?
           테이블은 안되는지?

END;$BODY$

  LANGUAGE 'plpgsql' VOLATILE;

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

execute 를 사용하시면 될듯 합니다..


CREATE OR REPLACE FUNCTION updb2(t1 text, inte2 integer, inte3 integer, inte4 integer, inte5 integer)

  RETURNS void AS

$BODY$DECLARE

  name text;

BEGIN 

execute 'update ' || $1 || ' set 주류 = ' || $2 || ', 반복 = ' || $3 || ' where 일련번호 >= ' || $4 || ' and 일련번호 <= ' || $5;  


END;$BODY$


LANGUAGE 'plpgsql' VOLATILE;



참조:

http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

안녕하세요님이 2007-08-24 17:58에 작성한 댓글입니다.
이 댓글은 2007-08-24 18:01에 마지막으로 수정되었습니다. Edit

그렇게 하고 싶으시죠? ㅎ

하지만 조금더 생각해보면 동적쿼리 말고는 의미없는거란걸 느끼실거여요

걍 execute를 쓰실수밖에 없음니다

안그럴수있는 DB가있다면 소개좀 해주세요

DB성능 문제가 아니고 .,,,, 논리적인 문제임니다


가우님이 2007-08-24 19:24에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7208Postgresql 8.1.4 와 phpPgAdmin-4.1.3 연결이 안됩니다. [2]
이덕영
2007-08-30
5830
7207alter 사용시.. [2]
눈팅지존
2007-08-28
5150
7206Tsearch2 functionality migrates to core. [1]
최정대
2007-08-24
5016
7205plpgsql에서 update문을 만들어보려는데 잘 안됩니다. [2]
심상호
2007-08-23
5416
7204트리거만드는 법것 좀도와 주세요 [2]
김선우
2007-08-22
5374
7203꼭 도와주십시오.(__) [3]
손님
2007-08-21
5750
7201사용자패스워드를 잊었을때 postgres권한으로 알아내는 방법이 있는지요! [1]
김승일
2007-08-20
5287
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다