`
Wen_JN_86
  • 浏览: 33685 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Oracle-循环

阅读更多

 

Oracle-循环

--插入0到1000,含1000

create table tbl_cycle_test
(
temp_num number
);
truncate table tbl_cycle_test;

--exit when
truncate table tbl_cycle_test;
declare
n number := 0;
begin
loop
insert into tbl_cycle_test (temp_num) values (n);
n := n + 1;
exit when n = 1001;
end loop;
commit;
end;
select min(t.temp_num),max(t.temp_num) from tbl_cycle_test t;

--loop
truncate table tbl_cycle_test;
declare
n number := 0;
begin
loop
insert into tbl_cycle_test (temp_num) values (n);
n := n + 1;
if n = 1001 then exit;
end if;
end loop;
commit;
end;
select min(t.temp_num),max(t.temp_num) from tbl_cycle_test t;

--while
truncate table tbl_cycle_test;
declare
n number := 0;
begin
while n <=1000 loop
insert into tbl_cycle_test (temp_num) values (n);
n := n + 1;
end loop;
commit;
end;
select min(t.temp_num),max(t.temp_num) from tbl_cycle_test t;

--for普通循环
truncate table tbl_cycle_test;
declare
n number := 0;
begin
for n in 0..1000 loop
insert into tbl_cycle_test (temp_num) values (n);
end loop;
commit;
end;
select min(t.temp_num),max(t.temp_num) from tbl_cycle_test t;

--游标
--搞清楚游标和游标变量
drop table tbl_cycle_test2;
create table tbl_cycle_test2 as
select * from tbl_cycle_test;
--For 循环游标
-- 1 定义游标
-- 2 定义游标变量
-- 3 使用for循环来使用这个游标
truncate table tbl_cycle_test;
declare
cursor test2 is select * from tbl_cycle_test2;
n test2%rowtype;
begin
for n in test2 loop
insert into tbl_cycle_test (temp_num) values (n.temp_num);
end loop;
commit;
end;
select min(t.temp_num),max(t.temp_num) from tbl_cycle_test t;

--Fetch游标
--使用的时候必须要明确的打开和关闭
truncate table tbl_cycle_test;
declare
cursor test2 is select * from tbl_cycle_test2;
n test2%rowtype;
begin
open test2;
loop
fetch test2 into n;
--判读是否提取到值,没取到值就退出
--取到值 n%notfound 是false
--取不到值 n%notfound 是true
exit when test2%notfound;
insert into tbl_cycle_test (temp_num) values (n.temp_num);
end loop;
--关闭游标
close test2;
commit;
end;
select min(t.temp_num),max(t.temp_num) from tbl_cycle_test t;
分享到:
评论

相关推荐

    cx_Oracle-5.1.2-11g.win32-py2.7.msi

    通过调用`execute`方法执行查询,`fetchall`方法获取所有结果,最后使用循环遍历并打印查询结果。当工作完成后,记得关闭游标和连接以释放资源。 cx_Oracle还支持更高级的功能,如参数绑定、存储过程调用、事务控制...

    开源项目-go-goracle-goracle.zip

    5. **处理结果**: 循环遍历结果集,获取和处理数据。 **特性与优势** goracle库的优势在于它提供了与Oracle数据库的高效连接,支持多种Oracle特性,包括游标、事务控制、PL/SQL调用等。此外,由于其基于Go的并发...

    oracle-ocjp808-题库.zip

    1. **基础语法**:包括变量、数据类型、运算符、流程控制(如if-else,switch,for,while,do-while循环)、数组和字符串的使用。 2. **类与对象**:面向对象编程的基本概念,如封装、继承、多态,以及构造函数、...

    Oracle-Pl-Sql.rar

    1. **PL/SQL基础语法**:这包括变量声明、数据类型(如NUMBER、VARCHAR2、DATE等)、流程控制语句(IF-THEN-ELSE、CASE、FOR循环)、异常处理(BEGIN-EXCEPTION-END块)等。 2. **PL/SQL块结构**:PL/SQL程序由三种...

    oracle-tree-sql.rar_oracle

    Oracle允许在`CONNECT BY`之前使用`PRIOR`关键字,但不推荐,因为这可能导致无限循环。 四、性能优化 4.1 使用`CYCLE`子句 当树结构存在循环时,`CYCLE`子句可以用来检测并处理这些循环。例如: ```sql SELECT *...

    Oracle-ERP开发笔记

    ### Oracle-ERP开发笔记知识点概览 #### 一、Oracle Forms基础 **1. 设置ITEM为必填项** - 在Oracle Forms中,可以为特定的ITEM(字段)设置必填属性,确保用户在提交表单之前必须填写这些字段。这通常通过属性...

    oracle-sql资料必备

    - 循环、条件语句(IF-THEN-ELSIF-ELSE)、异常处理等控制结构。 - 游标:用于逐行处理查询结果。 6. 安全性与权限: - 用户和角色:创建和管理用户,分配权限和角色。 - 权限:GRANT和REVOKE语句用于赋予或...

    ERP-ORACLE--EBS-成批分配.doc

    ERP-Oracle-EBS系统中的成批分配是一种财务管理功能,用于在不同的成本中心、部门或分部之间自动分摊收入和费用。成批分配的核心是通过公式来定义如何将成本或收入按照特定规则进行分配,这有助于企业在进行财务分析...

    oracle--lock.zip_oracle

    2. **解决死锁**:Oracle提供了一个内置的死锁检测机制,当检测到死锁时,会选择一个事务进行回滚以打破死锁循环。可以通过设置` deadlock_timeout `参数来调整检测频率。 四、锁的级别 Oracle支持行级锁、表级锁和...

    某培训机构的Oracle-PPT.rar

    5. **PL/SQL**:Oracle的编程语言PL/SQL是SQL的扩展,允许编写过程式代码,包括变量、条件语句、循环、异常处理等,用于创建存储过程、函数、触发器等。 6. **数据库管理**:包括数据库的创建、启动、关闭、备份与...

    oracle-record.rar_oracle

    7. **PL/SQL**:Oracle的编程语言,用于编写复杂的业务逻辑和数据库操作,包括异常处理、游标、循环等。 通过这些笔记,你可以深入了解Oracle数据库的实际操作,加深理论知识的理解,并提升数据库管理技能。在实际...

    Oracle-database-class-notes.zip_class

    11. **PL/SQL编程**:Oracle的内置过程性语言,包括声明变量、控制结构(循环、分支)、异常处理和包的创建。 12. **数据库链接**:远程数据库访问,数据库链接的创建与使用。 13. **数据库设计**:关系模型,范式...

    dba-oracle-sql优化.

    1. **减少嵌套循环**:尽量避免在存储过程中使用嵌套循环,改用集合操作。 2. **缓存结果**:对于重复计算的结果,可以考虑使用临时表或缓存。 3. **触发器谨慎使用**:触发器可能导致隐式事务和性能问题,尽量用...

    Introduction to Oracle - Sql Plsql (Vol2)

    - **控制结构**:PL/SQL提供了丰富的控制结构,例如IF语句、CASE表达式、LOOP和WHILE循环等,这些结构可以帮助开发者构建复杂的业务逻辑。 - **异常处理**:在PL/SQL程序中处理错误和异常是非常重要的。这部分内容将...

    oracle-ocp-052

    - **游标**:理解和使用游标进行循环处理。 - **包**:封装相关功能为包,提高代码复用性和模块化。 8. **数据库服务和实例**: - **启动与关闭**:熟悉数据库服务的启动、关闭和重启过程。 - **实例内存结构**...

    oracle-sql

    在Oracle 10g之前,如果层次结构中存在循环,查询会报错。Oracle 10g引入了`NOCYCLE`选项来处理这种情况,并提供了`CONNECT_BY_ISCYCLE`伪列,当查询路径中存在循环时,其值为1,否则为0。 5. **TRUNCATE操作**: ...

    oracle-explain.rar_oracle

    - JOIN策略:分析JOIN操作是否高效,例如嵌套循环JOIN、哈希JOIN或归并JOIN的适用性。 4. **使用`EXPLAIN PLAN`的实际案例**: - 分析慢查询:当遇到查询速度慢的问题时,先用`EXPLAIN PLAN`找出问题原因,然后...

    Oracle-Pl-Sql 内部培训课件

    Oracle PL/SQL是一种强大的编程语言,它将SQL与过程化编程元素结合起来,为数据库管理员和开发者提供了在Oracle数据库环境中创建复杂应用程序的能力。这份"Oracle-Pl-Sql 内部培训课件"是深入理解PL/SQL语法、特性及...

    ORACLE-Procedure.rar_oracle

    3. **循环和条件语句**:如`FOR`循环、`WHILE`循环以及`IF`、`ELSIF`和`ELSE`条件判断。 4. **游标**:用于逐行处理查询结果。 5. **函数和过程**:可以在存储过程中定义自己的函数或过程,以实现特定逻辑。 在学习...

Global site tag (gtag.js) - Google Analytics