-
以不带参数的存储过程为例
查看全部 -
数据库对象:表、视图、索引、序列、同义词、存储过程、存储函数
完成不同的作用
存储过程/函数:存储在数据库中供所有用户调用的子程序(PLSQL构成)
相同点:完成特定功能的程序
区别:是否用return语句返回值(存储函数有return返回值)
查看全部 -
out参数中使用光标
申明结构
包头
包体
查看全部 -
程序调用,指定返回值类型 OracleTypes.
查看全部 -
java访问数据库
查看全部 -
过程和函数都可以通过ot指定一个输出参数,
查看全部 -
存储函数方式
不推荐远程调试
reture number
as
begin
return
end
预控 nvl(xx,o)
查看全部 -
带参数的存储过程
输入参数 in 输出参数out
在存储过程中可以卸commit和rollcax,但是存储过程作为子程序,一般不在其中写,调用时统一提交或回滚
查看全部 -
创建时检查同名过程 or repalce 可作为修改使用
存储过程无返回值 存储函数无返回值
编写好后运行编译
两种执行方式 exec 和plcql 通过begin和end
查看全部 -
----注意:一般情况下,返回值只有一个,用存储函数;否则,当没有返回值,或者返回值有多个,则使用存储过程
in和out参数(输入输出参数)
----out参数:查询某个员工的姓名 月薪和职位
create or replace procedure queryempinform(eno in number,pename out varchar2,psal out number,pjob out varchar2)
as
begin
---得到该员工的姓名 月薪和职位
select ename,empjob into pename,psal,pjob from emp where empno=eno;
end;
/
输出参数可以用作返回值一样返回给调用的客户端
查看全部 -
存储函数
函数为一命名的存储程序,可带参数,并返回一计算值。
函数和过程的结构类似,但必须有一个return子句,用于返回函数值
---注意:当一个表达式包含null值,往往会导致得不到正确的结果,或者没有结果
所以最好的做法是使用nvl函数将空值以0代替
--查询某个员工的年收入
create or replace function queryempincome(eno in number)
return number
as
psal emp.sal%type;
pcomm emp.comm%type;
begin
---得到该员工的月薪和奖金
select sal,comm into psal,pcomm from emp where empno=eno;
--直接返回年收入
return psal*12+nvl(pcomm,0);
end;
/
查看全部 -
带参数的存储过程
举例:为指定的员工涨100元的工资,打印涨前和涨后的工资
如果带参,需要指定是输入参数还是输出参数
create or replace procedure raisesalary(eno number)
as
---定义一个变量保存涨前的薪水
psal emp.sal%type;
begin
---得到员工涨前的薪水
select sal into psal from emp where empno=eno;
---给该员工涨100
update emp set sal=sal+100 where empno=eno;
---需不需要commit?
---注意:一般不在存储过程或者存储函数中 commit和rollback
---打印涨前和涨后的工资
dbms_output.put_line('涨前:'||psal||'涨后:'||(psal+100));
end;
/
一般在调用存储过程或者函数的时候再commit,这样可以保证所有执行是在同一个事物中进行的
如:
begin
raisesalary(7839);
raisesalary(7566);
commit;
end;
/
查看全部 -
创建和使用存储过程
用CREATE PROCEDURE 命令建立存储过程和存储函数。
语法:
create [or replace] PROCEDURE 过程名(参数列表) AS
plsql子程序体;
/*
调用存储过程有两种方式:
1.exec sayHelloworld
2.调用两次这个存储过程
begin
sayHelloworld();
sayHelloworld();
end;
/
*/
create or replace procedure sayHelloworld
as ---相当于declare说明部分,如果没有,可以不写
begin
dbms_output.put_line('Hello World');
end;
/
end;
/
查看全部 -
数据库对象
存储过程、存储函数、表、视图、索引、序列、同义词
存储过程和存储函数
指存储在数据库中供所有程序调用的子程序叫存储过程、存储函数
存储过程和存储函数的相同点:完成特定功能的程序
存储过程和存储函数的区别:是否用return语句返回值,存储函数没有return返回语句
查看全部 -
1.java程序调用存储函数: {call 存储过程名称 (args1,args2。。。。)} 2.callableStatement call: call.prepareCall(sql) call.setInt(1,value) call.registerOutParameter(2,OracleTypes.NUMBER) call.getString(1,变量名)查看全部
举报