2013-02-18 29 views
-2
CREATE OR REPLACE PROCEDURE spInsertSale2(SALES_ID in number,PRODUCT in varchar2,UNITCOST in decimal,QUANTITY in number) 
AS 
BEGIN 
    if to_char(sysdate,'mm') from dual = '01' then 
    { 
     INSERT INTO Studenta_1004195.SALES VALUES(SALES_ID,PRODUCT,UNITCOST,QUANTITY); 
    }endif 
END spInsertSale2; 
/
+0

嗨,你的問題不應該只是代碼。請描述你正在嘗試做什麼,以及到目前爲止你所遇到的問題。 – Mat 2013-02-18 17:35:16

+0

花括號在PL/SQL中無效。請閱讀PL/SQL參考手冊。 – 2013-02-18 17:35:47

回答

1

是Oracle月份執行插入,看來你缺少單詞「選擇」

AS BEGIN 
if 
this is where you are missing the word select 
to_char(sysdate, 'mm') = '01' 
etc 
+0

當我添加選擇我仍然得到警告,程序創建編譯錯誤 – russian 2013-02-18 17:37:42

2

你的語法關:

CREATE OR REPLACE PROCEDURE spInsertSale2(
    SALES_ID in number,PRODUCT in varchar2,UNITCOST in decimal,QUANTITY in number) 
AS 
BEGIN 
    if to_char(sysdate,'mm') = '01' then 
     INSERT INTO Studenta_1004195.SALES 
     VALUES(SALES_ID,PRODUCT,UNITCOST,QUANTITY); 
    end if; 
END spInsertSale2; 
/
+0

非常感謝。 – russian 2013-02-18 17:41:47

+0

@russian沒問題。我建議你在該插入中指定列名(例如'insert into Studenta_1004195.SALES(a,b,c,d)values(sales_id ...)'並在參數聲明中使用'%type'而不是把'數字'等放在列的意思是,如果有人添加一個可爲空的列(或默認情況下不爲空),您的代碼仍然可以工作。 – DazzaL 2013-02-18 17:44:59

相關問題