If you have to combine DML + Query logic in one call, then you need a function, returning CURSOR. Function can be within a package or standalone:
create or replace package body MYPKG
..............
procedure P (result out sys_refcursor, Param1 date, Param2 number, ...)
is
begin
-- Prepare...