ORA-06502: PL/SQL: numeric or value error: raw variable length too long
657251Sep 16 2008 — edited Sep 16 2008Hi All,
Oracle 9.2.0.1.0 and Oracle 10g.
I the following procedure:
CREATE OR REPLACE TYPE Resource_TT AS TABLE OF RAW(16)
/
CREATE OR REPLACE PROCEDURE GET_ROLEMAPPING_Temp
(
RoleIds IN NVARCHAR2 DEFAULT NULL ,
Application IN NVARCHAR2 DEFAULT NULL ,
MappingExixts OUT NVARCHAR2
)
AS
v_Application NVARCHAR2(150) := Application;
resource_list CONSTANT Resource_TT := Resource_TT(RoleIds);
v_temp NUMBER(1, 0) := 0;
BEGIN
SELECT 1 INTO v_temp
FROM DUAL
WHERE EXISTS ( SELECT SecurityGroupId
FROM SKESGResourceMapping
WHERE APPLICATION = v_Application
AND RoleId IN
(
select column_value
from table(resource_list)
) );
EXCEPTION
WHEN NO_DATA_FOUND THEN
MappingExixts := 'NO';
END;
IF v_temp = 1 THEN
MappingExixts := 'YES';
END IF;
END;
while calling the procedure from sql*plus, the calling block is :
variable MappingExixts nvarchar2(100);
execute Get_RoleMapping_Temp('2f90e7969e0a9045aeb5b5ed7b3da9d6,363aef470e10094281e5040627e3b6f8', 'repo1', :MappingExixts);
print MappingExixts;
It is throwing an error saying:
ORA-06502: PL/SQL: numeric or value error: raw variable length too long
ORA-06512: at "ORACLE1.GET_ROLEMAPPING_TEMP", line 8
Thanks for your valuable time and suggestions