概述


这里提供一些注释的技巧,用来模仿Java中的文档注释的功能。
在Eclipse中,鼠标悬浮在类或其成员上,会显示相关的文档注释;在PL/SQL中也有类似的功能,我们需要掌握一些注释技巧,让其可读性更高。

正文


1. 不要在最上面写注释

第一个有效指令前的内容,都是被直接无视的;不会格式化,也不会存储。假如你像下面这样写注释:
/*
名字解析:案事件-文书相关-为换押证生成文书字号。
这个过程是对ASJ_GENHYZWORD的一次重构。
*/
create or replace procedure asj_ws_generateWordMarkForHYZ(in_writid in varchar2, -- 文书实例编号
in_increment in integer, -- 增量,在一书多人时需要同时为多个文书生成序列号
out_wordofwrit out varchar2, -- 文书字
out_markofwrit out integer -- 文书号
) is

编译,关掉当前窗口,重新打开这个过程,你会发现是这样子的:

 

2. 如何强制格式化在某处换行

也许你想这样写头部:
create or replace procedure asj_ws_generateWordMarkForHYZ
(in_writid in varchar2, -- 文书实例编号
in_increment in integer, -- 增量,在一书多人时需要同时为多个文书生成序列号
out_wordofwrit out varchar2, -- 文书字
out_markofwrit out integer -- 文书号
) is

但是PL/SQL格式化之后,又会变成这样子:

create or replace procedure asj_ws_generateWordMarkForHYZ(in_writid      in varchar2, -- 文书实例编号
in_increment in integer, -- 增量,在一书多人时需要同时为多个文书生成序列号
out_wordofwrit out varchar2, -- 文书字
out_markofwrit out integer -- 文书号
) is

此时,我们可以使用注释来强制换行:

create or replace procedure asj_ws_generateWordMarkForHYZ --
(in_writid in varchar2, -- 文书实例编号
in_increment in integer, -- 增量,在一书多人时需要同时为多个文书生成序列号
out_wordofwrit out varchar2, -- 文书字
out_markofwrit out integer -- 文书号
) is

这样,即使格式化,也不会违背我们的换行意愿了。另外,多行注释也可以实现。

 
再比如,你想实现这样的格式:
select ajbh, ajmc
into ajbh, ajmc
from b_asj_aj
where rownum = 1;

但是PL/SQL的格式化会认为没有必要,而将其缩减到一行:

select ajbh, ajmc into ajbh, ajmc from b_asj_aj where rownum = 1;

你可以这样写:

select ajbh, ajmc --
into ajbh, ajmc --
from b_asj_aj --
where rownum = 1;

3. 概要内容在is关键词之前

这里我们把鼠标悬浮在某个过程名而出现的浮动框中的内容称为概要,比如:

这里可以看到,概要只包含is之前的内容;另外,这个框太长了,浪费了空间,这时候上面讲的强制换行就可以起作用了。我们可以这样写:

create or replace procedure asj_ws_generateWordMarkForHYZ
/*
名字解析:案事件-文书相关-为换押证生成文书字号。
这个过程是对ASJ_GENHYZWORD的一次重构。
*/
(in_writid in varchar2, -- 文书实例编号
in_increment in integer, -- 增量,在一书多人时需要同时为多个文书生成序列号
out_wordofwrit out varchar2, -- 文书字
out_markofwrit out integer -- 文书号
) is

这样写的好处有几点:1. 我们在合适的位置加入了对于这个过程的说明,而且在概要中将显示这些内容;2. 我们对于换行的控制,会控制概要悬浮框的长度。

再看现在的概要框:
注意:在这里,as并不能取代is,大家可以自己试一下,看看概要内容是什么情况。

