首页 > 解决方案 > 如何使用存储过程将一个表数据移动到另一个表

问题描述

有一张表说部门,其中存在数据。

create table department(deptno number, deptname varchar2(50), deptloc varchar2(50));

insert into department values(1,'A','X');
insert into department values(2,'B','Y');
insert into department values(3,'C','Z');

select * from department;

我想使用存储过程将此数据移动到另一个表中,例如 Department_SP。基本上,我想知道我们将如何使用将使用存储过程执行的某些条件或过滤器将数据从一个表移动到另一个表。只是我想知道这将如何完成。如果你们有任何这样的例子,我将不胜感激,然后请分享您对此的看法。

标签: sqloraclesql-insert

解决方案


创建客户表

CREATE TABLE customers
(customer_id number(10) NOT NULL, customer_name varchar2(50),city varchar2(50));

向客户表中插入数据

insert into customers (customer_id, customer_name, city) values (1,'Adam','Washington');
insert into customers (customer_id, customer_name, city) values (2,'Ben','NY');
insert into customers (customer_id, customer_name, city) values (3,'Carl','Baltimore');

为城市创建表

CREATE TABLE cities
(city_id number(10) NOT NULL, city_name varchar2(50));

将数据插入城市表

insert into cities (city_id, city_name) values (1, 'Washington');
insert into cities (city_id, city_name) values (2, 'Los Angeles');
insert into cities (city_id, city_name) values (3, 'Chicago');

创建客户副本表(空)

CREATE TABLE customers_cp AS SELECT * FROM customers where 1=0;

如果此人的城市在城市表列表中,则将数据插入客户副本

INSERT INTO CUSTOMERS_CP SELECT * FROM customers where city in (select city_name from cities);

现在 CUSTOMERS_CP 表只包含 1 行,即华盛顿的亚当。


推荐阅读