oralce11 过程
PL/SQL 块的结构和实例

pl/sql(procedural language(过程化语言)/sql)是oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
过程、函数、触发器是存在oracle数据库的数据对象,是用 pl/sql语言编写的。pl/sql是非常强大的数据库过程语言。过程、函数可以在java中调用。因为这些在程序里面去写是很麻烦的而且基本是做不到的,所以pl/sql是简化复杂度的,减少网络开销,提高程序性能。
为什么学pl/sql 学习必要性
.提高应用程序的运行性能:传统操作数据库是在java中操作的,首先得到数据库连接,然后发出sql语句,数据库这边还要编译sql语句,编译完成后才去执行。如果事先把过程(存储过程,多个sql语句)放在数据库,过程事先已经编译好了,java这边可以直接调用过程,节约了时间。

.模块化的设计思想【分页的过程,订单的过程,转账的过程。。】
.减少网络传输量
.提高安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。PL/SQL就不会) 为什么PL/SQL会快呢?看图:
不好的地方:
移植性不好(换数据库就用不了), 用什么编写pl/sql
sqlplus开发工具
sqlplus是oracle公司提供的一个工具,这个因为我们在以前介绍过的:
举一个简单的案例:
编写一个存储过程,该过程可以向某表中添加记录。
.创建一个简单的表
Sql代码
.create table mytest(name varchar2(),passwd varchar2());
.创建过程
Sql代码
.create(或者replace) procedure sp_pro1 is(procedure过程,sp_pro1存储过程名字,is是关键词)
.begin(执行部分)
.insert into mytest values('韩顺平','m1234');
.end;
./ replace:表示如果有sp_pro1,就替换
如何查看错误信息:show error;
如何调用该过程:
)exec 过程名(参数值1,参数值2...);
)call 过程名(参数值1,参数值2...); pl/sql developer开发工具
pl/sql developer是用于开发pl/sql块的集成开发环境(ide),它是一个独立的产品,而不是oracle的一个附带品。
举一个简单案例:
编写一个存储过程,该过程可以删除某表记录。
Sql代码
.create or replace procedure sp_pro2 is
.begin--执行部分
.delete from mytest where name='韩顺平';
.end; pl/sql基础 介绍
开发人员使用pl/sql编写应用模块时,不仅需要掌握sql语句的编写方法,还要掌握pl/sql语句及语法规则。pl/sql编程可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块。比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块。而且如果使用pl/sql编程,我们可以轻松地完成非常复杂的查询要求。
pl/sql可以做什么
简单分类(java中:变量->语句->函数->类->架构)
Pl/sql中最基本的是块,块可以编写过程,函数,触发器,包 |————过程(存储过程)
|
|————函数
块(编程)—————|
|————触发器
|
|————包 编写规范
编写规范(印度的软件业非常发达)
.注释
单行注释 --
Sql代码
.select * from emp where empno=; --取得员工信息 多行注释 /*...*/来划分
.标志符号的命名规范
).当定义变量时,建议用v_作为前缀v_sal
).当定义常量时,建议用c_作为前缀c_rate
).当定义游标时,建议用_cursor作为后缀emp_cursor
).当定义例外时,建议用e_作为前缀e_error
oralce11 过程的更多相关文章
- c++ primer plus 第6版 部分二    5-  8章
		
---恢复内容开始--- c++ primer plus 第6版 部分二 5- 章 第五章 计算机除了存储外 还可以对数据进行分析.合并.重组.抽取.修改.推断.合成.以及其他操作 1.for ...
 - Oralce11 客户端的安装和 PlSql Developer 的配置
		
关于Oracle11服务器端安装时的配置问题我就不讲了,就是要安装DataBase1和DataBase2. 现在我来讲的是Oralce11 客户端的安装和PlSql的配置问题: 步骤一:选择图示,wi ...
 - 从源码看Azkaban作业流下发过程
		
