Componente Oracle (package gateway)

by Plurimedia

JavaScript

create or replace package gateway as

   g_context   varchar2(4000) default null;
   g_id_utente number default null;

   procedure read(p_clob    in varchar2,
                  p_model   in varchar2,
                  p_context in varchar2,
                  p_out     out clob);

   procedure read(p_id      in number,
                  p_model   in varchar2,
                  p_context in varchar2,
                  p_out     out clob);

   procedure create_(p_clob    in clob,
                     p_model   in varchar2,
                     p_context in varchar2,
                     p_out     out clob);

   procedure update_(p_id      in number,
                     p_clob    in clob,
                     p_model   in varchar2,
                     p_context in varchar2,
                     p_out     out clob);

   procedure delete_(p_id      in number,
                     p_model   in varchar2,
                     p_context in varchar2);

   procedure method(p_clob    in varchar2,
                    p_method  in varchar2,
                    p_context in varchar2,
                    p_out     out clob);

   procedure method(p_clob    in out clob,
                    p_method  in varchar2,
                    p_context in varchar2);

end gateway;
/

create or replace package body gateway as

   procedure read_context(p_context in varchar2) is
      v_json pljson := pljson_parser.parser(to_clob(p_context));
   begin
      g_context := p_context;
      g_id_utente := v_json.get('id_utente').get_number;

      select username
        into g_username
        from utenti
       where id_utente = g_id_utente;

   end read_context;

   procedure logger(p_proc  in varchar2,
                    p_model in varchar2,
                    p_stack in varchar2,
                    p_clob  in clob default null) is
      v_clob clob;
   begin
      if p_clob is not null then
         ut.error(p_clob);
      end if;
      dbms_lob.createtemporary(v_clob, true);
      v_clob...