【发布时间】:2013-07-14 04:00:26
【问题描述】:
我不知道我是否遗漏了什么,但我正在做的是:
我有一个返回 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
字段不应该来自同一个表和相同的数据类型(据我所知)吗?
编辑: 我尝试 SELECT * 并且每一项都有效。我肯定在这里遗漏了一些东西。我只是不知道它是。
【问题讨论】:
-
为什么不使用 Varchar2 而不是 Char?