使用 Spring JdbcTemplate 中的调用调用存储函数
Calling stored function using call in Spring JdbcTemplate
CREATE OR REPLACE PACKAGE BODY pk_sahil AS
procedure squareNumDummy(x in number,y in number) is
begin
dbms_output.put_line(x*y);
insert into sahil values('package',111);
end squareNumDummy;
function sumFun( x in number , y in number ) return number is
begin
insert into sahil values('function',222);
return x+y;
end sumFun;
END pk_sahil;
/
create or replace package pk_sahil as
procedure squareNumDummy(x in number, y in number);
function sumFun(x in number, y in number ) return number;
end pk_sahil;
/
我制作了这个包,里面有一个函数和一个过程,我正在尝试使用 spring jdbctemplate 从我的 java 代码中调用它们。但是程序运行很好但是无法调用这个函数。
int param1 =5 , param2 = 10;
jdbcTemplate.update( "call pk_sahil.squareNumDummy(?,?)",param1,param2);
这个过程运行很好。
jdbcTemplate.update( "call pk_sahil.sumFun(?,?)",param1,param2);
根据运行这个函数我遇到了错误
console log of error
请纠正我是否没有正确调用该函数或者我需要处理函数中的 return 变量?我如何从 jdbctemplate.update(' call... ') 方法中调用该函数?
您可以从 jdbcTemplate.queryForObject()
调用存储函数,如下所示:
int sum = jdbcTemplate.queryForObject("SELECT pk_sahil.squareNumDummy(?,?)", new Object[] {param1,param2});
CREATE OR REPLACE PACKAGE BODY pk_sahil AS
procedure squareNumDummy(x in number,y in number) is
begin
dbms_output.put_line(x*y);
insert into sahil values('package',111);
end squareNumDummy;
function sumFun( x in number , y in number ) return number is
begin
insert into sahil values('function',222);
return x+y;
end sumFun;
END pk_sahil;
/
create or replace package pk_sahil as
procedure squareNumDummy(x in number, y in number);
function sumFun(x in number, y in number ) return number;
end pk_sahil;
/
我制作了这个包,里面有一个函数和一个过程,我正在尝试使用 spring jdbctemplate 从我的 java 代码中调用它们。但是程序运行很好但是无法调用这个函数。
int param1 =5 , param2 = 10;
jdbcTemplate.update( "call pk_sahil.squareNumDummy(?,?)",param1,param2);
这个过程运行很好。
jdbcTemplate.update( "call pk_sahil.sumFun(?,?)",param1,param2);
根据运行这个函数我遇到了错误
console log of error
请纠正我是否没有正确调用该函数或者我需要处理函数中的 return 变量?我如何从 jdbctemplate.update(' call... ') 方法中调用该函数?
您可以从 jdbcTemplate.queryForObject()
调用存储函数,如下所示:
int sum = jdbcTemplate.queryForObject("SELECT pk_sahil.squareNumDummy(?,?)", new Object[] {param1,param2});