动态执行过程时的ORA -06502

时间:2018-10-22 17:35:20

标签: oracle

在某些代码中,我们使用dbms_sql动态执行过程。.

有一个变量,比如说k,我们将其绑定到proc的输出值,比如说ot1。

我们正在执行以下操作:

Dbms_sql.bind_variable ( cur , 'ot1', k, 2048) 

然后按如下所示执行proc:

Dbms_output.execute(cur)

获取ot1的值如下:

Dbms_sql.variable_value(cur , 'ot1' , k) 

Ot1是varchar2类型,是正在执行的proc的输出参数。

K的类型也为varchar2。

使用相同的输入参数在db中执行/测试proc时,ot1的值为“ 300” 但是当如上所述动态执行时,我在

处获得 ora-06502
Dbms_sql.variable_value( cur , 'ot1, k) 

对于其他输入,值类似于“ 400”,“ 250”等,但是在这种情况下,不会出现此错误。.

ora 06502 发生在有卵泡流的情况下,但是对于varchar2输出参数,这不能是溢出,因为该值仅为300,对于值400、500、250则看不到此类错误

我不觉得这是类型不匹配,因为输出值可以视为字符串..并且其他输出值(例如“ 400”和“ 250”)看不到这种错误。

这里可能是什么问题?

0 个答案:

没有答案