Fetch string to pass through writeTemporary() in DatabaseOracle.php
authorwithoutaname <drevitchi@gmail.com>
Thu, 15 May 2014 05:52:24 +0000 (22:52 -0700)
committerwithoutaname <drevitchi@gmail.com>
Sun, 8 Jun 2014 09:45:46 +0000 (02:45 -0700)
Pulled some code from insertOneRow() to fix the update() function
and prevent the error warnings in bugzilla 64970 from showing up.
Note that since insertOneRow() and update() contains a lot of
duplicate code, they may be candidates for merging, but that is
outside the scope of this request.

Bug: 64970
Change-Id: I9ff9077d68e77f05f878fc541f87e0a5ce86ecc2

includes/db/DatabaseOracle.php

index 396de4f..7686010 100644 (file)
@@ -1491,6 +1491,10 @@ class DatabaseOracle extends DatabaseBase {
                                        throw new DBUnexpectedError( $this, "Cannot create LOB descriptor: " . $e['message'] );
                                }
 
+                               if ( is_object( $val ) ) {
+                                       $val = $val->getData();
+                               }
+
                                if ( $col_type == 'BLOB' ) {
                                        $lob[$col]->writeTemporary( $val );
                                        oci_bind_by_name( $stmt, ":$col", $lob[$col], -1, SQLT_BLOB );