【发布时间】:2023-03-25 16:31:01
【问题描述】:
尝试使用 JDBC 执行存储过程,我似乎无法克服这个错误,
java.sql.SQLException: 参数号 1 不是 OUT 参数
public static void SP1() throws SQLException, IOException {
try {
stmt = conn.createStatement();
stmt.executeUpdate("DROP PROCEDURE IF EXISTS sp1;");
stmt.executeUpdate("CREATE PROCEDURE sp1(OUT cName VARCHAR(20))"
+ "SELECT CuratorName FROM curator "
+ "WHERE CuratorPhone = \"90394857\" INTO cName;");
conn.commit();
System.out.println("Sp1 created");
CallableStatement cs3 = conn.prepareCall("{call sp1(?)}");
cs3.registerOutParameter(1, java.sql.Types.VARCHAR);
cs3.execute();
String result = cs3.getString("cName");
System.out.println("Result from sp1:" + result);
} catch (Exception e) {
System.out.println(e);
}
}
【问题讨论】:
-
存储过程是否独立运行(即在 Java 之外)?
-
您使用的是什么 DBMS?
-
我正在使用在本地主机上运行的 Mysql。我在 Netbeans IDE 中运行一切
-
奇怪,我无法重现此异常。你的代码为我运行。我正在使用 MySQL 5.5.22 版、MySQL 连接器 JAR 5.1.18 版、Windows 8.1 x64、Java 1.8.0_05,如果有任何帮助的话。
标签: java sql stored-procedures jdbc parameters