【问题标题】:java.sql.SQLException: [Oracle][ODBC][Ora]ORA-01008: not all variables boundjava.sql.SQLException: [Oracle][ODBC][Ora]ORA-01008: 并非所有变量都绑定
【发布时间】:2012-09-05 16:43:49
【问题描述】:
import java.sql.*;

class TestConnection 
{
public static void main(String args[])
{

    try
    {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con = DriverManager.getConnection("jdbc:odbc:ram","myuser","myuser");

        Statement st = con.createStatement();
        st.executeUpdate("insert into student values( &stno, &sname, &course, &fees); ");
        System.out.println("1 row Inserted");

        con.close();
    }
    catch(Exception P)
    {
        P.printStackTrace();
    }
}

}

我已经创建了表格,我想从键盘输入输入,但是我收到以下错误请帮助我......

java.sql.SQLException: [Oracle][ODBC][Ora]ORA-01008: not all variables bound
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
at TestConnection.main(TestConnection.java:13)

【问题讨论】:

    标签: java sql jsp jdbc


    【解决方案1】:

    您应该使用PreparedStatement并设置如下参数:

    import java.sql.*;
    
    class TestConnection 
    {
        public static void main(String args[])
        {
            int stno = Integer.parseInt(args[0]);
            String name = args[1];
            String course = args[2];
            double fees = Double.parseDouble(args[3]);
    
            try
            {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = 
                    DriverManager.getConnection("jdbc:odbc:ram","myuser","myuser");
                PreparedStatement st = 
                    con.prepareStatement("insert into student values(?, ?, ?, ?)");
                st.setInt(1, stno);
                st.setString(2, name);
                st.setString(3, course);
                st.setDouble(4, fees);
                // executeUpdate returns the number of rows inserted/updated/deleted.
                int count = st.executeUpdate();
                System.out.println(count + " row(s) inserted.");
                con.close();
            }
            catch(Exception P)
            {
                P.printStackTrace();
            }
        }
    }
    

    【讨论】:

    • 你必须以java TestConnection 1 fastnto Algorithms 500运行它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2011-09-22
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多