Getting following error while assigning value to declared clob variable in stored procedure. Same thing works when I run query on SQL Developer.
This is the query which currently I'm using in my stored procedure:
SELECT
RTRIM(XMLAGG(XMLELEMENT(E, col1, chr(10)).EXTRACT('//text()')).GetClobVal(),',')
INTO CLOB_VAR
FROM Table1**
I don't understand why it causes an error like numeric or value error.
Error report -
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "XXXXXX.TMP_STORED_PROC", line 39
ORA-06512: at line 1
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause: An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 99 to a variable declared NUMBER(2).
*Action: Change the data, how it is manipulated, or how it is declared so that values do not violate constraints.
Stored procedure:
create or replace PROCEDURE TMP_STORE_PROC () IS
CLOB_TEXT CLOB;
start_timestamp TIMESTAMP WITH TIME ZONE := SYSTIMESTAMP;
ERR_CODE VARCHAR2(20);
ERR_MSG VARCHAR2(500);
BEGIN
SAVEPOINT startTransaction;
SELECT RTRIM(XMLAGG(XMLELEMENT(E, col1, chr(10)).EXTRACT('//text()')).GetClobVal(),',') INTO CLOB_TEXT FROM Table1
DBMS_OUTPUT.PUT_LINE('################ String length -- '||TO_CHAR(CLOB_TEXT));
COMMIT;
NULL;
EXCEPTION
WHEN OTHERS THEN
ERR_CODE := SQLCODE;
ERR_MSG := SQLERRM;
DBMS_OUTPUT.PUT_LINE('Stored procedure failed in execution. Error Message : '||ERR_CODE||' -- MSG -- '||ERR_MSG);
ROLLBACK TO startTransaction;
RAISE;
END;