加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – PL / SQL:数字或值错误:字符串缓冲区太小%ROWTYPE

发布时间:2020-12-12 16:23:42 所属栏目:百科 来源:网络整理
导读:我不知道我是否遗漏了什么,但我正在做的是: 我有一个返回ROWTYPE的函数 FUNCTION myFunc(pChar CHAR) RETURN myTable%ROWTYPE AS myTable_rec myTable%ROWTYPE; BEGIN SELECT col1,col2,col3 INTO myTable_rec.col1,myTable_rec.col2,myTable_rec.col3 FROM
我不知道我是否遗漏了什么,但我正在做的是:

我有一个返回ROWTYPE的函数

FUNCTION myFunc(pChar CHAR) RETURN myTable%ROWTYPE AS
    myTable_rec myTable%ROWTYPE;
  BEGIN
    SELECT col1,col2,col3
    INTO myTable_rec.col1,myTable_rec.col2,myTable_rec.col3
    FROM myTable
    WHERE col4 = pChar;

    RETURN(myTable_rec);
  END B001_03;

然后在我的程序(调用上面的函数)中,我声明:

myTable_rec myTable%ROWTYPE;

但是当我打电话给程序时:

...
myTable_rec := myFunc(someChar);
...

我明白了

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

这些字段不是来自同一个表和OF THE SAME数据类型(因为我的小理解)?

编辑:
我尝试SELECT *并且每个都有效.我在这里肯定遗漏了一些东西.我只是不知道它是.

我敢打赌问题源于使用Char,它是一个固定长度的字符串.不确定在哪里,但是在代码中的某处,你试图将长度为N的Char或varchar2字符串放入长度为M的字符中,其中M> 1. N.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读