|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2003-09-11 19:27 UTC] sniper@php.net
[2003-09-12 13:25 UTC] mike dot mcsherry at ociofc dot usda dot gov
[2003-09-12 15:15 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 08:00:01 2025 UTC |
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.