学习了一下Introduction to Oracle9i(PLSQL 1),发现变量定义这块还颇有些讲究。比如标识符的非法字符、大小写是否敏感、嵌套定义、变量常量、初始值等等。看了培训材料中的介绍,写了如下的代码进行试验,加深理解。
<<blk_1>>
DECLARE
-- 变量声明格式:identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr];
-- 变量命名规范:小写,v_开头表示变量,c_开头表示常量
v_1 VARCHAR(30) NOT NULL := '123';
v_CaSESenSItive CHAR(1);
v_intvalue INTEGER;
c_intvalue CONSTANT INTEGER DEFAULT 1; -- 常量必须赋初始值
v_blockvar NUMBER(10, 2) := 12.34;
BEGIN
v_casesensitive := 'Y'; -- 变量名称大小写不敏感
--c_intvalue := 3; -- 错误:常量除了赋初始值之外,不能再被赋值
-- 嵌套代码块
DECLARE
v_blockvar DECIMAL(10, 2) := 43.21;
BEGIN
dbms_output.put_line(v_blockvar);
dbms_output.put_line(blk_1.v_blockvar); -- 运用label引用外层变量
END;
END;
附:变量定义建议名称(从培训材料中截图的效果)