oracle 通过调用存储过程,得到数据集

在oracle中如何编写一个存储过程(有参数的哦)去取得数据集,如何调用这个存储过程??最好有个具体的例子!... 在oracle中如何编写一个存储过程(有参数的哦)去取得数据集,如何调用这个存储过程??
最好有个具体的例子!
展开
 我来答
0613032107
2012-03-12 · TA获得超过347个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:209万
展开全部
我也是初学者,不是什么高手,根据我的理解提出我的看法,仅供参考:
(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 procedure 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~
x403879785
推荐于2016-09-05 · TA获得超过3838个赞
知道大有可为答主
回答量:1299
采纳率:100%
帮助的人:1164万
展开全部
创建:
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的学生年龄
更多追问追答
追问
谢谢你!不过我要的是oracle的,不是sql的
追答
这就是oracle的、你没看出?
sql的过程局部变量是@开头的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永恒度兰宁
2012-03-22 · TA获得超过153个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:138万
展开全部
是要返回一个结果集游标还是输出一个结果集,一楼的回答属于后者。能否再明确一下问题。
追问
我是用来给birt报表调用的!所以返回结果集游标就可以了,已经解决了!谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式