Inc*_*ito 6 oracle plsql procedure
我不知道我是否遗漏了什么,但我正在做的是:
我有一个返回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;
Run Code Online (Sandbox Code Playgroud)
然后在我的程序(调用上面的函数)中,我声明:
myTable_rec myTable%ROWTYPE;
Run Code Online (Sandbox Code Playgroud)
但是当我打电话给程序时:
...
myTable_rec := myFunc(someChar);
...
Run Code Online (Sandbox Code Playgroud)
我明白了
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Run Code Online (Sandbox Code Playgroud)
这些字段不是来自同一个表和OF THE SAME数据类型(因为我的小理解)?
编辑:我试着SELECT*和每个作品.我在这里肯定遗漏了一些东西.我只是不知道它是.
我敢打赌问题源于使用Char,它是一个固定长度的字符串.不确定在哪里,但是在代码中的某处,您尝试将长度为N的Char或varchar2字符串放入长度为M的字符中,其中M> N.
| 归档时间: |
|
| 查看次数: |
58556 次 |
| 最近记录: |