问题标签 [ora-06502]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
128 浏览

oracle - 存储在 VARCHAR2 变量中的查询没有结果被视为空字符串或 NULL?- Oracle PL/SQL - Oracle 11g

我有一个执行 SELECT INTO 并将返回的结果存储在名为 VARCHAR2 变量中的过程account_

company_order_id_pay_date_都是我用来过滤记录的 VARCHAR2 变量。

然后将输入的结果account_格式化如下,并存储在另一个名为 的 VARCHAR2 变量中giro_

giro_ := LPAD( TRANSLATE( account_, '1234567890- ','1234567890' ), 16, '0' );

然后我检查是否giro_是一个数字,如下用一个 FOR 循环。

我有一个场景,上面显示的 SELECT 查询没有获取任何记录。

这最终在 FOR 循环中引入了一个异常,错误为 ORA-06502 和 ORA-06512。

据我了解,原因是LENGTH( giro_ )

1..LENGTH( giro_ )失败,因为giro_值的 LENGTH(LENGTH 为 NULL)无法转换为 NUMBER。

我的问题是,此时在这种情况下,是giro_空字符串还是 NULL?这里到底发生了什么?

谢谢!

0 投票
1 回答
135 浏览

oracle - 存储过程异常:ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小

PLSQL 过程从表中读取值并将它们作为 CSV 文件邮寄。由于某种原因,它抛出以下错误:

引发错误:ORA-06512:在“EMAIL_DUMP”,第 73 行

  • ORA-06502: PL/SQL: 数字或值错误: 字符串缓冲区太小

代码中的第 73 行:

l_clob2 := l_clob2||chr(10)||l_attach_text2;

我已经查看了该行,并认为将这些变量的数据类型更改为 clob 可能会解决问题。但是在更改数据类型后,同样的错误会出现在以下行:

utl_smtp.WRITE_DATA(v_Mail_Conn,

这是我的代码:

谁能帮我解决这个问题?