我得到 ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小。但是当我运行sql查询时,它只返回“T00B”五个字符的长度。将return max值插入last_account_code时会引发异常。 last_account_code和account_code都是相同的类型。
DECLARE
last_account_code account_header_1.account_code%TYPE := '';
in_is_delivery_address VARCHAR(1) := 'N';
starts_with VARCHAR2(1) := 'T';
BEGIN
SELECT MAX(account_code)
INTO last_account_code
FROM account_header_1
WHERE account_code like starts_with||'%' AND
( account_code like 'FS%' OR in_is_delivery_address <> 'Y' ) AND
( account_code not like 'FS%' OR in_is_delivery_address = 'Y' );
END;
/
-- desc account_header_1;
--
--Name Null Type
----------------------- -------- ---------
--ACCOUNT_CODE NOT NULL CHAR(5)
- 00000 - “PL / SQL:数字或值错误%s” *原因:算术,数字,字符串,转换或约束错误 发生了。例如,如果尝试,则会发生此错误 将值NULL赋给声明为NOT NULL的变量,或者如果是 尝试将大于99的整数分配给变量 声明NUMBER(2)。 *操作:更改数据,如何操作或如何声明数据 这些值不会违反约束条件。
醇>