VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

CREATE TYPE语句支持or replace和{is | as} object子句

功能描述

Vastbase中create type语法可以兼容Oracle的or replace和{is | as} object可选子句,即数据库兼容支持以下语法:

create or replace type xxx
create  type xxx is object
create  type xxx as object
create or replace type xxx is object
create or replace type xxx as object

create or replace表示如果没有type xxx 则新建一个,如果已经存在,则删除后重新创建。

{is | as} object表示创建对象类型的自定义type

语法格式

CREATE [OR REPLACE] TYPE [ schema. ] type_name  { IS | AS } OBJECT (字段1 类型1,字段2 类型2);

注意事项

该功能仅在数据库兼容模式为Oracle时能够使用(即创建DB时DBCOMPATIBILITY='A'),在其他数据库兼容模式下不能使用该特性。

兼容性

Vastbase G100 V2.2版本与Oracle 11g R2版本相比,仅兼容CREATE [OR REPLACE] TYPE [ schema. ] type_name { IS | AS } OBJECT (字段1 类型1,字段2 类型2);部分,即CREATE TYPE命令新增OR REPLACE和{ IS | AS } OBJECT可选子句。其它可选子句语法兼容.

示例

1、创建并切换至兼容模式为Oracle的数据库db_oracle。

CREATE DATABASE db_oracle dbcompatibility='A';    
\c db_oracle

2、创建一个自定义类型t_raw。

create or replace type t_raw is object (v_str raw(4000),s text);

返回结果为:

CREATE TYPE