`

oracle for in loop 两例

阅读更多

for in loop 壹:
1、搭建环境
create table ETL_DATE(DATE_CHAR VARCHAR2(8),DATE_DATE DATE);
select * from etl_date;
2、代码
DECLARE
v_date date;
BEGIN
EXECUTE IMMEDIATE 'truncate table etl_date';
for v_date in 20091001 .. 20091021 LOOP
    INSERT INTO etl_date
      (date_char, date_date)
      SELECT v_date, to_date(v_date, 'YYYY-MM-DD') FROM dual;
END LOOP;
COMMIT;
END;

select * from etl_date;
3、删除环境
drop table etl_date;

注:仅适用于在一月之内的循环。

for in loop 贰:
1、搭建环境
create table SQLTEXT(TEXT VARCHAR2(100));
create table HZ(HZ_NAME VARCHAR2(3));
INSERT INTO hz(HZ_NAME)values(' ');
INSERT INTO hz(HZ_NAME)values('PRE');
INSERT INTO hz(HZ_NAME)values('CUR');
INSERT INTO hz(HZ_NAME)values('INS');
INSERT INTO hz(HZ_NAME)values('UPD');
select * from HZ;
2、代码
declare
P_TABLE_NAME varchar2(100) := 'CFA';
begin
for HZ in (select HZ_NAME from HZ) LOOP
    insert into sqltext
      select 'CREATE TABLE ' || REPLACE(P_TABLE_NAME, 'EDW', 'TMP') ||
             HZ.HZ_NAME || ' AS select * from ' || P_TABLE_NAME ||
             ' where ROWNUM<1'
        from dual;
END LOOP;
end;

select * from SQLTEXT;
3、清空环境
drop table SQLTEXT;
drop table HZ;

分享到:
评论

相关推荐

    oracle 存储过程语法例子

    在本例中,我们看到两个具体的存储过程`writeCount`和`testSandyInSert`,它们展示了如何创建和使用Oracle存储过程。 1. 创建包(Package): 在Oracle中,存储过程通常被组织到包(Package)中,以便更好地管理和...

    oracle汉字转拼音函数整理大全

    FOR i IN 1..v_length LOOP v_substr := SUBSTR(p_str, i, 1); v_compare := fn_nlssort(v_substr); CASE WHEN v_compare BETWEEN '3B29' AND '3B30' THEN v_return := v_return || 'A'; WHEN v_compare = '3...

    oracle游标使用大全3

    FOR r1 IN c1 LOOP IF r1.salary v_comm := r1.salary * 0.25; ELSIF r1.salary v_comm := r1.salary * 0.20; ELSIF r1.salary v_comm := r1.salary * 0.15; ELSE v_comm := r1.salary * 0.12; END IF;...

    Oracle存储过程、游标、函数的详解

    FOR emp_rec IN (SELECT * FROM emp WHERE deptno = deptno) LOOP DBMS_OUTPUT.PUT_LINE(emp_rec.empno || ' - ' || emp_rec.ename); END LOOP; END GetEmpByDept; ``` - **解析**: - `CREATE OR REPLACE`:...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     删除HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI中除Microsoft ODBC for Oracle注册表键以外的所有含有Oracle的键。  删除环境变量中的PATHT CLASSPATH中包含Oracle的值。  删除“开始”/“程序”中所有...

    oracle游标的使用

    FOR c_row IN c_job LOOP dbms_output.put_line(c_row.empno || '-' || c_row.ename || '-' || c_row.job || '-' || c_row.sal); END LOOP; END; ``` 在这个例子中,我们定义了一个名为`c_job`的显式游标,它将...

    oracle游标

    FOR emp IN cur_employee LOOP UPDATE 员工信息 SET 薪水 = 薪水 * 1.1 WHERE 员工编号 = emp.员工编号; END LOOP; END; / ``` 在这个例子中,我们首先定义了一个游标`cur_employee`,用于获取所有姓“A”的员工...

    oracle经典例子

    FOR v IN 1..5 LOOP FOR v_count IN 1..3 LOOP v_prior_rand := FLOOR(DBMS_RANDOM.VALUE(1, priorNum)); v_end_rand := v_prior_rand; &lt;&lt;random&gt;&gt; v_prior_rand := FLOOR(DBMS_RANDOM.VALUE(1, priorNum)); ...

    oracle存储过程基本用法

    FOR cur_result IN cur LOOP BEGIN -- 对每条记录进行操作 -- ... END; END LOOP; END; ``` 此示例演示了如何声明并使用游标来遍历查询结果集中的每一行。 ##### 示例7:参数化游标 ```sql CURSOR c_user (c_...

    数据库备份两例故障的恢复与解决方法

    ### 数据库备份两例故障的恢复与解决方法 #### 一、引言 数据库作为现代信息系统的核心组成部分之一,其安全性和稳定性至关重要。然而,在实际应用过程中,由于多种因素的影响,如计算机系统的不稳定、人为失误等...

    oracle 游标入门

    FOR my_newemp_rec IN (SELECT empno, ename, sal FROM newemp ORDER BY 1) LOOP DBMS_OUTPUT.PUT('empno:' || my_newemp_rec.empno); DBMS_OUTPUT.PUT('ename:' || my_newemp_rec.ename); DBMS_OUTPUT.PUT_...

    Oracle实现行列转换的方法分析

    FOR cur IN (SELECT c2 FROM t WHERE c1=tmp_c1) LOOP Col_c2 := Col_c2||cur.c2; END LOOP; Col_c2 := rtrim(Col_c2,1); RETURN Col_c2; END; ``` 然后在查询中调用这个函数,即可得到所需的格式。另一种方法...

    存储过程的实现

    FOR i IN 1..varArray.COUNT LOOP DBMS_OUTPUT.PUT_LINE('The No.' || i || ' record in varArray is: ' || varArray(i)); END LOOP; END test; ``` ##### 5.2 WHILE循环 WHILE循环用于重复执行一段代码直到...

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。... 例: FOR v_cnt IN 1..5 LOOP SELECT * INTO v_emp FROM s_emp WHERE id = v_cnt; 注:a. 加上REVERSE关键字 表示递减,从结束边界到起始边界,递减步长为一; ...

    LECCO SQL Expert (智能自动SQL优化)

    目前在商用数据库领域LECCO TechnologyLimited(灵高公司)拥有该技术并提供使用该技术的自动优化产品——LECCO SQL Expert,其支持Oracle、Sybase、MS SQLServer和IBMDB2数据库平台。该产品针对数据库应用的开发和...

    PLSQL笔记(EFRIOO&GUOH)1.doc

    FOR i IN 1..10 LOOP IF i &gt; 5 THEN GOTO exit_loop; ELSE DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; ``` ##### 5.3.2 NULL NULL 语句表示不做任何操作。 ```sql BEGIN NULL; END; ``` ### 六、...

    Oralce PLSQL存储过程之游标实践!

    在Oracle数据库中,PL/SQL(Procedural Language for SQL)是一种强大的编程语言,它允许开发者编写复杂的数据库逻辑。其中,**游标**是PL/SQL中处理查询结果集的一种非常重要的机制。本文将通过一系列由简入深的...

    思科2019校园招聘笔试一(软件类).docx

    // in loop do something } ``` **正确答案**: D. 300 **知识点说明**: - 由于`unsigned char`的取值范围是从0到255,但在本例中不会超出这个范围。 - 循环条件`i * limit`意味着循环将在`i`达到`2 * 150 = 300`...

    经典SQL语句大全

    select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max...

    数据库操作语句大全(sql)

    select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max...

Global site tag (gtag.js) - Google Analytics