Oracle日期类型TO_CHAR 报ORA-06502
2017-03-06 14:14
405 查看
Date类型转字符串TO_CHAR()就可以了,可遇到如下的情景,不知什么原因,如有知者,请赐教。一、创建表
1 create table TestTable 2 ( 3 Clo1 Date 4 ) 5 6 insert into TestTable values(TO_DATE('2017/3/27 23:59:59','yyyy-mm-dd hh24:mi:ss'))二、创建存储过程
1 CREATE OR REPLACE PROCEDURE MyProcedureTest 2 as 3 v_DateStr varchar2(50); 4 begin 5 for rec in 6 ( 7 select Clo1 8 from TestTable 9 ) 10 loop 11 v_DateStr:=rec.clo1; 12 dbms_output.put_line(v_DateStr);--形如:27-3月 -17 (即:2017年3月27日) 13 dbms_output.put_line(TO_CHAR(rec.clo1,'yyyy-mm-dd'));--形如:27-3月 -17 (即:2017年3月27日) 14 end loop; 15 end;这一切看着是多么的简单,可是当存储过程中引入全局临时表时(即:for循环的数据取自临时表),如果有日期字段来自临时表,在将
TO_CHAR(rec.comumnDate,'yyyy-mm-dd') -- columnDate取自临时表
时,将会出现异常,ora 06502 字符到数值的转换错误!!! 不知为何,在将临时表中日期类型TO_CHAR()的时候,是报错的!!怀疑是执行上下文字符集的问题。 解决方法: 查阅了一下,原因可能是字符集的问题,但最终也没有解决。最终的解决方法是将for循环中取自临时表中的日期,在中间变量中转了一下,如下:
v_Date date; .... v_Date:= rec.columnDate;-- columnDate取自临时表 v_DateStr:=TO_CHAR(v_Date,'yyyy-mm-dd');--通过!
相关文章推荐
- oracle 数值型函数,字符型函数,日期函数,转换函数,to_char,自动类型转换,日期类型转换
- oracle 数值型函数,字符型函数,日期函数,转换函数,to_char,自动类型转换,日期类型转换
- oracle 数值型函数,字符型函数,日期函数,转换函数,to_char,自动类型转换,日期类型转换
- oracle 数值型函数,字符型函数,日期函数,转换函数,to_char,自动类型转换,日期类型转换
- 【转】oracle 数值型函数,字符型函数,日期函数,转换函数,to_char,自动类型转换,日期类型转换
- oracle 数值型函数,字符型函数,日期函数,转换函数,to_char,自动类型转换,日期类型转换
- Oracle的日期时间 to_date和to_char
- [Oracle] to_date() 与 to_char() 日期和字符串转换[博客园—gshine]
- [oracle] to_date() 与 to_char() 日期和字符串转换
- Oracle的数据类型转换 to_char(date)
- oracle使用to_char和next_day函数得到本周的第一天和最后一天日期
- oracle中的类型转换to_char() to_number()
- to_date to_char日期类型
- oracle 用to_char()日期区间比较
- oracle pl/sql to_date日期类型格式转换
- 项目经验:oracle 日期查询 to_char()
- Oracle的日期时间 to_date和to_char
- Oracle 日期转换TO_CHAR
- 〖Oracle 转载〗Oracle的数据类型转换 to_char
- [oracle] to_date() 与 to_char() 日期和字符串转换