Sql 无法通过过程在oracle中插入值

Sql 无法通过过程在oracle中插入值,sql,oracle,Sql,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,

我创建了一个过程,将三个值插入到一个表中。但是,当我尝试插入值时,不会插入任何值

这是我的密码:

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;

您的插入中的字段顺序似乎有误。您在价格列中插入了p_类别,在类别列中插入了p_价格。请更正INSERT语句并确认它是否仍然失败。另外,一定要分享你所遇到的错误。一般来说,在过程中提交不是一个好的做法。最顶端的调用方应该决定事务的开始和结束时间。如果匿名块调用该过程两次,而第二次调用失败,则无法回滚到一致状态。更正顺序并添加commit语句后,将显示编译成功错误消息。