oracle--存储过程--bai
--1 无入参最简单的存储过程 create or replace procedure hello_proc
as
v_name varchar2(20);
v_age number;
begin
v_name:='bai';
v_age:=18; dbms_output.put_line('你好'||v_name||',你今年'||v_age);
end; --在plsql中调用
begin
hello_proc;
end; /* 在command窗下运行
set serverout on;
exec system.hello_proc;
*/ --练习1
create or replace procedure show_sum_proc
as
v_i number:='1';
v_sum number:='0';
begin
loop
v_sum:=v_sum+v_i;
v_i:=v_i+1;
exit when v_i=201;
end loop;
dbms_output.put_line(v_sum);
end; --2 有入参的存储过程
create or replace procedure show_add_result
(
i number default 10, --默认值
j number default 20
)
as
v_result number;
begin
v_result :=i+j;
dbms_output.put_line(i||'+'||j||'='||v_result);
end; begin
show_add_result('2');
end; select * from scott.emp;
--经典例子
显示指定工号的员工姓名和工资,如果没有,则输出该员工不存在 create or replace procedure show_emp_by_eno_proc
(
v_eno scott.emp.empno%type:='7369'
)
as
v_ename varchar(20);
v_sal number;
begin
select ename,sal into v_ename,v_sal from scott.emp where empno=v_eno; dbms_output.put_line(v_eno||'对应的员工名'||v_ename||',工资'||v_sal);
exception
when no_data_found then
dbms_output.put_line('找不到'||v_eno||'对应的员工');
end; create or replace procedure show_emp_by_eno_proc
as
begin
dbms_output.put_line('测试重载');
end; begin
show_emp_by_eno_proc();
end; --根据姓名查找员工
create or replace procedure show_emp_by_ename_proc
(
v_ename varchar2
)
as
v_sal number;
begin
select sal into v_sal from scott.emp where ename=v_ename;
dbms_output.put_line(v_ename||'对应的员工工资'||v_sal);
exception
when no_data_found then
dbms_output.put_line('找不到'||v_ename||'对应的员工');
when too_many_rows then
dbms_output.put_line(v_ename||'对应的员工超过1个');
when others then
dbms_output.put_line('查找过程出现异常!');
end; ---
create or replace procedure show_dname_by_eno_depno
(
v_depno scott.dept.deptno%type
)
as
v_dname varchar(20);
begin
select dname into v_dname from scott.dept where deptno = v_depno; dbms_output.put_line(v_depno||'对应的部门名'||v_dname);
exception
when no_data_found then
dbms_output.put_line('找不到'||v_depno||'对应的部门');
end; --3 有入参,有出参的存储过程
输入i,j,用result出参获得相加的结果
create or replace procedure get_add_result_proc(
i number,
j number,
result out number --指定result为出参
)
as
begin
result:=i+j;
end; --使用plsql调用存储过程
declare
result number;
begin
get_add_result_proc('1','2',result);
dbms_output.put_line(result);
end; --创建存储过程,获得当前的日期和星期几
create or replace procedure get_date_and_day
(
v_date out varchar2 ,
v_day out varchar2
)
as
begin
select to_char(sysdate,'dd'),to_char(sysdate,'day') into v_date,v_day from dual;
end;
oracle--存储过程--bai的更多相关文章
- oracle 存储过程 动态sql语句
一.在oracle项目开发中越到问题: 在利用ODP向oracle中插入数据时,如果这样写: insert into clobTable (id, story) values(1,'....'); ...
- oracle 存储过程
来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...
- Oracle存储过程语法
原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 ...
- ORACLE存储过程调用Web Service
1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...
- Oracle存储过程基本语法介绍
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- MyBatis调用Oracle存储过程
MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...
- Oracle存储过程(转)
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- Oracle存储过程中异常Exception的捕捉和处理
Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...
- Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER
关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...
- ORACLE存储过程学习
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...
随机推荐
- Java 性能分析工具 , 第 1 部分: 操作系统工具
引言 性能分析的前提是将应用程序内部的运行状况以及应用运行环境的状况以一种可视化的方式更加直接的展现出来,如何来达到这种可视化的展示呢?我们需要配合使用操作系统中集成的程序监控工具和 Java 中内置 ...
- pdf文件的导入导出
下面的代码自己本人没有尝试过,只是用来做记录,用到时候再说! 最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码.可以成功的实现导出pdf文件. 在编码前需要在网上下载个itext ...
- Elixir 1.0 Release
如期而至,9.9苹果产品发布会之后,紧接着在今天(教师节)我们终于等到了Elixir 1.0,苹果范儿的说法是:Now,Elixir 1.0 is here 注意:官网上的链接说明之类还没有更新过 ...
- SQL Server 2014新特性:其他
AlwaysOn 增强功能 SQL Server 2014 包含针对 AlwaysOn 故障转移群集实例和 AlwaysOn 可用性组的以下增强功能: “添加 Azure 副本向导”简化了用于 Alw ...
- 随机生成长度为len的密码,且包括大写、小写英文字母和数字
一道华三面试题,随机生成长度为len的密码,且包括大写.小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数.具体实现见下面代码,已经很详细了 ...
- 记录 git 常用的操作命令总结
记录 git 常用的操作命令总结 2016-12-15 16:44:04 作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能.git 相较 SVN 而言,其优点不言而喻.git 的功能 ...
- Java程序设计之链表结构
唉,说点废话,昨天偶尔看到一年前自己用C解约瑟夫环问题的循环链表,唏嘘不已,想想自己一年前嵌入式的梦呢,这两天发生了许多,而有些人不在了就真的不在了,心情不好,不多说了,直接上代码,只是些链表的基本操 ...
- [No0000AB]用Visual Studio 2015在 WIN10 64bit 上编译7-zip (32 bit)
1.7-ZIP简介 7-zip 是一款免费的压缩解压软件.ZIP格式的文件默认被苹果和微软支持,完全不需要额外安装其他软件就可以解压.但对于非US-ASCII编码的文件名和大于2GB的ZIP文件,可能 ...
- struts2中各个jar包作用
Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方j ...
- JavaScript的two-sum问题解法
一个很常见的问题,找出一个数组中和为给定值的两个数的下标.为了简单一般会注明解只有一个之类的. 最容易想到的方法是循环遍历,这里就不说了. 在JS中比较优雅的方式是利用JS的对象作为hash的方式: ...