2014-02-19 23 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

相關問題