ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 原因:函数中用到的临时变量tempName varchar2(20),但是表中取出的字段cname定义的长度大于20 bytes(varchar2(51))。例如,select cname into tempName from table_name,这样就会报错。 解决:tempName 类型改为varchar2(51),OK。