PLSQL在插入时使用过程默认参数中的表默认值

时间:2016-08-04 09:14:47

标签: oracle stored-procedures plsql

我想创建一个在表中插入值的过程。我的表具有某些字段的默认值。我希望在我的过程中使用相同的默认值,而无需在我的过程中手动输入。例如

create table products
(
    prod_id number primary key,
    stock number default 0
);

我的程序声明:

create procedure insert_product
(
    prod_id number,
    stock number default products.stock.default
);

但我明白了:

  

错误(58,99):PLS-00103:遇到符号“DEFAULT”时   期望以下之一:当前删除存在先前符号“在”DEFAULT“之前插入以继续。

我试过了:

stock number default );

stock number default products.stock );

但他们也犯了错误。可以通过过程访问表的默认值,而无需在过程中明确键入它吗?我知道

stock number default 0 );效果很好。

我是PLSQL的新手,请原谅我,如果这是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

您可以在主程序中执行私人程序并实现此目的。请检查以下内容:请注意代码只是一个示例,未经过测试。

create or replace procedure abc 
as
v_num number;
 --Private Proc to Main procedure abc
 Procedure insert_product ( prod_id number,
                            stock number )
 Is
 begin
  <you logic>;

 end;

Begin

  select stock
  into v_num
  from products
  where <condition>;

  insert_product(PROD_ID,v_num); 

End ;