问题标签 [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 投票
2 回答
5020 浏览

oracle - oracle plsql 聚合错误:ORA-06502:字符串缓冲区太小

我编写了一个简单的聚合函数,它应该通过聚合生成的 csv 字符串中的不同值来处理包含 csv 文本的列。当它应该返回结果时,当它出现 ORA-06502 错误时,这些函数似乎一直工作到最后。

这是代码:

类型定义:

身体:

这是一个测试表和数据:

最后,如果我尝试使用聚合函数会发生这种情况:

如果我只是在违规行中传递一个像“x”这样的字符串,我仍然会得到同样的错误。只有在空结果上它才会消失。我被难住了,没有想法。

谢谢你的帮助。

顺便说一句,如果有人知道为什么我在 agg_union 函数参数中添加了 \0 字符,我也很想知道这一点。

0 投票
1 回答
5047 浏览

oracle - 数值或值错误:字符串缓冲区太小

我在使用 oracle application express 中的这个简单查询时遇到了问题,并且收到了这个错误:

无法解析查询,请检查查询的语法。(ORA-06502: PL/SQL: 数字或值错误: 字符串缓冲区太小)"

0 投票
1 回答
887 浏览

oracle - ORA-06502 用 varchar2 从 clob 转换

我用 clobs 和 varchar2 做了一些实验。问题是我们在数据库表中有很多 XML,我想尽快下载 XML。由于我需要使用 C# DevArt 组件,我尝试了各种方法,发现 clob(它们涉及每行到数据库的一次往返)比 varchar2 慢得多。

因此,我现在分两步下载数据。首先尽可能多地使用 varchar2(4000 字节限制),然后将其他所有内容作为 clob。

现在是棘手的部分。我想出了以下查询来找出我可以检索为 varchar2 的内容:

该查询基于这样的假设,即 length 返回 clob 的字符数,而 substr 返回具有一定字节数的字符串。它不仅适用于长度,因为那样我会遇到像 à é oder è 这样的多字节字符的麻烦。但现在我有另一个非常奇怪的行为。上面的查询适用于大多数行,但对于其中一些行,它仍然会引发 ORA-06502。但是,如果我将限制更改为 3992,它总是有效???(作为信息,我们还将图片的缩略图存储为 xml 中的 Base64 编码字符串)。

现在有谁知道为什么查询在所有情况下都不起作用。或者有没有人建议如何编写一个查询来确定是否可以将 clob 作为 varchar2 检索?

0 投票
1 回答
447 浏览

vb.net - 错误的 Oracle 数字或值错误

我有一个持续的问题,其中 Windows 服务收到此 Oracle 错误:

消息:ORA-06502:PL/SQL:数字或值错误:字符到数字的转换错误

但是,我确信我正在将一个数值传递给 Oracle。通过使用我们的 Oracle DBA 和 Oracle 支持票,我们能够捕获 Oracle 服务器接收到的内容。我的问题是绑定变量#10。Oracle 在服务器上的跟踪日志中报告的值为“ A@Y8 ”。但是,我实际发送的值是167569173

Oracle 值“A@Y8”看起来并不熟悉——它不是来自另一个字段的值。它在 Oracle 跟踪文件中始终是相同的值 - 始终为 A@Y8。但是我发送的每条记录的数值都不同。


该服务每隔几分钟从外部源提取数据并将其插入 Oracle。它工作了大约两天,然后我得到了 ORA-06502。一旦我收到 Oracle 错误,我每次都会不断收到它,直到我重新启动服务。当服务重新启动时,它可以工作几天——即使它正在提取导致错误的相同数据。




  • Windows 服务是用 VB.Net 编写的。
  • 当我读取数据时,我将字段放入可为空的 Integer – Int32?。
  • 我将此变量发送到抛出 ORA-06502 的 Oracle 包,并且跟踪值显示“A@Y8”的值。
  • 然后我记录变量的值,我的日志将其显示为数字
    (它记录为 167569173)。

转换错误发生在对过程的调用上。也就是说,当试图将参数传递给过程中的实际插入过程中的过程号时。

不知何故,当 Oracle 收到它时,我的代码中的整数值不是整数。似乎有一些腐败,但我不认为它在 Vb.Net 中。我的字段是一个整数,不会保存 Oracle 报告的值。如果该字段确实包含该值,那么它应该在我记录它时记录该值。


如何查看 Oracle 客户端向 Oracle 服务器发送的值?我找不到任何相关的客户端日志。

关于可能导致这种情况的任何想法?


这是 Oracle 跟踪条目:

这是我的代码:这是插入数据库的方法-它会引发错误:

在此之后,我调用此方法来记录值​​:

这是我传递给这两种方法的同一个对象。StaffingDocumentationID 字段是 Oracle 跟踪显示为 A@Y8 而日志显示为 167569173 的字段。

这是我传递的 manualUploadDocument 对象的定义。为简洁起见,我删除了某些方法中的代码 - 属性与此处相关,删除的代码不引用它们。

0 投票
1 回答
6619 浏览

oracle - Ora-6502 数字或值错误,将空值插入到具有 NOT NULL 列的表中

我正在使用下面的BULK COMMITproc 将记录从TABLESOURCEto插入TABLE1COLUMN1onTABLE1定义为NOT NULL

有时我TABLE_SOURCE返回零行,在这种情况下,我的 PROC 失败并出现错误:

Ora - 6502 数值或数值错误

我尝试使用NO_DATA_FOUNDin 异常忽略该错误,但它也不起作用。

你能告诉我如何解决这个问题吗?

0 投票
2 回答
3493 浏览

xml - xmltype.getClobVal : ORA-06502: PL/SQL: 数值或数值错误

我的目标是通过 Oracle 10g 创建一个 xml 文件,我使用库 dbms_xmldom 来实现这一点。当我尝试通过 getClobVal 函数检索在 XMLType 中创建的 clob 时,服务器显示:

ORA-06502: PL / SQL: 数字或值错误

我的程序:


谢谢。

0 投票
2 回答
451 浏览

sql - 改变物化视图时下一个子句的条件

我试图在几天和几个小时之间刷新物化视图和我的代码:

但是我遇到了错误;ORA-06502: PL/SQL: numeric or value error%s 我试图解决我的问题,但我不能。有人对我的问题有任何想法吗?

谢谢。

0 投票
0 回答
673 浏览

java - 从 Java 插入时出现 ORA-06502 错误,但在 TOAD 中工作正常

我正在从 Java 的表中插入一行,但出现以下错误。但是在 TOAD 中执行的相同 sql 查询可以毫无问题地插入我的数据。

插入:

错误

编辑触发代码(我没有编写触发代码,我认为它是生成的):

你有什么想法 ?

谢谢

0 投票
2 回答
834 浏览

oracle - ORA-06502: PL/SQL: 数字或值错误: 字符串缓冲区太小。在第 23 行

我们可以帮我解决错误吗?
在 pl/sql 我有一个错误,但我找不到他!我认为变量 ast 有问题!

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

0 投票
0 回答
816 浏览

java - 如何解决:CallableStatement 执行返回错误“ORA-06502: PL/SQL: numeric or value error: character to number conversion error”?

我尝试将数据从一个表的字符串字段放入另一个表的数字字段。

如果我在 Oracle SQL Developer 或 Toad 等 IDE 中执行此操作,它可以正常工作,但如果我在我的 java 代码中执行此操作,则会出现错误。

如何解决?

下面有我的例子。

数据库:我创建了两个表 - 带有数字字段的 t_num 和带有 varchar2 字段的 t_str - 并将值放入第二个表 t_str

我还创建了将值从 t_str 放到 t_num 的过程

网络逻辑服务器:

index.jsp:点击按钮向put.jsp发送请求

put.jsp:从具有 jndi 名称 jdbc/test 的数据源获取连接并调用过程 put_to_t_num

最后我在浏览器控制台中遇到错误:

但是如果我在 IDE 中做这样的事情,它工作得很好

我想这可能是编码的情况,但我无法在我的 java 代码中解决它。

如何解决这个问题?

我还发现,如果没有将值 2 3,3 2 添加到 t_str - 我得到了“成功”。

我该如何处理这种情况?

为什么IDE会这样做,而java代码却不这样做?