我想创建一个在表中插入值的过程。我的表具有某些字段的默认值。我希望在我的过程中使用相同的默认值,而无需在我的过程中手动输入。例如
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的新手,请原谅我,如果这是一个愚蠢的问题。
答案 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 ;