ID: 25499 Updated by: [EMAIL PROTECTED] 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] [EMAIL PROTECTED] 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
