在某些代码中,我们使用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”
但是当如上所述动态执行时,我在
Dbms_sql.variable_value( cur , 'ot1, k)
对于其他输入,值类似于“ 400”,“ 250”等,但是在这种情况下,不会出现此错误。.
ora 06502 发生在有卵泡流的情况下,但是对于varchar2输出参数,这不能是溢出,因为该值仅为300,对于值400、500、250则看不到此类错误>
我不觉得这是类型不匹配,因为输出值可以视为字符串..并且其他输出值(例如“ 400”和“ 250”)看不到这种错误。
这里可能是什么问题?