PL/SQL

本文通过实例演示了如何使用PL/SQL进行数据库操作,包括基本的输出语句、变量声明及使用、创建存储过程、调用存储过程以及创建函数等。还提供了在Java中调用Oracle存储过程的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

set serveroutput on

begin

dbms_output.put_line('hello');

end;


declare
-- 定义变量
v_ename varchar2(5);
v_sal number(7,2);
begin
-- 执行部分
select ename,sal into v_ename,v_sal from emp where empno=&no;
-- 在控制台显示
dbms_output.put_line('雇员名:'||v_ename||'工资:'||v_sal);
-- 异常处理
exception
when no_data_found then 
dbms_output.put_line('编号输入有误!请重新输入');
end;


创建存储过程

create procedure sp_pro3(spName varchar2, newSal number) is
begin
--执行部分,根据用户名修改工资
update emp set sal=newSal where ename=spName;
end;


调用存储过程,两种都可以

exec sp_pro3('SCOTT',4000);

call sp_pro3('SCOTT',4500);


Java中调用存储过程

try{
// 1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2.得到连接
Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","scott","tiger");
// 3.创建CallableStatement
CallableStatement cs = ct.prepareCall("{call sp_pro3(?,?)}");
// 4.给?赋值
cs.setString(1, "SCOTT");
cs.setInt(2, 5000);
// 5.执行
cs.execute();
// 关闭
cs.close();
ct.close();
}catch(Exception e){
e.printStackTrace();
}


函数

-- 输入雇员姓名,返回该雇员年薪
create function sp_fun2(spName varchar2) return number is yearSal number(7,2);
begin
-- 执行部分
select sal*12+nvl(comm,0)*12 into yearSal from emp where ename=spName;
return yearSal;
end;


查看错误 show error;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值