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 8293 게시물 읽기
No. 8293
[질문]배열필드에 값저장할려면?
작성자
이기자(k3i2)
작성일
2009-07-22 10:06
조회수
7,244

파워빌더로 프로그램중 문제점이 생겨서 질문드립니다.


DB생성 :


CREATE TABLE t_aaa

(

  mid varchar(20) NOT NULL,

  stu_c int8 NOT NULL,

  cnt integer[]

)


파워빌더 스크립트 :


int i

int testbyte[511]

for i=1 to 511

 testbyte[i] = i

next

insert into t_aaa ( mid, stu_c, cnt ) values ( "kim", 11111, :testbyte );


이렇게 작성하고 저장 하니까,

Variable reference in database statement has unsupported data type.


이 에러메세지가 뜨는데, 뱌열로 선언된 필드에 배열값은 어떻게 저장해야하나요?

어떤분이,

Oracle 이면 User Type 만드세요

이런 답변을 하던데, PostgreSQL에서도 방법이 있나요?

 

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

배열형을 쿼리문으로 입력한다면, 그때 값은 응용프로그램 입장에서는 문자열입니다.


'{1,2,3,4}'::int[]

이런 형태의 문자열이 되겠죠.


파워빌더 쪽에서도 만일 toString() 같은 게 있다면,


testbyte.toString() 형태로 사용하고, 그 결과는 위와같은 문자열로 출력이 나와야겠죠.


php 쪽에서는 이것때문에, pg_arr2str(), pg_str2arr() 이런 형태의 함수를 만들어서 쓰고 있습니다.

김상기(ioseph)님이 2009-07-22 13:38에 작성한 댓글입니다.

답변감사합니다.

파워빌더에서는 string(수치) 이 함수가있는데...

일단, 전배열의 값이 세자릿수를 안벗어나서,

세자리씩 문자형으로 변환해 text형 필드에 넣고,

불러올땐 그 text필드를 select해서 다시 세자리씩 끊어서 수치형으로변환해서

배열에 넣는 방법으로했는데, 값은 제대로 나오네요.

나중에 데이타가 쌓이면, 속도가 어떻지몰라도 일단은 제대로 값을 처리하는데...

더 좋은방법있으면 조언좀 부탁드립니다.

이기자(k3i2)님이 2009-07-23 09:11에 작성한 댓글입니다.
이 댓글은 2009-07-23 09:12에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
8296PGCluster등 DB동기화 질문입니다.살려주세요 ㅠㅠ [1]
왕곰
2009-07-23
7658
8295pg_restore 사용중 에러가 발생하였을 때 무시하는 방법? [2]
김대청
2009-07-22
7290
8294PQsetdbLogin()를 이용한 커넥션 풀 구현 시 오류 [3]
박성진
2009-07-22
6592
8293[질문]배열필드에 값저장할려면? [2]
이기자
2009-07-22
7244
8286MySQL => PostgreSQL 변경 질문 입니다. [1]
권우창
2009-07-21
6405
8273[Greenplum] 오라클 MINUS 대체 방법 [1]
강가딘
2009-07-20
7965
8272MERGE INTO... 예제 좀 주시겠어요?? [1]
궁금이
2009-07-20
6927
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다