oracle 将一张表的数据插入到另一张表

本文介绍了一种通过创建数据库链接来实现跨库数据同步的方法。首先,建立了一个名为mylink的数据库链接,用于连接两个数据库。然后,使用INSERT INTO语句从源数据库的表a中选择所有记录,并将其插入到目标数据库的相同表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、先建立一个database link,将两个库连接起来
create database link mylink connect to user_name identified by password using 'test01'

2、用insert into将test01表a的数据写入test表a
insert into a select * from a@mylink

### Oracle SQL 查询并将结果插入一张的方法 在Oracle数据库中,有多种方法可以实现将一个中的数据查询后插入一个。以下是几种常用的方式: #### 使用 `INSERT INTO ... SELECT` 语句 这是最常见的一种方式,适用于目标已经存在的情况。 ```sql INSERT INTO target_table (column1, column2, ...) SELECT source_column1, source_column2, ... FROM source_table; ``` 这种方式允许从源中选择特定列的数据,并将其插入到目标相应的列中[^1]。 #### 使用 `CREATE TABLE AS SELECT` 创建新并填充数据 如果希望基于查询结果创建一个新的,则可采用此命令。 ```sql CREATE TABLE new_table_name AS SELECT * FROM existing_table WHERE condition; ``` 这不仅会复制满足条件的数据行,还会自动建立具有适当结构的新。 #### 处理不同模式下的跨操作 当涉及到跨越不同方案(schema)的操作时,在指定名前加上完整的路径即可。 ```sql INSERT INTO schema_target.target_table (columns...) SELECT columns... FROM schema_source.source_table; ``` 对于更复杂的场景,比如需要处理多层嵌套关系或递归情况,可以通过组合使用子查询、连接(join)以及集合运算符(如UNION ALL)[^2]来构建更为灵活的SQL达式。 例如,为了合并来自多个数据再做插入动作: ```sql INSERT INTO final_destination(columns_list) WITH RECURSIVE cte AS ( -- 定义初始CTE部分 ), combined_data AS ( SELECT cols FROM tableA UNION ALL SELECT cols FROM tableB ) SELECT desired_columns FROM combined_data; ``` 以上展示了如何利用公共达式(Common Table Expression, CTE),并通过联合两个独立的选择结果集形成最终待插入数据集[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值