这是代码……这不是完整的代码。我将它修剪到第一个错误发生的位置:
FUNCTION get (
p_sql_o OUT VARCHAR2
) RETURN VARCHAR2 AS
str_sql VARCHAR2(4000);
BEGIN
str_sql := ' SELECT * FROM ( SELECT A.*, ROWNUM RNUM FROM ( ' ||
' SELECT item_code, ' ||
' item_desc, ' ||
' monitor, ' ||
' measured, ' ||
' inventory, ' ||
' (measured - inventory) adj_amount, ' ||
' (inventory_cost * measured) measured_cost, ' ||
'inventory';
RETURN str_sql;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END get;
显然,SQL 是不完整的,但我没有运行它。我只是返回 SQL 字符串,但仍然出现错误:
ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 ORA-06512:在第 6 行
这令人费解。有没有人知道为什么会这样?