PL/SQL变量声明、使用、作用域讲解实例

使用plsqldev打开测试窗口,输入如下:

-- Created on 2018/3/21 by E.WANG 
declare 
  /*
  全局变量
  初始化变量
  */
  userName char(10) default 'ewang';
  age int:=33;
  address varchar2(50);
begin
  -- Test statements here
  address:='shang hai pudong';
  dbms_output.put_line('-----------------alter before--------------------' );
  dbms_output.put_line('user name:' || userName);
  dbms_output.put_line('user age:' || age);
  dbms_output.put_line('user address:' || address);
  
  
  declare
       englishName char(10);
       sex varchar(6);
       mount decimal;
  begin
       --修改全局变量的值
       userName:='wang shang';
       age:=18;
       --给局部变量赋值
       englishName:='ewang';
       sex:='male';
       mount:=6523.56;
       dbms_output.put_line('-----------------alter after(local)--------------------' );
       dbms_output.put_line('user name:' || userName);
       dbms_output.put_line('user sex:' || sex);
       dbms_output.put_line('user age:' || age);
       dbms_output.put_line('user englishName:' || englishName);
       dbms_output.put_line('user mount:' || mount);
       dbms_output.put_line('user address:' || address);
  end;
  --修改全局变量的值
  userName:='wang ning';
  age:=14;
  /*
  --给局部变量赋值
  englishName:='sunny';
  sex:='female';
  mount:=6666.66;
  */
 dbms_output.put_line('-----------------alter after(global)--------------------' );
 dbms_output.put_line('user name:' || userName);
 --dbms_output.put_line('user sex:' || sex);
 dbms_output.put_line('user age:' || age);
 --dbms_output.put_line('user englishName:' || englishName);
 --dbms_output.put_line('user mount:' || mount);
 dbms_output.put_line('user address:' || address);
  
end;

给出部分代码截图:


在没有注释掉上图那部分代码,运行会弹出如下错误:


注释掉之后,运行截图:



总结:

begin中嵌套的那部分变量声明,作用域就是在变量声明的那个begin中有效,而在最外部的声明在整个部分都有效!

WEL测试 CSDN认证博客专家 软件测试 性能测试 接口测试
一线的测试工作人员。喜欢专研并应用新的技术,用于提升测试效率。擅长:测试新人培训、测试进阶、接口测试、性能测试、问题定位、自动化、数据测试、渗透测试! 如果对测试感兴趣或者遇到一些难题,可以加我微信:Wel_Test,加时填好备注!
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:上身试试 返回首页