10 Replies Latest reply on Jun 4, 2015 12:47 PM by cacodri

    Error SQL: ORA-31038: invalid number "420,05" when extract data from XML

    cacodri

      Hello everyone,

      I have created a scheme

      DBMS_XMLSCHEMA.REGISTERSCHEMA(SCHEMAURL=>'OrdenDetalle.xsd', SCHEMADOC=>'<?xml version="1.0" encoding="UTF?8"?>

       

      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

       

          <xs:element name="Ordenes">

              <xs:complexType>

                  <xs:sequence>

                      <xs:element name="Cantidad" type="xs:integer"/>

                      <xs:element name="FechaCreacion" type="xs:dateTime"/>

                      <xs:element name="Version" type="xs:string"/>

                      <xs:element ref="Listado"/>

                  </xs:sequence>

              </xs:complexType>

          </xs:element>

       

          <xs:element name="Listado">

              <xs:complexType>

                  <xs:choice>

                      <xs:element name="OrdenCompra" type="T_OrdenCompra"/>

                  </xs:choice>

              </xs:complexType>

          </xs:element>

       

          <xs:complexType name="T_OrdenCompra">

              <xs:sequence>

                  <xs:element name="Codigo" type="xs:string"/>

                  <xs:element name="Nombre" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="CodigoEstado" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="CodigoLicitacion"  type="xs:string" nillable="true" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Descripcion" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="CodigoTipo" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Tipo" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="TipoMoneda" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Estado" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="CodigoEstadoProveedor" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="EstadoProveedor" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element ref="Fechas" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="TieneItems" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="PromedioCalificacion" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="CantidadEvaluacion" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Descuentos" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Cargos" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="TotalNeto" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="PorcentajeIva" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Impuestos" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Total" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Financiamiento" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="Pais" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="TipoDespacho" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                  <xs:element name="FormaPago" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                  <xs:element ref="Comprador" minOccurs="0" maxOccurs="1"/>

                  <xs:element ref="Proveedor" minOccurs="0" maxOccurs="1"/>

                  <xs:element ref="Items"  minOccurs="0" maxOccurs="1"/>

              </xs:sequence>

          </xs:complexType>

       

          <xs:element name="Items">

              <xs:complexType>

                  <xs:sequence>

                      <xs:element name="Cantidad" type="xs:integer"/>

                      <xs:element name="Listado">

                          <xs:complexType>

                          <xs:sequence>

                        <xs:element ref="Item"  minOccurs="0" maxOccurs="unbounded"/>

                          </xs:sequence>                   

                          </xs:complexType>

                      </xs:element>

                  </xs:sequence>

              </xs:complexType>

          </xs:element>

       

       

          <xs:complexType name="OrdenCompraBusqueda">

              <xs:complexContent>

                  <xs:extension base="T_OrdenCompra">

                  </xs:extension>

              </xs:complexContent>

          </xs:complexType>

       

          <xs:element name="Item">

              <xs:complexType>

                  <xs:sequence>

                      <xs:element name="Correlativo" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="CodigoCategoria" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Categoria" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="CodigoProducto" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Producto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="EspecificacionComprador" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="EspecificacionProveedor" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Cantidad" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Moneda" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="PrecioNeto" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="TotalCargos" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="TotalDescuentos"  type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="TotalImpuestos" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Total" type="xs:decimal" minOccurs="0" maxOccurs="1"/>

                  </xs:sequence>

              </xs:complexType>

          </xs:element>

       

          <xs:element name="Fechas">

              <xs:complexType>

                  <xs:sequence>

                      <xs:element name="FechaCreacion" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="FechaEnvio" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="FechaAceptacion" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="FechaCancelacion" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="FechaUltimaModificacion" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1"/>

                  </xs:sequence>

              </xs:complexType>

          </xs:element>

       

          <xs:element name="Comprador">

              <xs:complexType>

                  <xs:sequence>

                      <xs:element name="CodigoOrganismo" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="NombreOrganismo" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="RutUnidad" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="CodigoUnidad" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="NombreUnidad" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Actividad" type="xs:string" nillable="true"/>

                      <xs:element name="DireccionUnidad" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="ComunaUnidad" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="RegionUnidad" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Pais" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="NombreContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="CargoContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="FonoContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="MailContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  </xs:sequence>

              </xs:complexType>

          </xs:element>

       

          <xs:element name="Proveedor">

              <xs:complexType>

                  <xs:sequence>

                      <xs:element name="Codigo" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Nombre" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Actividad" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="CodigoSucursal" type="xs:integer" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="NombreSucursal" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="RutSucursal" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Direccion" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Comuna" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Region" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="Pais" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="NombreContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="CargoContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="FonoContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                      <xs:element name="MailContacto" type="xs:string" minOccurs="0" maxOccurs="1"/>

                  </xs:sequence>

              </xs:complexType>

          </xs:element>

       

      </xs:schema>

       

       

      ', LOCAL=>true, GENTYPES=>false, GENBEAN=>false, GENTABLES=>false,

      FORCE=>false, OPTIONS=>DBMS_XMLSCHEMA.REGISTER_BINARYXML, OWNER=>USER);

       

      I have a table with an xml field.

      CREATE TABLE XML_Orden_Detalle(Fecha_GET date default current_date not null,

                                     Fecha_Ordenes number not null,

                                     Correlativo_Ordenes number not null,

                                     Codigo_Orden varchar2(20) not null primary key,

                                     Cant_Item,

                                     InicioProceso date,

                                     FinProceso date,

                                     Orden_Detalle xmltype not null)

      XMLTYPE COLUMN Orden_Detalle

      STORE AS BINARY XML

      XMLSCHEMA "http://xmlns.oracle.com/xdb/schemas/CCS_XML/OrdenDetalle.xsd"

      ELEMENT "Ordenes";


      I inserted data like this, without any errors:

      <Ordenes xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        <Cantidad>1</Cantidad>

        <FechaCreacion>2015-05-28T12:10:26.947000</FechaCreacion>

        <Version>v1</Version>

        <Listado>

          <OrdenCompra xsi:type="OrdenCompraBusqueda">

            <Codigo>3879-2661-SE14</Codigo>

            <Nombre>PSP DAEM 2014.  COFFE BREAK PARA DOCENTES OP21838</Nombre>

            <CodigoEstado>6</CodigoEstado>

            <CodigoLicitacion>3902-5-LE14</CodigoLicitacion>

            <Descripcion>PSP DAEM 2014.  COFFE BREAK PARA DOCENTES OP21838</Descripcion>

            <CodigoTipo>8</CodigoTipo>

            <Tipo>SE</Tipo>

            <TipoMoneda>CLP</TipoMoneda>

            <Estado>Aceptada</Estado>

            <CodigoEstadoProveedor>4</CodigoEstadoProveedor>

            <EstadoProveedor>Aceptada</EstadoProveedor>

            <Fechas>

              <FechaCreacion>2014-12-29T17:43:32.287000</FechaCreacion>

              <FechaEnvio>2014-12-31T10:32:35.480000</FechaEnvio>

              <FechaAceptacion>2015-01-01T21:03:03.660000</FechaAceptacion>

              <FechaCancelacion xsi:nil="true"/>

              <FechaUltimaModificacion>2014-12-29T17:51:00.000000</FechaUltimaModificacion>

            </Fechas>

            <TieneItems>1</TieneItems>

            <PromedioCalificacion>5</PromedioCalificacion>

            <CantidadEvaluacion>1</CantidadEvaluacion>

            <Descuentos>0</Descuentos>

            <Cargos>0</Cargos>

            <TotalNeto>53782</TotalNeto>

            <PorcentajeIva>19</PorcentajeIva>

            <Impuestos>10218</Impuestos>

            <Total>64000</Total>

            <Financiamiento>1140569</Financiamiento>

            <Pais>CL</Pais>

            <TipoDespacho>12</TipoDespacho>

            <FormaPago>2</FormaPago>

            <Comprador>

              <CodigoOrganismo>118069</CodigoOrganismo>

              <NombreOrganismo>Ilustre municipalidad de Bulnes</NombreOrganismo>

              <RutUnidad>69.141.200-8</RutUnidad>

              <CodigoUnidad>4799</CodigoUnidad>

              <NombreUnidad>Daem</NombreUnidad>

              <Actividad/>

              <DireccionUnidad>VICTOR BIANCHI Nº415</DireccionUnidad>

              <ComunaUnidad>Bulnes</ComunaUnidad>

              <RegionUnidad>Región del Biobío </RegionUnidad>

              <Pais>CL</Pais>

              <NombreContacto>Antonella Brunetti</NombreContacto>

              <CargoContacto>Adquisiciones</CargoContacto>

              <FonoContacto>56-42-2204053-2204054</FonoContacto>

              <MailContacto>adquisiciones@daembulnes.cl</MailContacto>

            </Comprador>

            <Proveedor>

              <Codigo>275020</Codigo>

              <Nombre>luis</Nombre>

              <Actividad>FABRICACION DE PAN, PRODUCTOS DE PANADERIA Y PASTE</Actividad>

              <CodigoSucursal>280820</CodigoSucursal>

              <NombreSucursal>luis</NombreSucursal>

              <RutSucursal>5.940.940-9</RutSucursal>

              <Direccion>Carlos Palacios 125</Direccion>

              <Comuna>Bulnes</Comuna>

              <Region>Región del Biobío </Region>

              <Pais>CL</Pais>

              <NombreContacto>Luis Leonardo Landero Valdés  </NombreContacto>

              <CargoContacto>Gerente</CargoContacto>

              <FonoContacto>(56)(42) 631498</FonoContacto>

              <MailContacto>luislanderovaldes@gmail.com</MailContacto>

            </Proveedor>

            <Items>

              <Cantidad>7</Cantidad>

              <Listado>

                <Item>

                  <Correlativo>1</Correlativo>

                  <CodigoCategoria>30222700</CodigoCategoria>

                  <Categoria>Artículos para estructuras, obras y construcciones / Construcciones permanentes / Construcciones industriales</Categoria>

                  <CodigoProducto>30222703</CodigoProducto>

                  <Producto>Mercancías de almacén</Producto>

                  <EspecificacionComprador>BEBIDAS DE 3 LITROS</EspecificacionComprador>

                  <EspecificacionProveedor/>

                  <Cantidad>10</Cantidad>

                  <Moneda>CLP</Moneda>

                  <PrecioNeto>1550</PrecioNeto>

                  <TotalCargos>0</TotalCargos>

                  <TotalDescuentos>0</TotalDescuentos>

                  <TotalImpuestos>0</TotalImpuestos>

                  <Total>15500</Total>

                </Item>

                <Item>

                  <Correlativo>2</Correlativo>

                  <CodigoCategoria>30222700</CodigoCategoria>

                  <Categoria>Artículos para estructuras, obras y construcciones / Construcciones permanentes / Construcciones industriales</Categoria>

                  <CodigoProducto>30222703</CodigoProducto>

                  <Producto>Mercancías de almacén</Producto>

                  <EspecificacionComprador>JUGOS DE 1 1/2 LITYROS</EspecificacionComprador>

                  <EspecificacionProveedor/>

                  <Cantidad>10</Cantidad>

                  <Moneda>CLP</Moneda>

                  <PrecioNeto>1150</PrecioNeto>

                  <TotalCargos>0</TotalCargos>

                  <TotalDescuentos>0</TotalDescuentos>

                  <TotalImpuestos>0</TotalImpuestos>

                  <Total>11500</Total>

                </Item>

                <Item>

                  <Correlativo>3</Correlativo>

                  <CodigoCategoria>30222700</CodigoCategoria>

                  <Categoria>Artículos para estructuras, obras y construcciones / Construcciones permanentes / Construcciones industriales</Categoria>

                  <CodigoProducto>30222703</CodigoProducto>

                  <Producto>Mercancías de almacén</Producto>

                  <EspecificacionComprador>PAQUETES SERVILLETAS</EspecificacionComprador>

                  <EspecificacionProveedor/>

                  <Cantidad>8</Cantidad>

                  <Moneda>CLP</Moneda>

                  <PrecioNeto>170</PrecioNeto>

                  <TotalCargos>0</TotalCargos>

                  <TotalDescuentos>0</TotalDescuentos>

                  <TotalImpuestos>0</TotalImpuestos>

                  <Total>1360</Total>

                </Item>

                <Item>

                  <Correlativo>4</Correlativo>

                  <CodigoCategoria>30222700</CodigoCategoria>

                  <Categoria>Artículos para estructuras, obras y construcciones / Construcciones permanentes / Construcciones industriales</Categoria>

                  <CodigoProducto>30222703</CodigoProducto>

                  <Producto>Mercancías de almacén</Producto>

                  <EspecificacionComprador>KILOS DE AZUCAR</EspecificacionComprador>

                  <EspecificacionProveedor/>

                  <Cantidad>5</Cantidad>

                  <Moneda>CLP</Moneda>

                  <PrecioNeto>580</PrecioNeto>

                  <TotalCargos>0</TotalCargos>

                  <TotalDescuentos>0</TotalDescuentos>

                  <TotalImpuestos>0</TotalImpuestos>

                  <Total>2900</Total>

                </Item>

                <Item>

                  <Correlativo>5</Correlativo>

                  <CodigoCategoria>30222700</CodigoCategoria>

                  <Categoria>Artículos para estructuras, obras y construcciones / Construcciones permanentes / Construcciones industriales</Categoria>

                  <CodigoProducto>30222703</CodigoProducto>

                  <Producto>Mercancías de almacén</Producto>

                  <EspecificacionComprador>NESCAFE</EspecificacionComprador>

                  <EspecificacionProveedor/>

                  <Cantidad>2</Cantidad>

                  <Moneda>CLP</Moneda>

                  <PrecioNeto>3900</PrecioNeto>

                  <TotalCargos>0</TotalCargos>

                  <TotalDescuentos>0</TotalDescuentos>

                  <TotalImpuestos>0</TotalImpuestos>

                  <Total>7800</Total>

                </Item>

                <Item>

                  <Correlativo>6</Correlativo>

                  <CodigoCategoria>30222700</CodigoCategoria>

                  <Categoria>Artículos para estructuras, obras y construcciones / Construcciones permanentes / Construcciones industriales</Categoria>

                  <CodigoProducto>30222703</CodigoProducto>

                  <Producto>Mercancías de almacén</Producto>

                  <EspecificacionComprador>CAJAS DE TE DE 20 BOL</EspecificacionComprador>

                  <EspecificacionProveedor/>

                  <Cantidad>5</Cantidad>

                  <Moneda>CLP</Moneda>

                  <PrecioNeto>340</PrecioNeto>

                  <TotalCargos>0</TotalCargos>

                  <TotalDescuentos>0</TotalDescuentos>

                  <TotalImpuestos>0</TotalImpuestos>

                  <Total>1700</Total>

                </Item>

                <Item>

                  <Correlativo>7</Correlativo>

                  <CodigoCategoria>30222700</CodigoCategoria>

                  <Categoria>Artículos para estructuras, obras y construcciones / Construcciones permanentes / Construcciones industriales</Categoria>

                  <CodigoProducto>30222703</CodigoProducto>

                  <Producto>Mercancías de almacén</Producto>

                  <EspecificacionComprador>GALLETAS TRITON</EspecificacionComprador>

                  <EspecificacionProveedor/>

                  <Cantidad>31</Cantidad>

                  <Moneda>CLP</Moneda>

                  <PrecioNeto>420,05</PrecioNeto>

                  <TotalCargos>0</TotalCargos>

                  <TotalDescuentos>0</TotalDescuentos>

                  <TotalImpuestos>0</TotalImpuestos>

                  <Total>13021,550000000001</Total>

                </Item>

              </Listado>

            </Items>

          </OrdenCompra>

        </Listado>

      </Ordenes>

       

      however when I extract data, for example:


      select *

      from xmltable( to_char( '/Ordenes/Listado/OrdenCompra/Items/Listado/Item[1]' )

              passing (select Orden_Detalle

                       from xml_Orden_Detalle

                       where Fecha_Ordenes = 20150101 and Correlativo_ordenes = 83)

              columns     Correlativo             varchar2(15)        path 'Correlativo'

                         ,CodigoCategoria         varchar2(15)        path 'CodigoCategoria'

                         ,Categoria               Varchar2(100 CHAR)  path 'Categoria'

                         ,CodigoProducto          varchar2(15)        path 'CodigoProducto'

                         ,Producto                Varchar2(100 CHAR)  path 'Producto'

                         ,EspecificacionComprador Varchar2(100 CHAR)  path 'EspecificacionComprador'

                         ,EspecificacionProveedor Varchar2(100 CHAR)  path 'EspecificacionProveedor'

                         ,Cantidad                varchar2(15)        path 'Cantidad'

                         ,Moneda                  Varchar2(16 CHAR)   path 'Moneda'

                         ,PrecioNeto              varchar2(15)        path 'PrecioNeto'

                         ,TotalCargos             varchar2(15)        path 'TotalCargos'

                         ,TotalDescuentos         varchar2(15)        path 'TotalDescuentos'

                         ,TotalImpuestos          varchar2(15)        path 'TotalImpuestos'

                         ,Total                   varchar2(15)        path 'Total'

          );

       


      delivery the following error:


      Informe de error:

      Error SQL: ORA-31038: Valor number no válido: "420,05"

      31038. 00000 -  "Invalid %s value: \"%s\""

      *Cause:    The text in the XML document did not represent a valid

                 value given the datatype and other constraints in the schema.

      *Action:   Ensure that the specified value in XML documents is valid

                 with respect to the datatype and other constraints in the schema.

       

      Note that extract the item [1] but the reported error corresponds to the item [7]

       

      please if anyone can help me with the solution so that no report error

      Thank you very much in advance

      Carlos

       

        • 1. Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
          odie_63

          Hi Carlos,

           

          A few remarks :

           

          1) Your table script doesn't work :

               - the Cant_Item column has no datatype.

               - there's a mismatch between the XML schema url specified there and the actual url used to register the schema.

           

           

          2) Are you sure the XML document you've given is the one you've inserted in the table?

           

          When I try to insert it, I get this expected validation error :

          ORA-64464: XML event error

          ORA-19202: Error occurred in XML processing

          LSX-00234: invalid decimal "420,05"

          which indicates the XML instance document doesn't conform to the schema.

          A xs:decimal value always use a dot '.' for decimal separator.

           

          After correcting the sample XML, the INSERT is executed successfully.

           

          However, when you query back the table, numeric values are displayed according to your NLS settings.

          I'm not sure if it's a bug or a "feature" though.

           

           

          3) Why on earth are you using TO_CHAR?

          to_char( '/Ordenes/Listado/OrdenCompra/Items/Listado/Item[1]' )

          Never do that, it'll force functional evaluation and possibly generate suboptimal execution plans.

           

           

          4) Use SQL datatypes that match the XSD datatypes :

           

          SQL> show parameter nls_num
          
          NAME                                 TYPE        VALUE
          ------------------------------------ ----------- ------------------------------
          nls_numeric_characters               string      , 
          
          SQL> select x.*
            2  from xml_Orden_Detalle t
            3    , xmltable('/Ordenes/Listado/OrdenCompra/Items/Listado/Item'
            4          passing t.Orden_Detalle
            5          columns Correlativo             number        path 'Correlativo'
            6                , CodigoCategoria         number        path 'CodigoCategoria'
            7                , Categoria               Varchar2(100 CHAR)  path 'Categoria'
            8                , CodigoProducto          number        path 'CodigoProducto'
            9                , Producto                Varchar2(100 CHAR)  path 'Producto'
           10                , EspecificacionComprador Varchar2(100 CHAR)  path 'EspecificacionComprador'
           11                , EspecificacionProveedor Varchar2(100 CHAR)  path 'EspecificacionProveedor'
           12                , Cantidad                number        path 'Cantidad'
           13                , Moneda                  Varchar2(16 CHAR)   path 'Moneda'
           14                , PrecioNeto              number       path 'PrecioNeto'
           15                , TotalCargos             number       path 'TotalCargos'
           16                , TotalDescuentos         number       path 'TotalDescuentos'
           17                , TotalImpuestos          number       path 'TotalImpuestos'
           18                , Total                   number       path 'Total'
           19      ) x
           20  where t.codigo_orden = 'ABC' ;
          
          CORRELATIVO CODIGOCATEGORIA CATEGORIA                                                                        CODIGOPRODUCTO PRODUCTO                ESPECIFICACIONCOMPRADOR   ESPECIFICACIONPROVEEDOR     CANTIDAD MONEDA   PRECIONETO TOTALCARGOS TOTALDESCUENTOS TOTALIMPUESTOS      TOTAL
          ----------- --------------- -------------------------------------------------------------------------------- -------------- ----------------------- ------------------------- ------------------------- ---------- -------- ---------- ----------- --------------- -------------- ----------
                    1        30222700 Artículos para estructuras, obras y construcciones / Construcciones permanentes        30222703 Mercancías de almacén   BEBIDAS DE 3 LITROS                                         10 CLP            1550           0               0              0      15500
                    2        30222700 Artículos para estructuras, obras y construcciones / Construcciones permanentes        30222703 Mercancías de almacén   JUGOS DE 1 1/2 LITYROS                                      10 CLP            1150           0               0              0      11500
                    3        30222700 Artículos para estructuras, obras y construcciones / Construcciones permanentes        30222703 Mercancías de almacén   PAQUETES SERVILLETAS                                         8 CLP             170           0               0              0       1360
                    4        30222700 Artículos para estructuras, obras y construcciones / Construcciones permanentes        30222703 Mercancías de almacén   KILOS DE AZUCAR                                              5 CLP             580           0               0              0       2900
                    5        30222700 Artículos para estructuras, obras y construcciones / Construcciones permanentes        30222703 Mercancías de almacén   NESCAFE                                                      2 CLP            3900           0               0              0       7800
                    6        30222700 Artículos para estructuras, obras y construcciones / Construcciones permanentes        30222703 Mercancías de almacén   CAJAS DE TE DE 20 BOL                                        5 CLP             340           0               0              0       1700
                    7        30222700 Artículos para estructuras, obras y construcciones / Construcciones permanentes        30222703 Mercancías de almacén   GALLETAS TRITON                                             31 CLP          420,05           0               0              0   13021,55
          
          7 rows selected.
          
          • 2. Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
            cacodri

            Hi Odie thank for your response it very valuable.

             

            1) sorry the script have an error, but the table it's according with "Cant_Item number"

             

            2) indeed, the previous document is extracted directly from the table.


                 A xs:decimal value always use a dot '.' for decimal separator. , in Chile the decimal dot are ',' not '.', the xml data table are correct for us


                select * from nls_database_parameters where parameter = 'NLS_NUMERIC_CHARACTERS'

               

                 NLS_NUMERIC_CHARACTERS    .,


                 then actual schema extracter directly from schema are:


            <?xml version="1.0" encoding="utf-8"?>

            <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:oraxdb="http://xmlns.oracle.com/xdb" oraxdb:flags="2122017" oraxdb:schemaURL="OrdenDetalle.xsd" oraxdb:schemaOwner="CCS_XML" oraxdb:numProps="90" xmlns:csx="http://xmlns.oracle.com/2004/CSX"><xs:element name="Ordenes" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:propertyID="7709" oraxdb:global="true" oraxdb:memType="258"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7705" kidNum="1"></csx:kid><csx:kid csx:propertyID="7706" kidNum="2"></csx:kid><csx:kid csx:propertyID="7707" kidNum="3"></csx:kid><csx:kid csx:propertyID="7708" kidNum="4"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element name="Cantidad" type="xs:integer" csx:propertyID="7705" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FechaCreacion" type="xs:dateTime" csx:propertyID="7706" oraxdb:global="false" csx:encodingType="orats" oraxdb:memType="181" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Version" type="xs:string" csx:propertyID="7707" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element ref="Listado" csx:propertyID="7708" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Listado" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:propertyID="7711" oraxdb:global="true" oraxdb:memType="258"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7710" kidNum="1"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:choice><xs:element name="OrdenCompra" type="T_OrdenCompra" csx:propertyID="7710" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"></xs:element></xs:choice></xs:complexType></xs:element><xs:complexType name="T_OrdenCompra" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:typeID="246"><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7767" kidNum="1"></csx:kid><csx:kid csx:propertyID="7768" kidNum="2"></csx:kid><csx:kid csx:propertyID="7769" kidNum="3"></csx:kid><csx:kid csx:propertyID="7770" kidNum="4"></csx:kid><csx:kid csx:propertyID="7771" kidNum="5"></csx:kid><csx:kid csx:propertyID="7772" kidNum="6"></csx:kid><csx:kid csx:propertyID="7773" kidNum="7"></csx:kid><csx:kid csx:propertyID="7774" kidNum="8"></csx:kid><csx:kid csx:propertyID="7775" kidNum="9"></csx:kid><csx:kid csx:propertyID="7776" kidNum="10"></csx:kid><csx:kid csx:propertyID="7777" kidNum="11"></csx:kid><csx:kid csx:propertyID="7778" kidNum="12"></csx:kid><csx:kid csx:propertyID="7779" kidNum="13"></csx:kid><csx:kid csx:propertyID="7780" kidNum="14"></csx:kid><csx:kid csx:propertyID="7781" kidNum="15"></csx:kid><csx:kid csx:propertyID="7782" kidNum="16"></csx:kid><csx:kid csx:propertyID="7783" kidNum="17"></csx:kid><csx:kid csx:propertyID="7784" kidNum="18"></csx:kid><csx:kid csx:propertyID="7785" kidNum="19"></csx:kid><csx:kid csx:propertyID="7786" kidNum="20"></csx:kid><csx:kid csx:propertyID="7787" kidNum="21"></csx:kid><csx:kid csx:propertyID="7788" kidNum="22"></csx:kid><csx:kid csx:propertyID="7789" kidNum="23"></csx:kid><csx:kid csx:propertyID="7790" kidNum="24"></csx:kid><csx:kid csx:propertyID="7791" kidNum="25"></csx:kid><csx:kid csx:propertyID="7792" kidNum="26"></csx:kid><csx:kid csx:propertyID="7793" kidNum="27"></csx:kid><csx:kid csx:propertyID="7794" kidNum="28"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element name="Codigo" type="xs:string" csx:propertyID="7767" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Nombre" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7768" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoEstado" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7769" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoLicitacion" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1" csx:propertyID="7770" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Descripcion" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7771" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoTipo" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7772" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Tipo" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7773" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="TipoMoneda" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7774" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Estado" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7775" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoEstadoProveedor" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7776" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="EstadoProveedor" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7777" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element ref="Fechas" minOccurs="0" maxOccurs="1" csx:propertyID="7778" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"></xs:element><xs:element name="TieneItems" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7779" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="PromedioCalificacion" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7780" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CantidadEvaluacion" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7781" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Descuentos" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7782" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Cargos" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7783" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="TotalNeto" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7784" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="PorcentajeIva" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7785" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Impuestos" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7786" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Total" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7787" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Financiamiento" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7788" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Pais" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7789" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="TipoDespacho" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7790" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FormaPago" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7791" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element ref="Comprador" minOccurs="0" maxOccurs="1" csx:propertyID="7792" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"></xs:element><xs:element ref="Proveedor" minOccurs="0" maxOccurs="1" csx:propertyID="7793" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"></xs:element><xs:element ref="Items" minOccurs="0" maxOccurs="1" csx:propertyID="7794" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"></xs:element></xs:sequence></xs:complexType><xs:element name="Items" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:propertyID="7715" oraxdb:global="true" oraxdb:memType="258"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7712" kidNum="1"></csx:kid><csx:kid csx:propertyID="7714" kidNum="2"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element name="Cantidad" type="xs:integer" csx:propertyID="7712" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Listado" csx:propertyID="7714" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7713" kidNum="1"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element ref="Item" minOccurs="0" maxOccurs="unbounded" csx:propertyID="7713" oraxdb:global="false" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:complexType name="OrdenCompraBusqueda" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:typeID="247"><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7767" kidNum="1"></csx:kid><csx:kid csx:propertyID="7768" kidNum="2"></csx:kid><csx:kid csx:propertyID="7769" kidNum="3"></csx:kid><csx:kid csx:propertyID="7770" kidNum="4"></csx:kid><csx:kid csx:propertyID="7771" kidNum="5"></csx:kid><csx:kid csx:propertyID="7772" kidNum="6"></csx:kid><csx:kid csx:propertyID="7773" kidNum="7"></csx:kid><csx:kid csx:propertyID="7774" kidNum="8"></csx:kid><csx:kid csx:propertyID="7775" kidNum="9"></csx:kid><csx:kid csx:propertyID="7776" kidNum="10"></csx:kid><csx:kid csx:propertyID="7777" kidNum="11"></csx:kid><csx:kid csx:propertyID="7778" kidNum="12"></csx:kid><csx:kid csx:propertyID="7779" kidNum="13"></csx:kid><csx:kid csx:propertyID="7780" kidNum="14"></csx:kid><csx:kid csx:propertyID="7781" kidNum="15"></csx:kid><csx:kid csx:propertyID="7782" kidNum="16"></csx:kid><csx:kid csx:propertyID="7783" kidNum="17"></csx:kid><csx:kid csx:propertyID="7784" kidNum="18"></csx:kid><csx:kid csx:propertyID="7785" kidNum="19"></csx:kid><csx:kid csx:propertyID="7786" kidNum="20"></csx:kid><csx:kid csx:propertyID="7787" kidNum="21"></csx:kid><csx:kid csx:propertyID="7788" kidNum="22"></csx:kid><csx:kid csx:propertyID="7789" kidNum="23"></csx:kid><csx:kid csx:propertyID="7790" kidNum="24"></csx:kid><csx:kid csx:propertyID="7791" kidNum="25"></csx:kid><csx:kid csx:propertyID="7792" kidNum="26"></csx:kid><csx:kid csx:propertyID="7793" kidNum="27"></csx:kid><csx:kid csx:propertyID="7794" kidNum="28"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:complexContent><xs:extension base="T_OrdenCompra"></xs:extension></xs:complexContent></xs:complexType><xs:element name="Item" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:propertyID="7730" oraxdb:global="true" oraxdb:memType="258"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7716" kidNum="1"></csx:kid><csx:kid csx:propertyID="7717" kidNum="2"></csx:kid><csx:kid csx:propertyID="7718" kidNum="3"></csx:kid><csx:kid csx:propertyID="7719" kidNum="4"></csx:kid><csx:kid csx:propertyID="7720" kidNum="5"></csx:kid><csx:kid csx:propertyID="7721" kidNum="6"></csx:kid><csx:kid csx:propertyID="7722" kidNum="7"></csx:kid><csx:kid csx:propertyID="7723" kidNum="8"></csx:kid><csx:kid csx:propertyID="7724" kidNum="9"></csx:kid><csx:kid csx:propertyID="7725" kidNum="10"></csx:kid><csx:kid csx:propertyID="7726" kidNum="11"></csx:kid><csx:kid csx:propertyID="7727" kidNum="12"></csx:kid><csx:kid csx:propertyID="7728" kidNum="13"></csx:kid><csx:kid csx:propertyID="7729" kidNum="14"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element name="Correlativo" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7716" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoCategoria" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7717" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Categoria" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7718" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoProducto" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7719" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Producto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7720" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="EspecificacionComprador" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7721" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="EspecificacionProveedor" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7722" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Cantidad" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7723" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Moneda" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7724" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="PrecioNeto" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7725" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="TotalCargos" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7726" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="TotalDescuentos" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7727" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="TotalImpuestos" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7728" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Total" type="xs:decimal" minOccurs="0" maxOccurs="1" csx:propertyID="7729" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Fechas" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:propertyID="7736" oraxdb:global="true" oraxdb:memType="258"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7731" kidNum="1"></csx:kid><csx:kid csx:propertyID="7732" kidNum="2"></csx:kid><csx:kid csx:propertyID="7733" kidNum="3"></csx:kid><csx:kid csx:propertyID="7734" kidNum="4"></csx:kid><csx:kid csx:propertyID="7735" kidNum="5"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element name="FechaCreacion" type="xs:dateTime" minOccurs="0" maxOccurs="1" csx:propertyID="7731" oraxdb:global="false" csx:encodingType="orats" oraxdb:memType="181" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FechaEnvio" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1" csx:propertyID="7732" oraxdb:global="false" csx:encodingType="orats" oraxdb:memType="181" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FechaAceptacion" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1" csx:propertyID="7733" oraxdb:global="false" csx:encodingType="orats" oraxdb:memType="181" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FechaCancelacion" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1" csx:propertyID="7734" oraxdb:global="false" csx:encodingType="orats" oraxdb:memType="181" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FechaUltimaModificacion" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="1" csx:propertyID="7735" oraxdb:global="false" csx:encodingType="orats" oraxdb:memType="181" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Comprador" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:propertyID="7751" oraxdb:global="true" oraxdb:memType="258"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7737" kidNum="1"></csx:kid><csx:kid csx:propertyID="7738" kidNum="2"></csx:kid><csx:kid csx:propertyID="7739" kidNum="3"></csx:kid><csx:kid csx:propertyID="7740" kidNum="4"></csx:kid><csx:kid csx:propertyID="7741" kidNum="5"></csx:kid><csx:kid csx:propertyID="7742" kidNum="6"></csx:kid><csx:kid csx:propertyID="7743" kidNum="7"></csx:kid><csx:kid csx:propertyID="7744" kidNum="8"></csx:kid><csx:kid csx:propertyID="7745" kidNum="9"></csx:kid><csx:kid csx:propertyID="7746" kidNum="10"></csx:kid><csx:kid csx:propertyID="7747" kidNum="11"></csx:kid><csx:kid csx:propertyID="7748" kidNum="12"></csx:kid><csx:kid csx:propertyID="7749" kidNum="13"></csx:kid><csx:kid csx:propertyID="7750" kidNum="14"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element name="CodigoOrganismo" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7737" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="NombreOrganismo" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1" csx:propertyID="7738" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="RutUnidad" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7739" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoUnidad" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7740" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="NombreUnidad" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7741" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Actividad" type="xs:string" nillable="true" csx:propertyID="7742" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="DireccionUnidad" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7743" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="ComunaUnidad" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7744" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="RegionUnidad" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7745" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Pais" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7746" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="NombreContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7747" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CargoContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7748" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FonoContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7749" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="MailContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7750" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Proveedor" xmlns:csx="http://xmlns.oracle.com/2004/CSX" csx:propertyID="7766" oraxdb:global="true" oraxdb:memType="258"><xs:complexType><xs:annotation><xs:appinfo><csx:kidList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true"><csx:kid csx:propertyID="7752" kidNum="1"></csx:kid><csx:kid csx:propertyID="7753" kidNum="2"></csx:kid><csx:kid csx:propertyID="7754" kidNum="3"></csx:kid><csx:kid csx:propertyID="7755" kidNum="4"></csx:kid><csx:kid csx:propertyID="7756" kidNum="5"></csx:kid><csx:kid csx:propertyID="7757" kidNum="6"></csx:kid><csx:kid csx:propertyID="7758" kidNum="7"></csx:kid><csx:kid csx:propertyID="7759" kidNum="8"></csx:kid><csx:kid csx:propertyID="7760" kidNum="9"></csx:kid><csx:kid csx:propertyID="7761" kidNum="10"></csx:kid><csx:kid csx:propertyID="7762" kidNum="11"></csx:kid><csx:kid csx:propertyID="7763" kidNum="12"></csx:kid><csx:kid csx:propertyID="7764" kidNum="13"></csx:kid><csx:kid csx:propertyID="7765" kidNum="14"></csx:kid></csx:kidList></xs:appinfo></xs:annotation><xs:sequence><xs:element name="Codigo" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7752" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Nombre" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7753" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Actividad" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7754" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CodigoSucursal" type="xs:integer" minOccurs="0" maxOccurs="1" csx:propertyID="7755" oraxdb:global="false" csx:encodingType="oranum" oraxdb:memType="2" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="NombreSucursal" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7756" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="RutSucursal" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7757" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Direccion" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7758" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Comuna" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7759" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Region" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7760" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="Pais" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7761" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="NombreContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7762" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="CargoContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7763" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="FonoContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7764" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element><xs:element name="MailContacto" type="xs:string" minOccurs="0" maxOccurs="1" csx:propertyID="7765" oraxdb:global="false" csx:encodingType="string" oraxdb:memType="1" oraxdb:MemInline="true" oraxdb:SQLInline="true" oraxdb:JavaInline="true"></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>


            3) TO_CHAR(...) the code are part of a procedure, the actual code are:


              while v_i <= v_CantItems loop

                from xmltable( to_char( '/Ordenes/Listado/OrdenCompra/Items/Listado/Item[' || to_char(v_i) || ']' )

                        passing (select Orden_Detalle

                                 from xml_Orden_Detalle

                                 where Fecha_Ordenes = p_FECHA_ORDENES and Correlativo_ordenes = p_CORRELATIVO_ORDENES)

                        columns     Correlativo             Number(10,0)        path 'Correlativo'

                                   ,CodigoCategoria         Number(10,0)        path 'CodigoCategoria'

                                   ,Categoria               Varchar2(100 CHAR)  path 'Categoria'

                                   ,CodigoProducto          Number(10,0)        path 'CodigoProducto'

                                   ,Producto                Varchar2(100 CHAR)  path 'Producto'

                                   ,EspecificacionComprador Varchar2(100 CHAR)  path 'EspecificacionComprador'

                                   ,EspecificacionProveedor Varchar2(100 CHAR)  path 'EspecificacionProveedor'

                                   ,Cantidad                Number(10,2)        path 'Cantidad'

                                   ,Moneda                  Varchar2(16 CHAR)   path 'Moneda'

                                   ,PrecioNeto              Number(15,2)        path 'PrecioNeto'

                                   ,TotalCargos             Number(15,2)        path 'TotalCargos'

                                   ,TotalDescuentos         Number(15,2)        path 'TotalDescuentos'

                                   ,TotalImpuestos          Number(15,2)        path 'TotalImpuestos'

                                   ,Total                   Number(15,2)        path 'Total'

                    );

             

            probably advisable to assemble the path in a variable and then pass it on to xmltable (....?


            4) show parameter nls_num;


            NAME                               TYPE    VALUE                       

            ---------------------------------------- ----------- ----------------------------------

            nls_numeric_characters      string                                  

             

             

            Thanks

             

            Carlos

            • 3. Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
              cacodri

              sorry have a error in my last post.

               

              then correct code of procedure are:

               

                while v_i <= v_CantItems loop

                  select *

                  into  v_Correlativo

                       ,v_CodigoCategoria

                       ,v_Categoria

                       ,v_CodigoProducto

                       ,v_Producto

                       ,v_EspecificacionComprador

                       ,v_EspecificacionProveedor

                       ,v_Cantidad

                       ,v_Moneda

                       ,v_PrecioNeto

                       ,v_TotalCargos

                       ,v_TotalDescuentos

                       ,v_TotalImpuestos

                       ,v_Total

                  from xmltable( to_char( '/Ordenes/Listado/OrdenCompra/Items/Listado/Item[' || to_char(v_i) || ']' )

                          passing (select Orden_Detalle

                                   from xml_Orden_Detalle

                                   where Fecha_Ordenes = p_FECHA_ORDENES and Correlativo_ordenes = p_CORRELATIVO_ORDENES)

                          columns     Correlativo             Number(10,0)        path 'Correlativo'

                                     ,CodigoCategoria         Number(10,0)        path 'CodigoCategoria'

                                     ,Categoria               Varchar2(100 CHAR)  path 'Categoria'

                                     ,CodigoProducto          Number(10,0)        path 'CodigoProducto'

                                     ,Producto                Varchar2(100 CHAR)  path 'Producto'

                                     ,EspecificacionComprador Varchar2(100 CHAR)  path 'EspecificacionComprador'

                                     ,EspecificacionProveedor Varchar2(100 CHAR)  path 'EspecificacionProveedor'

                                     ,Cantidad                Number(10,2)        path 'Cantidad'

                                     ,Moneda                  Varchar2(16 CHAR)   path 'Moneda'

                                     ,PrecioNeto              Number(15,2)        path 'PrecioNeto'

                                     ,TotalCargos             Number(15,2)        path 'TotalCargos'

                                     ,TotalDescuentos         Number(15,2)        path 'TotalDescuentos'

                                     ,TotalImpuestos          Number(15,2)        path 'TotalImpuestos'

                                     ,Total                   Number(15,2)        path 'Total'

                      );

              .

              .

              .

              • 4. Re: Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
                odie_63
                in Chile the decimal dot are ',' not '.', the xml data table are correct for us

                You don't understand.

                Whatever the locale, numeric values constrained by a xs:decimal datatype must use a dot in a correct XML representation, otherwise the document is not valid per the XSD.



                3) TO_CHAR(...) the code are part of a procedure

                Still, do NOT build a dynamic path like that.

                Why not just loop through the records returned by the query (if you need to loop at all)?


                FOR rec in (

                  SELECT x.*

                  FROM your_table t

                     , XMLTABLE ( ... ) x

                )

                LOOP


                END LOOP;


                What's the role of the v_CantItems variable? Pagination?

                Where does its value come from?

                • 5. Re: Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
                  cacodri

                  1) in Chile the decimal dot are ',' not '.', the xml data table are correct for us


                  First sorry for may english....it's very bad.


                  The externat server http://api.mercadopublico.cl  send the data with this format "420,05" as you see in:


                  http://api.mercadopublico.cl/servicios/v1/publico/ordenesdecompra.xml?codigo=3879-2661-SE14&ticket=CB3FD8C7-EE89-490C-9610-4A3C162B3B69


                  This XML data Document is inserted correctly in the table XML_Orden_Detalle, field "Orden_Detalle", in posterior procesing i extract the data and insert in 5 relational tables.


                  2) TO_CHAR(...) the code are part of a procedure...


                  Thank you very much, with this solution FOR ..., more eficient and elegant work very well, don't error, why??


                  the v_CantItems variable i extract from xml data and indicate the register quantity but now isn't necesary


                  Thanks


                  Carlos


                  • 6. Re: Re: Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
                    Marco Gralike

                    Carlos Codriansky wrote:


                    The externat server http://api.mercadopublico.cl  send the data with this format "420,05" as you see in:

                     

                    http://api.mercadopublico.cl/servicios/v1/publico/ordenesdecompra.xml?codigo=3879-2661-SE14&ticket=CB3FD8C7-EE89-490C-9610-4A3C162B3B69

                     

                     

                    Are you sure? I have the following showing up in my browser...

                     

                    Capture.PNG

                    odie_63

                     

                    Be careful... You have an LSX error, Carlos doesn't seemed to have this...his is an ORA- error...

                    Lax / Strict:  How does XML DB handle XML Schema Validation ?

                     

                    'Lax' validation takes place whenever a schema based document is converted from it's textual representation into the XML DB internal object model. Errors caught by this validation will be prefixed with 'ORA'.

                    'Stict' validation takes place when the XMLType methods schemaValidate() or isSchemaValid() are invoked. The error message associated with the exception will be prefixed with LSX.

                     

                    • 7. Re: Re: Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
                      odie_63

                      Be careful... You have an LSX error, Carlos doesn't seemed to have this...his is an ORA- error...

                      Yes, I got an LSX because the validation error was caught at INSERT time, where strict validation always occurs for schema-based Binary XML.

                      It was just to demonstrate that Carlos' original document must have been inserted with a correct xs:decimal format, otherwise he would've got an LSX too.

                       

                      I guess Carlos got an ORA-class error because of its use of a dynamic XQuery string, which triggers a functional evaluation and a new validation step inside the XVM.

                      Now the big question is : why does the XML representation is NLS sensitive in this case? Not very W3C compliant.

                      • 8. Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
                        cacodri

                        I'm really confused.

                         

                        For which reason the data contained in the table show 420,05 and not 420.05

                        • 9. Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
                          odie_63

                          Carlos Codriansky wrote:

                           

                          For which reason the data contained in the table show 420,05 and not 420.05

                          Because serialization of a schema-based binary XML document appears to be NLS sensitive, probably because the internal CSX encoding uses datatype-aware tokens.

                          But as I said before, I don't know if it's a bug or a feature.

                          • 10. Re: Error SQL: ORA-31038: invalid number "420,05" when extract data from XML
                            cacodri

                            It is appropriate report as a possible bug ?

                             

                            how it's made?