在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_
是否还有其他良好的命名惯例?
要遵循的最佳做法是什么。
答案 0 :(得分:9)
我将选择一个明确区分本地(或全局)变量和列名称的命名方案放在首位。无论前缀是l_是本地还是v_是变量还是其他什么都不重要。
要捕获的另一种情况是参数或变量包含字符串格式的日期(或潜在日期)(例如从文件加载或从网页传递但尚未验证)。使用命名约定(例如_DATEC后缀)可以清楚地区分这些与实际日期,并避免隐式转换。根据您的应用程序,您可能希望将已清理的变量与未过滤的变量区分开来(即是否已检查过它们是否存在潜在的SQL注入或XSS /其他HTML恶意软件)。
变量名称不区分大小写,IDE格式化程序可能会根据首选项更改大小写。所以我更喜欢单词之间的下划线分隔符,而不是依赖于camelCase。
答案 1 :(得分:5)
一致性是命名惯例的关键 只要总是使用约定,那么使用它并不重要。之后,如有必要,提供文件。
那就是说,我喜欢的一个惯例就是在变量名中指明方向。 IE:IN
参数为:IN_FIRST_NAME
; OUT
参数为:OUT_FIRST_NAME
,IN OUT
为IN_OUT_FIRST_NAME
。 Oracle有字符限制(32个字符IIRC),所以不要太疯狂。