„apex_application.g_print_success_message“ kann leider nur Informationen bis 4000 Zeichen darstellen.
Soll nun das Ergebnis eines PL/SQL Aufrufes auf der aufrufenden Seite angezeigt mit mehr Informationen angezeigt werden ist das ein kleines Problem.
Wäre auch mal ein schönes neues Feature für APEX diese Messages aus Prozessen „schön“ anzuzeigen mit dem Low Code Ansatz.
Leider ist dem nicht so, daher hier eine der viele Möglichkeiten für das Problem.
Die Methode aus PL/SQL füllt mit Out Parameter eine Variable v_messages:
.. IF APEX_COLLECTION.COLLECTION_EXISTS (p_collection_name => 'ERROR_MESSAGE') THEN APEX_COLLECTION.DELETE_COLLECTION (p_collection_name => 'ERROR_MESSAGE'); END IF; APEX_COLLECTION.CREATE_COLLECTION( p_collection_name => 'ERROR_MESSAGE'); APEX_COLLECTION.ADD_MEMBER ( p_collection_name => 'ERROR_MESSAGE' , p_clob001 => v_message ); ..
Auf der Seite in einer Region in einem Classic Report die Collection anzeigen:
SELECT to_char(ac.clob001) AS error_message FROM apex_collections ac WHERE ac.collection_name = 'ERROR_MESSAGE';