Hello everyone! I have a problem retrieving data (arabic data)from Oracle database. Bellow is the code for a testing page that should search for a giving name from oracle database and then disply it on the screan. PS: even though the input is a correct data, the search doesn't give me anything back! BTW, I'm using apache tomcat. ANY HELP WILL BE GREATLY APPRECIATED! <%@ page import="java.util.*,java.sql.*,java.lang.* " %> <%@ page contentType="text/html; charset=Cp1256" %> <html> <head> <title>Map Center</title>" <meta http-equiv="Content-Type" content="text/html; charset="UTF-8"> </head> <body class="bgcolour" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table> <form method='POST' action='arabic_new.jsp'> <tr> <td><input type="text" value="" name="arabicvalue"><input type="submit" value="match input"></td> </tr> <% String driver="oracle.jdbc.driver.OracleDriver"; String url="jdbcracle:thin:@something001:1521:something"; String username="dubaidata"; String password="dubaidata";
Class.forName(driver).newInstance(); Connection conn=DriverManager.getConnection(url, username, password); PreparedStatement search = null; ResultSet rset = null; ResultSetMetaData metaData = null; //TEST LANGUAGE SUPPORT try { String alter_language= "ALTER SESSION SET NLS_LANGUAGE = ARABIC"; String alter_territory = "ALTER SESSION SET NLS_TERRITORY ='UNITED ARAB EMIRATES'"; //alter NLS_Language in this session PreparedStatement ps_alter_language =conn.prepareStatement(alter_language); ps_alter_language.execute(); ps_alter_language.close(); System.out.println("3");
System.out.println("altered session to read lang - ARABIC"); //alter NLS_TERRITORY in this session PreparedStatement ps_alter_territory =conn.prepareStatement(alter_territory); ps_alter_territory.execute(); ps_alter_territory.close(); System.out.println("altered session to read territory - UNITED ARAB EMIRATES"); } catch (SQLException e) { System.out.println("bombed while setting language and territory"); e.printStackTrace(); }
try { if(request.getParameter("arabicvalue")==null || request.getParameter("arabicvalue").equals("")) { search = conn.prepareStatement("select cname_a from admin where cname_a like '%'"); } else { //out.println("character encoding:"+request.getCharacterEncoding()); out.println("actual input:"+request.getParameter("arabicvalue")); //THE ABOVE LINE OUTPUT QUESTION MARKS INSTEAD OF THE ACTUAL INPUT!!? String value=new String(request.getParameter("arabicvalue").getBytes("ISO-8859-1"),"Cp1256"); out.println("<tr>"); out.println("<td>"); out.println("arabic value is:"+value); out.println("</td>"); out.println("<td>"); out.println("</BR>select cname_a from admin where cname_a like ?"); out.println("</td>"); out.println("</tr>"); search = conn.prepareStatement("select cname_a from admin where cname_a like ?");//oracle.jsp.util.PublicUtil.setReqCharacterEncoding(value, "ARABIC_UNITED ARAB EMIRATES"); search.setString(1,"%"+value+"%"); }
You have also posted the same question in this thread: http://www.coderanch.com/t/281158/JSP/java/Retrieving-data-Oracle-database Please don't post the same question in multiple forums since it ends up in people having the same conversation several times. I'm closing this thread. I encourage anyone who wants to help to check the other version. Dave