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 10171 게시물 읽기
No. 10171
pg에서 전역변수 처럼 사용가능할까요?
작성자
궁금
작성일
2020-07-28 15:25ⓒ
2020-07-28 15:27ⓜ
조회수
1,934

현재 오라클에서 패키지를 전역변수처럼 사용해서 변경전 OLD/NEW 값을 패키지에 입력해두고

테이블의 before와 after 트리거를 순차적으로 실행할 때 OLD/NEW 값을 참조하고 있습니다.

 

pg에서 같은 구조로 마이그레이션 해보고 있는데... 이런 구조를 패키지 기능이없는 PostgreSQL로 변환이 가능할까요?

찾아보니 전역변수를 지원하지 않는다던데...(세션레벨로만 참조할 수 있으면 됩니다)

 

예제의  트리거 부분에 testpkg.v_emp_del_no 처럼  pg에서 가능할까요?

구현가능한 방법이 있을지 조언을 구합니다.

 

EX) 

CREATE OR REPLACE PACKAGE ORCL.TESTPKG AS

v_emp_old_no   INTEGER     := 0;

 

v_emp_new_no   INTEGER    := 0;

v_dept_old_no   NUMBER(10)   := 0;

v_dept_new_no   NUMBER(10)    := 0;

END testpkg;

;

--트리거

CREATE TRIGGER 트리거명 AFTER DELETE ON 테이블명

REFERENCING NEW AS OLD AS OLD

DECLARE

    v_emp_old_no    emp.empno%TYPE := 0;

    v_emp_new_no   emp.empno%TYPE := 0;

BEGIN

    v_modelno_old  := NVL(testpkg.v_emp_old_no, 0);

...

...

 

 

 

 

 

 

이 글에 대한 댓글이 총 1건 있습니다.
데이터베이스 전역 변수는 없구요. 
 
세션별 전역 변수는 그냥 SET 구문으로 처리합니다.
그 세션 전역 변수명은 '임의의문자열.임의의문자열' 형태여야합니다.
값은 스칼라 값으로 부울린, 숫자, 문자만 됩니다. 
 
-- 세션 전역 변수 지정
postgres=# set asdf.asdf = 'asdf';
SET
-- SQL로 값 가져오기
postgres=# show asdf.asdf;
 asdf.asdf
-----------
 asdf
(1 row)
 
-- 함수에서
postgres=# \sf myfunc
CREATE OR REPLACE FUNCTION public.myfunc()
 RETURNS text
 LANGUAGE plpgsql
AS $function$
declare
a text;
begin
execute 'show asdf.asdf' into a;
return a;
end;
$function$
 
-- 함수 호출하면
postgres=# select myfunc();
 myfunc 
--------
 asdf
 
-- 그값을 바꾸면
postgres=# set asdf.asdf = 'zxcv';
SET
postgres=# select myfunc();
 myfunc 
--------
 zxcv
(1 row)
 
김상기(ioseph)님이 2020-07-28 16:51에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10174PostgreSql설치시 경로변경 [1]
축구선수
2020-08-14
1790
10173pg_wal 디렉토리 변경 [2]
포스그래맨
2020-08-13
1756
10172배열형 타입의 입력값 [2]
TEST
2020-08-03
1818
10171pg에서 전역변수 처럼 사용가능할까요? [1]
궁금
2020-07-28
1934
10170윈도우용 설치 [2]
PAPA
2020-07-15
2245
10169패턴 매칭을 역으로 확인하는 방법 [2]
권기혁
2020-07-03
1925
10168db to db link와 migration은 다른 것일까요 [2]
박현수
2020-07-02
2072
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다