gpt4 book ai didi

oracle - 将行类型变量复制到另一个变量

转载 作者:行者123 更新时间:2023-12-02 20:04:09 24 4
gpt4 key购买 nike

我有

l_tab1 table1%rowtype;
l_tab2 table2%rowtype;

table1和table2的结构相同。

如何将数据从l_tab1移动到l_tab2?

现在我可以看到两种方法,但我不喜欢它,因为我需要对字段进行硬编码。

1

l_tab2.field1 := l_tab1.field1;
l_tab2.field2 := l_tab1.field2;

2

select * into l_tab2
from table1
where field1 = l_tab1.field1
and field2 = l_tab1.field2;

3

我相信它应该更容易,就像

insert into l_tab2
values l_tab1;

或者类似的东西而不使用字段。

最佳答案

如果两个表具有相同的结构,则简单的分配应该可以工作,至少从 Oracle 11.2 开始是这样。

使用如下表格

create table table1(col1 number, col2 number);
create table table2(col1 number, col2 number);

insert into table1 values (1, 11);
insert into table2 values (2, 22);

我们有:

SQL> select * from table1;

COL1 COL2
---------- ----------
1 11

SQL> select * from table2;

COL1 COL2
---------- ----------
2 22

SQL> declare
2 l_tab1 table1%rowtype;
3 l_tab2 table2%rowtype;
4 begin
5 select *
6 into l_tab1
7 from table1;
8 l_tab2 := l_tab1;
9 insert into table2 values l_tab2;
10 end;
11 /

PL/SQL procedure successfully completed.

SQL> select * from table2;

COL1 COL2
---------- ----------
1 11
2 22

SQL>

关于oracle - 将行类型变量复制到另一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55148798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com