PL / SQL:行没有插入

时间:2016-07-22 02:52:34

标签: oracle plsql

我正在学习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;

返回:

enter image description here

但是,当我检查表时,那里还有其他行。

SELECT * FROM BB_BASKETITEM WHERE IDBASKETITEM = 20;

返回:

enter image description here

1 个答案:

答案 0 :(得分:2)

SELECT * FROM BB_BASKETITEM WHERE IDPRODUCT = 8;

IDBASKETITEM是Oracle在执行插入时按顺序生成的唯一ID。