2013-04-28 2 views
-1

У меня есть следующая процедураКак включить NEXTVAL в мою процедуру?

create or replace 
procedure prod_add_sp 
    (p_idproduct in bb_product.idproduct%type, 
    p_prodname in bb_product.productname%type, 
    p_descrip in bb_product.description%type, 
    p_prodimage in bb_product.productimage%type, 
    p_prodprice in bb_product.price%type, 
    p_prodactive in bb_product.active%type) 
is 
begin 
    insert into bb_product(idproduct,productname,description,productimage,price,active) 
    values (p_idproduct,p_prodname,p_descrip,p_prodimage,p_prodprice,p_prodactive); 

commit; 
end; 

Как изменить выше с seq.nextval части так, когда выполняется новая строка вставляется с уникальным первичным ключом? IDPRODUCT является первичным ключом, поэтому требуется.

ответ

1
  1. Создайте последовательность с любым именем say nextID.
  2. Теперь используйте следующий код:

Создайте последовательность с любым именем сказать NextID. Теперь используйте код ниже:

create or replace procedure prod_add_sp (p_idproduct in bb_product.idproduct%type, p_prodname in bb_product.productname%type, p_descrip in bb_product.description%type, p_prodimage in bb_product.productimage%type, p_prodprice in bb_product.price%type, p_prodactive in bb_product.active%type) is 
begin 
insert into bb_product(idproduct,productname,description, 
productimage,price,active) 
values (nextID.nextVal,p_prodname,p_descrip, 
p_prodimage,p_prodprice,p_prodactive); 

commit; 
end; 
+0

Спасибо, его работа сейчас :) –

+0

am еще новичок здесь, так что действительно не знаю, как это сделать –

0

Сначала вам нужно создать SEQUENCE. Затем вы можете использовать sequencename.nextval в столбце idproduct.

+0

У меня уже был один файл. Просто нужно было вернуться и проверить мои объекты. Спасибо –

1

Вам нужно создать последовательность первых т.е.:

CREATE SEQUENCE productsID_seq 
START WITH  0 
INCREMENT BY 1 
NOMAXVALUE; 

, а затем в values (... линии:

insert into bb_product(idproduct,productname,description,productimage,price,active) 
    values (productsID_seq.nextval,... 

Вот некоторые хорошая информация от Oracle DB Docs

+0

Спасибо, получил это для работы :) –