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 9012 게시물 읽기
No. 9012
사용자 정의 함수를 하나 만드는데 질문좀요 - *
작성자
김현진(tokssonda)
작성일
2012-07-31 17:49
조회수
9,710

create function hello(text) returns text as $$ select $1 $$ language sql;

요렇게 하면 사용자 정의 함수를 만들수 있는데요. 사정이 있어서

create function hello(text) returns text as $$ select '$1' $$ language sql;

위에 처럼 싱글쿼테이션을 달아야 해서요.

$1 은 '$1' 로 감싸면 값을 못받는것으로 알고 있는데요

이거 싱글쿼테이션을 감싸고도 $1 값처럼 받을수 있는 방법이 없을까요?

알고 계신분 답변좀 부탁드리겠습니다 ^ ^

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

 $$

select '''' || $1 || ''''

$$

 

가 되겠죠. 

 

김상기(ioseph)님이 2012-07-31 18:01에 작성한 댓글입니다.

아 상기님 안녕하세요 ^ ^ 매번 고맙습니다. ㅋㅋㅋ

아 근데 -ㅂ- 저 문제로 해결될줄 알았는데 -ㅂ- 저 문제가 아닌가봐요 ㅠ_ㅠ

create function pge(text,text,text) returns text as $$ select encode(encrypt_iv($1 , ''||$2||'' , ''||$3||'','aes-cbc'), 'hex') $$ language sql;

create function pge(text,text,text) returns text as $$ select encode(encrypt_iv($1 , $2 , $3,'aes-cbc'), 'hex') $$ language sql;

이렇게 pg 암호화 할때 함수로 만들어서 쓰려고 했는데 -ㅂ- 저게 문제가 아닌가봐요

위에거는 되는데 다른 문제인가 봐요 -ㅂ-

ERROR:  function encrypt_iv(text, text, text, unknown) does not exist
LINE 1: ...(text,text,text) returns text as $$ select encode(encrypt_iv...
                                                                                                     ^

해결방법이 -ㅂ- 뭘까요?

김현진(tokssonda)님이 2012-07-31 18:13에 작성한 댓글입니다.
이 댓글은 2012-07-31 18:15에 마지막으로 수정되었습니다.

아 그리고 추가로 궁금해서 그러는데요 ... pg 암호화할때 들어가는 $2 , $3 을 고정하면

위에 에러가 나지 않는데 이렇게 고정했을때 암호키 2개가 pg_proc에 노출되는데 ...

소스로 암호화키를 가지고 있는것보다 db가 뚤렸을때 pg_proc 에 접근확률이 높아서

안좋을까봐 pg_proc 에 $2, $3으로 받으려고 하는건데 그에 대한 의견좀 남겨주세요 ^ ^

김현진(tokssonda)님이 2012-07-31 18:25에 작성한 댓글입니다.

소스 코드 디렉토리에  contrib 하위 디렉토리에 보면, pgcryto 라는 모듈이 있습니다. 

그놈 설치하면 해결 날 듯합니다. 

 

암호화는 굳이 그렇게 함수로 안 만들어도 됩니다. 그냥 그 확장 모듈에서 제공하는 함수를 쓰면 됩니다. 

 

김상기(ioseph)님이 2012-08-01 01:16에 작성한 댓글입니다.

pgcrypt 는 설치해서 쓰고 있는데 저렇게 php 로 짜서 쓰고 있는데 -ㅂ-

함수로 만들어서 쓰려고 하니까 -ㅂ- 키두개를 'key1','key2' 이건 되는데 -ㅂ- 희안하게

$2,$3 이게 안되네요 -ㅂ- 하이간 답변 감사드립니다.

 

김현진(tokssonda)님이 2012-08-01 10:00에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9015login 트리거 생성 방법 질문 [2]
노진광
2012-08-07
10476
9014설치할때 CPU 코어수 사용 제약이 가능할까요? [1]
지형준
2012-08-06
9544
9013문자셋 관련 문의 드립니다. [1]
박병훈
2012-08-04
9173
9012사용자 정의 함수를 하나 만드는데 질문좀요 - * [5]
김현진
2012-07-31
9710
9011postgreSQL 8.3 복구 [1]
이송천
2012-07-27
8988
9010Postgres-XC를 설치했더니... [2]
지형준
2012-07-26
9778
9009pgAdmin 3 에서 한글 깨짐.. [1]
박대건
2012-07-19
12208
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다