Java中的PL/SQL过程调用
这里是DB初学者。 我有一个名为“mkdir”的过程,它应该模拟bash命令:
create or replace
PROCEDURE "MKDIR"
(
id_p in number
, name in varchar2
) as
begin
insert into folders(name,id_p) values(name,id_p);
dbms_output.put_line('Created folder: '||name);
exception
when DUP_VAL_ON_INDEX then
dbms_output.put_line('Folder with the same name already exists!');
when NO_DATA_FOUND then
dbms_output.put_line('Parent id not found!');
end mkdir;
以下是我的Java程序的一部分:
String sql = "begin mkdir(var1=>?, " +"var2=>?); end;";
st = conn.prepareCall(sql);
st.setInt(1,1);
st.setString(2, "hello");
st.execute();
我试过切换变量的顺序,但没用。我意识到这是一个极其愚蠢的错误,但我一生都无法解决它
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'MKDIR'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
# 1 楼答案
应该是的 String sql=“exec mkdir……”
# 2 楼答案
问题在于这一行:
存储过程不接受名为
var1
和var2
的参数。出现错误是因为您试图为这些不存在的过程参数提供值试一试
相反