Niedawno stworzył procedurę, która jest zdefiniowana następująco:Czy mogę wykonać procedurę z domyślnymi parametrami zerowymi?
create or replace
PACKAGE
pkg_dml_legal_transactions
AS
PROCEDURE spm_update_court_cost(
p_court_state IN legal_court_cost.state%TYPE,
p_tran_code IN legal_court_cost.transaction_code%TYPE,
p_legal_court IN legal_court_cost.court%TYPE default null,
p_end_date IN legal_court_cost.end_date%TYPE,
p_cost_min IN legal_court_cost.cost_range_min%TYPE,
p_cost_max IN legal_court_cost.cost_range_max%TYPE,
p_bal_min IN legal_court_cost.bal_range_min%TYPE DEFAULT NULL,
p_bal_max IN legal_court_cost.bal_range_max%TYPE DEFAULT NULL);
end pkg_dml_legal_transactions;
Gdy próbuję execute
procedurę, otrzymuję komunikat o błędzie informujący, że:
PLS-00306: wrong number or types of arguments in call to 'SPM_UPDATE_COURT_COST'
Oto co mój wykonać zestawienie wygląda :
execute pkg_dml_legal_transactions.spm_update_court_cost('NJ',1,sysdate,1000,40000);
teraz rozumiem, co oznacza, że błąd, ale pomyślałem, jeśli parametry są domyślnie null potem mógł po prostu je pominąć, ale najwyraźniej nie. Czy istnieje sposób obejścia tego?
Spróbuj podejmowania 'p_cost_max' do' legal_court_cost.cost_range_max% domyślny typ NULL' W przeciwnym razie trzeba przekazać parametr do procedury, ponieważ spodziewa się, że wartość jako nie zdefiniowano 'DEFAULT NULL' – user75ponic
Jeśli nie spodziewałem się, że null, musisz przekazać parametr do procedury. – user75ponic
Jedynymi parametrami, które mogą mieć wartość NULL są sądy, a saldo min. I maks. W moim wykonaniu mam wszystkie te, które nie mogą być puste. – user2405778