[英]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.