--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. iOS编码规范

      The official raywenderlich.com Objective-C style guide.   This style guide outlines the coding con ...

  2. android版扫扫图书应用源码

    书,是人类的灵魂. 扫扫图书是一个让你懂得如何去选择一本书的APP. 这里你可以扫描条形码查询图书, 你也可以关键字搜索,遇到合乎你口味的书, 你还可以看看别人的读书笔记,不同角度去体会. 注:请允许 ...

  3. iOS系列 基础篇 06 标签和按钮 (Label & Button)

    iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...

  4. mysql查询本周、月、季度、年

    #查询本周记录 select * from product_process where WEEKOFYEAR(update_time)=WEEKOFYEAR(now()); #查询本月数据 selec ...

  5. Windows下Java环境配置,tomcat安装

    问题描述:在Windows下面做Java web相关的项目的时候,Java和tomcat是基础,这里记载一下Java环境的配置以及tomcat的安装和配置. 使用工具:Windows.jdk安装包.t ...

  6. 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程

    之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...

  7. 初始webservice

    webservice 可以用来查天气,以及手机号码类型等功能,这写都是简单的 方法有很多: 1.通过创建 web service exploer 创建出一个web services explorer ...

  8. $x^2+y^2=c^2$

    $x^2+y^2=c^2$ 每一个实数都能用有理数去逼近到任意精确的程度,这就是有理数的稠密性.The rational points are dense on the number axis. 每一 ...

  9. 如何配置Linux系统的网络IP地址

    一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...

  10. 新手学跨域之iframe

    https://segmentfault.com/a/1190000000702539 页面嵌套iframe是比较常见的,比如QQ相关业务页面的登录框一般都是iframe的.使用ifrmae跨域要满足 ...