`

PL/SQL基本流程控制语句语法

 
阅读更多
----------------------------------------------------------------------
DECLARE
  conVerson constant VARCHAR2(20) := '1.0.01';
BEGIN
  DBMS_OUTPUT.put_line(conVerson);
END;
----------------------------------------------------------------------
DECLARE
  Database VARCHAR2(50) := 'Oracle 10g';
BEGIN
  dbms_output.put_line(Database);
END;
----------------------------------------------------------------------
DECLARE
  Database VARCHAR2(50);
BEGIN
  Database := 'Oracle 11g';
  dbms_output.put_line(Database);
END;
----------------------------------------------------------------------
DECLARE
  Num INTEGER := 11;
BEGIN
  IF Num < 0 THEN
    dbms_output.put_line('负数');
  ELSIF Num > 0 THEN
    dbms_output.put_line('正数');
  ELSE
    dbms_output.put_line('0');
  END IF;
END;
----------------------------------------------------------------------
DECLARE
  varDAY INTEGER := 5;
  Result VARCHAR2(20);
BEGIN
  Result := CASE varDAY
              WHEN 1 THEN
               '日曜日'
              WHEN 2 THEN
               '火曜日'
              WHEN 3 THEN
               '水曜日'
              WHEN 4 THEN
               '木曜日'
              WHEN 5 THEN
               '金曜日'
              WHEN 6 THEN
               '土曜日'
              WHEN 7 THEN
               '月曜日'
              ELSE
               '数字越界'
            END;
  dbms_output.put_line(Result);
END;
----------------------------------------------------------------------
DECLARE
  V_num INTEGER := 1;
  V_sum INTEGER := 0;
BEGIN
  LOOP
    V_sum := V_sum + V_num;
    dbms_output.put_line(V_num);
    IF V_num = 10 THEN
      EXIT;
    END IF;
    dbms_output.put_line('+');
    V_num := V_num + 1;
  END LOOP;
  dbms_output.put_line('=');
  dbms_output.put_line(V_sum);
END;
----------------------------------------------------------------------
DECLARE
  V_num INTEGER := 1;
  V_sum INTEGER := 0;
BEGIN
  LOOP
    V_sum := V_sum + V_num;
    dbms_output.put_line(v_num);
    EXIT WHEN V_num = 9;
    dbms_output.put_line('+');
    V_num := V_num + 1;
  END LOOP;
  dbms_output.put_line('=');
  dbms_output.put_line(V_sum);
END;
----------------------------------------------------------------------
DECLARE
  v_Num INTEGER := 1;
  v_Sum INTEGER := 0;
BEGIN
  WHILE v_Num <= 11 LOOP
    v_Sum := v_Sum + v_Num;
    dbms_output.put_line(v_Num);
    IF v_Num < 11 THEN
      dbms_output.put_line(' + ');
    END IF;
    v_Num := v_Num + 1;
  END LOOP;
  dbms_output.put_line('=');
  dbms_output.put_line(v_Sum);
END;
----------------------------------------------------------------------
DECLARE
  v_Num INTEGER;
  v_Sum INTEGER := 0;
BEGIN
  FOR v_Num IN 1 .. 3 LOOP
    v_Sum := v_Sum + v_Num;
    dbms_output.put_line(v_Num);
    IF v_Num < 3 THEN
      dbms_output.put_line('+');
    END IF;
  END LOOP;
  dbms_output.put_line('=');
  dbms_output.put_line(v_Sum);
END;
----------------------------------------------------------------------
DECLARE
  x NUMBER;
BEGIN
  x := 'a123';
EXCEPTION
  WHEN VALUE_ERROR THEN
    DBMS_OUTPUT.put_line('----- TYPE ERROR -----');
END;
----------------------------------------------------------------------
DECLARE
  var_Username VARCHAR(40);
BEGIN
  SELECT NAME INTO var_Username FROM EMPLOYEE WHERE GIVENNAME = 'Joe';
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.put_line('NO DATA');
  WHEN TOO_MANY_ROWS THEN
    DBMS_OUTPUT.put_line('TOO MANY DATA');
  WHEN OTHERS THEN
    DBMS_OUTPUT.put_line('UNKNOWN ERROR');
END;
----------------------------------------------------------------------
DECLARE
BEGIN
  DBMS_OUTPUT.put_line(ABS(-4));
  DBMS_OUTPUT.put_line(CEIL(116.24));
  DBMS_OUTPUT.put_line(CEIL(-112.75));
  DBMS_OUTPUT.put_line(CEIL(0));
  DBMS_OUTPUT.put_line(FLOOR(116.24));
  DBMS_OUTPUT.put_line(FLOOR(-112.75));
  DBMS_OUTPUT.put_line(FLOOR(0));
  DBMS_OUTPUT.put_line(POWER(15, 4));
  DBMS_OUTPUT.put_line(ROUND(123.456, 2));
  DBMS_OUTPUT.put_line(ROUND(123.456, 1));
  DBMS_OUTPUT.put_line(ROUND(123.456, 0));
  DBMS_OUTPUT.put_line(ROUND(123.456, -1));
  DBMS_OUTPUT.put_line(ROUND(123.456, -2));
  DBMS_OUTPUT.put_line(ROUND(123.456, -3));
END;
----------------------------------------------------------------------
DECLARE
  date1 VARCHAR2(20) := '2008-06-05';
  date2 VARCHAR2(20) := '2008-10-05';
BEGIN
  DBMS_OUTPUT.put_line(ASCII('ABC'));
  DBMS_OUTPUT.put_line(SYSDATE);
  DBMS_OUTPUT.put_line(TO_CHAR(SYSDATE));
  DBMS_OUTPUT.put_line(LAST_DAY(SYSDATE));
  DBMS_OUTPUT.put_line(MONTHS_BETWEEN(TO_DATE(date2, 'yyyy-mm-dd'),
                                      TO_DATE(date1, 'yyyy-mm-dd')));
END;
----------------------------------------------------------------------
SELECT * FROM EMPLOYEE;
SELECT COUNT(ID) FROM EMPLOYEE;
SELECT MAX(ID) FROM EMPLOYEE;
SELECT MIN(ID) FROM EMPLOYEE;
----------------------------------------------------------------------
DECLARE
  Ver NUMBER;
BEGIN
  SELECT LENGTH(USERNAME) into Ver FROM EMP WHERE USERID = 1;
  dbms_output.put_line(Ver);
END;

----------------------------------------------------------------------
DECLARE
  DEPNAME AA_DEPARTMENTS.DEPARTMENT_NAME%TYPE;
BEGIN
  SELECT DEPARTMENT_NAME INTO DEPNAME FROM AA_DEPARTMENTS WHERE DEPARTMENT_ID=10;
  DBMS_OUTPUT.put_line(DEPNAME);
END;
----------------------------------------------------------------------


CREATE OR REPLACE FUNCTION f_compute_costproject_code(cbs_code IN varchar2)
  RETURN varchar2 AS
  res_costproject_code varchar(40);
BEGIN
  res_costproject_code := case
                          -------------------
                            when cbs_code in
                                 ('0101', '0201', '0301', '0501') then
                             '01'
                          -------------------
                            when cbs_code in
                                 ('0102', '0202', '0302', '0502') then
                             '02'
                          -------------------
                            when cbs_code in
                                 ('0103', '0203', '0303', '0503') then
                             '03'
                          -------------------
                            when cbs_code in
                                 ('0106', '0206', '0306', '0506') then
                             '04'
                          -------------------
                            when cbs_code in
                                 ('0104', '0204', '0304', '0504') then
                             '05'
                          -------------------
                            when cbs_code in
                                 ('0105', '0205', '0305', '0505') then
                             '06'
                          -------------------
                            when cbs_code in
                                 ('0108', '0208', '0308', '0508') then
                             '07'
                          -------------------
                            when cbs_code in
                                 ('0107', '0207', '0307', '0507') then
                             '08'
                          -------------------
                            when cbs_code in ('0410', '9010') then
                             'other'
                            else
                             'none'
                          end;
  RETURN res_costproject_code;
END;
2
1
分享到:
评论

相关推荐

    pl/sql最新中文手册

    8. **索引和性能优化**:手册可能也会涉及如何利用索引来提高PL/SQL程序的执行效率,以及如何分析和优化SQL语句。 9. **并发和锁定**:在多用户环境下,理解并发控制和锁定机制是必要的。手册可能会讨论如何处理...

    PL/SQL 基本知识

    首先,PL/SQL是一种过程化语言,它允许用户定义变量、控制流程(如循环、条件语句)、处理异常,并且可以嵌入SQL查询,进行数据的增删改查操作。通过使用PL/SQL,数据库管理员和开发者可以更高效地管理和维护数据库...

    Oracle PL/SQL实战(待续)

    在Oracle数据库中,PL/SQL提供了丰富的控制结构,如循环、条件判断,以及异常处理机制,使得开发者能够编写复杂的业务逻辑。例如,`IF...THEN...ELSIF...ELSE`语句用于实现条件分支,`WHILE`和`FOR`循环则可以处理...

    pl/sql developer11.0

    7. **性能优化**:提供性能分析工具,如执行计划分析、SQL Tuning Advisor等,帮助优化SQL语句,提高数据库运行效率。 8. **版本控制集成**:与其他版本控制系统(如Git、SVN)无缝集成,便于版本管理和代码协同。 ...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **基本语法与结构**:包括数据类型、变量声明、流程控制语句(如IF、CASE、LOOP、WHILE)、异常处理等。 #### 二、PL/SQL程序结构 - **块结构**:PL/SQL程序通常被组织成块,每个块由声明部分、执行部分和异常...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    执行部分包含了SQL语句和流程控制结构,如循环、条件判断等;异常处理部分则用于捕获和处理运行时错误。 2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、PLS_INTEGER)、...

    ORACLE PL/SQL从入门到精通

    过程是PL/SQL中一种用来封装逻辑的单元,它包含了一系列的SQL语句和PL/SQL代码,可以执行特定的任务。过程与匿名程序块的区别在于它具有名称和参数,能够被重复调用。创建过程的语法中涉及到参数模式,包括IN、OUT、...

    PL/SQL编程基础知识

    PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的控制结构,使用户能够灵活地控制数据操作流程。作为Oracle数据库的核心组成部分之一,PL/SQL在数据库应用程序开发...

    PL/SQL下载

    1. **基础语法**:理解PL/SQL的基本数据类型、变量声明、流程控制结构等。 2. **函数和过程**:掌握如何定义和调用自定义函数和过程。 3. **游标**:了解如何使用游标处理结果集。 4. **异常处理**:学习如何编写...

    Oracle数据库实用教程第三章 PL/SQL程序设计.pptx

    本章节主要介绍了 PL/SQL 程序设计的基础知识,包括 PL/SQL 的优点、运行 PL/SQL 程序、PL/SQL 块结构、PL/SQL 基本语法、PL/SQL 处理流程、异常处理、游标、存储过程和函数、触发器等。 PL/SQL 的优点包括: * ...

    PL/SQL doc 文件

    本文将讲述 PL/SQL 基础语法、结构和组件、以及如何设计并执行一个 PL/SQL 程序。 PL/SQL 的优点包括: * 高性能的基于事务处理的语言,能运行在任何 ORACLE 环境中,支持所有数据处理命令。 * 支持所有 SQL 数据...

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    4. **动态SQL**:探讨如何在PL/SQL中执行SQL语句,包括EXECUTE IMMEDIATE和PREPARE-EXECUTE-CLOSE模式,以及绑定变量的应用。 5. **包(PACKAGE)**:详细解释包的概念,包括公共和私有部分,以及如何通过包来组织...

    PL/SQL语法帮助

    PL/SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库的一种扩展,它将SQL语句与过程式编程语言结合在一起,为数据库管理提供了更强大的功能。本压缩包"PL/SQL语法帮助"是专为初学者设计的...

    PL/SQL入门到精通书的源代码

    5. **过程与函数**:过程是一组PL/SQL语句的集合,用于执行特定任务。函数与过程类似,但返回一个值。它们可以提高代码的复用性和模块化。 6. **异常处理**:PL/SQL提供了一个强大的异常处理机制,允许你定义和捕获...

    Oracle Database 12c PL/SQL开发指南 实例源代码

    1. **PL/SQL基础**:PL/SQL的基础语法,如变量声明、数据类型、流程控制语句(如IF-THEN-ELSIF,FOR循环,WHILE循环)、异常处理(BEGIN-EXCEPTION-END结构)等。 2. **函数与过程**:如何定义和调用用户自定义的...

    PL/SQL免安装版

    1. **结构化编程**:PL/SQL支持流程控制语句,如IF-THEN-ELSE、CASE、WHILE和FOR循环,使得开发者能够编写复杂的逻辑。 2. **异常处理**:通过BEGIN...EXCEPTION块,PL/SQL提供了异常处理机制,能够捕获和处理运行...

    精通pl/sql

    7. **PL/SQL与SQL的交互**:说明如何在PL/SQL中执行SQL语句,包括动态SQL和嵌套SQL,以及如何处理查询结果。 8. **事务管理**:讨论事务的概念,事务的提交、回滚和保存点,以及并发控制和锁定机制。 9. **性能...

    PL/SQL語法大全

    每条PL/SQL语句以分号结束,SQL语句可以跨多行。在一行中,可以放置多条语句,它们之间用分号分隔。块的开始可以是`DECLARE`或`BEGIN`,结束标记是`END`。 PL/SQL程序块有两种类型:**命名程序块**和**匿名程序块**...

    Oracle PL/SQL学习官方教材

    2. **流程控制**:PL/SQL提供了多种流程控制结构,如条件语句(IF-THEN-ELSIF-ELSE)、循环(WHILE、FOR、LOOP)、CASE表达式,以及异常处理(EXCEPTION)。这些结构使得程序可以根据不同条件执行不同的代码段。 3....

Global site tag (gtag.js) - Google Analytics