-- 声明一个人的信息,姓名、薪水、地址
declare
-- Local variables here
-- 姓名
v_name varchar2(50) := '张三';
--薪水
v_sal number(11,2);
--地址
v_addr varchar2(200);
begin
-- 直接赋值
v_sal := 15800;
-- 语句赋值
select '上海传智博客' INTO v_addr FROM dual;
--打印变量
dbms_output.put_line('姓名:' || v_name || ',薪水:' || v_sal);
dbms_output.put_line('地址:' || v_addr);
end;
002:引用变量(表中数据列对应声明的变量)
-- 查询emp表中8192号员工的个人信息,打印姓名和薪水
declare
-- 姓名
v_ename emp.ename%type;
--薪水
v_sal emp.sal%type;
begin
-- 查询姓名和薪水赋值给变量
select ename,sal into v_ename,v_sal from emp where empno=8192;
dbms_output.put_line('姓名:' || v_ename || ',薪水:' || v_sal);
end;
003:记录型变量(表中一行数据)
-- 查询emp表中8192号员工的个人信息,打印姓名和薪水
declare
--记录型变量
v_emp emp%rowtype;
begin
--查询
select * into v_emp from emp where empno=8192;
--打印
dbms_output.put_line('姓名:'||v_emp.ename || ',薪水:' || v_emp.sal);
end;
004:if与elsif
-- 查询emp表中记录是否超过20条,10-20之间,或者10条以下
declare
-- 声明变量接收emp表中的记录数
v_count number;
begin
select count(1) into v_count from emp;
if v_count>20 then
dbms_output.put_line('emp表的记录数超过20条:'||v_count);
ELSIF v_count>=10 then
dbms_output.put_line('emp表的记录数在10-20之间:'||v_count);
ELSE
dbms_output.put_line('emp表的记录数在10条以下:' || v_count);
end if;
end;
005:LOOP(循环)
--打印数字1-10
declare
-- -声明一个循环变量
v_num number := 1;
begin
loop
exit when v_num>10;
dbms_output.put_line(v_num);
--循环变量的自增长
v_num:=v_num+1;
end loop;
end;