본문 바로가기
오라클 게시판/오라클 함수

【오라클(Oracle) SQL 함수】 INSTR 함수

by 기서무나구물 2018. 11. 22.

포스팅 목차

    o INSTR

     


    문 법

    instr::=

     


    목 적 

    INSTR함수는 문자 열중에서 지정한 문자를 지정하여서 처음 나타나는 위치를 숫자로 반환한다. (문자검색)


    INSTR함수는 string에서 substring를 찾는다. 이 함수는 처음 발생한 문자 string의 위치를 나타내는 정수를 반환한다. INSTR함수는 입력 문자 세트에 의해서 정의된 문자를 이용하여 문자열을 산출한다.

    INSTRB함수는 문자 대신에 byte를 사용한다.

    INSTRC함수는 완전한 UNICODE문자를 사용한다.

    INSTR2 함수는 UCS2 코드 포인트를 사용한다.

    INSTR4 함수는 UCS4 코드 포인트를 사용한다.

    • position은 오라클 데이터 베이스가 검색을 시작하는 string에서 문자의 위치를 나타내는 0 이외의 정수이다. 만약 Position이 음수라면, 오라클은 string의 끝에서 역으로 카운트하여 검색한다.
    • occurrence은 오라클이 검색하여 string의 발생 횟수(정수)이다. Occurrence값은 양의 정수이다.

    string과 substring의 데이터 형은 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB이다. 반환 값의 데이터형은 NUMBER이다.


    Position과 occurrence는 NUMBER 데이터형이거나, 암묵적으로 NUMBER형으로 변환 가능한 데이터형일 필요가 있고, 정수로 변환될 필요가 있다. Position과 occurrence의 기본값은 1이고, 오라클은 string의 처음 문자에서 검색을 시작하여, substring이 처음 나타나는 위치를 검색한다. 반환되는 값은 position의 값과 상관없이 string의 시작에 비례하고, 문자에서 표현된다. 만약 검색이 실패한다면(substring이 string의 position 문자 뒤에 occurrence번 나타나지 않는다면), 반환 값은 0이다.

     


    패키지 함수 비교 (Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table)

     


    관련 함수

    함수명 함수내용
    INSTR 문자 열중에서 지정한 문자를 지정하여서 처음 나타나는 위치를 숫자로 반환한다. (문자검색)
    REPLACE 문자열 char에서 "search-string"을 검색하여서 일치하는 모든 부분을 "replacement_string"으로 변경한다.
    REGEXP_REPLACE 문자열에서 지정한 패턴 조건(정규 표현식, 정규식)을 만족하는 부분을 검색하여서 다른 문자열로 치환합니다. 복잡한 치환/검색 조작을 가능하게 합니다.
    REGEXP_SUBSTR 문자열에서 지정한 패턴 조건(정규표현식, 정규식)을 만족하는 부분의 문자열을 반환한다.
    REGEXP_INSTR 문자열에서 지정한 패턴 조건(정규 표현식)을 만족하는 문자열의 최초의 위치(무슨 문자인지)를 반환한다. 또한, 검색을 시작하는 시작 위치를 지정하는 것도 가능합니다.
    SUBSTR 문자열 Char에서 position 문자 위치로부터 substring_length 문자 길이만큼 문자열을 추출하여 반환한다.

     


    예 제 

    다음 예제는 문자열 CORPORATE FLOOR을 검색하여, 3번째 문자에서 시작하여, "OR"이 두 번째 발생하는 위치를 반환한다.

    Oracle Program
    SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring" 
    FROM   DUAL;

     

    Results
      Instring
    ----------
            14

     


    다음 예제는 문자열 끝에서 시작하여서 3번째 문자 위치에서 역으로 검색하여서 "OR"이 두 번째 나타나는 위치를 반환한다.

    Oracle Program
    SELECT INSTR('CORPORATE FLOOR','OR', -3, 2) "Reversed Instring"
    FROM   DUAL;

     

    Results
    Reversed Instring
    -----------------
                   2

     


    다음 예제는 2 바이트를 가정한다.

    Oracle Program
    SELECT INSTRB('CORPORATE FLOOR','OR',5,2) "Instring in bytes"
    FROM   DUAL;

     

    Results
    Instring in bytes
    -----------------
                   27

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글