![](/img/trans.png)
[英]Calling an Oracle PL/SQL procedure in Java using a CallableStatement with a boolean IN parameter gives an PLS-00306 oracle error:
[英]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.