我有下面的表,我需要复制的数据从第一表的日志表
CREATE TABLE datatable
(
"DT_ID" NUMBER (10, 0),
"ASSIGNED" NUMBER (1, 0) DEFAULT 0,
"ASSIGNED_DATE_TIME" DATE,
"ASSIGNED_BY" VARCHAR2 (7 BYTE),
"ACCEPTED" NUMBER (1, 0) DEFAULT 0,
"ACCEPTED_DATE_TIME" DATE,
"ACCEPTED_BY" VARCHAR2 (7 BYTE),
"REJECTED" NUMBER (1, 0) DEFAULT 0,
"REJECTED_DATE_TIME" DATE,
"REJECTED_BY" VARCHAR2 (7 BYTE)
);
CREATE TABLE logtable
(
dt_id NUMBER (10, 0), -- ID FROM dATATABLE
"ACTION_OWNER" NVARCHAR2 (50), --"ASSIGNED_BY"
"ACTION" VARCHAR2 (50 BYTE), -- ASSIGNED/REJECTED/ACCEPTED
"ACTION_DATE" TIMESTAMP (3), -- ASSIGNED_DATE_TIME/ACCEPTED_DATE_TIME/REJECTED_DATE_TIME
"REMARK" VARCHAR2 (200 BYTE)
);
这里的第二个表是一个日志表,我们需要将第一个表中的一行转换为第二个表中的多行
2条答案
按热度按时间44u64gxh1#
你在找这样的东西吗?循环data_table中的所有记录,并根据assigned/accepted/rejected的值插入logtable。代码未经测试。
wvyml7n52#
假设您的数据如下所示:
您可以使用UNION ALL将数据选择到多行中,如下所示:
如果结果对您有利-您可以将这些行插入日志表中: