From: mike dot mcsherry at ociofc dot usda dot gov
Operating system: window 2000
PHP version: 4.3.3
PHP Bug Type: OCI8 related
Bug description: select * from tabname returns ebcdic data
Description:
------------
I'm using php/oci8/apache/oracle sqlplus client (version 8.1.7.0.0) from
my pc to connect to an oracle data base (version 7.3.3.6.3) that lives on
an IBM mainframe. The data in the database is stored in ebcdic (oh boy!)
i.e. the nls_characterset setting in the db nls_database_parameters view
is set to WE8EBCDIC37C... When I run an OCIExecute to say, select * from
emp and do an OCIFetch the data comes back in EBCDIC... when I
OCIColumnName the column names come back in ascii.. I wrote a little
routine to convert the data from EB->ASCII and the data then looks fine
but I was hoping someone else like oracle's protocol adapter (or you:)
would handle it.. Sqlplus works predictably as does perl on my pc. Any
ideas?
Thanks
Mike McSherry (970)295-5196 (Colorado)
Reproduce code:
---------------
<?php
$conn = OCILogon("rvis", "rvis25","KCT1");
$stmt = OCIParse($conn,"select * from emp");
$result = OCIExecute($stmt, OCI_DEFAULT);
echo "<HTML><TABLE BORDER=1> ";
$ncols = OCINumCols($stmt);
echo "<TR>";
echo "<TH> 0 </TH>";
for ($i =1 ; $i <= $ncols; $i++)
{
$fld[$i-1] = OCIColumnName($stmt,$i) ;
$x = $fld[$i-1];
echo "<TH>".$x."</TH>";
}
echo "</TR>";
while ($a=OCIFetch($stmt))
{
echo "<TR>";
echo "<TD>".$a."</TD>";
for ($i = 0; $i < $ncols; $i++)
{
$result = OCIResult($stmt, $fld[$i]);
echo "<TD>".$fld[$i]." ".$result."</TD>";
}
echo "</TR>";
}
echo "</TABLE> </HTML>";
?>
Expected result:
----------------
0 EMPNO ENAME SAL
1 EMPNO 2222 ENAME Bill SAL
1 EMPNO 3333 ENAME Jim SAL
1 EMPNO 1111 ENAME Larry SAL
Actual result:
--------------
0 EMPNO ENAME SAL
1 EMPNO ���� ENAME �� SAL
1 EMPNO ���� ENAME щ� SAL
1 EMPNO ���� ENAME Ӂ��� SAL
note... when I convert the variables that are returned
from the select from EB-> ASCII it looks like expected.
--
Edit bug report at http://bugs.php.net/?id=25499&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=25499&r=trysnapshot4
Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=25499&r=trysnapshot5
Fixed in CVS: http://bugs.php.net/fix.php?id=25499&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=25499&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=25499&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=25499&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=25499&r=support
Expected behavior: http://bugs.php.net/fix.php?id=25499&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=25499&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=25499&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=25499&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=25499&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=25499&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=25499&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=25499&r=gnused