在oracle、PL/SQL中编写存储过程时,在编写参数名称时遵循了许多命名约定。
-
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)
-
局部变量前缀是否应为
l
或l_
,全局变量前缀是否为g
或g_
还有其他好的命名惯例可以遵循吗?
应遵循哪些最佳实践。
我会优先选择一种能够明确区分局部(或全局)变量和列名的命名方案。前缀是本地的l_还是变量的v_或其他什么并不重要。
另一种情况是,参数或变量包含字符串格式的日期(或潜在日期)(例如从文件加载或从网页传递但尚未验证)。使用命名约定(如_DATEC后缀)可以清楚地将这些日期与实际日期区分开来,并避免隐式转换。根据您的应用程序,您可能需要区分已清除的变量和未初始化的变量(即是否已检查它们是否存在潜在的SQL注入或XSS/其他HTML恶意软件)。
变量名不区分大小写,IDE格式化程序可能会根据首选项更改大小写。所以我更喜欢单词之间的下划线分隔符,而不是依赖于camelCase。
一致性是命名约定的关键
使用什么并不重要,只要始终使用约定即可。之后,如有必要,提供文件。
也就是说,我喜欢的一个惯例是在变量名中指明方向。IE:IN
参数将为:IN_FIRST_NAME
;OUT
参数将是:OUT_FIRST_NAME
并且IN OUT
将是IN_OUT_FIRST_NAME
。Oracle有字符限制(32个字符的IIRC),所以不要太疯狂。