Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> strange results from JDBC query
Here's one for you experts:
I have a 9i release 2 db set up, to which I connect via the JDBC thin driver. I have a JavaServer Pages application that needs to read a VARRAY from a table and then use the contents of the VARRAY. Here's the code in the JSP that does that:
resultset=db.executeQuery
("SELECT IMAGE_lIST FROM PAGE_IMAGE_ARRAY WHERE PAGENAME = " + pagename);
oracle.sql.ARRAY array =
((oracle.jdbc.driver.OracleResultSet)resultset).getARRAY(1);
imageList = (String[])array.getArray(); for(int count=0; count<imageList.length; count++) { out.println("<p>The image at position " + count + " in the array is the image titled: " + imageList[count]); }
The JSP compiles and runs fine, but the output is as follows:
The image at position 0 in the array is the image titled: 0x7465737431 The image at position 1 in the array is the image titled: 0x7465737432
The image at position 2 in the array is the image titled: 0x7465737433
The image at position 3 in the array is the image titled: 0x7465737436
A query using SQL*Plus verifies that the actual values of the elements of the array are 'test1', 'test2', 'test3', 'test6'. Notice that the last digit in the hex(?) output matches the last digit of the actual string.
What's causing this? It looks like a data type mismatch, but I would have thought that such an error would have triggered a compile-time error.
Any help is greatly appreciated.
Regards,
Dave Penn Received on Tue Aug 31 2004 - 02:45:07 CDT