Oracle Database 10gでは、SQL*Loader制御ファイルでXMLTYPE
句を使用できます。形式は、XMLTYPE(フィールド名)
です。正しいSQL文を構築するために、この句を使用してXMLType
表を識別します。例9-2では、スキーマベースのXMLType
表にデータをロードするために、SQL*Loaderの制御ファイルでXMLTYPE
句を使用する方法を示します。
関連項目:
SQL*Loaderを使用したXMLデータのロードの詳細は、『Oracle XML DB開発者ガイド』を参照してください。
例9-2 SQL*Loader制御ファイルでのXMLType表の識別
XMLスキーマ定義は次のとおりです。XMLスキーマxdb_user.xsd
がOracle XML DBに登録され、表xdb_tab5
が作成されます。
begin dbms_xmlschema.registerSchema('xdb_user.xsd', '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb"> <xs:element name = "Employee" xdb:defaultTable="EMP31B_TAB"> <xs:complexType> <xs:sequence> <xs:element name = "EmployeeId" type = "xs:positiveInteger"/> <xs:element name = "Name" type = "xs:string"/> <xs:element name = "Salary" type = "xs:positiveInteger"/> <xs:element name = "DeptId" type = "xs:positiveInteger" xdb:SQLName="DEPTID"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>', TRUE, TRUE, FALSE); end; /
表を定義する方法は、次のとおりです。
CREATE TABLE xdb_tab5 OF XMLTYPE XMLSCHEMA "xdb_user.xsd" ELEMENT "Employee";
データを表xdb_tab5
にロードするために使用する制御ファイルは、次のようになります。登録されたXMLスキーマxdb_user.xsd
を使用して、XMLType
データがロードされます。XMLTYPE
句を使用して、この表をXMLType
表として識別します。ダイレクト・パスまたは従来型モードのいずれかを使用して、表にデータをロードできます。
LOAD DATA INFILE * INTO TABLE xdb_tab5 TRUNCATE xmltype(xmldata) ( xmldata char(4000) ) BEGINDATA <Employee> <EmployeeId>111</EmployeeId> <Name>Ravi</Name> <Salary>100000</Sal ary> <DeptId>12</DeptId></Employee> <Employee> <EmployeeId>112</EmployeeId> <Name>John</Name> <Salary>150000</Sal ary> <DeptId>12</DeptId></Employee> <Employee> <EmployeeId>113</EmployeeId> <Name>Michael</Name> <Salary>75000</S alary> <DeptId>12</DeptId></Employee> <Employee> <EmployeeId>114</EmployeeId> <Name>Mark</Name> <Salary>125000</Sal ary> <DeptId>16</DeptId></Employee> <Employee> <EmployeeId>115</EmployeeId> <Name>Aaron</Name> <Salary>600000</Sa lary> <DeptId>16</DeptId></Employee>