declare
begin
for i in reverse 0..364 loop
insert into mgs_psd_report(F1) select to_char(trunc(to_date('&a-12-01','yyyy-mm-dd'),'yy')+i,'yyyy-mm-dd') from dual;
end loop;
end;报错 ORA-01841:完整的年份值必须介于-4713和+9999之间且不为0
解决方案 »
- oracle数据库中的查询语句中的记录中有[]号
- oracle左连接问题
- oracle 数据表分割
- Oracle连接与游标问题
- 求Oracle Transparent Gateway for oracle 10g 的下载地址
- 表空间和表都可以自动扩展的,但空间不够时,要出错
- 在存储过程中用动态SQL建表,返回错误'ORA-01031: insufficient privileges'
- 不知道能不能得到大家的肯定答复,win2000下得oracle9i数据库能够导入redhat9.0下的oracle9i吗?
- oracle镜像问题
- 急!imp备份文件时出错
- Oracle中修改前十条记录的sql语句!!!
- 帮忙求一个SQL语句
语法没错 我试了成功 看是你的替代变量&a输入值的时候 必须是四位的
SQL> create table mgs_psd_report(f1 varchar2(20));表已创建。SQL> declare
2 begin
3 for i in reverse 0..364 loop
4 insert into mgs_psd_report(F1) select to_char(trunc(to_date('&a-12-01','yyyy-mm-dd'),'yy')+i,
'yyyy-mm-dd') from dual;
5 end loop;
6 end;
7 /
输入 a 的值: 2010
原值 4: insert into mgs_psd_report(F1) select to_char(trunc(to_date('&a-12-01','yyyy-mm-dd'),'yy')
新值 4: insert into mgs_psd_report(F1) select to_char(trunc(to_date('2010-12-01','yyyy-mm-dd'),'yyPL/SQL 过程已成功完成。
不过语句是不是有点冗余了,trunc了已经截取位了啊,select to_char(to_date('&a-01-01','yyyy-mm-dd'),'yyyy-mm-dd') from dual