上一篇零散地罗列了看源码时记录的一些类的信息,这篇完整介绍一个作业流在Azkaban中的执行过程,希望可以帮助刚刚接手Azkaban相关工作的开发.测试. 一.Azkaban简介 Azkaban作为开 ...
 - DBImport V3.7版本发布及软件稳定性(自动退出问题)解决过程分享
		
DBImport V3.7介绍: 1:先上图,再介绍亮点功能: 主要的升级功能为: 1:增加(Truncate Table)清表再插入功能: 清掉再插,可以保证两个库的数据一致,自己很喜欢这个功能. ...
 - HTML渲染过程详解
		
无意中看到寒冬关于前端的九个问题,细细想来我也只是对第一.二.九问有所了解,正好也趁着这个机会梳理一下自己的知识体系.由于本人对http协议以及dns对url的解析问题并不了解,所以这里之探讨url请 ...
 - iOS可视化动态绘制八种排序过程
		
前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...
 - lua执行字节码的过程介绍
		
前面一篇文章中介绍了lua给下面代码生成最终的字节码的整个过程,这次我们来看看lua vm执行这些字节码的过程. foo = "bar" local a, b = "a& ...
 - centos7+mono4+jexus5.6.2安装过程中的遇到的问题
		
过程参考: http://www.linuxdot.net/ http://www.jexus.org/ http://www.mono-project.com/docs/getting-starte ...
 - 源码分析netty服务器创建过程vs java nio服务器创建
		
1.Java NIO服务端创建 首先,我们通过一个时序图来看下如何创建一个NIO服务端并启动监听,接收多个客户端的连接,进行消息的异步读写. 示例代码(参考文献[2]): import java.io ...
 
随机推荐
- SQL Server强制删除复制发布
			
原文地址:http://blog.csdn.net/leamonjxl/article/details/7352208 SQL Server 中 存在以前(系统还原前)的发布内容,使用鼠标->右 ...
 - WinterCamp 2015 总结
			
这次WC2015确实有很多遗憾,特别是考试的时候犯的低级错误,由于我没有看到第三题每个点输出不全可以得小分,对于又没跑出来的点,我都根本没有上交.这确实是一个很悲伤的事情,但是也给我了足够时间去反思. ...
 - ABAP打开TCODE
			
CALL FUNCTION 'TH_CREATE_MODE' EXPORTING transaktion = 'ZGNBWD001' EXCEPTIONS max_session ...
 - GIT在LINUX下的基本操作
			
没办法,看来,VIM技能也要同步练起来了. 离开了WIN的日常应用安乐窝,外面的世界有多精彩? GIT的错了我再改..呵呵 git clone http://username@1.2.3.4/repo ...
 - 可爱的PYTHON,更新到0.5版本代码
			
这书看得挺顺的. 按着思路学习软件开发的主流思想.. cdctools.py # _*_ coding: utf-8 _*_ import os,sys def cdWalker(CDROM, cdc ...
 - VS2005 检测内存泄漏的方法(转载)
			
一.非MFC程序可以用以下方法检测内存泄露: 1.程序开始包含如下定义: #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __F ...
 - Qt源码分析之QPointer
			
QPointer是一个指针封装类,其作用类似于智能指针,但是它最大的特点应该是在指针的控制上,它希望一个Qt的指针(当然是从QObject派生的)可以同时被多个类拥有,这在界面编程中当然是很常见的事情 ...
 - 【HDOJ】1180 诡异的楼梯
			
bfs+优先队列.wa了N次,才发现可以停留等待楼梯变换方向. #include <iostream> #include <queue> #include <cstdio ...
 - Rewriting History with Git Rebase
			
http://code.tutsplus.com/tutorials/rewriting-history-with-git-rebase--cms-23191 1. Rebasing for a Li ...
 - oracle object_id和data_object_id的区别
			
Oracle的数据字典表dba_objects包含了两个字段,object_id, data_object_id,官方文档上的解释是: object_id: Dictionary object num ...