【问题标题】:How to create cursor using for loop in PL/SQL to transfer records?如何在 PL/SQL 中使用 for 循环创建游标来传输记录?
【发布时间】:2021-10-19 12:29:31
【问题描述】:

使用 FOR 循环创建游标,但我唯一的问题是我们如何将已获取的每一行转移到另一个表中?有可能吗?

使用 PL/SQL 块并在我们从特定表中获取行之后包含一个 FOR 循环,之后我们希望将已获取的行转移到其他表中。

【问题讨论】:

  • 您有什么理由要在这里使用PL/SQLCURSOR 吗?这似乎可以通过简单的INSERT INTO....SELECT 语句来解决。
  • 如果您不熟悉如何执行此操作,以下是 Oracle 文档 (Documentation Link) 中的示例

标签: oracle plsql oracle11g oracle-sqldeveloper


【解决方案1】:

这是一个示例,它将 Scott 的 DEPT 表中的值复制TEST 表(也归 Scott 所有)中。

SQL> create table test (deptno number, dname varchar2(20), loc varchar2(20));

Table created.

SQL> begin
  2    for cur_r in (select deptno, dname, loc
  3                  from dept
  4                  where deptno <= 30
  5                 )
  6    loop
  7      insert into test (deptno, dname, loc)
  8        values (cur_r.deptno, cur_r.dname, cur_r.loc);
  9    end loop;
 10  end;
 11  /

PL/SQL procedure successfully completed.

SQL> select * from test;

    DEPTNO DNAME                LOC
---------- -------------------- --------------------
        10 ACCOUNTING           NEW YORK
        20 RESEARCH             DALLAS
        30 SALES                CHICAGO

SQL>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2012-04-28
    • 2021-07-30
    相关资源
    最近更新 更多