java - 无效的 SQL 类型 : sqlKind = UNINITIALIZED error is shown

标签 java oracle plsql

    String s1 = PasswordText4.getText();
    String s2 = ConfirmText4.getText();
    String s3 = NameText4.getText();
    String s4 = UsernameText4.getText();
    String s5 = jLabel16.getText();

    if (PasswordText4.getText().equals(ConfirmText4.getText()) && s1.length() != 0 && s3.length() != 0 && s1.length() >= 4 && s2.length() >= 4) {
        try {
            String sql
                    = "BEGIN"
                    + "UPDATE LOGIN SET USERNAME = ?, PASSWORD = ?, NAME = ?"
                    + "WHERE USERNAME = ?;"
                    + "commit;"
                    + "END;";
            CallableStatement cstmt = conn.prepareCall(sql);
            cstmt.setString(1, UsernameText4.getText());
            cstmt.setString(2, PasswordText4.getText());
            cstmt.setString(3, NameText4.getText());
            cstmt.setString(4, jLabel16.getText());

            //System.out.println(jLabel16.getText());

            int dialogButton = JOptionPane.YES_NO_OPTION;
            int dialogResult = JOptionPane.showConfirmDialog(null, "Are you sure you want to update?", "Warning", dialogButton);
            if (dialogResult == JOptionPane.YES_OPTION) {
                cstmt.execute();
                JOptionPane.showMessageDialog(null, "Information Updated");
                jLabel15.setText(NameText4.getText());
                jLabel16.setText(UsernameText4.getText());
                jLabel17.setText(PasswordText4.getText());
            }

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

这段代码有什么问题?当我尝试更新我的数据时,无效的 SQL 类型:

sqlKind = UNINITIALIZED error is shown.

请帮我找到解决问题的方法。

预先感谢您的回答。

最佳答案

Berger是的,您需要在查询部分之间添加空格,例如:

String sql = " BEGIN "
           + " UPDATE LOGIN SET USERNAME = ?, PASSWORD = ?, NAME = ? "
           + " WHERE USERNAME = ?; "
           + " commit; "
           + " END;" ;

关于java - 无效的 SQL 类型 : sqlKind = UNINITIALIZED error is shown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447240/

相关文章:

java.lang.IllegalArgumentException : Bad sequence size 异常

oracle - 将分钟转换为 HH24 :MI format

sql - 我想将 unix 和 sqlplus 的输出复制到一个文件中

oracle - 在此PL/SQL语句中我在做什么错?

sql - Oracle函数: How to pass a table name as parameter,并使用游标结果作为表名?

oracle - PL/SQL - 检查内存泄漏?

java - Integer.valueOf() 优于 new Integer()

java - HttpURLConnection.getInputStream() 抛出 SocketTimeoutException

java - Lotus Domino Server 不返回任何 Java View (getViews 为空)

oracle - SQLDeveloper 使用超过 100MB 的 PGA