| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「DB2 XML DB (pureXML)」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==DB2 XML DB (pureXML)== [DB2][XML][XQuery] *DB2 XQuery ===ステートメント終了文字の変更=== *DB2 コマンド・ウィンドウで、db2 -td~ コマン…」)
 
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
 
==DB2 XML DB (pureXML)==
 
==DB2 XML DB (pureXML)==
[DB2][XML][XQuery]
+
[[DB2]] | [[XML]] | [[XQuery]] |
*DB2 XQuery
+
*[[DB2 XQuery]]
 
===ステートメント終了文字の変更===
 
===ステートメント終了文字の変更===
*DB2  コマンド・ウィンドウで、db2 -td~ コマンド (-td~  オプションを指定したdb2  コマンド)  を発行して DB2  コマンド行プロセッサーを開始
+
*[[DB2]] コマンド・ウィンドウで、db2 -td~ コマンド (-td~  オプションを指定したdb2  コマンド)  を発行して [[DB2]] コマンド行プロセッサーを開始
 
*-td  オプションは、ティルド (~)  をステートメント終了文字として設定
 
*-td  オプションは、ティルド (~)  をステートメント終了文字として設定
 
*。ネーム・スペース宣言の終了文字もセミコロンであるため、デフォルトのセミコロン(-t  オプション)  以外の終了文字を指定することによって、ネーム・スペース宣言を使用するステートメントまたは照会が誤って解釈されないようにします
 
*。ネーム・スペース宣言の終了文字もセミコロンであるため、デフォルトのセミコロン(-t  オプション)  以外の終了文字を指定することによって、ネーム・スペース宣言を使用するステートメントまたは照会が誤って解釈されないようにします
 
=====IBM DataStudio での設定=====
 
=====IBM DataStudio での設定=====
 
[[File:0332_xmldb01.jpg]]
 
[[File:0332_xmldb01.jpg]]
===XML  データを格納する DB2  データベースおよび表を作成===
+
===[[XML]] データを格納する DB2  データベースおよび表を作成===
*XML  データを保管または索引付けする場合、主キーは不要
+
*[[XML]] データを保管または索引付けする場合、主キーは不要
 
  create table android_manifest(apk varchar(255) not null primary key , manifest xml)~
 
  create table android_manifest(apk varchar(255) not null primary key , manifest xml)~
===XML  データに索引を作成===
+
===[[XML]] データに索引を作成===
*述部および文書をまたいだ結合で頻繁に使用される XML  エレメントまたは属性に索引
+
*述部および文書をまたいだ結合で頻繁に使用される [[XML]] エレメントまたは属性に索引
*リレーショナル索引および XML  データに対する索引は両方とも、列を索引付け
+
*リレーショナル索引および [[XML]] データに対する索引は両方とも、列を索引付け
*リレーショナル索引が列全体に索引を付けるのに対して、XML データに対する索引は列の一部に索引を付ける
+
*リレーショナル索引が列全体に索引を付けるのに対して、[[XML]] データに対する索引は列の一部に索引を付ける
*XML  列のどの部分に索引を付けるかを、XML  パターン (限定された XPath  式)  を指定
+
*XML  列のどの部分に索引を付けるかを、XML  パターン (限定された [[XPath]] 式)  を指定
 
*索引付きの値が格納されるデータ・タイプを指定する必要もある
 
*索引付きの値が格納されるデータ・タイプを指定する必要もある
*単一の XML  列のみ索引を付けられます。複合索引はサポートされていません
+
*単一の [[XML]] 列のみ索引を付けられます。複合索引はサポートされていません
 
  create index package_xmlidx on android_manifest(manifest)  
 
  create index package_xmlidx on android_manifest(manifest)  
 
  generate key using xmlpattern
 
  generate key using xmlpattern
 
   'declare default element namespace "http://schemas.android.com/apk/res/android"; /manifest/@package'  
 
   'declare default element namespace "http://schemas.android.com/apk/res/android"; /manifest/@package'  
 
  as sql varchar hashed
 
  as sql varchar hashed
===XML  タイプ列に XML  文書を挿入===
+
===[[XML]] タイプ列に [[XML]] 文書を挿入===
*整形式 XML  文書は、INSERT  SQL  ステートメントを使用して、XML タイプ列に挿入
+
*整形式 [[XML]] 文書は、INSERT  SQL  ステートメントを使用して、[[XML]] タイプ列に挿入
*ほとんどの場合、ストリング・データを XML  データ・タイプのターゲットに直接割り当てることはできません。まず XMLPARSE 関数を使用してそのデータを明示的に構文解析する必要があります
+
*ほとんどの場合、ストリング・データを [[XML]] データ・タイプのターゲットに直接割り当てることはできません。まず [[XML]]PARSE 関数を使用してそのデータを明示的に構文解析する必要があります
*INSERT、UPDATE、または DELETE  操作では、XMLPARSE 関数を明示的に呼び出さなくても、ストリング・データを XML  列に接割り当てることができます
+
*INSERT、UPDATE、または DELETE  操作では、[[XML]]PARSE 関数を明示的に呼び出さなくても、ストリング・データを [[XML]] 列に接割り当てることができます
 
