Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^2: Perl, Oracle, and Xquery

by jozxyqk (Initiate)
on Mar 07, 2007 at 18:40 UTC ( [id://603671]=note: print w/replies, xml ) Need Help??

in reply to Re: Perl, Oracle, and Xquery
in thread Perl, Oracle, and Xquery

Even if I just prepare the statement "xquery" on a line alone (which, at least in the SQLPlus program, is an indicator that xquery follows), I get the "no such SQL command" error.

DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) [for Statement "xquery"] at line 62.

Replies are listed 'Best First'.
Re^3: Perl, Oracle, and Xquery
by varian (Chaplain) on Mar 07, 2007 at 19:05 UTC
    "XQUERY" is a command to set a mode in the SQL interpreter SQL*Plus. So it is not send to the backend database engine.
    Once you have set XQUERY mode then the following statement ('.....') will be embedded in a SELECT XQUERY statement by SQL*Plus before it is send to the database engine.

    So if you would want to do something similar from within Perl you would need to enter in your prepare method a text like this:

    NB: xquery SQL extensions are not supported by all databases
      Thank you, that was a much more helpful explanation than the one from Moron. I was not aware of this additional step.
Re^3: Perl, Oracle, and Xquery
by Moron (Curate) on Mar 07, 2007 at 18:44 UTC
    It ain't lying. xquery is not an SQL command. As I already explained, you have to extract each PURE SQL statement from your XQuery script before submitting them individually via DBI.


    Free your mind

      So I need to take the xquery and translate it back into SQL? There's no easier way to just parse xquery naturally in Perl? It doesn't have to be with DBI/DBD.
        I can see a number of ways to interpret that. There is the module Net::MarkLogic::XDBC if you are using xquery as a means to connect to a Marklogic CIS server. But Perl won't just wake up one day and parse the xquery syntax for you - if that module isn't sufficient we'll have to think of some other idea for how to parse it.

        Update: bearing in mind that xquery is of course an XML query language, it might be worth taking a look at the various DBI/XML interfacing modules on offer.


        Free your mind

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://603671]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-07-16 05:31 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.