PLSQL的注释技巧的更多相关文章

  1. plsql developer 使用技巧

    plsql developer 使用技巧 Oracle数据库相信已成为很多企业构建自身关键业务的重要后台支撑,也是众多开发人员常常采用的后台.但Oracle自己提供的一套客户端工具不是很好用,极大的影 ...

  2. 应用PLSQL Developer(技巧)

    以下是一些 PLSQL Developer的使用技巧. 转自:PLSQL developer常用技巧,作者:逍遥游xj

  3. PLSQL Developer使用技巧整理(转)

    一.工具-首选项-用户界面-编辑器-其它-显示行号二.工具-首选项-窗口类型-SQL窗口-显示隔号(行号) 在使用PL/SQL Developer对Procedure进行Debug时,突然发现无法Se ...

  4. PLSQL Developer使用技巧

    本文由liuyk80贡献 ·PL/SQL Developer 使用技巧 1.PL/SQL Developer 记住登陆密码 在使用 PL/SQL Developer 时,为了工作方便希望 PL/SQL ...

  5. plsql只有注释显示问号,其余中文可以正常显示

    在plsql客户端查看表信息,注释均为乱码,使用select 查询字段中中文字符正常,以下为解决方案: 1.使用语句 select * from V$NLS_PARAMETERS 查询 nls_lan ...

  6. PLSQL Developer使用技巧整理

      Shortcut: =============================================================================== Edit/Und ...

  7. 转载:PLSQL Developer使用技巧整理

    Shortcut(快捷方式): Edit/Undo     Ctrl+Z Edit/Redo     Shift+Ctrl+Z Edit/PL/SQL Beautifier  Ctrl+W   (自定 ...

  8. PLSQL性能优化技巧

    1.理解执行计划1-1.什么是执行计划 oracle数据库在执行sql语句时,oracle的优化器会根据一定的规则确定sql语句的执行路径,以确保sql语句能以最优性能执行.在oracle数据库系统中 ...

  9. PLSQL developer常用技巧

    1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码: 设置方法:tools- ...

随机推荐

  1. springboot线程池@Async的使用和扩展

    我们常用ThreadPoolExecutor提供的线程池服务,springboot框架提供了@Async注解,帮助我们更方便的将业务逻辑提交到线程池中异步执行,今天我们就来实战体验这个线程池服务: 本 ...

  2. [USACO13FEB]出租车Taxi

    洛谷题目链接:[USACO13FEB]出租车Taxi 题目描述 Bessie is running a taxi service for the other cows on the farm. The ...

  3. 【BZOJ】1666 [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏

    [算法]贪心&&堆 [题解]反过来看就是合并任意两块木板,花费为木板长度之和. 显然从最小的两块开始合并即可,用堆(优先队列)维护. 经典DP问题石子归并是只能合并相邻两堆石子,所以不 ...

  4. 深入浅出MyBatis:JDBC和MyBatis介绍

    JDBC相关概念 Java程序都是通过JDBC连接数据库的,通过SQL对数据库编程,JDBC是由SUN公司提出的一些列规范,只定义了接口规范,具体实现由各个数据库厂商去实现,它是一种典型的桥接模式. ...

  5. bzoj 3453 数论

    首先我们知道对于f(x)来说,它是一个k次的多项式,那么f(x)的通项公式可以表示成一个k+1次的式子,且因为f(x)没有常数项,所以我们设这个式子为 f(x)=Σ(a[i]*x^i) (1<= ...

  6. 使用yo -v查看yeoman版本号

    使用yo -v无法查看yeoman版本,这是旧版本的方法 新版本使用yo --version即可查看

  7. Python3 面向对象编程高级语法

    1.静态方法: #!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:CarsonLi class Dog(object): def __init ...

  8. fork与printf缓冲问题

    printf输出条件: (1) 调用fflush: (2) 缓冲区满了: (3) 遇到\n \r这些字符 (4) 遇到scanf这些要取缓冲区的: (5) 线程或者进程退出: fork之后会拷贝父进程 ...

  9. AJAX 核心 —— XMLHTTPRequest 对象回顾

    一.AJAX概述 不使用 AJAX 的网页,如果要更新内容,需要重载整个页面. AJAX ( Asynchronous Javascript And XML ,异步 Javascript 和 XML) ...

  10. python基础===继承

    编写类时,并非总是要从空白开始.如果你要编写的类是另一个现成类的特殊版本,可使用继承.一个类继承另一个类时,它将自动获得另一个类的所有属性和方法:原有的类称为父类,而新类称为子类.子类继承了其父类的所 ...