【发布时间】:2015-04-29 06:47:59
【问题描述】:
在 Oracle SQL Developer 版本 1.5.4 中,相同的代码不会出现任何错误。 我目前连接到 oracle 11g 数据库服务器。
create or replace function getdate
RETURN VARCHAR2 IS
v_datevalue date;
begin
v_datevalue := '01-APR-2015';
return (cast(v_datevalue as varchar2));
end;
/
【问题讨论】:
-
好的,那么错误是什么?
-
我无法在版本
3.2.20.10中重现您的错误。而且我认为这与 SQL Developer 没有任何关系。有一件事需要注意,您正在将 string 分配给 DATE 数据类型。 Oracle 会进行隐式数据类型转换。v_datevalue被声明为DATE,'01-APR-2015'是一个字符串。 -
@vesan Syntex 错误,预期:varchar
-
@Lalit 在 Oracle Sql Developer 4.0.3.16 上尝试,它已编译但为什么它在工作表中标记为错误
-
如果两个 SQL Developer 版本存在差异,我会检查日期格式和
nls_language首选项。从VARCHAR2到DATE的隐式类型转换很可能与这种偏好有关。 最佳选择当然是使用显式类型转换,即v_datevalue := TO_DATE ('01-APR-2015','DD-MON-YYYY');。
标签: sql oracle type-conversion date-formatting