PL/SQL
-- Created on 2019/10/7 by LK declare -- 声明变量、游标 i integer; begin -- 执行语句 -- [ 异常处理 ] end;
1、我们使用PL/SQL打印第一个“Hello Word”
declare begin dbms_output.put_line('Hello Word'); end; -- 结果 Hello Word
(我们的黑框打印:)
1、WIN + R (CMD)
2、输入sqlplus ,然后输入相应的登录名和密码
注意:这里我们需要打开一个开关否则看不见打印的字符串“Hello word”
打开方法:在刚刚的黑框中输入 :set serveroutput on
3、粘贴上上面写的PL/SQL
4、回车,然后加 /
2、变量
变量的声明方式
变量名 变量类型(变量长度) 例如 v_name varchar(20);
2.1、普通数据类型(char、varchar2、date、number、boolean、long)
赋值:
(1)直接赋值: := 例如 v_name:='张飒'
(2)语句赋值:select .....into....
--打印人员信息:包括姓名、薪水、地址 declare --姓名 v_name varchar2(20) := '张三'; --薪水 v_sal number; --地址 v_addr varchar2(20) ; begin --直接赋值 v_sal := 15000; -- 语句赋值 select '北京市' into v_addr from dual; --打印输出 dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal||',地址:'||v_addr) ; end
2.2、特殊变量类型(引用型变量、记录型变量)
变量长度取决于表中字段类型长度
通过 表名.类名%type 指定变量的类型和长度 例如:v_name emp.ename%type
--打印人员信息:包括姓名、薪水 declare --姓名 v_name emp.ename%type; --薪水 v_sal emp.sal%type; begin select ename,sal into v_name,v_sal from emp where empno = 7839; --打印输出 dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal) ; end;
记录型变量(相当于java中的对象)
-- 查询emp中7839 号员工的个人信息,并打印姓名薪水 DECLARE v_emp emp%rowtype; BEGIN select * into v_emp from emp where emp.empno = 7839; -- 打印数据 dbms_output.put_line('姓名:'||v_emp.ename||',薪水:'||v_emp.sal); END;
3、流程控制
3.1 条件分支
-- 判断emp中记录超过20条数据,10-20条数据,10条一下 DECLARE V_COUNT NUMBER; BEGIN SELECT COUNT(*) INTO V_COUNT FROM EMP; IF V_COUNT > 20 THEN DBMS_OUTPUT.PUT_LINE('表中记录数超过20条:' || V_COUNT); ELSIF V_COUNT >= 10 THEN DBMS_OUTPUT.PUT_LINE('表中记录数在10-20条:' || V_COUNT); ELSE DBMS_OUTPUT.PUT_LINE('表中记录数10条一下:' || V_COUNT); END IF; END;
3.2 循环(有三种:这只讲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;