We may get this error, when we try to assign a value to a variable which is bigger than the maximum size of the variable.
Find the following code for example:
Find the following code for example:
DECLARE
v_data VARCHAR2(1);
BEGIN
v_data := ‘YES’;
END;
/
Error starting at line : 1 in command –
DECLARE
v_data varchar2(1);
BEGIN
v_data := ‘YES’;
END;
Error report –
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 4
06502. 00000 – “PL/SQL: numeric or value error%s”
*Cause:
*Action:
Analysis:
The above error is because, we declared v_data as VARCHAR2 with maximum size of 1 BYTE, but we tried to assign a value of 3 BYTE. That is why we have got error.
Solution:
Increase the size of the v_data to maximum size of the data to atleast to 3 BYTE.