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循环插入,用于添加测试数据。
该资源介绍如何通过在oracle循环中查询数据
kettle oracle循环分页迁移数据的完整例子,生成txt后FTP上传到远程服务器
oracle 游标FOR循环
有关于oracle的循环游标的内容。
多维度查询时通常需要建立多个游标循环,查询效率无法得到保障,现在通过游标和substr()函数相结合的方式提高查询效率
Oracle 在模块中经常会使用游标进行数据相关操作,循环使用颇多。。。
我们在日常使用SQL 编程或者使用SQL 进行复杂的查询等时候经常会遇到需要循环的炒作,但是游标又太慢。我们如何来实现呢?
在Oracle中的三种循环模式:Loop、For、While 希望对大家有帮助,更多资料请访问:Http://blog.sina.com.cn/livelouis
游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或...
Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/SQL 游标的使用 Oracle笔记 十、PL/SQL存储过程 Oracle笔记 十一、PL/SQL函数和触发器 Oracle笔记 十二、PL/SQL 面向对象oop编程 Oracle笔记 十...
Oracle采购应付循环Release 11i训练教材
oracle 动态执行sql 循环 if判断 取余函数
利用oracle存储过程,方便快捷创建大量测试表!!!!!
本文为大家分享了Oracle中三种循环(For、While、Loop)案例,供大家参考,具体内容如下 1.ORACLE中的FOR循环用法(九九乘法表) declare i int:=0; j int:=0; begin for i in 1..9 loop for j in 1..i loop Dbms_...
自己工作时写的oracle搜索数据库,查找想要找的字符串.配置简单,省去单独写sql的时间.运行需要jre运行环境.
oracle 游标的所有用法 普通循环读取,for循环读取等等