Main Tables Views Materialized Views Indexes Constraints Triggers Procedures Functions Packages Sequences Java Sources Jobs Sanity Check Index DDL scrips
Arguments Source

LOOKUP_TRANSACTION_PACKAGE

DDL script

Arguments:

NameData TypeDefault ValueIn/Out
O_INVARCHAR2 IN
N_INVARCHAR2 IN
E_INVARCHAR2 IN
V_INVARCHAR2 IN
R_INVARCHAR2 IN
A_INVARCHAR2 IN

Returns:

NUMBER(38)

Source

Legend: comment string keyword reserved word operator
     1: function
     2: lookup_transaction_package(
     3:     o_in in varchar2,
     4:     n_in in varchar2,
     5:     e_in in varchar2,
     6:     v_in in varchar2,
     7:     r_in in varchar2,
     8:     a_in in varchar2)
     9: return number
    10: is
    11:     pragma autonomous_transaction;
    12:     o_id        number;
    13:     n_id        number;
    14:     e_id        number;
    15:     p_arch_id   number;
    16:     tp_id       number;
    17: begin
    18:     begin
    19:         select id
    20:           into o_id
    21:           from rhnTransactionOperation
    22:          where label = o_in;
    23:     exception when no_data_found then
    24:         rhn_exception.raise_exception('invalid_transaction_operation');
    25:     end;
    26: 
    27:     n_id := lookup_package_name(n_in);
    28:     e_id := lookup_evr(e_in, v_in, r_in);
    29:     p_arch_id := null;
    30: 
    31:     if a_in is not null then
    32:         p_arch_id := lookup_package_arch(a_in);
    33: 	end if;
    34: 
    35:     select id
    36:       into tp_id
    37:       from rhnTransactionPackage
    38:      where operation = o_id and
    39:            name_id = n_id and
    40:            evr_id = e_id and
    41:            (package_arch_id = p_arch_id or (p_arch_id is null and package_arch_id is null));
    42:     return tp_id;
    43: exception when no_data_found then
    44:     begin
    45:         tp_id := insert_transaction_package(o_id, n_id, e_id, p_arch_id);
    46:     exception when dup_val_on_index then
    47:         select id
    48:           into tp_id
    49:           from rhnTransactionPackage
    50:          where operation = o_id and
    51:                name_id = n_id and
    52:                evr_id = e_id and
    53:                (package_arch_id = p_arch_id or (p_arch_id is null and package_arch_id is null));
    54:     end;
    55:     return tp_id;
    56: end;