(一)PL/SQL简介
PL/SQL
PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
——百度百科
使用PL/SQL可以编写具有很多高级功能的程序,虽然通过多个SQL语句可能也能实现同样的功能,但是相比而言,PL/SQL具有更为明显的一些优点:
⒈能够使一组SQL语句的功能更具模块化程序特点;
⒉采用了过程性语言控制程序的结构;
⒊可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断;
⒋具有较好的可移植性,可以移植到另一个Oracle数据库中;
⒌集成在数据库中,调用更快;
⒍减少了网络的交互,有助于提高程序性能。
为什么要学pl/sql
1.提高应用程序的运行性能
2.模块化的设计思想(分页的过程,订单的过程,转账的过程。。)
3.减少网络传输量
4.提高安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。PL/SQL就不会)
Oracle为什么在PL/SQL developer执行很快,用c# oracleclient执行就慢
因为PL/SQL这门语言是专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。
而c#语言是微软的产品,它在连接ORACLE的时候先存到“连接池”中,所以第一次会慢点,但是当你的Web程序没有重起的时候,以后的速度就不会慢了。
使用pl/sql的缺点
移植性不好(换数据库就用不了)
PL/SQL
PL/SQL是一种块结构的语言,这意味着PL/SQL程序被划分和编写代码的逻辑块。每块由三个子部分组成:
段 | 说明 |
---|---|
声明 | 此部分开头使用关键字DECLARE。它是一个可选的部分,并限定在该程序中使用的所有变量,游标,子程序,和其他元素。 |
可执行命令 | 此部分是封闭关键字BEGIN和END,这是一个强制性的部分。它由程序的可执行文件的PL/SQL语句。它应具有至少一个可执行的代码行,这可能仅仅是一个空命令,以指示什么都不执行。 |
异常处理 | 此部分开头使用关键字EXCEPTION。此部分又是可选的,含有异常,在程序处理错误中。 |
格式
DECLARE
<declarations section>BEGIN
<executable command(s)>
EXCEPTION
<exception handling>END;
第一个pl/sql语句Hello World
DECLARE
message varchar2(20):= 'Hello, World!';
BEGIN
dbms_output.put_line(message);
END;
/
最新文章
- TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。
- 测量行业(RTK)相关的小知识总结
- XMPP系列2:如何掌握XMPP协议
- SPOJ #536. How many Fibs
- M2的来源很简单
- MySQL5.6 replication architecture --原图来自姜承尧
- composer php依赖管理工具
- 更改Keil工程名
- AIDL-Android接口描述语言实现跨进程通讯
- 关于js原型的面试题
- PetaPoco 增删改查
- UVA 10129 Play on Words
- 全国计算机等级考试二级教程-C语言程序设计_第10章_字符串
- 一个有意思的Python小程序(全国省会名称随机出题)
- top命令参数解析
- Linux netfilter 学习笔记
- HTTP协议简单认识
- SpringMVC运行流称总结(DispatcherServlet-doDispatch)
- synchronized(六)
- vs自己主动生成的WebService配置文件在部署到IIs6后,服务调用失败的解决方法
热门文章
- 对oracle里面clob字段里面xml的增删改查学习
- 【Python3爬虫】反反爬之破解同程旅游加密参数 antitoken
- 在markdown中怎么划线?-[markdown]
- springboot+ehcache 基于注解实现简单缓存demo
- 1055 The World&#39;s Richest (25分)(水排序)
- vs整合MySQL和QT
- JS 浏览器BOM-->;简介和属性
- Python爬虫系列(一):从零开始,安装环境
- ZooKeeper 如何保证数据一致性?
- 事务的传播属性及隔离级别 Spring