Hi, I would like insert the following document :
Tests made in 18cXE and 19EE
<?xml version="1.0" encoding="UTF-8"?>
<vol numero="AF6143"
xsi:noNamespaceSchemaLocation="'http://www.eyrolles.fr/vols-or.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<date_vol>2020-02-20</date_vol>
<depart>TLS</depart>
<arrivee>ORY</arrivee>
</vol>
according to this xml schema
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb" >
<xs:element name="vol" type="volType" xdb:defaultTable=""/>
<xs:complexType name="volType" xdb:SQLType="TYP_VOL" >
<xs:sequence>
<xs:element type="xs:date" name="date_vol" xdb:SQLName="DATE_VOL" xdb:SQLType="DATE"/>
<xs:element name="depart" minOccurs="1" xdb:SQLName="DEPART" xdb:SQLType="VARCHAR2">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3"/></xs:restriction></xs:simpleType>
</xs:element>
<xs:element name="arrivee" minOccurs="1" xdb:SQLName="ARRIVEE" xdb:SQLType="VARCHAR2">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3"/></xs:restriction></xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="numero" xdb:SQLName="NUMERO" xdb:SQLType="NUMBER"/>
</xs:complexType>
</xs:schema>
recorded with
BEGIN
DBMS_XMLSCHEMA.REGISTERSCHEMA(
schemaurl => 'http://www.eyrolles.fr/vols-or.xsd',
schemadoc => BFILENAME('REPXML','vols-or.xsd'),
gentypes => TRUE,
gentables => FALSE,
csid => NLS_CHARSET_ID('AL32UTF8'));
END;
/
in this table
CREATE TABLE t_doc_xml OF XMLTYPE
XMLTYPE STORE AS OBJECT RELATIONAL
XMLSCHEMA "http://www.eyrolles.fr/vols-or.xsd" ELEMENT "vol";
SQL> INSERT INTO t_doc_xml VALUES
2 (XMLTYPE (XMLDATA => BFILENAME('REPXML','vol_6143-grammaire.xml'),
3 csid => NLS_CHARSET_ID('AL32UTF8')));
*
ERREUR à la ligne 1 :
ORA-31041: Propriété numero : le type de mémoire (1) n'est pas compatible avec
celui de la base de données (2)
The same result appears whatever the content is.