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: 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;