Oracle存储过程变量命名约定



在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. 局部变量前缀是否应为ll_,全局变量前缀是否为gg_

还有其他好的命名惯例可以遵循吗?

应遵循哪些最佳实践。

我会优先选择一种能够明确区分局部(或全局)变量和列名的命名方案。前缀是本地的l_还是变量的v_或其他什么并不重要。

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

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

一致性是命名约定的关键
使用什么并不重要,只要始终使用约定即可。之后,如有必要,提供文件。

也就是说,我喜欢的一个惯例是在变量名中指明方向。IE:IN参数将为:IN_FIRST_NAMEOUT参数将是:OUT_FIRST_NAME并且IN OUT将是IN_OUT_FIRST_NAME。Oracle有字符限制(32个字符的IIRC),所以不要太疯狂。

最新更新