OID와 컬렉션 사용

ODBC는 관계형 DBMS에 맞게 설계되었다. 그러므로 CUBRID ODBC는 CUBRID의 OID와 컬렉션과 같은 일부 객체지향 특징을 지원하지 않는다. CUBRID는 관계형 데이터 모델과 객체지향 데이터 모델을 통합한 객체관계형 DBMS이기 때문이다.

OID 사용

CUBRID ODBC 드라이버는 OID를 string (char(32))으로 간주하므로 OID를 포함하는 INSERT, UPDATE, DELETE를 아래와 같이 사용할 수 있다. OID string을 사용할 때는 반드시 작은 따옴표 (‘’)처리가 필요하다. 다음 예제의 member 속성의 도메인은 객체(OID)와 같다.

insert into foo(member) values('@12|34|56')
delete from foo where member = '@12|34|56'
update foo set age = age + 1 where member = '@12|34|56'

컬렉션 사용

컬렉션 타입 : SET, MULTISET, SEQUENCE 세가지가 있다. CUBRID ODBC 드라이버는 컬렉션을 string(longvarchar)으로 간주한다. 컬렉션은 SELECT 질의에서 "{value_1, value_2, ... value_n}"와 같이 중괄호 안의 쉼표를 이용해 각 요소를 구분하여 획득한다.

CUBRID와 ODBC의 데이터 타입 Mapping

CUBRID 데이터 타입

ODBC 데이터 타입

Char

SQL_CHAR

Varchar

SQL_VARCHAR

String

SQL_LONGVARCHAR

Nchar

SQL_CHAR

Varnchar

SQL_VARCHAR

Bit

SQL_BINARY

varying bit

SQL_VARBINARY

Numeric

SQL_NUMERIC

Int

SQL_INTEGER

Short

SQL_SMALLINT

Float

SQL_FLOAT

Double

SQL_DOUBLE

Date

SQL_TYPE_DATE

Time

SQL_TYPE_TIME

Timestamp

SQL_TYPE_TIMESTAMP

Monetary

SQL_DOUBLE

Oid

SQL_CHAR(32)

set, multiset, sequence

SQL_VARCHAR(MAX_STRING_LENGTH)