Oracle 使用过程从deffrent表格到新表格选择多列
我有一个名为tmp_jobdetails的新表,其中包含列Oracle 使用过程从deffrent表格到新表格选择多列,oracle,stored-procedures,oracle11g,Oracle,Stored Procedures,Oracle11g,我有一个名为tmp_jobdetails的新表,其中包含列 CMP_CODE,PRN_CODE ,PRN_NAME,PRN_DATE,SITECODE,LOCATIONCODE, JOB_NO,PRODUCT_CODE,PRODUCT_NAME,QTY_AVL 我想创建一个过程sp_detdetails,用于插入来自其他三个表ms product、tt_stkled和ms_principle的列 ms_原则有PRN_代码、PRN_名称列 tt_stkled haveCMP_代码、PRN_代码
CMP_CODE,PRN_CODE ,PRN_NAME,PRN_DATE,SITECODE,LOCATIONCODE, JOB_NO,PRODUCT_CODE,PRODUCT_NAME,QTY_AVL
我想创建一个过程sp_detdetails,用于插入来自其他三个表ms product、tt_stkled和ms_principle的列
ms_原则有PRN_代码、PRN_名称列
tt_stkled haveCMP_代码、PRN_代码、作业编号、PRN_DTAE、平均数量、站点代码、位置代码
ms_product有PRN_CODE、product_CODE、product_NAME列
这三个表格字段将插入表格tmp_jobdetails
我如何通过一个程序。我想按PRN_日期的范围调用该过程,日期是tmp_jobdetails表中的一个字段 请提供更多信息和一些预期输出的示例数据。另外,我猜您没有使用sql server、mysql和oracle,所以请只选择相关的标记。我通常只是指定了我的列名,以减少花费的时间
CREATE TABLE tmp_jobdetails
(
cmp_code INTEGER
, prn_code INTEGER
, prn_name VARCHAR2 (10)
, sitecode INTEGER
, location_code INTEGER
, job_no INTEGER
, product_code INTEGER
, product_name VARCHAR2 (10)
, qty_avl INTEGER
);
CREATE TABLE ms_principal
(
prn_code INTEGER
, prn_name VARCHAR2 (10)
);
CREATE TABLE tt_stkled
(
cmp_code INTEGER
, prn_code INTEGER
, job_no INTEGER
, prn_date DATE
, qty_avl INTEGER
, sitecode INTEGER
, location_code INTEGER
);
CREATE TABLE ms_product
(
prn_code INTEGER
, product_code INTEGER
, product_name VARCHAR2 (10)
);
CREATE OR REPLACE PROCEDURE load_jobdetails
AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO tmp_jobdetails (
cmp_code, prn_code, prn_name
, sitecode, location_code, job_no
, product_code, product_name, qty_avl
)
SELECT tt.cmp_code
, tt.prn_code
, mp.prn_name
, tt.sitecode
, tt.location_code
, tt.job_no
, ms.product_code
, ms.product_name
, tt.qty_avl
FROM ms_principal mp
JOIN tt_stkled tt ON (mp.prn_code = tt.prn_code)
JOIN ms_product ms ON (ms.prn_code = mp.prn_code)
JOIN tt_stkled tt ON (tt.prn_code = mp.prn_code);
COMMIT;
END;