포스팅 목차
o SYS_TYPEID
문법
sys_typeid::=
목적
SYS_TYPEID함수는 피연산자(operand)의 가장 구체적인 형태의 typeid를 반환한다. 이 값은 주로 대체 가능한 열의 기초가 되는 형태 판별 열을 식별하는데 이용된다.
예를 들면, 형태-판별 열에서 색인을 만들기 위해서 SYS_TYPEID에 의해 반환되는 값을 이용할 수 있다.
Object 형태 피연자에서 이함수를 이용할 수 있다. 모든 최종 root object형태(형태 계층에 속하지 않는 최종 형태)는 Null typeid를 가진다. 오라클 데이터 베이스는 type 계층에 속하는 모든 형태에 unique non-null typeid를 할당한다.
관련 함수
함수명 | 함수내용 |
SYS_CONTEXT | 문맥 namespace와 관련된 parameter의 값을 반환. |
SYS_GUID | 16바이트로 구성된 고유전역식별자(globally unique identifier,RAW 값)을 생성하여 반환. |
SYS_TYPEID | 피연산자(operand)의 대부분 지정한 형태의 typeid를 반환. |
UID | 세션 사용자의 유일한 식별하는 정수를 반환.(로그인 유저) |
USER | VARCHAR2 형태를 가지는 세션 사용자(로그인 유저)의 이름을 반환. |
USERENV | 현재 세션에 대한 정보를 반환. |
예제
Oracle Program |
CREATE TYPE Person_typ AS OBJECT ( ssn NUMBER, name VARCHAR2(30), address VARCHAR2(100)) NOT FINAL;
CREATE TABLE persons OF Person_typ;
INSERT INTO persons
VALUES (Person_typ(1243, ’Bob’, ’121 Front St’));
INSERT INTO persons
VALUES (Student_typ(3456, ’Joe’, ’34 View’, 12, ’HISTORY’));
INSERT INTO persons
VALUES (PartTimeStudent_typ(5678, ’Tim’, 13, ’PHYSICS’, 20));
다음 예제는 "Substitutable Table and Column Examples". 에서 만들어진 persons와 books 테이블을 이용한다. 양쪽 테이블 모두 "Type Hierarchy Example". 에서 생성된 person_t 타입을 사용한다. 첫 번째 쿼리는 persons 테이블에서 저장된 object instances의 가장 많이 지정한 타입을 반환한다.
Oracle Program |
SELECT name,
SYS_TYPEID(VALUE(p)) "Type_id"
FROM persons p;
Results |
NAME Type_id
------------------------- --------------------------------
Bob 01
Joe 02
Tim 03
다음 쿼리는 books테이블에 저장된 저자의 가장 많이 지정된 타입을 반환한다.
Oracle Program |
CREATE TYPE person_t AS OBJECT (name VARCHAR2(100), ssn NUMBER)
NOT FINAL;
CREATE TABLE books (title VARCHAR2(100), author person_t);
CREATE TYPE employee_t UNDER person_t (department_id NUMBER, salary NUMBER) NOT FINAL;
CREATE TYPE part_time_emp_t UNDER employee_t (num_hrs NUMBER);
INSERT INTO books VALUES ('An Autobiography', person_t('Bob', 1234));
INSERT INTO books VALUES ('Business Rules', employee_t('Joe', 3456, 12, 10000));
INSERT INTO books VALUES ('Mixing School and Work', part_time_emp_t('Tim', 5678, 13, 1000, 20));
SELECT b.title, b.author.name,
SYS_TYPEID(author) "Type_ID"
FROM books b;
Results |
TITLE AUTHOR.NAME Type_ID
------------------------- -------------------- -------------------
An Autobiography Bob 01
Business Rules Joe 02
Mixing School and Work Tim 03
테이블의 type-discriminant 열에 인덱스를 생성하기 위해서 SYS_TYPEID 함수를 이용한다.
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
반응형
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
【오라클(Oracle) SQL 함수】SYS_XMLGEN 함수 (0) | 2021.10.21 |
---|---|
【오라클(Oracle) SQL 함수】SYS_XMLAGG 함수 (0) | 2021.10.21 |
【오라클(Oracle) SQL 함수】 SYS_GUID 함수 (0) | 2021.10.21 |
【오라클(Oracle) SQL 함수】 SYS_EXTRACT_UTC 함수 (0) | 2021.10.21 |
【오라클(Oracle) SQL 함수】SYS_DBURIGEN 함수 (0) | 2021.10.21 |
댓글