无法通过过程在oracle中插入值
问题描述:
我创建了一个过程,它将三个值插入表中。但是,当我尝试插入值时,不会插入任何值。无法通过过程在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;
答
你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;
答
提交的关键字可能太
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
rquired看来,你在你插入的字段的顺序错误 – Aleksej
您在类别栏的价格列和p_price插入p_category。请更正您的INSERT语句并确认它是否仍然失败。此外,请分享您收到的错误。 –