簡體   English   中英

使用Java調用PL / SQL函數時,類型或參數數量錯誤。 PLS-00306錯誤

[英]Wrong type or number of parameters when calling a PL/SQL function using Java. PLS-00306 error

try{
        Statement stmt = conn.createStatement();
            stmt.execute("CREATE OR REPLACE FUNCTION log(p_user IN VARCHAR2, p_password IN VARCHAR2, p_name IN VARCHAR2 ) "
                    + "RETURN number "
                    + "IS "
                    + "flag login%ROWTYPE; "
                    + "temp number; "
                    + "BEGIN "
                    + "select username into flag "
                    + "from login "
                    + "where username=p_user and password=p_password and name=p_name; "
                    + "IF (sql%found) THEN temp:= 1; "
                    + "ELSE temp:= 0; "
                    + "END IF; "
                    + "return temp; "
                    + "END; ");

            stmt.close();

            String value = Combo_Name.getSelectedItem().toString();

            String sql= "begin "
                    + "?:=log(?,?,?); "
                    + "end; ";

            CallableStatement cstmt = conn.prepareCall (sql);

            cstmt.registerOutParameter (1, OracleTypes.NUMBER);
            cstmt.setString(2, user_id.getText());
            cstmt.setString (3, password.getText()); 
            cstmt.setString(4, value);

            cstmt.execute();

            int check =cstmt.getInt(1);

             if(check==1)
            {
                JOptionPane.showMessageDialog(null, "Login Successful");
            }
            else
            {
                JOptionPane.showMessageDialog(null, "Invalid Username or Password");
            }

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

調用函數時顯示pls-00306錯誤。 每次顯示錯誤的類型或參數數量。 請幫助我解決錯誤。 變量值用於從組合框中獲取輸入。

您使用的是內置的功能沖突LOG(n2,n1)返回對數 ,基地n2的, n1

使用其他名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM