- 浏览: 176195 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
SanFrans:
很不错的资料,谢谢分享
Oracle EBS 常用表 查询语句 -
Vity:
楼主坚持下去
Android学习指南基础--第一讲:Android开发环境的搭建【附件有图】 -
拥抱变化之美:
楼主的治学精神值得称赞。
C# 4.0 并行计算部分(附件有图) -
overloving:
fangjindan 写道
这个是绝对可行的哈,我测试通 ...
Linux下Oracle存储过程调用Java程序(含外部包) -
fangjindan:
Linux下Oracle存储过程调用Java程序(含外部包)
--######################################-- --控制语句(条件语句、循环语句) --王林 2012.07.06 --######################################-- --between 包含边界值 --**指数运算 --单变量表达式返回true、false或null。当评估某个表达式是否为true时,false和null都是not true --同样,当评估某个表达式是否为false时,true和null都是not false。null表达式不是true也不是false。 --######################################-- --1.IF语句 --所有语句块至少需要一条语句。 --ELSIF 不能写成 ELSEIF。 --布尔变量可以取代比较运算,返回布尔数据类型的单个函数也可以。 --(1)if-then-else语句 单分支语句 --Demo1: BEGIN --比较语句外的括号不是必需的 IF 1 = 1 THEN DBMS_OUTPUT.put_line( 'Condition met!' ); --没有else块的if语句只在条件满足时执行代码 END IF; END; --Demo2: DECLARE equal BOOLEAN NOT NULL := TRUE; BEGIN --如果评估变量或返回null值的表达式,运行时可能产生null,应用nvl避免 IF equal THEN DBMS_OUTPUT.put_line( 'Condition met!' ); END IF; END; --Demo3: BEGIN IF 1 = 2 THEN DBMS_OUTPUT.put_line( 'Condition met!' ); ELSE DBMS_OUTPUT.put_line( 'Condition not met!' ); END IF; END; --(2)if-then-elsif-then-else 语句 --Demo4: DECLARE equal BOOLEAN NOT NULL := TRUE; BEGIN --在判定第一个条件为true后退出,当没有条件满足时,运行默认的else条件 IF 1 = 1 THEN DBMS_OUTPUT.put_line( 'Condition 1 met!' ); ELSIF equal THEN DBMS_OUTPUT.put_line( 'Condition 2 met!' ); ELSIF 1 =2 THEN DBMS_OUTPUT.put_line( 'Condition 3 met!' ); END IF; END; --######################################-- --2.CASE语句 --不可以省去else块,否则在未发现选择符时会引发CASE_NOT_FOUND或PLS-06592错误 --简单CASE语句的选择符是使用(或返回)有效数据类型(布尔类型除外)的变量或函数。 --搜索CASE语句选择符是布尔变量或返回布尔变量的函数,默认选择true --(1)简单CASE语句 --在整个结构中,选择变量的值同表达式的值进行顺序匹配,如果相等,则执行相应的语句序列,如果不等,则执行ELSE部分的语句序列。 --Demo5: DECLARE --选择符可以是除BLOB,BFILE外的任何PL/SQL数据类型或复合类型 selector NUMBER := 0; BEGIN CASE selector --WHEN块越多,有效性越低 WHEN 0 THEN --CASE语句停止评估并在退出该语句前运行匹配的WHEN块 DBMS_OUTPUT.put_line( 'Case 0!' ); WHEN 1 THEN DBMS_OUTPUT.put_line( 'Case 1!' ); ELSE DBMS_OUTPUT.put_line( 'No match' ); END CASE;--END 后面有CASE END; --(2)表达式结构CASE语句 --CASE结构还能以赋值表达式的形式出现,它根据选择变量的值求得不同的结果。 --Demo6: --说明:该CASE表达式通过判断变量selector的值,对变量v_result赋予不同的值。 DECLARE selector NUMBER := 1; v_result VARCHAR2 (20); BEGIN v_result:= CASE selector WHEN 1 THEN 'First' WHEN 2 THEN 'Second' ELSE 'NO' END; DBMS_OUTPUT.PUT_LINE('The result is:'||v_result); END; --(3)CASE搜索语句 --它没有选择变量,直接判断条件表达式的值,根据条件表达式决定转向。 --除非想要搜索false条件,否则CASE搜索语句的选择符是隐式设置的TRUE; --Demo7: --说明:此结构类似于IF-THEN-ELSIF-ELSE-END IF结构。 BEGIN CASE /*FALSE | TRUE*/ WHEN 1 = 2 THEN DBMS_OUTPUT.put_line( '[ 1 = 2]!' ); WHEN 2 =2 THEN DBMS_OUTPUT.put_line( '[ 2 = 2]!' ); ELSE DBMS_OUTPUT.put_line( 'No match' ); END CASE; END; --######################################-- --3.Exit When循环: --EXIT用于在循环过程中退出循环,WHEN用于定义EXIT的退出条件。如果没有WHEN条件,遇到EXIT语句则无条件退出循环。 --Demo8: DECLARE i NUMBER; BEGIN i := 0; LOOP EXIT WHEN( i > 5 ); DBMS_OUTPUT.put_line(i); i := i + 1; END LOOP; END; --######################################-- --4.Loop循环: --Demo9: DECLARE i NUMBER; BEGIN i := 0; LOOP i := i + 1; DBMS_OUTPUT.put_line(i); IF i > 5 THEN EXIT; END IF; END LOOP; END; --######################################-- --5.WHILE LOOP循环: --WHILE循环是有条件循环 --当条件满足时,执行循环体;当条件不满足时,则结束循环。如果第一次判断条件为假,则不执行循环体。 --Demo10: DECLARE i NUMBER; BEGIN i:=0; WHILE i < 5 LOOP i := i + 1; DBMS_OUTPUT.put_line(i); END LOOP; END; --######################################-- --6.FOR普通循环: --是固定次数循环。 --循环控制变量是隐含定义的,不需要声明。 --下限和上限用于指明循环次数。正常情况下循环控制变量的取值由下限到上限递增,REVERSE关键字表示循环控制变量的取值由上限到下限递减。 --跟在IN REVERSE后面的数字必须是从小到大的顺序,而且必须是整数,不能是变量或表达式。 --可以使用EXIT退出循环。 --Demo11: DECLARE i NUMBER; BEGIN i := 0; FOR i IN 1..5 LOOP DBMS_OUTPUT.put_line(i); END LOOP; END; --Demo12: --效果同Demo11一样 BEGIN FOR i IN 1..5 LOOP DBMS_OUTPUT.put_line(i); END LOOP; END; --Demo13: --REVERSE倒置计数 BEGIN FOR i IN REVERSE 1..5 LOOP DBMS_OUTPUT.put_line(i); END LOOP; END; --######################################-- --7.For游标循环: --Demo14: DECLARE userRow scott.emp%ROWTYPE; CURSOR userRows IS SELECT * FROM scott.emp; BEGIN FOR userRow IN userRows LOOP DBMS_OUTPUT.put_line(userRow.ename||','||userRow.empno||','||userRows%ROWCOUNT); END LOOP; END;
发表评论
-
Oracle 基本建表语句
2012-11-15 14:12 2183--创建用户 create user han identifi ... -
Oracle EBS Item Import 物料导入 (2) 源代码 成功执行
2012-08-24 10:56 5514CREATE OR REPLACE PACKAGE PkgIm ... -
Oracle 体系结构
2012-08-20 17:29 988数据库(Database) 数据库是一个数据的集合,不仅 ... -
instr()函数,特殊用法,代替like,in
2012-08-20 17:19 5396--created by : wanglin --cre ... -
Oracle PL/SQL 常用函数总结
2012-08-20 14:02 1623--created by : wanglin --cre ... -
MERGE 使用例子
2012-08-17 17:01 1076--MERGE <Usage Case> --P ... -
内存表使用
2012-08-16 16:46 1713一、 内存表概念 1、PL/SQL表类似于C语言中的 ... -
临时表的使用方法
2012-08-16 15:48 1617临时表的使用方法: 创建 Oracle 临 ... -
Oracle EBS 二次开发 FND_GLOBAL PACKAGE 返回全局变量
2012-08-10 10:52 3028这个包,可以应用于你的 PL/SQL 中! 这个包 ... -
如何定义一个简单的Concurrent Program
2012-08-09 15:08 1030Oracle Apps R12下如何定义一个简单的Hello ... -
SQL Loader 导入Excel数据到Oracle数据库
2012-08-09 08:48 16631、 将需要上传的数据在Excel中整理好,通过“另存为 ... -
Oracle EBS 常用表 查询语句
2012-07-24 11:29 26868ORACLE EBS常用表查询语句 1. ... -
aaa
2012-07-13 14:25 0sdsdfas > http:/ ... -
Oracle_PL_ SQL_ 教程:函数
2012-07-12 21:32 1178--############################# ... -
Oracle_PL_ SQL_ 教程:包
2012-07-12 21:30 1007--############################# ... -
Oracle_PL_ SQL_ 教程:错误和异常
2012-07-13 08:44 7726--############################# ... -
Linux下Oracle存储过程调用Java程序(含外部包)
2012-07-13 10:03 6799一、描述: 用Java编写了一个导入Excel数 ... -
Oracle_PL_ SQL_ 教程:存储过程
2012-07-11 23:19 2986--############################# ... -
Oracle_PL_ SQL_ 教程:游标
2012-07-11 23:12 933--############################# ... -
Oracle存储过程中调用JAVA程序【转载】
2012-07-11 23:00 1111Oracle存储过程中调用JAVA程序 软件环境 ...
相关推荐
2. **控制结构**:PL/SQL中的控制结构包括条件语句(IF-THEN-ELSIF-ELSE)、循环语句(WHILE、FOR)、CASE表达式等,它们用于根据特定条件执行不同的代码块。 3. **异常处理**:Oracle PL/SQL有内置的异常处理机制...
- **嵌入式SQL**:PL/SQL可以直接嵌入SQL语句,用于查询、插入、更新和删除数据库中的数据。 - **动态SQL**:通过EXECUTE IMMEDIATE语句执行字符串形式的SQL,适应更灵活的需求。 3. **PL/SQL控制结构** - **...
5. **PL/SQL控制结构**:包括IF-THEN-ELSIF-ELSE、CASE语句进行条件判断,WHILE、FOR循环实现迭代,LOOP结构进行无限循环或指定次数的循环,以及EXIT和GOTO语句进行流程控制。 6. **游标**:游标用于逐行处理查询...
Oracle2BPL-SQL.rar_oracle_pl/sql这个压缩包文件可能包含了关于Oracle PL/SQL的基础教程资料,其中的Oracle2BPL-SQL.pdf可能是详细的讲解文本。 Oracle PL/SQL由三部分组成:Procedural Language(过程语言)、...
3. **流程控制**:PL/SQL提供了IF-THEN-ELSIF-ELSE、CASE语句进行条件判断,以及WHILE、FOR循环结构来实现迭代操作。 4. **块结构**:PL/SQL代码组织在块(BLOCK)中,包括声明部分(DECLARATION)、执行部分...
描述中提到“Oracle,PL/SQL操作手册,主要介绍语法等”,意味着这份资料可能详尽地涵盖了PLSQL的基本语法、数据类型、变量声明、控制结构(如IF-THEN-ELSE、CASE语句)、循环(WHILE、FOR循环)、子程序(过程和函数...
- 条件语句:IF-THEN-ELSIF-ELSE,用于根据条件执行不同代码块。 - 循环结构:WHILE循环和FOR循环,用于重复执行一段代码直到满足特定条件。 - CASE表达式:类似于IF-THEN-ELSIF的简洁形式,根据不同的情况执行...
8. **EXAMP**: 06-EXAMP.SQL、10-EXAMP.SQL以及04-LOOP.SQL可能包含各种PL/SQL编程示例,如控制结构(如循环、条件语句)、异常处理和数据类型使用等。 9. **LOOP**: 04-LOOP.SQL专门涉及PL/SQL中的循环结构,包括...
3. **控制结构**:PL/SQL支持多种控制流程结构,如IF-THEN-ELSE、CASE、WHILE、FOR循环等,使得程序可以根据条件执行不同的代码路径。 4. **子程序**:PL/SQL支持函数和过程的创建,它们可以封装一系列的操作并在...
执行部分包含SQL语句和PL/SQL控制结构;异常处理部分则用来捕获和处理运行时错误。理解这些基本结构对于编写健壮的PL/SQL代码至关重要。 本书将详细讲解以下PL/SQL的核心概念和技巧: 1. **变量和数据类型**:涵盖...
- **存储过程**:一组PL/SQL语句,可重复调用,提高代码复用性。 - **函数**:类似于过程,但返回一个值,可用于计算或验证。 - **触发器**:在特定数据库事件(如INSERT、UPDATE、DELETE)发生时自动执行的PL/...
1. **PL/SQL语法基础**:介绍如何声明变量、常量,定义过程、函数,以及使用条件语句(如IF-THEN-ELSIF-ELSE)和循环结构(如WHILE,FOR)。 2. **PL/SQL块结构**:包括匿名块(Anonymous Block)、存储过程...
):这是PL/SQL的主要部分,包含一系列的SQL语句和流程控制结构,如IF-THEN-ELSIF,WHILE,FOR循环等。 3. 异常处理部分(EXCEPTION):处理程序运行过程中可能出现的错误和异常,确保程序的健壮性。 4. 注释:PL/...
2. **流程控制**:讲解如何使用条件语句(IF-THEN-ELSIF, CASE)和循环语句(WHILE, FOR)控制程序的执行流程。 3. **子程序**:包括函数和过程的定义与调用,以及如何返回值。 4. **游标**:游标是PL/SQL中处理...
3. **SQL语句的嵌入**:PL/SQL允许在程序块中嵌入SQL语句,如SELECT、INSERT、UPDATE、DELETE等,用于对数据库进行操作。 4. **控制流程语句**:包括IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环等,用于控制程序...
它们可以包含参数,进行复杂的逻辑控制,执行一系列SQL语句,并返回结果。创建存储过程使用CREATE PROCEDURE语句,调用时则通过EXECUTE或CALL命令。存储过程有多种优点,如提高性能、减少网络流量、增强安全性、封装...
### PL/SQL Oracle基础教程知识点概述 #### 一、基本的SQL SELECT语句 - **基本语法结构**:`SELECT`语句用于从数据库中选取数据。它是最常用的`SQL`语句。 - `SELECT * FROM tablename;`:选择表格中的所有列。 ...
14. **事务管理**:事务是一组SQL语句,被视为数据库操作的一个单元,必须全部成功或全部失败。ACID属性(原子性、一致性、隔离性和持久性)确保了事务的可靠性和一致性。 15. **用户管理**:包括创建、删除、修改...
3. **流程控制**:包括条件语句(IF...ELSIF...ELSE)和循环结构(WHILE、FOR、LOOP)。 4. **游标**:用于在结果集上迭代,常用于处理复杂的查询结果。 5. **异常处理**:通过BEGIN...EXCEPTION块来捕获和处理...
PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库提供的一个结合了SQL语句和过程式编程语言的编程环境。它主要用于管理和控制Oracle数据库,是Oracle数据库开发的核心工具之一。PL/SQL...