-- 声明一个人的信息,姓名、薪水、地址 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;
原文:https://www.cnblogs.com/yuefeng123/p/9281797.html