* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Window10 64bit 등 |
|
11 |
|
deveaver |
|
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
오류를 해결하기 위해 특정 스키마에게 데이터 타입에 관해 array_integer 설정을 해줘야 한다고 실행해야 할 sql문을 받았는데요
CREATE OR REPLACE TYPE SIARD.INTEGER_OBJ AS OBJECT (
value INTEGER
);
CREATE OR REPLACE TYPE SIARD.INTEGER_ARRAY AS VARRAY(10) OF INTEGER;
이러합니다. 저 SIARD는 스키마 이름입니다.
그런데 저 명령어를 관리자 모드의 cmd창에서 실행하면
csql> CREATE OR REPLACE TYPE SIARD.INTEGER_OBJ AS OBJECT (value INTEGER);
In line 1, column 19,
ERROR: In line 1, column 19 before ' SIARD.INTEGER_OBJ AS OBJECT (value INTEGER); '
Syntax error: unexpected 'TYPE', expecting FUNCTION or PROCEDURE or VCLASS or VIEW
이러한 오류가 뜨는데요 혹시 무엇 때문인지 알 수 있을까요?
다른 분들의 질문을 보니 CREATE OR REPLACE 자체는 가능한 기능인 듯 한데 어떻게 실행을 해야 저걸 유효하게 실행할 수 있을까요?
질문하신 CUBRID에서의 "CREATE OR REPLACE TYPE" 문법 오류는 CUBRID SQL에서 사용자 정의 데이터 타입이나 객체 타입(OBJECT TYPE)을 직접 생성하는 명령어를 지원하지 않기 때문입니다. CUBRID는 오라클 데이터베이스와는 다르게 SQL 표준을 따르며, 객체 지향적 특성을 갖추고 있지만 CREATE TYPE 또는 관련 문법은 제공하지 않습니다.