構文:PL SQL IDE:PL/SQL Developerの自動化は、カーソルまたはループを使用して動的SQLを使用してテーブルのプロシージャを作成します - PLSQL
を私は地域コードのシリーズを使用して、各地域の4つのテーブルを生成しようとしています。
私は、すべての領域が含まれたテーブルを生成し、このテーブルを切り捨てて置き換えるのが効率的かもしれないが、使用に必要な構造に基づいてこれには許可されていないことを理解します。
4つの領域を動的にテーブルのこのシリーズを生成するための最善の方法は何
SELECT DISTINCT REGION
FROM REGION_TABLE
;
特定のテーブルから来ましたか?
私はカーソルとループを使用しようとしましたが、このカーソルを次のプロシージャに統合する方法がわかりません。
DECLARE
CURSOR C_REGION IS
SELECT DISTINCT REGION FROM REGION_TABLE ;
BEGIN
FOR L_IDX IN C_REGION
LOOP
DBMS_OUTPUT.PUTLINE(L_IDX.C_REGION);
END LOOP;
END;
上記カーソル値を使用して、どのように私は、where句
-- 4 REGIONS - NORTH SOUTH EAST WEST,
CREATE OR REPLACE PROCEDURE SALES_ORDER_TBL_PROC
(
REGION IN VARCHAR2
, RETURNCODE OUT NUMBER
, ERROR_MESSAGE OUT VARCHAR2
)
IS
TABLE_NAME VARCHAR2(30);
SQL_STR VARCHAR2;
REGION_VAR VARCHAR;
BEGIN
TABLE_NAME := 'SALES_COUNT_'||REGION_VAR;
SQL_STR := 'CREATE TABLE '||TABLE_NAME||
' AS
(
SELECT
REGION
, COUNT(DISTINCT MEMBER_ID) AS NUM_MBR
FROM INCREMENTAL_SALES_TBL
WHERE 1=1
AND REGION = '||REGION_VAR||
'GROUP BY REGION)'
;
EXECUTE IMMEDIATE SQL_STR ;
RETURNCODE := 0;
EXCEPTION WHEN OTHERS THEN
RETURNCODE := SQLCODE;
ERROR_MESSAGE :='ERR:Creating/Altering table '||TABLE_NAME ||'-'||SQLERRM;
END;
/
BEGIN
SALES_ORDER_TBL_PROC;
END;
にパラメータSQL文の作成表の部分で使用されていないだけで、テーブル名にはなくて、これらの値を挿入する行くのです
テーブルを作成することは、一度だけの仕事のようです。なぜそれのための手続きが必要ですか? – GurV
これらはレポート表です。 - 会社の手続きでは、ただちに再建する必要があります。 – BGDev
データを切り捨て、データを – GurV