スケーラブルデータベースサーバ HiRDB Version 8 解説(Windows(R)用)
抽象データ型を含む表データの操作方法について説明します。
プラグインを使用する場合には,プラグインから提供される関数を指定してUAPを作成すると,文書,画像,音声などのマルチメディアデータを操作できます。
ここでは,全文検索プラグイン(HiRDB Text Search Plug-in)を使用した場合の例を説明します。
ここでは,論理述語を使用したデータの検索の例を説明します。
SELECT 薬品ID FROM 薬品管理表 WHERE contains(取扱説明書,'添付文書データ[効能{"頭痛"}]') IS TRUE
ここでは,データの更新の例を説明します。
UPDATE 薬品管理表 SET 取扱説明書 = SGMLTEXT(:sgml) WHERE 薬品ID = '薬品2'
EXEC SQL BEGIN DECLARE SECTION; 1 SQL TYPE IS BLOB(300K)sgml; 1 EXEC SQL END DECLARE SECTION; 1 strcpy(sgml.sgml_data,char_ptr_pointing_to_a_sgml_text); 2 sgml.sgml_length = strlen(char_ptr_pointing_to_a_sgml_text); 3
ここでは,データ型の削除の例を説明します。
DELETE FROM 薬品管理表 WHERE 薬品ID = '薬品2'
ここでは,データの挿入の例を説明します。
INSERT INTO 薬品管理表(薬品ID,取扱説明書) VALUES('薬品25',SGMLTEXT(:sgml))
EXEC SQL BEGIN DECLARE SECTION; 1 SQL TYPE IS BLOB(300K)sgml; 1 EXEC SQL END DECLARE SECTION; 1 strcpy(sgml.sgml_data,char_ptr_pointing_to_a_sgml_text); 2 sgml.sgml_length = strlen(char_ptr_pointing_to_a_sgml_text); 3
HiRDB XML Extensionから提供される関数を指定してUAPを作成すると,XML形式のデータを操作できます。
ここでは,XML形式のデータの検索例について説明します。
SELECT 書籍ID, XMLSERIALIZE(書籍情報 AS VARCHAR(32000)) FROM 書籍管理表 WHERE 書籍ID = 126513592
SELECT 書籍ID, XMLSERIALIZE( XMLQUERY('/書籍情報/タイトル' PASSING BY VALUE 書籍情報 RETURNING SEQUENCE EMPTY ON EMPTY) AS VARCHAR(32000)) FROM 書籍管理表 WHERE XMLEXISTS('/書籍情報[カテゴリ="データベース"]' PASSING BY VALUE 書籍情報)
SELECT XMLSERIALIZE( XMLAGG( XMLQUERY('/書籍情報/タイトル' PASSING BY VALUE書籍情報 RETURNING SEQUENCE EMPTY ON EMPTY) ) AS VARCHAR(32000)) FROM 書籍管理表 WHERE XMLEXISTS('/書籍情報[カテゴリ="データベース"]' PASSING BY VALUE 書籍情報)
SELECT XMLSERIALIZE( XMLQUERY( '$BOOKS/書籍情報[カテゴリ=$BOOKS/書籍情報[タイトル="SQL徹底解説"]/カテゴリ]' PASSING BY VALUE XMLAGG(書籍情報) AS BOOKS RETURNING SEQUENCE EMPTY ON EMPTY) AS VARCHAR(32000)) FROM 書籍管理表
ユーザが定義した抽象データ型を含む表のデータ操作をする場合には,ルーチン又はコンポネント指定を使用します。コンポネント指定は,抽象データ型を構成する列の属性を操作する場合に使用します。ここでは,ユーザが定義した抽象データ型を含む表のデータ操作の例を説明します。
ユーザが定義した抽象データ型を含む表の列を検索する例を説明します。
SELECT 社員番号 FROM 社員表 WHERE 勤続年数(従業員)>=20
ユーザが定義した抽象データ型を含む表の列を更新する例を説明します。
UPDATE 社員表 SET 従業員..役職 ='主任' WHERE 社員番号 = '900123'
ユーザが定義した抽象データ型を含む表の列を削除する例を説明します。
DELETE FROM 従業員表 WHERE 従業員..役職='一般'
ユーザが定義した抽象データ型を含む表にデータを挿入する例を説明します。
INSERT INTO 従業員表 VALUES ('990070',t_従業員('タシロケイコ', 'F', '一般', '1999-04-01', :x顔写真 AS BLOB, 140000 ))
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.