oracle 通过调用存储过程,得到数据集
发布网友
发布时间:2022-04-10 16:00
我来回答
共3个回答
热心网友
时间:2022-04-10 17:30
我也是初学者,不是什么高手,根据我的理解提出我的看法,仅供参考:
(1)函数function的参数必须都是in类型的,必须要有返回值
它可以被sql语句或者存储过程调用
例如:
--定义一个函数,返回传入的参数本身
create or replace function TestFunOne(argsOne in varchar2) return varchar2 is
resultStr varchar2(500);
begin
resultStr := argsOne;
return(resultStr);
end TestFunOne;
sql语句中可以这样用: update tableName t set t.columnName = TestFunOne('1')
存储过程中可以这样用:
create or replace procere getNameByFincode(inputStr in varchar2,
resultStr out varchar2) is
begin
resultStr := TestFunOne(inputStr);
end getNameByFincode;
(2)java程序中一般是直接执行sql语句或者调用存储过程
java执行sql语句可以这样:
String sql="update tableName t set t.columnName = TestFunOne('1')";
stmt.executeUpdate(sql);
java中调用存储过程可以这样:
CallableStatement callStmt = connection.prepareCall("call getNameByFincode(?,?)");
以上都是最简单的例子,具体展开网上也都可以查阅,希望能解决你的问题O(∩_∩)O~
热心网友
时间:2022-04-10 18:48
创建:
CREATE OR REPLACE PROCEDURE P_1(S_NO INT)
AS
S_AGE INT;
BEGIN
SELECT SAGE INTO S_AGE FROM STU WHERE SNO=S_NO;
DBMS_OUTPUT.PUT_LINE(S_AGE);
END P_1;
调用:
EXEC P_1(1);
查询学生表中学号为1的学生年龄
热心网友
时间:2022-04-10 20:22
是要返回一个结果集游标还是输出一个结果集,一楼的回答属于后者。能否再明确一下问题。追问我是用来给birt报表调用的!所以返回结果集游标就可以了,已经解决了!谢谢!