php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #68326 Data from NCLOB column is not returned from PDO_OCI Statement
Submitted: 2014-10-29 19:23 UTC Modified: 2014-10-30 10:41 UTC
Votes:1
Avg. Score:4.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: contact at greg dot md Assigned:
Status: Open Package: PDO OCI
PHP Version: 5.4.34 OS: Mac OS X
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: contact at greg dot md
New email:
PHP Version: OS:

 

 [2014-10-29 19:23 UTC] contact at greg dot md
Description:
------------
I have compiled last sources from https://github.com/php/php-src/tree/master/ext/pdo_oci.

Data from NCLOB type is not returned in the row. From CLOB or NVARCHAR2 is all ok.

Test script:
---------------
$options = array(
    PDO::ATTR_STRINGIFY_FETCHES => true,
);

$dbh = new PDO('dns', 'username', 'password', $options);

$stmt = $dbh->query('select NCLOB_COLUMN from TABLE');

$row = $stmt->fetch(PDO::FETCH_ASSOC);

var_dump($row);



Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2014-10-30 10:41 UTC] sixd@php.net
-Type: Bug +Type: Feature/Change Request
 [2014-10-30 10:41 UTC] sixd@php.net
This is "expected" since support for NCLOB or NVARCHAR has not been implemented in PDO_OCI (or to the OCI8 extension).

From http://docs.oracle.com/database/121/NLSPG/ch2charset.htm#NLSPG180 :

"Oracle recommends using SQL CHAR, VARCHAR2, and CLOB data types in
AL32UTF8 database to store Unicode character data. Use of SQL NCHAR,
NVARCHAR2, and NCLOB should be considered only if you must use a
database whose database character set is not AL32UTF8."
 [2014-10-30 11:22 UTC] contact at greg dot md
Ok.

I have tested via oci, and it is working fine with NCLOB data type. That's why I thought it is a bug.

$dbh = oci_connect($username, $passwd, $tsa, 'UTF8');
$stmt = oci_parse($dbh, 'select * from "Feedbacks"');
oci_execute($stmt);
$row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_LOBS);
v($row);
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Nov 23 14:01:29 2024 UTC