--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的更多相关文章

  1. oracle 存储过程 动态sql语句

    一.在oracle项目开发中越到问题: 在利用ODP向oracle中插入数据时,如果这样写:   insert into clobTable (id, story) values(1,'....'); ...

  2. oracle 存储过程

    来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...

  3. Oracle存储过程语法

    原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程  1 CREATE OR REPLACE PROCEDURE 存储过程名  ...

  4. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  5. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  6. MyBatis调用Oracle存储过程

    MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...

  7. Oracle存储过程(转)

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  8. Oracle存储过程中异常Exception的捕捉和处理

    Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...

  9. Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER

    关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...

  10. ORACLE存储过程学习

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

随机推荐

  1. JavaScript中的slice,splice,substr,substring,split的区别

    万恶的输入法,在sublime中会显示出繁体字,各位看官见谅. 1.slice()方法:该方法在数组和string对象中都拥有. var a = [1,2,3,4,5,6]; var s = 'thi ...

  2. GreenDao2.2升级GreenDao3.0的适配之路

    前言.为什么要升级到Greendao3.0? 1. 多人开发 以往的数据库建表建Dao等操作要新开一个module,在统一的地方管理数据库建表,现在可以直接写Entity.多人开发时自己管自己的Ent ...

  3. 用block做事件回调来简化代码,提高开发效率

       我们在自定义view的时候,通常要考虑view的封装复用,所以如何把view的事件回调给Controller就是个需要好好考虑的问题, 一般来说,可选的方式主要有target-action和de ...

  4. VS插件开发 - 登录身份验证

    [附加] 很多朋友问那个VS背景怎么弄的,我刚刚已经抽时间把制作步骤发出来了: 请参见<VS插件开发 - 个性化VS IDE编辑器,瞬间 高 大 上>. 最近一直在忙着一些事情,一直没有发 ...

  5. JavaScript—从数组的indexOf方法深入——Object的Property机制。

    在js中,可以说万物皆对象(object),一个数组也是一个对象(array). 很多对象都有很多很方便的方法 比如数组的push,concat,slice等等,但是如果一些对象,它没有实现这些方法, ...

  6. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  7. nginx反向代理+集群

    1.前期准备: client:192.168.4.1 eth0 proxy:192.168.4.5 eth0 web1:192.168.4.100 eth0 内容2 web2:192.168.4.20 ...

  8. Chrome 扩展机制

    据说,今年9月份开始,谷歌将在Chrome浏览器中全面禁用NPAPI插件,Chrome 45以后将无法再加载NPAPI插件,并推出了一种新的机制:扩展. 其实,如果把浏览器看作一块画布的话,NPAPI ...

  9. C# 闭包问题-你被”坑“过吗?

    引言 闭包是什么?以前看面试题的时候才发现这个名词. 闭包在实际项目中会有什么问题?现在就让我们一起来看下这个不太熟悉的名词. 如果在实际工作中用到了匿名函数和lamada表达式,那你就应该高度注意啦 ...

  10. 搭建php环境哪家强

    http://www.bubuko.com/infodetail-791030.html