Avatar billede callisen Nybegynder
07. februar 2007 - 11:12 Der er 3 kommentarer

Gemme XSLT-output data i Oracle9i tabel

Jeg har en java client der henter noget data gennem en web service. Herefter skal det pågældende data gemmes i en Oracle9i database. Den nemmeste måde ville være at extracte data ved at benytte et XSLT-stylesheet. Mit problem er at jeg ikke ved hvordan jeg kan overføre mit data til Oracle databasen direkte fra et XSLT-stylesheet. Jeg formoder at jeg skal benytte et embedded script (på samme måde som man kan gøre i htm dokumenter), men det skal være noget som kan eksekveres relativ hurtigt. Jeg ved ikke rigtig om det udelukker javascript, eller om PERL eller andre alternativer er nemmere at i XSLT-stylesheet. Sådan vidt jeg ved kan man ikke benytte rigtig java, kun scripts eller hvad?

Der er dog det krav at mængden af data svare til max 50.000 kolonner i en database tabel, så løsningen skal kunne håndtere den mængde af data.

Her er et eksempel

<xs:schema>
  <!-- Number of start elements: 1 out of 50.000 -->
  <element name="NewDataSet" IsDataSet="true" UseCurrentLocale="true" >
    <complexType>
      <choice minOccurs="0" maxOccurs="unbounded" >
                <element name="Table" >
                    <complexType>
                        <sequence>
                      <element name="Datatype_1" type="xs:string" minOccurs="0" />
                      <element name="Datatype_2" type="xs:string" minOccurs="0" />
                      <element name="Datatype_3" type="xs:string" minOccurs="0" />
                      <element name="Datatype_4" type="xs:string" minOccurs="0" />
                      <element name="Datatype_5" type="xs:string" minOccurs="0" />
                      <element name="Datatype_6" type="xs:string" minOccurs="0" />
                      <element name="Datatype_7" type="xs:string" minOccurs="0" />
                  </sequence>
                </complexType>
            </element>
      </choice>
    </complexType>
  </element>
</xs:schema>


Jeg udlover 300 point til den der kan hjælpe til med finde frem til en god løsning, men lad lige være med at fortælle mig at web service ikke egner sig til den slags. Faktum er at det ved jeg godt men det har jeg ingen indflydelse på.
Avatar billede arne_v Ekspert
08. februar 2007 - 02:11 #1
Du kan godt lave en XSLT transformation i dit Java program og kalde Java kode
inde fra dit XSLT style sheet - og den kode kan principielt godt gemme
i Oracle.

Umiddelbart er jeg ret sikker på at en SAX parser ville kunne gøre det
meget hurtigere.
Avatar billede callisen Nybegynder
08. februar 2007 - 10:29 #2
Det er jeg godt med på, for efter stillede spørgsmålet her i dette forum kiggede jeg lidt på følgende link: http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96620/toc.htm

Sagen er den at jeg gerne vil benytte et XSLT style sheet til at sortere data med, og så loade det direkte ind i Oracle9i. Men da mit data skal via et Oracle9i API (en bestemt interface tabel) kan jeg ikke bare gemme data i Oracle9i som xml-format. Mit problem er at jeg ikke ved hvordan jeg kan loade det rå data ind de rigtige steder i interface tabellen?

Jeg kunne selvfølgelig godt benytte et XSLT style sheet, og så håndtere output direkte fra java og herefter loade det over i Oracle9i. Det synes jeg bare ikke er en god løsning eftersom jeg så får et unødvendigt mellemled som kunne undgås ved at hardkoder det hele i java ved hjælp af SAX eller en anden parser (Det er hvad jeg plejer at gøre, men jeg synes bare at det ville være bedre at gøre det direkte via et stylesheet fordi det er nemmere hvis der er andre der senere hen skal hen over koden)
Avatar billede callisen Nybegynder
08. februar 2007 - 12:36 #3
Nu har jeg selvfølgelig fået endelig besked på at det kun kommer til være en Oracle 10g database og ikke en Oracle9i database. Jeg tror dog ikke det vil ha nogen indflydelse på mit problem?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester