2013-01-13 7 views
21

私は、Oracle 11gデータベースを使用しています。 ORA-03115:サポートされていないネットワーク・データ型または表現です。私はこのエラーが何を意味するのか理解していないよ...ます。java.sql.SQLException:ORA-03115:サポートされていないネットワークのデータ型または表現

私のコードは次のとおりです。

String uname,pass; 
    ResultSet rs = null; 
    response.setContentType("text/html"); 
    PrintWriter out=response.getWriter(); 
    try 
    { 
    uname=request.getParameter("uname"); 
    pass=request.getParameter("pass"); 
    Connection con=prepareConnection(); 
    String Query="select uname from passmanager where pass=?"; 
    PreparedStatement ps=con.prepareStatement(Query); 
    ps.setString(1,pass); 
    rs=ps.executeQuery(Query); 
    if (rs.next() && uname.equalsIgnoreCase(rs.getString("uname")) || uname.equalsIgnoreCase(rs.getString("email"))) { 
    HttpSession session = request.getSession(true); 
    session.setAttribute("uname", rs.getString(1)); 

    ServletContext context = getServletContext(); 
    RequestDispatcher dispatcher = context 
        .getRequestDispatcher("/profile"); 
    dispatcher.forward(request, response); 
    } 

いずれかがこの問題を解決するために私を助けて...

答えて

74

email列を追加します。代わりに:

rs = ps.executeQuery(Query); 
rs = ps.executeQuery(); 

そうでない場合、あなたはを用意しないであなたの文を、あなたがそれを新しいSQL文を割り当てるので(それは同じだとしても)すべてのパラメータを失う:あなたが実行する必要があります。あなたが結果セットにない名前(rs.getString(あなたのケースでは)「は、una​​me」)でフィールドを取得しようとすると、

+0

素晴らしいCodo。良い説明もあります。 – Oliver

+0

私からupvoteの価値があることは間違いありません。私はそれを早くgoogledしたいと思う。 – JeremyP

0

select uname, email from passmanager where pass=? 
+0

私はそれを忘れて申し訳ありません。しかし今でも問題は同じままです...私は問題が準備されたステートメントであると思います。 – ajay

0

このエラーが表示されます。

とIGRのようにあなたが(rs.getString(「Eメール」)との)電子メールのフィールドを取得しようとしていると、それはクエリではありませんので、これはあなたの誤りである、と述べました。

文字列の最後に空白を含むフィールドを取得しようとしたときにアプリケーションで同じエラーが発生したため、この会話が見つかりました(rs.getString( "uname")ではなくrs.getString 。

)「は、una​​me」そして私はちょうど私がクエリから取得したフィールドの正しい名前を使用して、それを修正

私はそれが有用であると思います;。!)

関連する問題