|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #41996 PDO_OCI: Problem accessing Oracle ROWID
Submitted: 2007-07-14 14:45 UTC Modified: 2016-03-08 01:41 UTC
Avg. Score:4.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: tsedeke at feigenblatt dot de Assigned: sixd (profile)
Status: Closed Package: PDO OCI
PHP Version: 5.2.3 OS: Suse Enterprise Server 9
Private report: No CVE-ID: None
 [2007-07-14 14:45 UTC] tsedeke at feigenblatt dot de
Getting error accessing the oracle rowid in a PDO select statement.

The NLS_LANG is set to AMERICAN_AMERICA.AL32UTF8 same as the database.
I also restartet the Apache2.2 with the php as module, to be sure it take the right parameters.

Reproduce code:
$db_username = "elements";
$db_password = "elements";
$db = "oci:dbname=XE;charset=AL32UTF8";
$conn = new PDO($db,$db_username,$db_password);

$stmt = $conn->prepare("SELECT rowid,t1,t2 FROM test");
  while ($row = $stmt->fetch()) {

Expected result:
Array ( [ROWID] => AAADVUAAEAAAAFMAAA [0] => AAADVUAAEAAAAFMAAA [T1] => test1 [1] => test1 [T2] => First test [2] => First test )

Actual result:
Warning: PDOStatement::fetch() [function.PDOStatement-fetch]: column 0 data was too large for buffer and was truncated to fit it


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2007-08-23 14:51 UTC]
Assigned to the PDO OCI driver maintainer.
 [2007-09-06 14:22 UTC] rubio at jsc dot com dot ar
Try to replace your query with:
"SELECT ROWIDTOCHAR(rowid),t1,t2 FROM test"

Hope this helps...

 [2008-07-21 18:05 UTC]
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
Thank you for the report, and for helping us make PHP better.

 [2016-03-08 01:41 UTC]
-Package: PDO related +Package: PDO OCI
PHP Copyright © 2001-2018 The PHP Group
All rights reserved.
Last updated: Sun Nov 19 01:31:42 2017 UTC