2014-02-19 2 views
0

이것은 저장 프로 시저에 사용 된 코드입니다.PLSQL 저장 프로 시저를 사용하여 테이블에 값을 삽입하는 동안 where 절에서 날짜를 사용하는 방법

CREATE OR REPLACE PROCEDURE MY_STORE_PROCEDURE (new_date in date) 
IS 
BEGIN 
execute immediate 'INSERT INTO TEMP_1 ( ID CHAR(10), 
             A_CNT NUMBER, 
             JOIN_DT DATE, 
            ) 
             SELECT 
             L1.ID, 
             L1.A_CNT, 
             L1.JOIN_DT, 
             FROM ACTVY_1 L1 
             WHERE L1.JOIN_DT = new_date'; 
END; 

=========================================================== 

다음은 값을 전달하여 저장 프로 시저를 호출하는 데 사용한 코드입니다. 값은 저장 프로시 듀어가 받아 들여지고 테이블에서 날짜를 가져 오는 데 사용되는 날짜입니다. 그러나 그것은 나에게 오류를주고있다.

DECLARE 
    a_date DATE; 

BEGIN 
a_date :=to_DATE ('01-NOV-2013', 'DD-MON-YYYY'); 
MY_STORE_PROCEDURE(a_date); 
END; 

구문 오류가 있거나 문제가 있는지 확인해주십시오.

답변

0

예제에 따르면 동적 SQL을 사용할 이유가 없습니다. 또한 오류가 많습니다. 사용해보기 :

CREATE OR REPLACE PROCEDURE MY_STORE_PROCEDURE (new_date IN DATE) 
IS 
BEGIN 
    INSERT INTO TEMP_1 (ID, A_CNT, JOIN_DT) 
     SELECT L1.ID, L1.A_CNT, L1.JOIN_DT 
     FROM ACTVY_1 L1 
     WHERE L1.JOIN_DT = new_date; 
END; 
+0

답장을 보내 주셔서 감사합니다. 이제 또 다른 문제가 있습니다. ACTVY_1 테이블이 저와 다른 소유자입니다. 그래서, 그 말은 "테이블 /보기 나던 존재하지 않는다"절차없이이 쿼리를 사용하면 잘 작동하지만 내부에서 오류가 발생합니다. 어떤 도움. – Qasim0788

+0

그런 다음 새 질문을 엽니 다. 이 사람은 완전히 대답했습니다. – OldProgrammer