Oracle 使用过程从deffrent表格到新表格选择多列

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_代码

我有一个名为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_代码、作业编号、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;