LOOKUP_TRANSACTION_PACKAGE
DDL scriptArguments:
| Name | Data Type | Default Value | In/Out |
|---|
| O_IN | VARCHAR2 | | IN |
| N_IN | VARCHAR2 | | IN |
| E_IN | VARCHAR2 | | IN |
| V_IN | VARCHAR2 | | IN |
| R_IN | VARCHAR2 | | IN |
| A_IN | VARCHAR2 | | IN |
Returns:
NUMBER(38)Source
Legend: 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: DETERMINISTIC
6: IS
7: PRAGMA AUTONOMOUS_TRANSACTION;
8: o_id NUMBER;
9: n_id NUMBER;
10: e_id NUMBER;
11: p_arch_id NUMBER;
12: tp_id NUMBER;
13: BEGIN
14: BEGIN
15: SELECT id
16: INTO o_id
17: FROM rhnTransactionOperation
18: WHERE label = o_in;
19: EXCEPTION
20: WHEN NO_DATA_FOUND THEN
21: rhn_exception.raise_exception('invalid_transaction_operation');
22: END;
23: SELECT LOOKUP_PACKAGE_NAME(n_in)
24: INTO n_id
25: FROM dual;
26: SELECT LOOKUP_EVR(e_in, v_in, r_in)
27: INTO e_id
28: FROM dual;
29: p_arch_id := NULL;
30: IF a_in IS NOT NULL
31: THEN
32: SELECT LOOKUP_PACKAGE_ARCH(a_in)
33: INTO p_arch_id
34: FROM dual;
35: END IF;
36: SELECT id
37: INTO tp_id
38: FROM rhnTransactionPackage
39: WHERE operation = o_id
40: AND name_id = n_id
41: AND evr_id = e_id
42: AND (package_arch_id = p_arch_id OR (p_arch_id IS NULL AND package_arch_id IS NULL));
43: RETURN tp_id;
44: EXCEPTION
45: WHEN NO_DATA_FOUND THEN
46: INSERT INTO rhnTransactionPackage
47: (id, operation, name_id, evr_id, package_arch_id)
48: VALUES (rhn_transpack_id_seq.nextval, o_id, n_id, e_id, p_arch_id)
49: RETURNING id INTO tp_id;
50: COMMIT;
51: RETURN tp_id;
52: END;