OceanBase Developer Center(ODC)では、視覚的にタイプを作成できます。このドキュメントでは、ODCを使用してタイプを作成する方法について説明します。
概要
データベースタイプオブジェクトは、タイプの名前およびその属性、メソッド、その他の特性を指定するために使用されます。
ODCのタイプオブジェクトでは、3種類のタイプを作成できます:オブジェクト型、配列型、テーブル型です。
オブジェクト型:抽象データ型(Abstract Data Type、ADT)は、データベースオブジェクト、データベースオブジェクト間の関係、およびデータベースオブジェクトの基本操作をカプセル化した表現方法です。
配列型:可変配列はネストされたテーブルと似ており、集合でもあります。可変配列は、各要素が同じデータ型を持つオブジェクトの集合です。可変配列のサイズは作成時に決定されます。これにより、テーブルの列のデータ型を可変長の多次元配列として定義できます。配列の型は、任意の基本型、列挙型、複合型、またはユーザー定義型にすることができます。
テーブル型:独立したネストテーブル型で、作成した配列をテーブルの列に直接定義します。
タイプの作成には、以下の4つのステップが含まれます:
- タイプ名を指定します。
- タイプオブジェクトを選択します。
- ステートメントを編集します。
- タイプの作成を完了します。
このドキュメントでは、ODC内でオブジェクト型ob_varを作成する例を示します。このタイプには、varとvar1という2つのvarchar型のパラメータが含まれます。
説明
本文中で使用されているデータはすべて例です。実際の状況に応じてデータを置き換えることができます。
操作手順
ステップ1:タイプ名の指定
OceanBase Developer Center(ODC)で接続名をクリックして接続に入った後、左側のナビゲーションペインで**タイプタブをクリックすると、タイプのリストを見ることができます。タイプリストの右上隅で、+をクリックしてタイプを作成するか、上部のナビゲーションバーで新規作成**をクリックして必要なオブジェクトを作成します。

ステップ2:新規作成するタイプオブジェクトの選択
タイプ |
説明 |
例 |
|---|---|---|
| オブジェクト型 | 抽象データ型(ADT)。
説明サブプログラムを含むのはオブジェクト型のみです。 |
CREATE OR REPLACE TYPE ob_var AS OBJECT( var varchar2(10), var1 varchar(10) ); |
| 配列型 | 独立可変配列(VARRAY)型。 | CREATE OR REPLACE TYPE test AS VARRAY(20) of varchar2(20); |
| テーブル型 | 独立したネストテーブル型。 | CREATE OR REPLACE TYPE test AS TABLE OF varchar2(100 BYTE); AS TABLE OF を使用して、list<test> 配列を作成します。 |
ステップ3:ステートメントの編集

上記の情報を指定した後、次へ ボタンをクリックし、ステートメント編集ページに進みます。この記事では、タイプを作成 のポップアップで指定された情報に基づいて対応する型定義ステートメントが生成されます。ユーザーは要件に応じてステートメントを補完する必要があります。ステートメントを補完した後、ページの右上にある 作成する ボタンをクリックして、型の作成を完了します。
ステップ4:新規作成した型を完成させる
作成 をクリックし、新規作成した型を完成させます。型は通常PLステートメントで使用され、キーワード INSERT を使用してユーザー定義の型を呼び出します。
説明
- 左側のナビゲーションペインで、型リスト内の型名を右クリックすると、表示される管理操作リスト(表示、新規作成、ダウンロード、削除、および 更新 を含む)から、対象オブジェクトを簡単に管理および操作できます。
例:
-- テーブルの作成
create table data_type (id number(10),name varchar2(50),age int,address varchar2(50),salary float);
-- テーブルデータの挿入
insert into data_type values(1,'baba',20,'hangzhou',3000.00);
-- 型の新規作成
create or replace type ob_var as object(
var varchar2(10),
var1 varchar(10)
);
delimiter /
-- ストアドプロシージャの新規作成
create or replace procedure p_datatype is
begin
declare
rec data_type%rowtype;
v_age rec.age%type;
var varchar2(50);
v_name var%type;
v_salary data_type.salary%type;
-- ユーザー定義型
type salary is table of number index by varchar2(20);
arr salary;
v_arr arr%type;
CURSOR c2 IS SELECT name, age FROM data_type;
c_row c2%rowtype;
v_rec c_row%type;
ob ob_var;
v_obj ob%type;
begin
v_name := 'ali ';
v_age := 30;
v_salary := 2000;
dbms_output.put_line('参照先:変数、レコード、テーブル列名:' || v_name || ' * ' || v_age || ' * ' || v_salary);
v_arr('James') := 78000;
dbms_output.put_line('参照先:集合変数の名前:' || v_arr.FIRST);
open c2;
fetch c2 into v_rec;
dbms_output.put_line('参照先:カーソル変数名:' || v_rec.name || ' * ' || v_rec.age);
close c2;
v_obj:=ob_var('test','object');
dbms_output.put_line('参照先:オブジェクトインスタンス名:' || v_obj.var || ' * ' || v_obj.var1);
end;
end;
/
begin
p_datatype;
end;
/