--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. 解决mysql卸载后无法从新安装,卡在最后一步的问题

    mysql服务出现问题往往是最麻烦的,往往需要重装,而重装很多人卸不干净残留文件,更加装不上.在下就遇到这个问题.重装mysql到最后一步时卡在了最后一步的第二条上 解决办法就是卸载后删注册表+删数据 ...

  2. Linux Distribution / ROM

    Linux发行版 http://unix.stackexchange.com/questions/87011/how-to-easily-build-your-own-linux-distro 这个文 ...

  3. [tableView reloadData] 和 runloop

    需要[tableView reloadData]后需要立即获取tableview的cell.高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是会有问题的. 断点调试感觉 ...

  4. iOS 中的 HotFix 方案总结详解

    相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dynamic Framework(Ap ...

  5. Javascript不同浏览器差异及兼容方法

    原文链接:http://caibaojian.com/js-ie-different-from-firefox.html javascript的各种兼容就是为了解决不同浏览器的差异性,了解其中的差异能 ...

  6. 2-sql基本操作

    sql基本操作 一.Sqlplus常用命令 1.查看oracle数据库的进程 2.查看oracle数据库运行状态 3.显示实例名(数据库名) 4.用sys账户登陆到数据库 5.解锁账户scott,并登 ...

  7. 安装vsphere5.1

    安装vsphere5.1 安装前的准备(环境) 一台域控制器 一台sql2008数据库 整个环境都是在域环境中的 二.安装vCenter服务 在数据库里创建一个数据库,名字就叫vCenter 1.添加 ...

  8. sql一个表中的数据插入到另外一个表中

    声名:a,b ,都是表 复制代码代码如下: --b表存在(两表结构一样)  insert into b select * from a  若两表只是有部分(字段)相同,则 复制代码代码如下: inse ...

  9. centos mysql开启远程访问

    登录MySQL:  mysql -u root -p db; 如需修改密码,第一次:  mysqladmin -u root password NEWPASSWORD 已设置过:  mysqladmi ...

  10. S5PV210_uart stdio移植

    1.stdio : standard input output 标准输入输出 2.printf函数调用到的2个关键函数: vsprintf : 格式化打印信息,最终得到纯字符串的打印信息等待输出 pu ...