122 lines
4.5 KiB
Plaintext
122 lines
4.5 KiB
Plaintext
CREATE OR REPLACE PACKAGE BODY EFT_NOM.cama_support IS
|
|
|
|
g_header CONSTANT VARCHAR2(160) := '$Header: /Isle Of Grain/database/PLSQL/cama_support.pck 1 7/01/05 12:54 Gilberta $';
|
|
g_revision CONSTANT VARCHAR2(160) := '$Revision: 1 $';
|
|
|
|
---
|
|
-- S E T S E Q U E N C E
|
|
---
|
|
PROCEDURE set_sequence(p_sequence_name IN VARCHAR2
|
|
,p_value IN NUMBER) IS
|
|
--
|
|
v_increment NUMBER;
|
|
v_dummy NUMBER;
|
|
--
|
|
PRAGMA AUTONOMOUS_TRANSACTION;
|
|
--
|
|
BEGIN
|
|
--
|
|
dbms_output.put_line('ready for ' || p_sequence_name);
|
|
FOR v_sequence IN (SELECT us.increment_by
|
|
,us.last_number
|
|
,us.min_value
|
|
,us.max_value
|
|
FROM user_sequences us
|
|
WHERE us.sequence_name = upper(p_sequence_name) AND
|
|
us.last_number != p_value - 1) LOOP
|
|
v_increment := p_value - v_sequence.last_number;
|
|
dbms_output.put_line('last is ' || v_sequence.last_number ||
|
|
' inc was ' || v_sequence.increment_by ||
|
|
' will be ' || v_increment);
|
|
IF (p_value - 1) BETWEEN v_sequence.min_value AND
|
|
v_sequence.max_value THEN
|
|
EXECUTE IMMEDIATE 'alter sequence ' || p_sequence_name ||
|
|
' increment by ' || v_increment;
|
|
EXECUTE IMMEDIATE 'select ' || p_sequence_name ||
|
|
'.nextval FROM dual'
|
|
INTO v_dummy;
|
|
dbms_output.put_line('inc is ' || v_increment || ' nextval is ' ||
|
|
v_dummy);
|
|
EXECUTE IMMEDIATE 'alter sequence ' || p_sequence_name ||
|
|
' increment by ' || v_sequence.increment_by;
|
|
EXECUTE IMMEDIATE 'select ' || p_sequence_name ||
|
|
'.nextval FROM dual'
|
|
INTO v_dummy;
|
|
dbms_output.put_line('inc is ' || v_sequence.increment_by ||
|
|
' nextval is ' || v_dummy);
|
|
ELSE
|
|
dbms_output.put_line((p_value - 1) || ' is not between ' ||
|
|
v_sequence.min_value || ' and ' ||
|
|
v_sequence.max_value);
|
|
END IF;
|
|
END LOOP;
|
|
dbms_output.put_line('finished with ' || p_sequence_name);
|
|
COMMIT;
|
|
--
|
|
END set_sequence;
|
|
|
|
PROCEDURE recompile(status_in IN VARCHAR2 := 'INVALID'
|
|
,name_in IN VARCHAR2 := '%'
|
|
,type_in IN VARCHAR2 := '%'
|
|
,schema_in IN VARCHAR2 := USER) IS
|
|
--
|
|
v_objtype VARCHAR2(100);
|
|
--
|
|
CURSOR obj_cur IS
|
|
SELECT owner
|
|
,object_name
|
|
,object_type
|
|
FROM all_objects
|
|
WHERE (status LIKE upper(status_in) OR upper(status_in) = 'ALL') AND
|
|
object_name LIKE upper(name_in) AND object_name != 'RECOMPILE' AND
|
|
object_type LIKE upper(type_in) AND
|
|
owner LIKE upper(schema_in) AND
|
|
object_type IN ('PACKAGE', 'FUNCTION', 'PROCEDURE',
|
|
'PACKAGE BODY', 'TRIGGER', 'VIEW')
|
|
ORDER BY decode(object_type
|
|
,'PACKAGE'
|
|
,1
|
|
,'FUNCTION'
|
|
,2
|
|
,'PROCEDURE'
|
|
,3
|
|
,'PACKAGE BODY'
|
|
,4
|
|
,'TRIGGER'
|
|
,5
|
|
,'VIEW'
|
|
,6);
|
|
|
|
|
|
BEGIN
|
|
FOR rec IN obj_cur LOOP
|
|
BEGIN
|
|
IF rec.object_type = 'PACKAGE' THEN
|
|
v_objtype := 'PACKAGE SPECIFICATION';
|
|
ELSE
|
|
v_objtype := rec.object_type;
|
|
END IF;
|
|
|
|
dbms_ddl.alter_compile(v_objtype
|
|
,rec.owner
|
|
,rec.object_name);
|
|
|
|
dbms_output.put_line(substr('Compiled ' || v_objtype || ' of ' ||
|
|
rec.owner || '.' || rec.object_name
|
|
,1
|
|
,2000));
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
dbms_output.put_line(substr('Unable to compile ' || rec.owner || '.' ||
|
|
rec.object_name || '(' || v_objtype || ')' ||
|
|
SQLERRM(SQLCODE)
|
|
,1
|
|
,2000));
|
|
END;
|
|
END LOOP;
|
|
END recompile;
|
|
|
|
END cama_support;
|
|
/
|
|
|