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 Devel 6124 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 6124
1차원 배열 요소 삭제 함수 - anyarray, anyelement 사용 예제
작성자
김상기(ioseph)
작성일
2005-06-01 16:57ⓒ
2005-06-02 11:46ⓜ
조회수
13,853

1차원 배열에 대해서만 적용되는 함수입니다.

이때, 두번째 인자의 자료형은 첫번째 인자인 배열의 자료형과 같아야합니다.

안그러면, 오류를 만드네요. 당연한 처리인듯.

 

사용예

 

mydb=> select * from arrtest;
                        a
-------------------------------------------------
 {무궁화,꽃이,피었습니다,장미도,활짝,피었습니다}
(1건 있음)

mydb=> select array_delete(a, '피었습니다') from arrtest;
       array_delete
---------------------------
 {무궁화,꽃이,장미도,활짝}
(1건 있음)

소스는 다음과 같습니다. 8.0 이상에서의 구문입니다. 이하 버전에서는 함수 인자부분을 적당히 수정하셔서 사용하세요.

CREATE OR REPLACE FUNCTION array_delete(srcarr anyarray, element anyelement)
  RETURNS anyarray AS
$BODY$
declare
        retarr alias for $0;
        maxcount int;
        i int;
begin
        if srcarr is null then
                return null;
        end if;
        maxcount := array_upper(srcarr,1);
        i := 1;
        retarr := '{}';
        while i <= maxcount loop
                if srcarr[i] <> element  then
                        retarr := array_append(retarr, srcarr[i]);
                end if;
                i := i + 1;
        end loop;
        return retarr;
end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
이 글에 대한 댓글이 총 4건 있습니다.

소스에서 사용된 "_text"  타입은 무엇인지 궁금하네요..

 

pseudo type 인가요?

아니면 어떤 특별한 용도로 사용되는 것인지요...?

 

tyro님이 2005-06-01 22:52에 작성한 댓글입니다. Edit

그냥 text[] 자료형의 다른 표기입니다.

 

 

김상기(ioseph)님이 2005-06-02 09:11에 작성한 댓글입니다.

최종안이,

오늘 오전에 수정되었습니다.

기존 text 배열에서 범용 일차원 배열로 바뀌었습니다.

 

기배님이 꼬득여서 바쁜데, 아무튼 기존 함수를 확장했습니다.

 

혼자 만들었다기 보다는 기배님이랑 같이 만들었습니다.

 

코드의 라이센스는 당연히 BSD 입니다.

기배님도 찬성할듯.

 

 

김상기(ioseph)님이 2005-06-02 11:49에 작성한 댓글입니다.

저는 옆에서 참견만;;

물론 라이센스에 이의 없습니다 :)

신기배(소타)님이 2005-06-02 12:11에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9488testsearch-ja 모듈을 이용한 우리말 full text search [1]
김상기
2014-11-25
8265
8596full text search를 호출하는 트리거
김상기
2010-01-06
11124
8595full text search 또 한 번 바꾸어 보았습니다.
김상기
2010-01-05
9766
61241차원 배열 요소 삭제 함수 - anyarray, anyelement 사용 예제 [4]
김상기
2005-06-01
13853
6047지정한 prepared query 가 있는지 조회하는 함수 [2]
김상기
2005-04-13
14186
6043문자열 첫글자(영문) 또는 첫글자의 초성(한글) 추출
신기배
2005-04-13
14811
5823발음 비슷한 한글을 같은 글자로 처리하는 함수 [2]
김상기
2005-01-24
12578
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다