3循环使用
BEGIN
DECLARE p_name varchar(100);
a number;
BEGIN
a:=1;
loop
select USER_NAME into p_name from U_USER WHERE fullname='xlc';
dbms_output.put_line(p_name||a);
exit WHEN (a=5);
a :=a+1;
END loop;
END;
end;
--4:while 循环
begin
DECLARE p_name varchar(100);
a number;
BEGIN
a:=1;
while (a<=5) loop
select USER_NAME into p_name from U_USER WHERE fullname='xlc';
dbms_output.put_line(p_name||a);
a :=a+1;
END loop;
END;
END;
SELECT user_name from (SELECT ROWNUM as n,u.* from U_USER u) where n <=2
--5:for in 使用cursor
BEGIN
DECLARE p_name VARCHAR(100);
CURSOR culResult is SELECT user_name from (SELECT ROWNUM as n,u.* from U_USER u) where n <=2;
BEGIN
FOR a in culResult loop
BEGIN
p_name :=a.user_name;
dbms_output.put_line(p_name||' ok');
END;
END loop;
END;
END;
**/
http://wenku.baidu.com/link?url=kqIBe8JDBYnE3lLGyan5LzAEgvpHinyZqxrguUE3WNOgNXLx3Na6XQrUZwO_jd6VWTGJ9czS8NEwzhkhfpyzUxWBn36KmJhw8KFz9prM20i
/**
--3循环使用
BEGIN
DECLARE p_name varchar(100);
a number;
BEGIN
a:=1;
loop
select USER_NAME into p_name from U_USER WHERE fullname='xlc';
dbms_output.put_line(p_name||a);
exit WHEN (a=5);
a :=a+1;
END loop;
END;
end;
--4:while 循环
begin
DECLARE p_name varchar(100);
a number;
BEGIN
a:=1;
while (a<=5) loop
select USER_NAME into p_name from U_USER WHERE fullname='xlc';
dbms_output.put_line(p_name||a);
a :=a+1;
END loop;
END;
END;
SELECT user_name from (SELECT ROWNUM as n,u.* from U_USER u) where n <=2
--5:for in 使用cursor
BEGIN
DECLARE p_name VARCHAR(100);
CURSOR culResult is SELECT user_name from (SELECT ROWNUM as n,u.* from U_USER u) where n <=2;
BEGIN
FOR a in culResult loop
BEGIN
p_name :=a.user_name;
dbms_output.put_line(p_name||' ok');
END;
END loop;
END;
END;
**/
1:先执行:创建MD5
CREATE OR REPLACE
FUNCTION MD5(
passwd IN VARCHAR2)
RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
RETURN retval;
END;
2:删除无效数据
DELETE from U_USER WHERE last_logtime is NULL
3:修复总部员工编号重复
BEGIN
DECLARE
tempSize VARCHAR(20);
i number;
CURSOR user_cur IS
SELECT USER_ID,JOB_NO from U_USER WHERE job_no IN(SELECT JOB_NO FROM CLSPUSER.U_USER GROUP BY JOB_NO HAVING count(1)>1);
c_row user_cur%rowtype;
BEGIN
FOR c_row IN user_cur loop
SELECT max(substr(JOB_NO,length(JOB_NO)-3,length(JOB_NO)))+1 INTO tempSize from U_USER WHERE JOB_NO LIKE 'ZHHQ%';
i:=to_number(length(tempSize));
if(i=1) then
tempSize:='ZHHQ000';
ELSE IF (i=2) THEN
tempSize:='ZHHQ00';
dbms_output.put_line(tempSize);
ELSE if (i=3) then
tempSize:='ZHHQ0';
dbms_output.put_line(tempSize);
end if;
end if;
end if;
--修改
UPDATE U_USER
SET
user_name=(SELECT tempSize|| (max(substr(JOB_NO,length(JOB_NO)-3,length(JOB_NO)))+1) FROM CLSPUSER.U_USER WHERE JOB_NO LIKE 'ZHHQ%'),
password='123456',
passwd_MD5=lower(substr(MD5('123456'), 11, 16)),
job_no=(SELECT 'ZHHQ000'|| (max(substr(JOB_NO,length(JOB_NO)-3,length(JOB_NO)))+1) FROM CLSPUSER.U_USER WHERE JOB_NO LIKE 'ZHHQ%')
WHERE USER_ID=c_row.user_ID;
END loop;
end;
END;
4:在执行批量修改
merge into CLSPUSER.U_USER clsp
using (SELECT emp_no, substr(id_card, length(id_card) - 6, 6) password from SALARYUSER.crf_salary_p2p_emp) sale
ON (clsp.job_no = sale.emp_no)
WHEN matched THEN
UPDATE
SET clsp.user_name = sale.emp_no,
clsp.password = sale.password,
clsp.passwd_md5 = (SELECT lower(substr(MD5(sale.password), 11, 16)) from dual);
相关推荐
oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入
Oracle 循环 Oracle 循环是一种常用的控制结构,在 Oracle 数据库中广泛应用于实现复杂的业务逻辑。在本资源中,我们将介绍 Oracle 中的三种循环结构:For 循环、While 循环、Loop 循环,并通过实例代码讲解它们的...
Oracle循环插入,用于添加测试数据。
### Oracle循环示例详解 #### 一、概述 在Oracle数据库中,循环是处理重复执行相同或相似任务的重要工具之一。通过循环结构,可以有效地控制程序的流程,并且能够简化复杂的逻辑处理。本文将对提供的Oracle循环...
【标题】"kettle oracle循环分页迁移数据的完整例子,生成txt后FTP上传到远程服务器"揭示了几个关键的IT知识点,主要包括: 1. **Kettle(Pentaho Data Integration,PDI)**:Kettle是一款开源的数据集成工具,...
在Oracle数据库中,循环游标是一种非常重要的编程技术,它允许开发者通过循环结构来处理查询结果集中的每一行数据。这种技术在处理大量数据时尤为有用,因为它可以逐行访问数据,而无需一次性将所有数据加载到内存中...
ORACLE 数组使用方法 Oracle 数组是一种复杂的数据类型,可以存储多个元素,数组可以分为固定数组和可变数组两种类型。在 Oracle 中,数组可以用来存储大量的数据,并且可以通过索引来访问数组中的元素。 固定数组...
### Oracle 不使用 OracleASM 的包配置 ASM 磁盘配置方法 #### 概述 在 Oracle 数据库系统中,自动存储管理(ASM)是用于管理数据库文件的一种高性能、高可用性的解决方案。通常情况下,ASM 依赖于 Oracle 提供的 ...
### Oracle游标循环详解 #### 一、引言 在Oracle数据库编程中,游标是一种非常重要的机制,用于处理查询结果集。通过游标,我们可以逐行读取数据,并执行复杂的逻辑操作。本文将详细介绍Oracle中三种常见的游标...
Oracle中的三种循环用法(Loop、For、While) Oracle中的循环语句是PL/SQL语言中的一种基本结构,用于重复执行某些语句,以达到某些目的。下面将详细介绍Oracle中的三种循环用法:Loop、For、While。 Loop 循环 ...
1、全面覆盖:本资源涵盖了退出当前循环并结束整个循环、结束循环、跳过当前循环、终止循环等多种控制...9、本资源适合所有对Oracle PL/SQL感兴趣的开发者,无论是新手入门,还是资深专家,都能从中获得实用的技能。
下面,我们将深入探讨Oracle游标的使用示例及其相关的知识点。 首先,游标的基本概念是它提供了一种方式来跟踪并控制SQL查询的结果集。在Oracle中,游标有四种状态:未打开、已打开、正在提取和已关闭。以下是一个...
多维度查询时通常需要建立多个游标循环,查询效率无法得到保障,现在通过游标和substr()函数相结合的方式提高查询效率
### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果...此外,通过使用循环结构,可以有效地遍历游标中的每一行数据,从而实现复杂的业务逻辑处理。
在"ORACLE_DEVELOPER使用指南"中,你可能会学习到以下关键知识点: 1. **SQL Developer**:这是一个强大的SQL查询和开发工具,用于管理Oracle数据库。你可以通过SQL Developer编写、执行SQL语句,查看和分析数据,...
本指南将深入探讨Oracle Developer的各项功能和使用技巧,帮助你更好地理解和掌握这个强大的开发环境。 1. **Oracle Forms Builder** - **概述**:Forms Builder是Oracle Developer的核心组件,用于创建图形用户...
### Oracle游标使用大全 #### 一、概述 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集中的数据。游标允许程序逐行处理数据,这在需要对多行数据进行循环处理时非常有用。本文档旨在提供一个全面的...
- 使用`WHILE 1 = 1 LOOP`进行无限循环,直到所有满足条件的数据都被删除。 - 通过`EXECUTE IMMEDIATE`动态执行SQL删除语句,每次只删除指定数量的记录(`p_Count`)。 - 利用`ROWNUM`限制每次循环中删除的数据量。...
根据提供的标题、描述以及部分代码内容,我们可以详细探讨Oracle游标的使用方法,特别是明确游标(Explicit Cursor)和隐式游标(Implicit Cursor)的区别及其具体应用方式。 ### Oracle游标简介 在Oracle数据库中...