我不知道我是否遗漏了什么,但我正在做的是:
我有一个返回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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。