PL/SQL 基础
来源:互联网 发布:简易c语言程序 编辑:程序博客网 时间:2024/05/01 07:09
PL/SQL的基本单位,区段。组成:声明部分、可运行部分、排除-构建 部分。
PL/SQL的特点:时块结构语言。主要包括:存储过程、函数、匿名三部分。
在运行PL/SQL时,不是逐条执行的,而是作为一组SQL语句整体执行。
PL/SQL程序:有定义部分(DECLARE)、执行部分(BEGIN END)和异常部分(EXCEPTION)组成。
定义部分:用于定义常量、变量、游标、异常、复合数据类型,一般在程序中使用的变量都要在这里声明。
执行部分:用于实现应用模块的功能。该部分包含了要执行的SQL语句块。
异常部分:用于处理在执行SQL过程中产生的异常。
示例:
DECLAREBEGINEXCEPTIONEND;
常用数据类型:
变量:
在声明部分声明:
语法:
variable_name datatype not null [default_value:=value]
常量声明如下:
variable_name CONSTANT datatype not null [default_value:=value]
运算符:
条件控制语句:
IF conditons THEN statement1
ELSIF conditions THEN statement2
ELSE condition THEN statement3
小示例:
DECLAREmynumber NUMBER(3) := 100;BEGINIF mynumber = 100THENmynumber := mynumber + 15;dbms_output.put_line('输出结果为:' || mynumber);ELSIF mynumber = 115THENdbms_output.put_line('输出结果为:' || mynumber);END IF;END;-----------------------------------------------------------------------输出结果为:115
case when then 条件控制语句:
--case when then 的第1种用法DECLARE mynumber NUMBER(3) := 200;BEGIN CASE mynumber WHEN 100 THEN mynumber := mynumber + 15; dbms_output.put_line('输出结果为:' || mynumber); WHEN 115 THEN dbms_output.put_line('输出结果为:' || mynumber); ELSE dbms_output.put_line('输出结果为:无符合条件结果' ); END CASE;END;---------------------------------------------------------------------------输出结果为:无符合条件结果
--case when then 的第2种用法DECLARE mynumber NUMBER(3) := 200;BEGIN CASE WHEN mynumber= 100 THEN mynumber := mynumber + 15; dbms_output.put_line('输出结果为:' || mynumber); WHEN mynumber= 115 THEN dbms_output.put_line('输出结果为:' || mynumber); ELSE dbms_output.put_line('输出结果为:无符合条件结果' ); END CASE;END;----------------------------------------------------------------输出结果为:无符合条件结果LOOP 循环语句:
DECLARE mynumber NUMBER(3) := 200;BEGIN LOOP EXIT WHEN mynumber >900 ; mynumber := mynumber + 50; dbms_output.put_line(mynumber); END LOOP;END;---------------------------------------------250300350400450500550600650700750800850900950
WHILE循环:DECLARE mynumber NUMBER(3) := 200;BEGIN WHILE mynumber <900 LOOP mynumber := mynumber + 50; dbms_output.put_line(mynumber); END LOOP;END;---------------------------------------------250300350400450500550600650700750800850900950
FOR 循环:
DECLARE mynumber NUMBER(18,8); secOND_number NUMBER(18,8):=1.5; str CONSTANT VARCHAR2(100) := '输出结果:';BEGIN FOR mynumber IN 1..10 LOOP secOND_number := secOND_number*mynumber; dbms_output.put_line(str || secOND_number); END LOOP;END;---------------------------------------------输出结果:1.5输出结果:3输出结果:9输出结果:36输出结果:180输出结果:1080输出结果:7560输出结果:60480输出结果:544320输出结果:5443200
0 0
- SQL-PL/SQL基础
- ORACLE PL/SQL 基础
- PL/SQL基础
- PL/SQL语言基础
- PL/SQL语言基础
- PL/SQL语言基础
- ORACLE PL/SQL 基础
- PL/SQL基础小结
- PL/SQL 基础
- PL/SQL基础学习
- PL/SQL编程基础
- oracle pl/sql 基础
- PL/SQL基础
- PL/SQL --> 语言基础
- PL/SQL基础(一)
- oracle pl/sql 基础
- Oracle PL/SQL 基础
- PL/SQL基础(一)
- crontab中PHP inlucde相对路径导致脚本不执行的解决办法
- SEO基础知识——SEO是什么?
- Vim自动补全神器:YouCompleteMe
- L1 norm, L2 norm
- 图像处理中GlobalAlloc、GlobalLock、GlobalUnLock
- PL/SQL 基础
- Java多线程断点续传下载
- Tablelayout 讲解
- js根据按键传值跳转页面
- Linux常用命令解析
- [javascript]canvas 热点区域图,框选区域并在区域显示热点
- C++学习笔记 --- STL练习合并merge函数
- 部署 PHP 系列,第 3 部分: 加速用于 Oracle 的 PHP 代码运行速度
- B - Catch That Cow