2016-05-16 56 views
-2

我創建了一個過程,它將三個值插入表中。但是,當我嘗試插入值時,不會插入任何值。無法通過過程在oracle中插入值

這裏是我的代碼:

CREATE OR REPLACE PROCEDURE INSERTPRODUCTRECORD9 (p_PNAME IN VARCHAR2, p_CATEGORY IN VARCHAR2, p_PRICE IN NUMBER) 
AS 
BEGIN 
    INSERT INTO PRODUCT (PNAME,PRICE,CATEGORY) VALUES(p_PNAME, p_CATEGORY, p_PRICE); 
END; 

begin 
    INSERTPRODUCTRECORD9('TAB','GADGETS',30000); 
END; 
+3

rquired看來,你在你插入的字段的順序錯誤 – Aleksej

+1

您在類別欄的價格列和p_price插入p_category。請更正您的INSERT語句並確認它是否仍然失敗。此外,請分享您收到的錯誤。 –

回答

0

insert語句有不同的順序不是值列出的列;所以您可能試圖將VARCHAR2插入到NUMBER字段中。

CREATE OR REPLACE PROCEDURE INSERTPRODUCTRECORD9 (p_PNAME IN VARCHAR2, p_CATEGORY IN VARCHAR2, p_PRICE IN NUMBER) 
AS 
BEGIN 
    INSERT INTO PRODUCT (PNAME,CATEGORY,PRICE) VALUES(p_PNAME, p_CATEGORY, p_PRICE); 
END; 

begin 
    INSERTPRODUCTRECORD9('TAB','GADGETS',30000); 
END; 
0

提交的關鍵字可能太

CREATE OR REPLACE PROCEDURE INSERTPRODUCTRECORD9 (p_PNAME IN VARCHAR2, p_CATEGORY IN VARCHAR2, p_PRICE IN NUMBER) 
AS 
BEGIN 
    INSERT INTO PRODUCT (PNAME,PRICE,CATEGORY) VALUES(p_PNAME, p_PRICE,  p_CATEGORY); 
COMMIT; 
END; 

begin 
    INSERTPRODUCTRECORD9('TAB','GADGETS',30000); 
END; 
+0

一般來說,在一個程序中提交併不是一個好習慣。最上面的調用者應該決定事務何時開始和結束。如果匿名塊調用過程兩次,第二次失敗,則無法回滾到一致狀態。 –

+0

糾正訂單並添加提交語句後,出現編譯錯誤消息成功。 – sam