我正在尝试使用Oracle站点的这个PL/SQL脚本创建日历表: 日期维度数据生成器
一切都很好,但我不能从第5节开始说明:
SELECT *
FROM TABLE(UDF_CALENDAR_GENERATOR(CAST('1-JAN-2016' AS DATE), CAST('31-DEC-2016' AS DATE)));
Run Code Online (Sandbox Code Playgroud)
我收到错误:
- 00000 - "不是有效月份"
*原因:
*行动:
我尝试使用to_date函数(基于这个答案):
SELECT *
FROM TABLE(UDF_CALENDAR_GENERATOR(TO_DATE('14-Apr-2015', 'DD-MON-YYYY'), TO_DATE('14-May-2015', 'DD-MON-YYYY')));
Run Code Online (Sandbox Code Playgroud)
但它不起作用.这个陈述有什么问题?
小智 5
SELECT *
FROM TABLE(
UDF_CALENDAR_GENERATOR(
TO_DATE('14-Apr-2015', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = American'),
TO_DATE('14-May-2015', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = American')
)
);
Run Code Online (Sandbox Code Playgroud)
有人应该告诉作者,在Oracle中,日期文字是这样写的date '2016-01-01',所以查询应该是:
select *
from table(udf_calendar_generator(date '2016-01-01', date '2016-12-31'));
Run Code Online (Sandbox Code Playgroud)
该CAST()表达式实际上TO_DATE()没有指定日期格式或语言,需要运气元素才能在任何给定环境中工作.
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |