Main Tables Views Materialized Views Indexes Constraints Triggers Procedures Functions Packages Sequences Java Sources 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(o_in IN VARCHAR2, n_in IN VARCHAR2,
     3:     e_in IN VARCHAR2, v_in IN VARCHAR2, r_in IN VARCHAR2, a_in IN VARCHAR2)
     4: RETURN NUMBER
     5: IS
     6: 	PRAGMA AUTONOMOUS_TRANSACTION;
     7:         o_id        NUMBER;
     8:         n_id        NUMBER;
     9: 	e_id	    NUMBER;
    10:         p_arch_id   NUMBER;
    11:         tp_id       NUMBER;
    12: BEGIN
    13: 	BEGIN
    14: 	    SELECT id
    15: 	      INTO o_id
    16: 	      FROM rhnTransactionOperation
    17: 	     WHERE label = o_in;
    18: 	EXCEPTION
    19: 	    WHEN NO_DATA_FOUND THEN
    20: 		rhn_exception.raise_exception('invalid_transaction_operation');
    21: 	END;
    22: 
    23: 	SELECT LOOKUP_PACKAGE_NAME(n_in)
    24: 	  INTO n_id
    25: 	  FROM dual;
    26: 
    27: 	SELECT LOOKUP_EVR(e_in, v_in, r_in)
    28: 	  INTO e_id
    29: 	  FROM dual;
    30: 
    31: 	p_arch_id := NULL;
    32: 	IF a_in IS NOT NULL
    33: 	THEN
    34: 		SELECT LOOKUP_PACKAGE_ARCH(a_in)
    35: 		  INTO p_arch_id
    36: 		  FROM dual;
    37: 	END IF;
    38: 
    39: 	SELECT id
    40: 	  INTO tp_id
    41: 	  FROM rhnTransactionPackage
    42: 	 WHERE operation = o_id
    43: 	   AND name_id = n_id
    44: 	   AND evr_id = e_id
    45: 	   AND (package_arch_id = p_arch_id OR (p_arch_id IS NULL AND package_arch_id IS NULL));
    46: 	RETURN tp_id;
    47: EXCEPTION
    48:         WHEN NO_DATA_FOUND THEN
    49: 	    INSERT INTO rhnTransactionPackage
    50: 		(id, operation, name_id, evr_id, package_arch_id)
    51: 	    VALUES (rhn_transpack_id_seq.nextval, o_id, n_id, e_id, p_arch_id)
    52: 	    RETURNING id INTO tp_id;
    53: 	    COMMIT;
    54: 	    RETURN tp_id;
    55: END;