Oracle PL/SQL编程(1)
来源:互联网 发布:淘宝客服话术范文 编辑:程序博客网 时间:2024/05/22 02:17
所用示例:
Employee表
1编写一个过程,要求传入雇员名字和该雇员新的薪水,修改该雇员的薪水
2编写一个函数,要求传入雇员的名字,得到该雇员的年薪
*******************************************************************************
块
Declare(可选)
/*定义部分*/
Begin
/*执行的代码*/
Exception(可选)
/*异常处理过程*/
End;
/
declare v_empname varchar2(64):='wang222';--对变量赋值时符号为:=v_newsalary number(8,2):=3659.2;begin update employee set salary=v_newsalary where empname=v_empname;end;/declare v_empname varchar2(64):='wang222';v_sumSalary number;begin select salary*13 into v_sumSalary from employee where empname=v_empname; dbms_output.put_line('雇员的年薪为:'||v_sumSalary);/*要使这句话打在控制台上要 set serveroutput on;*/end;/
*******************************************************************************
存储过程
将块升级为一个存储过程
Create procedure 存储过程的名称(变量1 变量类型,变量2 变量类型)is
块
create procedure update_salary(in_v_empname in varchar2,in_v_newSalary in number) is/*变量类型不可以带长度约束,varchar2(64)这样是错误的写法*//*in表示输入的变量,out表示输出的变量 默认为in */begin update employee set salary=in_v_newSalary where empname=in_v_empname;end;/
*******************************************************************************
函数
Create function 函数名称(变量1 变量类型,变量2 变量类型)return变量类型 is
/*定义的变量*/
Begin
/*执行过程*/
Return 变量;
End;
/
create or replace function get_sum_salary(in_v_empname varchar2) return number isv_sum_salary number;beginselect salary*13 into v_sum_salary from employee where empname=in_v_empname;return v_sum_salary;end;/
*******************************************************************************
包
首先要申明一个包
Create package 包名is
Procedure 存储过程名称(变量1 变量类型,变量2 变量类型);
Function 函数名称(变量1 变量类型,变量2 变量类型)return变量类型;
End;
/
create or replace package mypackage isprocedure update_salary (in_v_empname varchar2,in_v_newSalary number);function get_sum_salary(in_v_empname varchar2) return number;end;/
然后开始创建包体
Create package body 包名is
Procedure存储过程名称(变量1 变量类型,变量2 变量类型)is
/*定义的变量*/
Begin
/*执行的过程*/
End;
Function函数名称(变量1 变量类型,变量2 变量类型)return变量类型 is
/*定义的变量*/
Begin
/*执行过程*/
Return 变量;
End;
/
create package body mypackage isprocedure update_salary(in_v_empname in varchar2,in_v_newSalary in number) isbegin update employee set salary=in_v_newSalary where empname=in_v_empname;end;function get_sum_salary(in_v_empname varchar2) return number isv_sum_salary number;beginselect salary*13 into v_sum_salary from employee where empname=in_v_empname;return v_sum_salary;end;end;/
在调用包中的过程或者函数时要带上方案名和包名
完整的调用方法:
Exec 方案名.包名.过程名(变量1,变量2);
Call 方案名.包名.函数名(变量1,变量2);
例如:
Call scott.mypackage.get_sum_salary(‘wang222’);
- Oracle PL/SQL编程(1)
- Oracle PL/SQL编程
- oracle pl/sql 编程
- oracle pl/sql 编程
- ORACLE PL/SQL编程
- Oracle PL/SQL编程
- oracle-pl/sql编程
- Oracle PL/SQL编程
- Oracle PL-SQL(编程)
- 1 Oracle PL/SQL 编程手册
- 1 Oracle PL/SQL 编程手册
- oracle pl/sql编程(1 )
- 【Oracle】PL/SQL编程简介1
- oracle PL/SQL编程手册
- Oracle PL/SQL 编程手册
- Oracle PL/SQL 编程手册
- ORACLE PL/SQL编程 触发器
- ORACLE PL/SQL编程 触发器
- Best Time to Buy and Sell Stock III
- MVC一探究竟之Hibernate原理与实践
- struts常用配置
- mysql数据库的PDO连接方式
- 开启博客的新论点——建筑行业如何应用BIM的系列文章
- Oracle PL/SQL编程(1)
- 网络请求框架----HttpClient的get,post和图片上传服务器
- 数据库Sharding的基本思想和切分策略
- 下面关于ICMP协议的描述中,正确的是()----腾讯2016研发工程师笔试题
- 查找算法-稠密索引、分块索引、倒排索引
- Camkit 树莓派视频传输,使用分析
- Servlet的PrintWriter out = response.getWriter()使用
- JavaScript 资源大全中文版
- rectOfInterest 感兴趣区域的设置问题