【发布时间】:2020-09-01 05:59:28
【问题描述】:
这是我的代码:
DECLARE
due_date DATE := TO_DATE('&Due_date','DD-Mon-YYYY HH24:MI:SS' );
mon NUMBER;
BEGIN
SELECT
EXTRACT( MONTH FROM TO_DATE('&Due_date', 'DD-Mon-YYYY HH24:MI:SS' ) ) MONTH INTO mon
FROM DUAL;
END;
/
但我得到了错误,
ORA-01858:在数字所在的位置发现了一个非数字字符 预期 ORA-06512:在第 2 行 ORA-06512:在“SYS.DBMS_SQL”,第 1721 行
【问题讨论】:
-
mon := EXTRACT( MONTH FROM due_date ); -
您究竟为替换 &Due_date 提供了什么?
-
你为什么要调用 '&Due_date' 两次?
-
小心
&variable替换,它们经常被误解。它们的主要用途是在 SQL*Plus 和 SQL Developer 中进行交互式 hack 和脚本编写;在其他运行时环境中,这些变量可能根本不会被替换。