我想創建一個程序在一個表中插入值。我的表具有某些字段的默認值。我需要在我的過程中使用相同的默認值,而無需在我的過程中手動輸入它。例如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所以請原諒我,如果這是一個愚蠢的問題。
首先,爲了使變量與表格的列具有相同的數據類型,可以聲明如下:'var_name table.column_name%type'。其次,PL/SQL變量不能繼承表的列的默認值。爲了在插入時爲列指定一個默認值,可以省略它或在'insert into'語句的'values()'子句中使用'default'關鍵字。 –
@NicholasKrasnov謝謝。我正在使用最佳做法,如stock products.stock%type,命名我的約束並在需要時向列名添加註釋。爲了消除混亂,我在這裏省略了它們。所以默認值不能被繼承。好。 – uutsav