什么是JDBC中的序列绑定和命名绑定?在调用PL/SQL过程时,我得到一个例外
java.sql.SQLException:不允许操作:序号绑定和命名绑定不能组合!
例如,在Oracle中,您可以使用PL/SQL代码编写存储过程,如:
CREATE PROCEDURE remove_emp (employee_id NUMBER) AS
tot_emps NUMBER;
BEGIN
DELETE FROM employees
WHERE employees.employee_id = remove_emp.employee_id;
tot_emps := tot_emps - 1;
END;
/
Run Code Online (Sandbox Code Playgroud)
当您从Java调用它时,您使用如下代码:
CallableStatement cs = conn.prepareCall("{call remove_emp(employee_id)}");
cs.setInt(1, 42); // ordinal binding, or
cs.setInt("employee_id", 42); // named binding
Run Code Online (Sandbox Code Playgroud)
只有一个参数,选择无关紧要.但是,你不能混合技术.
CallableStatement cs = conn.prepareCall("{call xyzzy(plugh, bedquilt)]");
cs.setInt(1, 42); // ordinal binding, and
cs.setInt("plugh", 1729); // named binding
cs.executeQuery(); // throws
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12636 次 |
| 最近记录: |