• PL/SQL编程基本语法学习


    语法结构:

    DECLARE --声明部分
    --v_name VARCHAR2(20); --直接声明类型
    v_name emp.ename%TYPE; --获取emp.ename列的类型
    BEGIN
    --赋值
    --v_name := 'zhangsan'; --执行部分
    --将表中的列查询出来,存放到变量中。不能返回多行记录。类型要一致
    SELECT ename INTO v_name FROM emp WHERE empno=7369;
    dbms_output.put_line(v_name);
    END;

    案例:

    --判断用户是否有奖金
    DECLARE
    V_COMM EMP.COMM%TYPE;
    BEGIN
    SELECT COMM INTO V_COMM FROM EMP WHERE EMP.EMPNO = 7499;
    IF V_COMM >= 500 THEN
    DBMS_OUTPUT.PUT_LINE('这个月双倍奖金!');
    ELSIF V_COMM >= 300 THEN
    DBMS_OUTPUT.PUT_LINE('这个月有奖金!');
    ELSE
    DBMS_OUTPUT.PUT_LINE('这个月没有奖金!');
    END IF;
    END;

    --case语句
    --第一种写法:类似java中的switch结构
    DECLARE
    V_DEPTNO EMP.DEPTNO%TYPE;
    BEGIN
    SELECT emp.deptno INTO V_DEPTNO FROM EMP WHERE EMP.EMPNO = 7369;
    CASE V_DEPTNO
    WHEN 10 THEN
    DBMS_OUTPUT.PUT_LINE('财务部');
    WHEN 20 THEN
    DBMS_OUTPUT.PUT_LINE('人事部');
    WHEN 30 THEN
    DBMS_OUTPUT.PUT_LINE('销售部');
    WHEN 40 THEN
    DBMS_OUTPUT.PUT_LINE('研发部');
    END CASE;
    END;

    --第二种写法:类似java中的多重elseif结构
    DECLARE
    v_sal emp.sal%TYPE;
    v_empno NUMBER := # --运行时,弹出输入框,输入变量的值
    BEGIN
    SELECT emp.sal INTO v_sal FROM EMP WHERE EMP.EMPNO = v_empno;
    CASE
    WHEN v_sal >= 3000 THEN
    DBMS_OUTPUT.PUT_LINE('工资非常棒');
    WHEN v_sal >= 2000 THEN
    DBMS_OUTPUT.PUT_LINE('工资不错');
    WHEN v_sal >= 1000 THEN
    DBMS_OUTPUT.PUT_LINE('工资还行');
    ELSE
    DBMS_OUTPUT.PUT_LINE('工资惨不忍睹');
    END CASE;
    END;


    --循环结构
    --LOOP
    DECLARE
    v_sum NUMBER := 0;
    v_i NUMBER := 0;
    BEGIN
    LOOP
    v_sum := v_sum + v_i;
    v_i := v_i + 1;
    EXIT WHEN v_i > 100; --退出循环的条件
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('和为:'||v_sum);
    END;

  • 相关阅读:
    【CodeForces】[612C]Replace To Make Regular Bracket Sequence
    【POJ】[1363]Rails
    【POJ】[1363]Rails
    【杭电】[1022]Train Problem I
    【杭电】[1022]Train Problem I
    【杭电】[1873]看病要排队
    【杭电】[1873]看病要排队
    【HPU】[1714]感恩节KK专场——送给新生的礼物
    【HPU】[1714]感恩节KK专场——送给新生的礼物
    [leetcode]392. Is Subsequence 验证子序列
  • 原文地址:https://www.cnblogs.com/jkma1007/p/4205856.html
Copyright © 2020-2023  润新知