구문 : PL SQL IDE를 : PL/SQL 개발자자동화가 커서 또는 루프를 사용하여 동적 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