-1

我有一个包含以下内容的存储过程:

V_DATACONVERTIDA varchar2(100) := TO_DATE('27/10/1994 23:59:59', 'DD/MM/YYYY HH24:MI:SS.SSSSS');

它工作正常,但问题是我必须将该日期设为变量。所以我创建了

V_DATAEXPIRACAO VARCHAR2(100) := p__formdata;

p__formdata (varchar2) 来自 SP 的参数。

但是,当我进行更改时,出现以下错误:

ORA-01858: 在需要数字的地方发现了一个非数字字符

4

1 回答 1

1

“我不明白为什么它说当一切都应该是字符串(或varchar)时它需要一个数值”

很明显,一切都不是字符串。Oracle 抛出 ORA-01858 错误,我们尝试将字符串转换为日期,但格式掩码错误;例如,此示例传递了一个字符月份,但在掩码中指定了一个数字月份:to_date('08-APR-2013', 'DD-MM-YYYY')

因此,如果您遇到该错误,您的程序并没有按照您的想法执行。但只有你能看到整个源代码,所以只有你能找出错误所在。

于 2013-04-08T19:45:56.860 回答