db2 创建一个从一个表取数插入另一个表的存储过程
时间: 2023-07-04 16:27:05 浏览: 58
好的,下面是一个简单的例子:
```
CREATE OR REPLACE PROCEDURE copy_data (
IN p_source_table VARCHAR(50),
IN p_target_table VARCHAR(50)
)
LANGUAGE SQL
BEGIN
DECLARE v_name VARCHAR(50);
DECLARE v_age INT;
DECLARE v_gender CHAR(1);
DECLARE c1 CURSOR FOR SELECT name, age, gender FROM p_source_table;
OPEN c1;
FETCH c1 INTO v_name, v_age, v_gender;
WHILE (SQLCODE = 0) DO
INSERT INTO p_target_table (name, age, gender)
VALUES (v_name, v_age, v_gender);
FETCH c1 INTO v_name, v_age, v_gender;
END WHILE;
CLOSE c1;
END;
```
请注意,此处的 `p_source_table` 和 `p_target_table` 是输入参数,分别表示源表和目标表的名称。此存储过程使用游标来遍历源表中的每一行,并将其插入到目标表中。你可以根据自己的需求修改表名和插入语句。
相关问题
db2 创建一个插入数据的存储过程
好的,下面是一个简单的例子:
```
CREATE OR REPLACE PROCEDURE insert_data (
IN p_name VARCHAR(50),
IN p_age INT,
IN p_gender CHAR(1)
)
LANGUAGE SQL
BEGIN
INSERT INTO mytable (name, age, gender)
VALUES (p_name, p_age, p_gender);
END;
```
请注意,此处的 `mytable` 是一个示例表,你需要将其替换为你自己的表名。此存储过程接受三个输入参数:`p_name`、`p_age` 和 `p_gender`,然后将它们插入到表中。你可以根据自己的需求修改参数和插入语句。
工单转入履历表取一个DB2数据库表名
可以使用类似于以下SQL语句来查询DB2数据库中的履历表名:
```
SELECT TABLE_NAME
FROM SYSIBM.TABLES
WHERE TABLE_SCHEMA = '履历表所在的模式名称'
AND TABLE_NAME LIKE '%履历表名称%'
```
其中,需要将语句中的'履历表所在的模式名称'替换为实际的模式名称,将'%履历表名称%'替换为实际的履历表名称。注意,DB2数据库中的履历表名称通常以"_H"或"_HIST"结尾。