Oracle存储过程变量命名约定

时间:2011-06-28 02:27:07

标签: sql oracle plsql naming-conventions

在oracle,PL / SQL中编写存储过程时,编写参数名后会有很多命名约定。

  1. PROCEDURE PROC_MY_STORED_PROCEDURE (sFirstName VARCHAR2, nId NUMBER, oCursor REF_CURSOR)

    PROCEDURE PROC_MY_STORED_PROCEDURE (first_name_in VARCHAR2, Id_in NUMBER, o_Cursor REF_CURSOR)

  2. 本地变量的前缀是l还是l_,全局是g还是g_

  3. 是否还有其他良好的命名惯例?

    要遵循的最佳做法是什么。

2 个答案:

答案 0 :(得分:9)

我将选择一个明确区分本地(或全局)变量和列名称的命名方案放在首位。无论前缀是l_是本地还是v_是变量还是其他什么都不重要。

要捕获的另一种情况是参数或变量包含字符串格式的日期(或潜在日期)(例如从文件加载或从网页传递但尚未验证)。使用命名约定(例如_DATEC后缀)可以清楚地区分这些与实际日期,并避免隐式转换。根据您的应用程序,您可能希望将已清理的变量与未过滤的变量区分开来(即是否已检查过它们是否存在潜在的SQL注入或XSS /其他HTML恶意软件)。

变量名称不区分大小写,IDE格式化程序可能会根据首选项更改大小写。所以我更喜欢单词之间的下划线分隔符,而不是依赖于camelCase。

答案 1 :(得分:5)

一致性是命名惯例的关键 只要总是使用约定,那么使用它并不重要。之后,如有必要,提供文件。

那就是说,我喜欢的一个惯例就是在变量名中指明方向。 IE:IN参数为:IN_FIRST_NAME; OUT参数为:OUT_FIRST_NAMEIN OUTIN_OUT_FIRST_NAME。 Oracle有字符限制(32个字符IIRC),所以不要太疯狂。