我想输入一个日期并使用 PL/SQL 将其存储到一个变量中,但收到 PL-00201 错误
I would like to input a date and store it into a variable using PL/SQL but recieve PL-00201 error
我正在尝试输入一个日期,即 18-Sep-09
并将其存储到 v_today
。但是我收到
PLS-00201: identifier 'SEP' must be declared.
SET SERVEROUTPUT ON
DECLARE
v_today DATE :=TO_DATE(&today,'YY-MMM-DD');
v_tomorrow v_today%TYPE :=today+1;
BEGIN
DMBS_OUTPUT.PUT_LINE('Today is: '|| v_today);
DMBS_OUTPUT.PUT_LINE('Tomorrow will be: '|| v_tomorrow);
END;
对有帮助的人,我已经解决了
我需要用单引号将输入字符串括起来,然后在输出上使用 TO_CHAR 函数。
SET SERVEROUTPUT ON
DECLARE
v_today DATE :='&today';
v_tomorrow v_today%TYPE :=v_today+1;
BEGIN
DBMS_OUTPUT.PUT_LINE('Today is: '|| TO_CHAR(v_today, 'DAY'));
DBMS_OUTPUT.PUT_LINE('Tomorrow will be: '|| TO_CHAR(v_tomorrow,'DAY'));
END;
尽管您这样做了,但我建议您不要依赖隐式数据类型转换。 '&today'
是字符串,不是日期。考虑按如下方式进行,使用适当的格式掩码应用 to_date
(和 to_char
):
SQL> DECLARE
2 v_today DATE := to_date('&today', 'dd.mm.yyyy');
3 v_tomorrow v_today%TYPE := v_today + 1;
4 BEGIN
5 DBMS_OUTPUT.PUT_LINE('Today is : '|| TO_CHAR(v_today, 'DAY'));
6 DBMS_OUTPUT.PUT_LINE('Tomorrow will be: '|| TO_CHAR(v_tomorrow,'DAY'));
7 END;
8 /
Enter value for today: 24.09.2021
Today is : FRIDAY
Tomorrow will be: SATURDAY
PL/SQL procedure successfully completed.
SQL>
我正在尝试输入一个日期,即 18-Sep-09
并将其存储到 v_today
。但是我收到
PLS-00201: identifier 'SEP' must be declared.
SET SERVEROUTPUT ON
DECLARE
v_today DATE :=TO_DATE(&today,'YY-MMM-DD');
v_tomorrow v_today%TYPE :=today+1;
BEGIN
DMBS_OUTPUT.PUT_LINE('Today is: '|| v_today);
DMBS_OUTPUT.PUT_LINE('Tomorrow will be: '|| v_tomorrow);
END;
对有帮助的人,我已经解决了
我需要用单引号将输入字符串括起来,然后在输出上使用 TO_CHAR 函数。
SET SERVEROUTPUT ON
DECLARE
v_today DATE :='&today';
v_tomorrow v_today%TYPE :=v_today+1;
BEGIN
DBMS_OUTPUT.PUT_LINE('Today is: '|| TO_CHAR(v_today, 'DAY'));
DBMS_OUTPUT.PUT_LINE('Tomorrow will be: '|| TO_CHAR(v_tomorrow,'DAY'));
END;
尽管您这样做了,但我建议您不要依赖隐式数据类型转换。 '&today'
是字符串,不是日期。考虑按如下方式进行,使用适当的格式掩码应用 to_date
(和 to_char
):
SQL> DECLARE
2 v_today DATE := to_date('&today', 'dd.mm.yyyy');
3 v_tomorrow v_today%TYPE := v_today + 1;
4 BEGIN
5 DBMS_OUTPUT.PUT_LINE('Today is : '|| TO_CHAR(v_today, 'DAY'));
6 DBMS_OUTPUT.PUT_LINE('Tomorrow will be: '|| TO_CHAR(v_tomorrow,'DAY'));
7 END;
8 /
Enter value for today: 24.09.2021
Today is : FRIDAY
Tomorrow will be: SATURDAY
PL/SQL procedure successfully completed.
SQL>