我需要在函数中返回一个游标:
CREATE OR REPLACE FUNCTION test_cursor (
bigstring IN VARCHAR2
)
RETURN cursor
IS
row_test table_colors := table_colors(bigstring);
c1 CURSOR;
BEGIN
OPEN c1 FOR
select * from cars where color IN (select column_value
from table(row_test));
RETURN c1;
END test_cursor;
table_colors
是:
create or replace type table_colors as table of varchar2(20);
但是当我测试它通过时blue, red, pink, white
或'blue', 'red', 'pink', 'white'
总是抛出相同的错误
ORA-06502: PL/SQL; numeric or value error: character string buffer too small
在这条线上row table_colors := table_colors(bigstring);
我在这里做错了什么?