Hallo Markus,
das Problem ist, dass ich mehrere (unterschiedliche) SQL-Statements innerhalb eines Blocks ausführen möchte, also in etwa so:
Begin
SQL Statement 1;
SQL Statement 2;
SQL Statement n;
END;
Hinzu kommt dass zum Teil noch Cursors und Schleifen benötigt werden.
Nach ein wenig Recherche und eigenen Tests scheint die Problemursache darin zu liegen, dass der Abfragestring, der entweder durch Railo oder den Servletcontainer, an den Oracle Server übergeben wird, am Ende ein CarriageReturnLineFeed enthält.
Dieses CRLF bringt aber offensichtlich Oracle zum Straucheln, da Oracle nur ein LF erwartet.
Mein Abfragestring enthält aber definitiv kein CRLF.
Gruß
Martin
--- In railo@yahoogroups.de hat "Skrabal, Markus (EXT)" <markus.skrabal.ext@...> geschrieben:
>
> Hallo Martin,
> das würde ich so lösen:
>
> <cfstoredproc datasource="xyz" procedure="tablelog.mdblogin">
> <cfprocparam type="in" cfsqltype="cf_sql_varchar" value="username"/>
> </cfstoredproc>
>
> <cfquery datasource="xyz" name="myUpdate">
> Update table1 set field1='value1' where field2=value2 (Strichpunkt weglassen!!)
> </cfquery>
>
> ...
>
> Wenn du das alles in einer Transaktion laufen lassen willst könnte es ein wenig tricky werden,
> da die Statements im Package in einer Extra Transaktion verarbeitet werden. Da müsste
> dann etwas logik eingebaut werden.
>
> Grüsse
> Markus
>
>
> ________________________________
> From: railo@yahoogroups.de [mailto:railo@yahoogroups.de] On Behalf Of martin.lucas28
> Sent: Thursday, October 29, 2009 12:21 PM
> To: railo@yahoogroups.de
> Subject: [railo] Betrifft: Problem mit Oracle PL/SQL Script
>
>
>
> Hallo Markus,
>
> danke für die Antwort.
> <cfstoredproc ...> Funktioniert tadellos.
> Allerdings sollen nach dem "tablelog.mdblogin" noch weitere SQL-Statements ausgeführt werden. Ein Script würde in etwa folgendermassen aussehen:
> BEGIN tablelog.mdblogin('username');
> Update table1 set field1='value1' where field2=value2;
> Update table2 set field1='value1' where field2=value2;
> ...
> END;
>
> Gerade bei solchen SQL-Scripts kommt die unten genannte Fehlermeldung.
>
> Gruß
>
> Martin
>
> --- In railo@yahoogroups.de<mailto:railo%40yahoogroups.de> hat "Skrabal, Markus (EXT)" <markus.skrabal.ext@> geschrieben:
> >
> > Hallo,
> > wenn das ein oracle package ist, sollte folgendes funktionieren.
> >
> > <cfstoredproc datasource="xyz" procedure="tablelog.mdblogin">
> > <cfprocparam type="in" cfsqltype="cf_sql_varchar" value="username"/>
> > </cfstoredproc>
> >
> >
> > Grüsse
> > Markus Skrabal
> >
> > ________________________________
> > From: railo@yahoogroups.de<mailto:railo%40yahoogroups.de> [mailto:railo@yahoogroups.de<mailto:railo%40yahoogroups.de>] On Behalf Of martin.lucas28
> > Sent: Thursday, October 29, 2009 11:49 AM
> > To: railo@yahoogroups.de<mailto:railo%40yahoogroups.de>
> > Subject: [railo] Problem mit Oracle PL/SQL Script
> >
> >
> >
> > Hallo Zusammen,
> >
> > ich habe ein Problem, wenn ich folgendes Oracle PL/SQL Script via <cfquery> ausführen möchte:
> > BEGIN tablelog.mdblogin('username');END;
> > tablelog.mdblogin ist eine Package Funktion die wir entwickelt haben.
> > Als Fehlermeldung bekomme ich: "ORA-06550: Zeile 1, Spalte 1: PLS-00103: Fand das Symbol "" als eines der folgenden erwartet wurde:..."
> >
> > Andere PL/SQL Scripts geben den gleichen Fehler aus.
> >
> > Das gleiche Script habe ich gegen einen Adobe CF 8.0.1 Server getestet. Da hat es funktioniert.
> >
> > Meine Entwicklungsumgebung:
> > Windows XP/SP3
> > Railo 3.1.1.000 final
> > Caucho Resin 3.1.2 (Der gleiche Effekt tritt unter Tomcat 6.0.20 ebenfalls auf)
> >
> > Ich hoffe jemand weiss einen Rat.
> >
> > Danke und Gruß
> >
> > Martin
> >
>