我正在学习PL / SQL并且我已经创建了这个编译过程的程序;我没有足够的PL / SQL经验来发现我出错的地方:
为了清楚起见,我的问题是,'我做错了什么?'
我正在使用Datagrip和端口转发到OracleVM;我怀疑那里有问题,因为之前我已经插入了行,但这只是不起作用。
CREATE OR REPLACE PROCEDURE basket_add_sp
(
p_basketid IN bb_basketitem.idbasket%TYPE,
p_prodid IN bb_basketitem.idproduct%TYPE,
p_qty IN bb_basketitem.quantity%TYPE,
p_price IN bb_basketitem.price%TYPE,
p_size IN bb_basketitem.option1%TYPE,
p_form IN bb_basketitem.option2%TYPE
)
IS
BEGIN
INSERT INTO BB_BASKETITEM(idbasketitem, idproduct, quantity, price, idbasket, option1, option2)
VALUES (bb_idBasketitem_seq.NEXTVAL, p_prodid, p_qty, p_price, p_basketid, p_size, p_form);
COMMIT;
END;
完成了。
[2016-07-21 21:18:28] completed in 18ms
我运行程序:
BEGIN
basket_add_sp(14,8,1,10.80,2,4);
END;
也完成了。
[2016-07-21 21:18:39] completed in 14ms
但是当我检查表格进行验证时,不会返回任何行。
SELECT * FROM BB_BASKETITEM WHERE IDBASKETITEM = 14;
返回:
但是,当我检查表时,那里还有其他行。
SELECT * FROM BB_BASKETITEM WHERE IDBASKETITEM = 20;
返回:
答案 0 :(得分:2)
SELECT * FROM BB_BASKETITEM WHERE IDPRODUCT = 8;
IDBASKETITEM
是Oracle在执行插入时按顺序生成的唯一ID。