How to detect in which schema a procedure is called?
You can use one of the functions of Oracles owa_util's package named WHO_CALLED_ME.

To demonstrate this feature, we can create a table which will store the results of the call to Oracle's procedure.

create table T_CALLSTACK (
    OWNER_NAME      varchar2(30),
    OBJECT_NAME     varchar2(30),
    LINE_NUMBER     number,
    CALLER_INFO     varchar2(100),
    INSERTDATE      date
);


As a test procedure which will insert some values we use:

create or replace procedure P_CALLED_BY_T is

    v_Owner          varchar2(30);
    v_PackageName    varchar2(30);
    v_LineNumber     number;
    v_CallerT        varchar2(100);

begin

    owa_util.WHO_CALLED_ME (v_Owner, v_PackageName, v_LineNumber, v_CallerT);

    -- v_Owner will contain the schema name of the procedure which
    -- called this procedure itself
    insert
      into T_CALLSTACK (OWNER_NAME, OBJECT_NAME, LINE_NUMBER, CALLER_INFO, INSERTDATE)
    values (v_Owner, v_PackageName, v_LineNumber, v_CallerT, sysdate);

end P_CALLED_BY_T;


The procedure WHO_CALLED_ME will return the schema's name as well as the package name and the line number inside the calling package body, caller-T is the type of database object which called our custom procedure P_CALLED_BY_T. If the caller itself is just a procedure, the variable v_PackageName will hold the procedure's name instead of a package name.