簡體   English   中英

pl/sql 中帶參數的過程

[英]Procedure with parameters in pl/sql

為什么添加參數后這個程序不起作用?

無需IN OUT參數; IN就足夠了(因為 PLS_00363: SYSDATE 在調用過程時不能用作分配目標)。

當您操作參數的值時,我為此目的聲明了局部變量。

此外, next_day不適用於7 使用日期名稱(因此我的alter session將語言設置為英語,以便我可以使用SUNDAY作為日期名稱)。

(我們不是已經討論過了嗎?您之前的問題 go 是在哪里?對,這里是: Function Next_Day in pl/sql ;為什么要創建另一個帳戶?)

固定時:

SQL> CREATE OR REPLACE PROCEDURE liczba_niedziel (data_od  IN DATE,
  2                                               data_do  IN DATE)
  3  IS
  4     l_data_od  DATE;
  5     l_data_do  DATE;
  6     licznik    NUMBER := 0;
  7  BEGIN
  8     l_data_od := NEXT_DAY (data_od, 'SUNDAY');
  9     l_data_do := data_do;
 10
 11     WHILE l_data_od <= l_data_do
 12     LOOP
 13        l_data_od := l_data_od + 7;
 14        licznik := licznik + 1;
 15     END LOOP;
 16
 17     DBMS_OUTPUT.put_line (
 18        '...' || SYSDATE || ' - ' || l_data_do || '...' || licznik);
 19  END;
 20  /

Procedure created.

測試:

SQL> ALTER SESSION SET nls_date_language = 'english';

Session altered.

SQL> EXEC liczba_niedziel(sysdate, date '2022-01-18');
...30.12.2021 - 18.01.2022...3

PL/SQL procedure successfully completed.

SQL>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM