Hi Mikey,

OCI doesn't directly support the XMLtype so you need to convert to
string (if < 4k) or clob before retrieving. Use:

select xml_metadata.getClobVal() ... OR
select xml_metadata.getStringVal() ...

If converting to clob, you get a clob object back and you'll need to run
the load() method on it to get the text back.

Roberto


Mikey wrote:
> Hi!
> 
> I am running some tests for implementing variable metadata using
> Oracle's XMLTYPE.  Creating the XML and inserting it into the database
> works fine, however when trying to retrieve data it truncates the
> returned results.  The code I am using to fetch the data is as follows:
> 
> $row_sql = "SELECT xml_metadata FROM mdt1_metadata WHERE key_id = :kid";
> $row_sth = oci_parse ($conn, $row_sql); // $conn defined elsewhere
> oci_bind_by_name ($row_sth, ":kid", $row['key_id']);
> if (oci_execute ($row_sth)) {
>     $xml_row = oci_fetch_array ($row_sth, OCI_ASSOC);
>     try {
>         $xml = new SimpleXMLElement ($xml_row['xml_metadata']);
>     }
>     catch (Exception $e) {
>         echo "\n\n{$xml_row['xml_metadata']}\n\n";
>         exit;
>     }
>     // stuff goes in here....
> }
> 
> 
> I was wondering if anyone else on this list has had the same problem, or
> knows of a better way of returning long values using OCI?
> 
> TIA,
> 
> Mikey

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to