plsql에서 배열 사용하는데 COUNT' 구성 요소가 정의되어야 합니다라고 뜹니다. 0 1 1,291

by 초짜 [PL/SQL] [2018.04.12 20:41:56]


CREATE OR REPLACE PACKAGE MESMGR.PKG_TABLE_DATA_BAK AS 
 PROCEDURE PR_INST_DATA_BACKUP(FR_DT IN DATE, TO_DT IN DATE);
END PKG_TABLE_DATA_BAK;

상단이 패키지이여  선언

하단이 패키지 바디입니다만,,,

 

CREATE OR REPLACE PACKAGE BODY MESMGR.PKG_TABLE_DATA_BAK  AS
        PROCEDURE PR_INST_DATA_BACKUP(FR_DT DATE, TO_DT DATE) IS
            
            
            
                FR_DT_VAL  VARCHAR2(30); --FROM 날짜
                TO_DT_VAL  VARCHAR2(30); --TO   날짜
                CREATE_TABLE_TXT VARCHAR2(4000);
                INSERT_CT NUMBER; --저장건수
                DELETE_CT NUMBER; --삭제건수
                CT_VAL    NUMBER;
                COUNT_VAL INTEGER;
               
                
                TYPE ARRAY_SOURCE IS VARRAY(3) OF VARCHAR2(40); --삭제대상
                TYPE ARRAY_TARGET IS VARRAY(3) OF VARCHAR2(40); --백업대상
               
                ARRAY ARRAY_SOURCE := ARRAY_SOURCE('MATT', 'JOANNE', 'ROBERT'); --삭제대상테이블
                ARRAY ARRAY_TARGET := ARRAY_TARGET('MATT', 'JOANNE', 'ROBERT'); --등록대상테이블

               BEGIN
                COUNT_VAL := ARRAY_SOURCE.COUNT;
                FOR I IN 1..ARRAY_SOURCE.COUNT LOOP

의 경우 PACKAGE BODY created with compilation error.
26/43  PLS-00302: 'COUNT' 구성 요소가 정의되어야 합니다라고 뜹니다.

고수님들의 답변 부탁드립니다.

 

 

 

by 마농 [2018.04.13 09:05:39]
DECLARE
    count_val INTEGER;
    TYPE array_source IS VARRAY(3) OF VARCHAR2(40);
--  ARRAY array_source := array_source('MATT', 'JOANNE', 'ROBERT');
    v_array_source array_source := array_source('MATT', 'JOANNE', 'ROBERT');
BEGIN
--  count_val := array_source.COUNT;
--  FOR i IN 1..array_source.COUNT LOOP
    count_val := v_array_source.COUNT;
    FOR i IN 1..count_val LOOP

END;
/

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입