hi,there
I implemented a
java class MyTest to retrive a field in a oracle table Test.The specialty is ,the field is a nested table of varchar2(8).I used thin oracle
JDBC and the program runs normally.but when I tried to call
the MyTest in a Jsp/Jservlet to show the
string in the nested table,I only
got "???" printed in the screen.what's the matter?does anyone come up with
such case before?thanks a great.
some notes
a.the string is properly showed if gotten from a common varchar2(8) field of oracle table.
b.I tried the combination of class12.jar+nls_charset12.jar and
ojdbc14.jar+orai18n.jar,but without any cheerful change.
c.I tried to change the charset in the Jsp/Jservlet...her I cant say I did it in a comprehensive way.but failed too.
d.all the record in the nested table are english string.
attached with the oracle table
Test and part of the code of MyTest.hopefully it's simple enough.
the table test has only one column which is a nested table of varchar(8) like
--------------------------------------------------------
create type string_tab varchar2(8);
create table test (attr string_tab) nested table attr stored as attr_tab;
--------------------------------------------------------
and java class mytest is like:
-------------------------------------------------------
class mytest{
....
public String get(){
String ret="";
......\\connect to the database
pstmt = conn.prepareStatement(
"select attr from test");
rs = pstmt.executeQuery();
if (rs.next()) {
s = ( (OracleResultSet) rs).getARRAY("attr1");
ResultSet r = s.getResultSet();
if(r.next()) {
ret = r.getString(2);
}
r.close();
}
rs.close();
pstmt.close();
}
\\disconnect the database
return ret;
}