Ich möchte eine Prozedur erstellen, um Werte in eine Tabelle einzufügen. Meine Tabelle hat Standardwerte für bestimmte Felder. Ich möchte die gleichen Standardeinstellungen in meiner Prozedur verwenden, ohne sie manuell in meine Prozedur eingeben zu müssen. zBPLSQL mit Tabelle Standardwert in Prozedur Standardparameter beim Einfügen
create table products
(
prod_id number primary key,
stock number default 0
);
Mein Verfahren Erklärung:
create procedure insert_product
(
prod_id number,
stock number default products.stock.default
);
Aber ich bekomme:
Fehler (58,99): PLS-00103: Fand das Symbol "STANDARD", wenn ein erwartet der folgenden: aktuelle Löschung existiert vor Das Symbol "wurde vor" DEFAULT "eingefügt, um fortzufahren.
Ich habe versucht:
stock number default);
stock number default products.stock);
Aber sie geben auch Fehler. Kann auf den Standardwert der Tabelle von der Prozedur zugegriffen werden, ohne sie explizit in die Prozedur einzutippen? Ich weiß
stock number default 0);
funktioniert gut.
Ich bin neu in PLSQL, also vergib mir, wenn es eine dumme Frage ist.
Damit eine Variable den gleichen Datentyp wie die Spalte einer Tabelle hat, deklarieren Sie zunächst Folgendes: 'var_name table.column_name% type'. Zweitens kann die PL/SQL-Variable den Standardwert einer Tabellenspalte nicht erben. Damit eine Spalte beim Einfügen einen Standardwert erhält, können Sie sie entweder weglassen oder das Schlüsselwort 'default' in der Klausel' values () 'Ihrer' insert in' -Anweisung verwenden. –
@ NicholasKrasnov Danke. Ich habe Best Practices wie stock products.stock% type verwendet, meine Einschränkungen benannt und bei Bedarf Spaltennamen hinzugefügt. Ich habe sie hier weggelassen, um Unordnung zu beseitigen. Daher können Standardwerte nicht vererbt werden. OK. – uutsav