变量

变量

Plsql编程中常见的变量分为两大类:

\1. 普通数据类型(char,varchar2,date,number,boolean,long)

\2. 特殊变量类型(引用型变量,记录型变量)

声明变量的方式为:

变量名 变量类型(变量长度) 例如:v_name varchar2(20)

普通变量

变量赋值的方式有两种:

\1. 直接赋值语句 := 比如: v_name :=’zhangsan’

\2. 语句赋值,使用select ...into...赋值:(语法 select 值 into 变量)

示例:打印人员个人信息,包括:姓名,薪水,地址

-- Created on 2020/12/12 by zyq
declare 
  -- Local variables here
  --姓名
  v_name varchar2(20) :='zhangsan';
  --薪水
  v_sal number;
  --地址
  v_addr varchar2(200);
begin
  -- Test statements here
  --直接赋值
  v_sal :=1580;
  --语句赋值
  select '北京市通州区' into v_addr from dual;
  --打印输出
  dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal||',地址:'||v_addr);
end;

执行输出结果:

姓名:zhangsan,薪水:1580,地址:北京市通州区

引用型变量

变量的类型和长度取决于表中字段的类型和长度

通过表名.列名%type指定变量的类型和长度,例如:v_name emp.ename%type;

[示例]查询emp表中的7839号员工的个人信息,打印姓名和薪水

使用普通变量的方式:

-- Created on 2020/12/12 by zyq
declare 
  -- Local variables here
  --姓名
  v_name varchar2(20) :='zhangsan';
  --薪水
  v_sal number;
 
begin
  -- Test statements here
  SELECT a.ename,a.sal into v_name,v_sal FROM emp a WHERE a.empno='7839';
 **--打印输出**
 dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal);

end;

使用引用型变量的方式:

dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal);

end;

使用引用型变量的方式:

-- Created on 2020/12/12 by zyq
declare 
  -- Local variables here
  --姓名
  v_name emp.ename%type;
  --薪水
  v_sal emp.sal%type;
 
begin
  -- Test statements here
  SELECT a.ename,a.sal into v_name,v_sal FROM emp a WHERE a.empno='7839';

  --打印输出
  dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal);
end;

引用型变量的好处:

使用普通变量定义方式,需要知道表中列的类型,而使用引用类型,不需要考虑列的类型,使用%type是非常好的编程风格,因为他是的plsql更加灵活,更加适应于对数据库定义的更新。

记录型变量

解释:记录型变量,就是将整个表中的一行记录的所有字段同时声明出来。

-- Created on 2020/12/12 by zyq
declare 
  -- Local variables here
  --记录型变量
  v_emp emp%rowtype;
  
 
begin
  -- Test statements here
  SELECT * into v_emp FROM emp a WHERE a.empno='7839';

  --打印输出
  dbms_output.put_line('姓名:'||v_emp.ename||',薪水:'||v_emp.sal);
end;

如果有一个表,有100个字段,那么你程序中如果要使用这100个字段的话,如果你使用引用型变量一个个声明,会特别的麻烦,记录型变量可以方便的解决这个问题

错误的使用:

\1. 记录型变量只能存储一个完整的行数据

posted on   ~码铃薯~  阅读(169)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示