PL/SQL
2016-04-03 13:30
417 查看
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;
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;
相关文章推荐
- 1.Mysql数据库的优化技术(1)
- System.Data.SqlClient.SqlError: FILESTREAM 功能被禁用”的错误
- 哈哈:sqlserver2008附加数据库时操作系统错误5(拒绝访问)错误5012的解决办法
- 数据库索引
- MySQL使用总结
- sql各种笔记
- Django 有关数据库几个命令
- Oracle ORA-12541:TNS:no listener错误解决方法
- MySQL官网64位win7版下载
- 搜狐视频Redis私有云平台CacheCloud
- Java上传文件到MongoDB GirdFS
- Oracle基础学习1--Oracle安装
- mysql5.7缺少的两个库文件->资源(binary_log_funcs.h)(binary_log_types.h)
- 利用PyMysql访问windows下的MySql数据库
- Python编程-数据库-利用PyMysql访问windows下的MySql数据库
- MySQL命令行登录的例子
- 新建controllers/models/views及数据库连接优化
- 数据库SQL语句练习
- MySQL 主从复制与读写分离概念及架构分析
- java操作mongodb(连接池)(转)