`

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
分享到:
评论

相关推荐

    Oracle PL/SQL语言初级教程

    PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和...通过本教程的学习,您将初步掌握PL/SQL语言,能够利用PL/SQL语言完成建表、查询、添加、删除数据以及事务处理语句的基本用法。

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    探讨了数据类型、条件控制语句和顺序控制语句、循环、异常处理、安全特性、全球化和本地化问题, 以及PL/SQL架构。 ? 通过使用过程、函数、触发器和包,建立模块化的PL/SQL应用。 内容推荐 《Oracle PL/SQL程序...

    PL/SQL Developer 6.05注册版-1

    更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...

    PL/SQL Developer v8.0.zip

    更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL ...

    Oracle_PLSQL语言基础

    PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL...

    PL/SQL Developer 7.1.5 注册版-3

    更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...

    Oracle PL/SQL程序设计(第5版)(下册) 第一部分

    探讨了数据类型、条件控制语句和顺序控制语句、循环、异常处理、安全特性、全球化和本地化问题, 以及PL/SQL架构。 ? 通过使用过程、函数、触发器和包,建立模块化的PL/SQL应用。 内容推荐 《Oracle PL/SQL程序...

    PL/SQL 基本语句

    PL\SQL 基本语句。对于刚刚接触oracle的技术员来说非常有用

    SQL、pl/sql基础语句大全

    自己总结的,适合于初学者,下载后打印即可使用。

    PL/Sql相关语法

    存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函数不 同,存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块...

    PL/SQL Developer

     更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。  HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL ...

    oracle-plsql

    引擎执行PL/SQL中的过程性语句,然后将SQL语句发送给数据库服务器来执行;再将结果返回给执行端 6、PL/SQL优势: 集成在数据库,运行是大量减少网络传输量和交互时间,提高系统运行效率 统一的和集中的业务逻辑处理...

    pl/sql developer 9 + 注册机

    更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南  Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL ...

    PL/SQL Developer8.04官网程序_keygen_汉化

     函数:Create or replace function funcname(参数列表) return 返回值 as PL/SQL语句块  为便于理解,举例如下:  问题:假设有一张表t1,有f1和f2两个字段,f1为number类型,f2为varchar2类型,要往t1里写两条...

    PLSQL基础word

    PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL...

    PL/SQL Developer 7.1.5 注册版

    更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...

    PL/SQL学习语法及应用

    结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单的调用相应语句来直接取得...

Global site tag (gtag.js) - Google Analytics