Oracle数据库应遵循的PL/SQL编码规则

提高编写PL/SQL代码数量及质量的四个简单易行指导方针

我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的绝 大多数代码都非常拙劣,而且难以维护。

幸运地是,我发现找到并遵循编写出更好代码的新方法还为时不晚。就是在去年,我的代码质量有了 显著改进;这些改进主要是由于制定了一些简单的规则,并像纪律一样加以遵守。

本文为PL/SQL新手及有经验的开发人员提出了四条建议;遵守其中任何一条,你的代码质量都会有提 高。这四点建议都采纳,你可能会惊奇地猛然发现:你竟然是一个非常好的程序员,要远远超乎你的想象 。

所有工作都独自完成

我们很少有人是孤立工作的;大多数PL/SQL开发工作是在相对较大的机构中进行的。但我们基本上还 是在自己的小隔间里用自己的设备独自工作。几乎没有PL/SQL开发小组进行正规的代码复查或系统测试。

我不可能通过这篇文章改变你们开发小组的基本状态。因此,我仔细地选取出以下几点建议。实施其 中任何一点并不需征得管理人员同意。不论你的小组是大是小,都不必让其中的每个人都赞同这些编码规 则。你只需按以下建议来改变你的本人的编码方式:

1. 严格遵循命名约定,好像它们就是你的生命支柱。

2. 戒除编写SQL的嗜好:编写的SQL越少越好。

3. 使执行部分短小:告别"意大利面条式的代码"。

4. 找一位伙伴:非常赞同找个人来监督你的工作。

1. 遵循命名约定

如果你建立并严格遵循一套命名约定,特别是对于应用程序组件的,你就可以节省很多时间。

当然,遵循命名约定的想法并没有什么新意,你可能已经听烦了。所以我并不提出什么宏伟的命名计 划,而是给出一些非常具体而明确的约定,然后证明这些约定会多么有用。

前几个月我一直在为PL/SQL开发人员设计、构建一种新工具。它名为Swyg(可以在www.swyg.com中找 到),可以帮助程序员完成代码的生成、测试及重用的工作。它具有几个独特的组件。我为每个组件指定 了一个由两个字母组成的缩写名称,如下所示:   SF-Swyg的基础部件
  SM-Swyg的元数据
  SG-Swyg的生成程序
  SL-Swyg的 代码库
  ST-Swyg的单元测试

于是,我便遵循表1中的命名约定,同时使用这些缩写。遵循这些约定有什么好处呢?一般来讲,如果 我要求一致的命名规则,我就可以更流畅更高效地编写代码。

明确地说,这些约定具有可预测性,意思是说我编写的SQL程序能生成有用的脚本。例如,通过使用表 1中的约定,可以生成Swyg中所有基础包的安装脚本。执行这些工作的SQL*Plus脚本如清单1所示。这类脚 本非常有用,因为它意味着我不必手动维护安装脚本。当我向Swyg方案中增加另一个表,并生成一组相关 包时,我只要运行我的脚本,更新后的安装脚本便会跳出来。

时间: 2024-11-01 21:28:18

Oracle数据库应遵循的PL/SQL编码规则的相关文章

Oracle 数据库11g新特性之高效 PL/SQL 编码

Oracle 数据库11g新特性之高效 PL/SQL 编码 转自:http://space.itpub.net/1384/viewspace-217959 自推出以来,PL/SQL 就一直是在 Oracle 数据库中编程的首选语言.经过一段时间的发展,我们看到,由于该语言可以实现越来越多需要较少编码的功能,它已经演变为一个综合的开发平台.Oracle 数据库 11g使得 PL/SQL 编码对程序员更加高效.在本文中,您将通过某些示例简单了解这个新功能. 复合触发器 请考虑一个宾馆数据库:宾馆房间

oracle数据库-oracle 11g ORA-00445:每个月数据库都会死,pl/sql登录不上