*ストリング・データは暗黙的に構文解析されます
 
*ストリング・データは暗黙的に構文解析されます
  
 
  insert into android_manifest(apk, manifest) values ('info.typea.eitangoroid.free',
 
  insert into android_manifest(apk, manifest) values ('info.typea.eitangoroid.free',
  '<?xml version="1.0" encoding="utf-8"?>
+
  '&lt;?xml version="1.0" encoding="utf-8"?&gt;
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
 
       android:installLocation="auto"  
 
       android:installLocation="auto"  
       package="info.typea.eitangoroid.free" android:versionCode="12" android:versionName="0.65">
+
       package="info.typea.eitangoroid.free" android:versionCode="12" android:versionName="0.65"&gt;
     <application android:icon="@drawable/icon"  
+
     &lt;application android:icon="@drawable/icon"  
 
         android:label="@string/app_name"  
 
         android:label="@string/app_name"  
         android:name="info.typea.eitangoroid.FlippadApplication" android:debuggable="false">
+
         android:name="info.typea.eitangoroid.FlippadApplication" android:debuggable="false"&gt;
         <meta-data android:name="android.app.default_searchable"
+
         &lt;meta-data android:name="android.app.default_searchable"
                     android:value="info.typea.eitangoroid.WordSearchableActivity"/>
+
                     android:value="info.typea.eitangoroid.[[Word]]SearchableActivity"/&gt;
         <activity android:label="@string/app_name" android:name="FlippadroidMainActivity">
+
         &lt;acti[[vi]]ty android:label="@string/app_name" android:name="FlippadroidMainActi[[vi]]ty"&gt;
             <intent-filter>
+
             &lt;intent-filter&gt;
                 <action android:name="android.intent.action.MAIN" />
+
                 &lt;action android:name="android.intent.action.MAIN" /&gt;
                 <category android:name="android.intent.category.LAUNCHER" />
+
                 &lt;category android:name="android.intent.category.LAUNCHE[[R]]" /&gt;
             </intent-filter>
+
             &lt;/intent-filter&gt;
         </activity>
+
         &lt;/acti[[vi]]ty&gt;
         <activity android:name="info.typea.eitangoroid.WordSearchableActivity">
+
         &lt;activity android:name="info.typea.eitangoroid.[[Word]]SearchableActivity"&gt;
             <intent-filter>
+
             &lt;intent-filter&gt;
                 <action android:name="android.intent.action.SEARCH" />
+
                 &lt;action android:name="android.intent.action.SEA[[R]]CH" /&gt;
             </intent-filter>    
+
             &lt;/intent-filter&gt;    
             <meta-data android:name="android.app.searchable"
+
             &lt;meta-data android:name="android.app.searchable"
                     android:resource="@xml/searchable"/>      
+
                     android:resource="@xml/searchable"/&gt;      
         </activity>
+
         &lt;/acti[[vi]]ty&gt;
         <activity android:name="info.typea.eitangoroid.FlippadActivity"></activity>
+
         &lt;acti[[vi]]ty android:name="info.typea.eitangoroid.FlippadActi[[vi]]ty"&gt;&lt;/acti[[vi]]ty&gt;
         <activity android:name="info.typea.eitangoroid.WordBookListActivity"></activity>
+
         &lt;activity android:name="info.typea.eitangoroid.[[Word]]BookListActivity"&gt;&lt;/activity&gt;
         <activity android:name="info.typea.eitangoroid.FlippadPreferenceActivity"></activity>
+
         &lt;acti[[vi]]ty android:name="info.typea.eitangoroid.FlippadPreferenceActi[[vi]]ty"&gt;&lt;/acti[[vi]]ty&gt;
         <activity android:name="info.typea.eitangoroid.WordEditorActivity"></activity>
+
         &lt;activity android:name="info.typea.eitangoroid.[[Word]]EditorActivity"&gt;&lt;/activity&gt;
         <activity android:name="info.typea.eitangoroid.WorkingSetEditorActivity"></activity>    
+
         &lt;acti[[vi]]ty android:name="info.typea.eitangoroid.WorkingSetEditorActi[[vi]]ty"&gt;&lt;/acti[[vi]]ty&gt;    
         <receiver android:name="info.typea.eitangoroid.HeadsetStateReceiver">
+
         &lt;receiver android:name="info.typea.eitangoroid.HeadsetState[[R]]eceiver"&gt;
             <intent-filter>
+
             &lt;intent-filter&gt;
                 <action android:name="android.intent.action.HEADSET_PLUG"/>
+
                 &lt;action android:name="android.intent.action.HEADSET_PLUG"/&gt;
             </intent-filter>
+
             &lt;/intent-filter&gt;
         </receiver>        
+
         &lt;/receiver&gt;        
     </application>
+
     &lt;/application&gt;
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
+
     &lt;uses-permission android:name="android.permission.W[[R]]ITE_EXTE[[R]]NAL_STO[[R]]AGE"&gt;&lt;/uses-permission&gt;
     <uses-permission android:name="android.permission.INTERNET"></uses-permission>
+
     &lt;uses-permission android:name="android.permission.INTE[[R]]NET"&gt;&lt;/uses-permission&gt;
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+
     &lt;uses-permission android:name="android.permission.ACCESS_NETWO[[R]]K_STATE" /&gt;
     <uses-permission android:name="android.permission.VIBRATE"></uses-permission>
+
     &lt;uses-permission android:name="android.permission.VIB[[R]]ATE"&gt;&lt;/uses-permission&gt;
     <uses-sdk android:minSdkVersion="8" />
+
     &lt;uses-sdk android:minSdkVersion="8" /&gt;
  </manifest>')~
+
  &lt;/manifest&gt;')~
 
===レコードが正常に挿入されたことを確認===
 
===レコードが正常に挿入されたことを確認===
 
  select * from android_manifest~
 
  select * from android_manifest~
 
=====IBM DataStudio で確認=====
 
=====IBM DataStudio で確認=====
 
[[File:0333_xmldb02.jpg]]
 
[[File:0333_xmldb02.jpg]]

2020年2月16日 (日) 04:24時点における最新版

DB2 XML DB (pureXML)

DB2 | XML | XQuery |

ステートメント終了文字の変更

  • DB2 コマンド・ウィンドウで、db2 -td~ コマンド (-td~ オプションを指定したdb2 コマンド) を発行して DB2 コマンド行プロセッサーを開始
  • -td オプションは、ティルド (~) をステートメント終了文字として設定
  • 。ネーム・スペース宣言の終了文字もセミコロンであるため、デフォルトのセミコロン(-t オプション) 以外の終了文字を指定することによって、ネーム・スペース宣言を使用するステートメントまたは照会が誤って解釈されないようにします
IBM DataStudio での設定

0332 xmldb01.jpg

XML データを格納する DB2 データベースおよび表を作成

  • XML データを保管または索引付けする場合、主キーは不要
create table android_manifest(apk varchar(255) not null primary key , manifest xml)~

XML データに索引を作成

  • 述部および文書をまたいだ結合で頻繁に使用される XML エレメントまたは属性に索引
  • リレーショナル索引および XML データに対する索引は両方とも、列を索引付け
  • リレーショナル索引が列全体に索引を付けるのに対して、XML データに対する索引は列の一部に索引を付ける
  • XML 列のどの部分に索引を付けるかを、XML パターン (限定された XPath 式) を指定
  • 索引付きの値が格納されるデータ・タイプを指定する必要もある
  • 単一の XML 列のみ索引を付けられます。複合索引はサポートされていません
create index package_xmlidx on android_manifest(manifest) 
generate key using xmlpattern 	
  'declare default element namespace "http://schemas.android.com/apk/res/android"; /manifest/@package' 
as sql varchar hashed

XML タイプ列に XML 文書を挿入

  • 整形式 XML 文書は、INSERT SQL ステートメントを使用して、XML タイプ列に挿入
  • ほとんどの場合、ストリング・データを XML データ・タイプのターゲットに直接割り当てることはできません。まず XMLPARSE 関数を使用してそのデータを明示的に構文解析する必要があります
  • INSERT、UPDATE、または DELETE 操作では、XMLPARSE 関数を明示的に呼び出さなくても、ストリング・データを XML 列に接割り当てることができます
  • ストリング・データは暗黙的に構文解析されます
insert into android_manifest(apk, manifest) values ('info.typea.eitangoroid.free',
'<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      android:installLocation="auto" 
      package="info.typea.eitangoroid.free" android:versionCode="12" android:versionName="0.65">
    <application android:icon="@drawable/icon" 
        android:label="@string/app_name" 
        android:name="info.typea.eitangoroid.FlippadApplication" android:debuggable="false">
        <meta-data android:name="android.app.default_searchable"
                    android:value="info.typea.eitangoroid.WordSearchableActivity"/>
        <activity android:label="@string/app_name" android:name="FlippadroidMainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="info.typea.eitangoroid.WordSearchableActivity">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>   
            <meta-data android:name="android.app.searchable"
                   android:resource="@xml/searchable"/>     
        </activity>
        <activity android:name="info.typea.eitangoroid.FlippadActivity"></activity>
        <activity android:name="info.typea.eitangoroid.WordBookListActivity"></activity>
        <activity android:name="info.typea.eitangoroid.FlippadPreferenceActivity"></activity>
        <activity android:name="info.typea.eitangoroid.WordEditorActivity"></activity>
        <activity android:name="info.typea.eitangoroid.WorkingSetEditorActivity"></activity>    
        <receiver android:name="info.typea.eitangoroid.HeadsetStateReceiver">
            <intent-filter>
                <action android:name="android.intent.action.HEADSET_PLUG"/>
            </intent-filter>
        </receiver>        
    </application>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.VIBRATE"></uses-permission>
    <uses-sdk android:minSdkVersion="8" />
</manifest>')~

レコードが正常に挿入されたことを確認

select * from android_manifest~
IBM DataStudio で確認

0333 xmldb02.jpg