Oracle笔记 十、PL/SQL存储过程
- --create or replace 创建或替换,如果存在就替换,不存在就创建
- create or replace procedure p
- is
- cursor c
- is
- select * from dept2 for update;
- begin
- for row_record in c loop
- if (row_record.deptno = 30) then
- update dept2 set dname = substr(dname, 0, length(dname) - 3) where current of c;
- end if;
- end loop;
- end;
- exec p;
- begin
- p;
- end;
- --带参存储过程
- --in 输入参数,不带in out 默认输入参数
- --out 输出参数
- --in out 同时带的是输入输入参数
- create or replace procedure p2(
- a in number,
- b number,
- s_result out number,
- s_temp in out number
- )
- is
- begin
- if (a > b) then
- s_result := a;
- else
- s_result := b;
- end if;
- s_temp := s_temp + 3;
- end;
- --调用存储过程
- declare
- v_a number := 4;
- v_b number := 6;
- v_result number;
- v_temp number := 5;
- begin
- p2(v_a, v_b, v_result, v_temp);
- dbms_output.put_line(v_a);
- dbms_output.put_line(v_b);
- dbms_output.put_line(v_result);
- dbms_output.put_line(v_temp);
- end;
- ---删除一个表的过程
- create or replace procedure drop_table(tname varchar2)
- as
- total int := 0;
- begin
- select count(*) into total from user_tables
- where table_name = upper(tname);
- if total >= 1 then
- execute immediate 'drop table '||tname; --此处必须用动态sql
- end if;
- end;
- select * from user_tables;
- --递归存储过程
- create or replace procedure pro_emp(sEmpno emp.empno%type, sLevel integer)
- is
- cursor c is select * from emp where mgr = sEmpno;
- prefixStr varchar(255);
- begin
- for i in 1..sLevel loop
- prefixStr := prefixStr || '----';
- end loop;
- for row_data in c loop
- dbms_output.put_line(prefixStr || row_data.ename);
- pro_emp(row_data.empno, sLevel + 1);
- end loop;
- end;
- select * from emp;
- begin
- pro_emp(7839, 0);
- end;
Oracle笔记 十、PL/SQL存储过程的更多相关文章
- PL/SQL存储过程编程
PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...
- 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...
- Oracle数据库之PL/SQL触发器
Oracle数据库之PL/SQL触发器 1. 介绍 触发器(trigger)是数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是 ...
- Oracle数据库之PL/SQL过程与函数
Oracle数据库之PL/SQL过程与函数 PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保存到数据 ...
- Oracle数据库之PL/SQL程序设计简介
PL/SQL程序设计简介 一.什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写. ORACLE的SQL ...
- oracle数据库之PL/SQL 块结构和组成元素
一.PL/SQL 块 (一)PL/SQL 程序由三个块组成,即声明部分.执行部分.异常处理部分 PL/SQL 块的结构如下: 1.DECLARE /* 声明部分: 在此声明 PL/SQL 用到的变量, ...
- ORACLE中的PL/SQL
一. 1.过程,函数,触发器是pl/sql编写. 2. 过程函数触发器是在Oracle中. 3.pl/sql是非常强大的数据库过 ...
- 《oracle每日一练》免安装Oracle客户端使用PL/SQL
免安装Oracle客户端使用PL/SQL Oracle客户端挺招人烦的,部署连接它的应用通常需要先安装它的客户端,安装程序要求在目标机器上写注册表,假设你没有洁癖的话,你仍可能被下面的事情绊住:当你的 ...
- Oracle 客户端安装 + pl/sql工具安装配置
Oracle 客户端安装 + pl/sql工具安装配置 下载oracle客户端,并在本地安装. 11g下载地址为: http://www.oracle.com/technetwork/databas ...
- oracle instantclient basic +pl/sql 安装和配置
oracle instantclient basic +pl/sql 安装和配置 大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的,oracle客户端有点大,比较耗资源. ...
随机推荐
- Spark运行流程概述
Application 指用户编写的Spark应用程序,其中包含了一个Driver功能的代码和分布在集群中多个节点上运行的Executor代码. Driver Spark中的Driver即运行上述Ap ...
- DBA_Oracle Table Partition表分区概念汇总(概念)
2014-06-20 Created By BaoXinjian
- PLSQL_Oracle外部表的概念和使用(案例)
2014-08-25 Created By BaoXinjian
- Report_客制化Excel报表中的XLS标记(案例)
2014-06-06 Created By BaoXinjian
- CLR和JIT
在使用IDE进行编译的时候,这个过程具体的叫法是,使用编译器面向CLR来生成代码.对于不同的开发语言,使用的的编译器也不一样,但是生成的代码都一样. “无论选用哪一个编译器,结果都是一个托管模块.” ...
- SteamVR Unity工具包(VRTK)之激光和移动
简单激光指针(VRTK_ SimplePointer) 简单指针(Simple Pointer)脚本从控制器尾部发出一个有色光束来模拟激光束.这在场景中指向对象很有用,它能判断所指向的对象以及对象距控 ...
- JS的Data类型格式化(转)
// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...
- Ubuntu编写开机自启动脚本(转载)
From:http://blog.csdn.net/marujunyy/article/details/8466255 1.首先编写一个简单的shell脚本test.sh #! /bin/bash e ...
- [Flex] IFrame系列 —— IFrame嵌入html后Alert弹出窗口被IFrame遮挡问题
<?xml version="1.0" encoding="utf-8"?> <!--- - - - - - - - - - - - - - ...
- ElasticSearch的 Query DSL 和 Filter DSL
Elasticsearch支持很多查询方式,其中一种就是DSL,它是把请求写在JSON里面,然后进行相关的查询. Query DSL 与 Filter DSL DSL查询语言中存在两种:查询DSL(q ...