问题描述 oracle 11g ORA-00445:每个月数据库都会死,pl/sql登录不上 每个月数据库都会无缘无故的死掉,重启数据库又正常了,下面是alert_orcl.log里面的日志,window服务器内存8G ,oracle版本11gR2,这个是什么原因导致的呢 Tue Oct 28 20:18:25 2014 Errors in file d:oraclediagrdbmsorclorcltraceorcl_cjq0_2628.trc (incident=65106): ORA-00

pl sql-oracle已经创建一个数据库了,但是pl/sql的database中没有

问题描述 oracle已经创建一个数据库了,但是pl/sql的database中没有 解决方案 你是在本地建的数据库吗?看看本地数据库的监听服务启动了没有 解决方案二: --选择 tools -> preferences -> connection -> Oracle Home(empty is autodetect) -> ----选择你放tns文件的oracle 应该就ok了 解决方案三: 那里显示的是tns, 和database无关,需要在oracle里配置tns 解决方案四

pl/sql-SQL server数据库 存储过程可以用PL/SQL写么?

问题描述 SQL server数据库 存储过程可以用PL/SQL写么? SQL server数据库 存储过程可以用PL/SQL写么? 解决方案 可以 解决方案二: SQL SERVER数据库开发之存储过程应用SQL SERVER数据库开发之存储过程应用SQL SERVER数据库开发之存储过程应用

数据库中如何根据特定的编码规则取出数据?

问题描述 数据库中如何根据特定的编码规则取出数据? 现在有一系列数据,其主键是以特定的编码规则形成的. 例如0020150601,后面8位就代表时间了. 如果我想从数据空中取出2015年6月1号到2015年6月30号的数据,应该怎么办啊? 不要做30次查询啊,有什么好办法吗? 急,在线等 解决方案 select * from tbXXX where substring(id,3,6)='201506' 解决方案二: substring取值后的逻辑条件可以改成 > 或 < 就可以实现任意时间段

检查Oracle数据库中不合理的sql语句

oracle|数据|数据库|语句 代码: select sql_text ,sharable_mem from v$sql where sharable_mem > '100000' order by sharable_mem ; 上面的sql语句是查询shared pool中占用内存超过100K的sql语句. 这个sql可以非常有效的检查出Oracle shared pool中那些严重占用内存的sql,根据我的经验,绝大多数有问题的sql语句都会在这里留下痕迹,通过在这里找出有问题的sql语句

Oracle学习(八) PL/SQL简介,基本程序结构和语句

1.变量 2.常量 3.基本程序结构和语句 PL/SQL能够驻留在Oracle数据库服务器和Oracle开发工具两个环境中.在这两个环境中,PL/SQL引擎 接受任何PL/SQL块和子程序作为输入,引擎执行过程语句将SQL语句发送给Oracle服务器的SQL语句执行 器执行. 1.PL/SQL变量 (1)变量的声明: 变量通常是在PL/SQL块的声明部分定义的,每一个变量都有一个特定的类型. 变量定义的基本格式为: <变量名> <数据类型>[(宽度):=<初始值>] 如

《Oracle PL/SQL程序设计(第5版)》一一1.4 关于PL/SQL的版本

1.4 关于PL/SQL的版本 Oracle PL/SQL程序设计(第5版) 每个版本的Oracle数据库都有其对应的PL/SQL版本.只要我们使用的是最新版的PL/SQL,就会有更多的功能供我们使用.作为PL/SQL程序员的最大挑战就是"紧跟".我们不需要不断地自学每个版本中的新特性─学会使用它们,尤其在我们自己的应用程序中该如何使用,确定有些新技术尤其有用,我们应该利用这些新技术修改已有的应用程序. 表1-1总结了数据库中每一版(过去的和当前的)PL/SQL的主要成员(注意在早期的

[转贴]Oracle PL/SQL语言基础

oracle|sql语言 [转贴]Oracle PL/SQL语言基础 Oracle PL/SQL语言基础   PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序.    PL/SQL的优点    从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有