#25499 [Opn->Bgs]: select * from tabname returns ebcdic data
| From: | sniper@php.net | Date: | Fri, 12 Sep 2003 19:15:56 +0000 |
| Subject: | #25499 [Opn->Bgs]: select * from tabname returns ebcdic data | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-47521@lists.php.net to get a copy of this message | ||
ID: 25499
Updated by: sniper@php.net
Reported By: mike dot mcsherry at ociofc dot usda dot gov
-Status: Open
+Status: Bogus
Bug Type: OCI8 related
Operating System: Windows 2000
PHP Version: 4.3.3
New Comment:
Not php bug then -> bogus.
Previous Comments:
------------------------------------------------------------------------
[2003-09-12 13:25:38] mike dot mcsherry at ociofc dot usda dot gov
That did the trick, Thanks!
------------------------------------------------------------------------
[2003-09-11 19:27:35] sniper@php.net
I made a quick search with google and run into this:
http://www.solusoft.com/download/win/rdbms/81/8172note.html
(search it for EBCDIC)
Maybe you should try and install the patch mentioned in the document?
------------------------------------------------------------------------
[2003-09-11 18:27:31] mike dot mcsherry at ociofc dot usda dot gov
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 this bug report at http://bugs.php.net/?id=25499&edit=1