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 4511 게시물 읽기
No. 4511
파라미터값을 배열로 받을때의 문제입니다.
작성자
눈love
작성일
2003-01-06 16:31
조회수
1,146

한개의 function 을 만들고

이에 따른 파라미터 값을 받을때

 

파라미터값은 최대 16개까지로 알고 있습니다.

 

그런서 이 파라미터 값을 배열로 받았는데요.

 

function test_input ( varchar , varchar , varchar[]) returns integer as '

 

'

'

'

'

 

이런식으로 받았습니다.

 

세번째 varchar[]값은 { 값,값,값} 이런식으로 들어갑니다.

 

그런데 여기서 문제가 생겼는데요.

 

배열로 넘기는 값이 ABC,DDD 라고 했을때

 

이녀석이 제대로 값을 가져오지 못한다는거죠.

 

예를들면

A = "123"

B = "ABC,DDD"

C = "gggg"

 

라고 했을때

 

{ A , B , C}

로 값을 넘긴후 받으면

 

varchar[1] = 123

varchar[2] = ABC

varchar[3] = DDD

이렇게 값을 받아 버립니다.

 

 

파라미터값을 배열로 넘길때 , (쉼표 구분자) 문제는 어떤식으로 해결해야 하나요?

'' 로도 막아보고 했는데 잘 안되네요;

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

plpgsql 에서의 배열자료형 인자는 마치 문자열 처럼 넘겨야합니다.

 

paolo=# create function myfunc(varchar[]) returns varchar as '

paolo'# begin

paolo'# return $1[1];

paolo'# end;

paolo'# ' language 'plpgsql';

CREATE FUNCTION

paolo=# select myfunc('{"asdf","fdsa"}');

myfunc

--------

asdf

(1 row)

 

여기서 주의하셔야할 것은 전통적인 SQL 배열은 그 시작이 0이 아니라, 1이라는 점입니다.

return $1[2]; 이러면, fdsa 놈이 출력되겠지요.

김상기(ioseph)님이 2003-01-06 22:14에 작성한 댓글입니다.

select myfunc(' { "asdf", "fdsa" } ' );

김상기(ioseph)님이 2003-01-06 22:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4514[질문]초보의 질문입니다. 꾸벅~ [2]
권효근
2003-01-06
16799
4513[질문] 인서트시 ????? 이렇게 나오네요.. [1]
이근호
2003-01-06
803
4512[질문] 아무래도 db를 날려야 할거 같은데요.. [2]
이근호
2003-01-06
972
4511파라미터값을 배열로 받을때의 문제입니다. [2]
눈love
2003-01-06
1146
4510응용프로그램내 처리와 DB상의 트리거 사용차이.. [2]
이경욱
2003-01-06
1010
4509PostgreSql tool 이 있나요? [1]
이은주
2003-01-06
1223
4508[질문] 에러 메시지 (로그를 지웠어요..T.T) [1]
이근호
2003-01-06
1128
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다