SELECT from Collection拒绝接受to_number / to_char

时间:2014-05-15 09:41:51

标签: sql oracle plsql oracle-apex

参考我的其他帖子,我决定在我的数据库中存储前导零的数字。 我正在从集合中选择导入的数据并将其插入到数据库表中。问题是,如果我尝试在集合中的列上使用函数to_char(c001,'009'),则会显示“ORA-01722:无效数字”。

我不明白这一点,因为数据源是varchar2,目的地也是varchar2。

有人解决了这个问题吗?

1 个答案:

答案 0 :(得分:0)

Oracle的to_char函数接受一个数字作为它的第一个参数。因此,您提供的值将转换为数字。如果coo1不包含有效数字,您将收到该错误消息。

你的一个号码不是数字。您可以使用plsql代码找出包含无效数字的记录:

declare
  l_number number;
  cursor c is select ID,column_name from table;
begin
  for r in c loop
    begin
      l_number := to_number(r.column_name);
    exception
      when others then dbms_output.put_line(r.id||' '||r.column_name);
    end;
  end loop;
end;