CREATE OR REPLACE PACKAGE BODY my_apex_url IS FUNCTION for_this (app_id_in IN VARCHAR2, app_pg_id_in IN VARCHAR2, app_session_in IN VARCHAR2, request_in IN VARCHAR2, debug_in IN VARCHAR2 DEFAULT 'NO', cache_in IN VARCHAR2, page_items_in IN strings_t, values_in IN strings_t, printer_friendly_in IN VARCHAR2 DEFAULT NULL, add_href_in IN BOOLEAN DEFAULT FALSE, href_name_in IN VARCHAR2 DEFAULT NULL, external_url_in IN VARCHAR2 DEFAULT NULL, open_new_window_in IN BOOLEAN DEFAULT TRUE, onclick_in IN VARCHAR2 DEFAULT NULL, image_in IN VARCHAR2 DEFAULT NULL, add_ssp_in IN BOOLEAN DEFAULT TRUE, hashtag_in IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 IS l_return VARCHAR2(32767); BEGIN l_return := 'f?p=' || app_id_in || ':' || app_pg_id_in || ':' || app_session_in || ':' || request_in || ':' || debug_in || ':' || cache_in || ':'; IF page_items_in.COUNT = 0 THEN l_return := l_return || ':'; ELSE FOR indx IN 1 .. page_items_in.COUNT LOOP l_return := l_return || CASE indx WHEN 1 THEN NULL ELSE ',' END || page_items_in (indx); END LOOP; FOR indx IN 1 .. page_items_in.COUNT LOOP l_return := l_return || CASE indx WHEN 1 THEN ':' ELSE ',' END || values_in (indx); END LOOP; END IF; l_return := l_return || ':' || printer_friendly_in; l_return := CASE WHEN add_ssp_in THEN l_return || '&cs=CHECKSUM-PLEASE!' /* Sorry, APEX_UTIL not yet available on LiveSQL, so just un-comment this in your own environment APEX_UTIL.prepare_url (l_return, 'UTF-8', 1, p_dialog => 'NOT DIALOG') */ ELSE l_return END || CASE WHEN hashtag_in IS NOT NULL THEN '#' || hashtag_in ELSE NULL END; l_return := external_url_in || l_return; IF add_href_in AND href_name_in IS NOT NULL THEN l_return := '' || NVL (href_name_in, l_return) || CASE WHEN image_in IS NOT NULL THEN '' ELSE NULL END || ''; END IF; RETURN l_return; END; /* Single parameter overloading */ FUNCTION for_this (app_id_in IN VARCHAR2, app_pg_id_in IN VARCHAR2, app_session_in IN VARCHAR2, request_in IN VARCHAR2, debug_in IN VARCHAR2 DEFAULT 'NO', cache_in IN VARCHAR2, page_item_in IN VARCHAR2 DEFAULT NULL, value_in IN VARCHAR2 DEFAULT NULL, printer_friendly_in IN VARCHAR2 DEFAULT NULL, add_href_in IN BOOLEAN DEFAULT FALSE, href_name_in IN VARCHAR2 DEFAULT NULL, external_url_in IN VARCHAR2 DEFAULT NULL, open_new_window_in IN BOOLEAN DEFAULT TRUE, onclick_in IN VARCHAR2 DEFAULT NULL, image_in IN VARCHAR2 DEFAULT NULL, add_ssp_in IN BOOLEAN DEFAULT TRUE, hashtag_in IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 IS l_items strings_t := strings_t (); l_values strings_t := strings_t (); BEGIN IF page_item_in IS NOT NULL THEN l_items.EXTEND; l_items (1) := page_item_in; l_values.EXTEND; l_values (1) := value_in; END IF; RETURN for_this (app_id_in => app_id_in, app_pg_id_in => app_pg_id_in, app_session_in => app_session_in, request_in => request_in, debug_in => debug_in, cache_in => cache_in, page_items_in => l_items, values_in => l_values, printer_friendly_in => printer_friendly_in, add_href_in => add_href_in, href_name_in => href_name_in, external_url_in => external_url_in, open_new_window_in => open_new_window_in, onclick_in => onclick_in, image_in => image_in, add_ssp_in => add_ssp_in, hashtag_in => hashtag_in); END; /* Single parameter overloading for use in SQL: 1 = TRUE, 0 (or anything else!) FALSE. */ FUNCTION for_this (app_id_in IN VARCHAR2, app_pg_id_in IN VARCHAR2, app_session_in IN VARCHAR2, request_in IN VARCHAR2, debug_in IN VARCHAR2 DEFAULT 'NO', cache_in IN VARCHAR2, page_item_in IN VARCHAR2 DEFAULT NULL, value_in IN VARCHAR2 DEFAULT NULL, printer_friendly_in IN VARCHAR2 DEFAULT NULL, add_href_in IN INTEGER DEFAULT 0, href_name_in IN VARCHAR2 DEFAULT NULL, external_url_in IN VARCHAR2 DEFAULT NULL, open_new_window_in IN INTEGER DEFAULT 1, onclick_in IN VARCHAR2 DEFAULT NULL, image_in IN VARCHAR2 DEFAULT NULL, add_ssp_in IN INTEGER DEFAULT 1, hashtag_in IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 IS BEGIN RETURN for_this ( app_id_in => app_id_in, app_pg_id_in => app_pg_id_in, app_session_in => app_session_in, request_in => request_in, debug_in => debug_in, cache_in => cache_in, page_item_in => page_item_in, value_in => value_in, printer_friendly_in => printer_friendly_in, add_href_in => CASE add_href_in WHEN 1 THEN TRUE ELSE FALSE END, href_name_in => href_name_in, external_url_in => external_url_in, open_new_window_in => CASE open_new_window_in WHEN 1 THEN TRUE ELSE FALSE END, onclick_in => onclick_in, image_in => image_in, add_ssp_in => CASE add_ssp_in WHEN 1 THEN TRUE ELSE FALSE END, hashtag_in => hashtag_in); END; END;