Oracle 甲骨文到字符错误
我有一个函数(使用Dbms_sql.Varchar2s),它的一部分如下所示:Oracle 甲骨文到字符错误,oracle,to-char,Oracle,To Char,我有一个函数(使用Dbms_sql.Varchar2s),它的一部分如下所示: str_work(Nvl(str_work.Last, 0) + 1) := ' Select '; str_work(Nvl(str_work.Last, 0) + 1) := ' TIP.ID_ITEM,'; str_work(Nvl(str_work.Last, 0) + 1) := ' CPVW.ID_FAB,'; str_work(Nvl(str_work.Last, 0) + 1) := '
str_work(Nvl(str_work.Last, 0) + 1) := ' Select ';
str_work(Nvl(str_work.Last, 0) + 1) := ' TIP.ID_ITEM,';
str_work(Nvl(str_work.Last, 0) + 1) := ' CPVW.ID_FAB,';
str_work(Nvl(str_work.Last, 0) + 1) := ' TO_CHAR(CPVW.QTD, ''9999999'') as QTD';
str_work(Nvl(str_work.Last, 0) + 1) := ' from ';
str_work(Nvl(str_work.Last, 0) + 1) := ' CAD_PILAR_VW CPVW';
当我执行它时,一切都正常,但是当我从
str_work(Nvl(str_work.Last, 0) + 1) := ' TO_CHAR(CPVW.QTD, ''9999999'') as QTD';
到
我得到了一个无效的号码
一个表只有3个值指向CPVW.QTD:100200300,类型为NUMBER
我尝试了很多“9999999”与逗号、小数点的组合,所有情况下我都会收到相同的错误。无效号码
仅当TO_字符为“9999999”且没有逗号或小数点时,此函数才起作用
您能帮助我吗?请显示引发异常的确切代码行。您确定问题出在您的to\u char对话中吗?也许您正在其他地方处理转换的QTD,这会引发异常?尝试使用:to_CHAR(CPVW.QTD,'9999d99')为什么要使用
Dbms_sql.Varchar2s
而不是一个大的文本变量?我不明白你在做什么。您的查询似乎不是动态的。因此,使用带有绑定变量的游标或EXECUTE IMMEDIATE语句。
str_work(Nvl(str_work.Last, 0) + 1) := ' TO_CHAR(CPVW.QTD, ''99999.99'') as QTD';