zoukankan      html  css  js  c++  java
  • PL/SQL块的结构

    -- 1. 声明变量时,必须要指定类型
    -- 2. 变量名需要先赋值,后使用
    -- 3. 变量名没有默认值(表现是空,无意义)
    --PL/SQL块的结构
    DECLARE
    V_NAME varchar2(20) := '雨女无瓜';
    BEGIN
    DBMS_OUTPUT.put_line(V_NAME||'的第一条PL/SQL语句');
    END;

    --与用户交互输入参数
    declare
    v_name varchar2(20):= '&input_name';
    begin
    dbms_output.put_line(v_name||'的第一条PL/SQL语句');
    end;

    DECLARE
    v_name1 varchar2(32);
    v_name2 varchar2(32) := 'ABC';
    v_num1 number := 13;
    v_num2 number;
    BEGIN
    dbms_output.put_line(v_name1);
    dbms_output.put_line(v_name1 || v_name2);
    dbms_output.put_line(v_num1);
    dbms_output.put_line(v_num1 + v_num2);
    END;

    --CONSTANT 定义常量值,定义后无法修改
    DECLARE
    v_number1 number := 13;
    v_number2 CONSTANT number := 3.14;
    BEGIN
    DBMS_OUTPUT.put_line(v_number1 * v_number2);
    END;

    --变量与指定的列的类型一致 采用%TYPE
    DECLARE
    v_num1 employees.salary%type := 13.234;
    v_num2 employees.manager_id%type := 2;
    BEGIN
    DBMS_OUTPUT.put_line(v_num1 / v_num2);
    END;

    --DML结果装载入PLSQL变量
    DECLARE
    v_salary employees.salary%type;
    BEGIN
    select salary into v_salary from employees where employee_id=198;
    DBMS_OUTPUT.put_line('v_salary:'||v_salary);
    END;

    --%ROWTYPE表示数据类型是一行数据
    DECLARE
    v_emp employees%rowtype;
    BEGIN
    select * into v_emp from employees where employee_id = 100;
    dbms_output.put_line('部门编号:'||v_emp.department_id ||
    ' 员工姓名:'|| v_emp.first_name);
    END;

    --通过用户输入的员工号,查询一行记录

    DECLARE
    v_empId employees.employee_id%type;
    v_emp employees%rowtype;
    BEGIN
    select * into v_emp from employees where employee_id='&input_empId';
    dbms_output.put_line(v_emp.first_name);
    EXCEPTION
    when no_data_found then
    dbms_output.put_line('该员工未找到');
    END;

    --流程控制
    IF <布尔表达式> THEN
      PL/SQL 和 SQL语句
    ELSE
      其它语句
    END IF;
    --IF实例
    DECLARE
    v_temp number :='&input_temp';
    BEGIN
    if v_temp>38 then
    dbms_output.put_line('隔离');
    else
    dbms_output.put_line('观察');
    end if;
    END;

    --case 条件判断

    CASE 条件表达式
    WHEN 条件表达式结果1 THEN
         语句段1
    WHEN 条件表达式结果2 THEN
         语句段2
      ......
    WHEN 条件表达式结果n THEN
         语句段n
    [ELSE 条件表达式结果]
    END;

    --CASE实例

    DECLARE
    --定义属性
    v_score number :='&input_score';
    --定义结果
    v_result varchar2(32);
    BEGIN
    --case 条件判断
    v_result :=
    case
    when v_score between 90 and 100 then '优秀'
    when v_score between 80 and 90 then '良好'
    when v_score between 70 and 80 then '一般'
    when v_score between 60 and 70 then '及格'
    when v_score between 0 and 60 then '不及格'
    else '数据异常'
    end;
    --打印结果
    dbms_output.put_line(v_result);
    END;

    --数组的输出采用for循环方式,打印出来
    DECLARE
    -- 定义一个数组类型
    type type_arr is array(5) of varchar2(32);
    -- 制定一个变量为数组的类型
    v_type_arr type_arr;
    BEGIN
    --变量赋值
    v_type_arr :=type_arr('1','22','333','4444','55555');
    --使用for循环数组
    for i in 1 .. v_type_arr.count loop
    dbms_output.put_line(v_type_arr(i));
    end loop;
    END;

  • 相关阅读:
    Mysql模糊查询 select count(*) from sys_invitation where from_id like '%1006%';
    java 结束程序进程 代码
    [解决问题]selenium.remote.UnreachableBrowserException 异常分析并解决问题
    【解决问题】failed: java.lang.RuntimeException: org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer.
    linux下nginx部署以及配置详解
    Linux系统下安装jdk及环境配置(两种方法)
    linux服务器同时运行两个或多个tomcat
    linux配置环境jdk
    mysql修改后启动my.cnf报错Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
    mysql执行出错:Table 'k_user' is read only
  • 原文地址:https://www.cnblogs.com/ZXDZXD/p/12454655.html
Copyright © 2011-2022 走看看