mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-07-28 23:16:15 -04:00
110 lines
7.2 KiB
Plaintext
110 lines
7.2 KiB
Plaintext
create or replace package body lazy_deleter as
|
|
|
|
procedure purge_one_object (object_in in number) as
|
|
BEGIN
|
|
DELETE FROM armor WHERE object_id = object_in;
|
|
DELETE FROM battlefield_marker_objects WHERE object_id = object_in;
|
|
DELETE FROM battlefield_participants WHERE region_object_id = object_in;
|
|
DELETE FROM battlefield_participants WHERE character_object_id = object_in;
|
|
DELETE FROM biographies WHERE object_id = object_in;
|
|
DELETE FROM building_objects WHERE object_id = object_in;
|
|
DELETE FROM cell_objects WHERE object_id = object_in;
|
|
DELETE FROM city_objects WHERE object_id = object_in;
|
|
DELETE FROM creature_objects WHERE object_id = object_in;
|
|
DELETE FROM experience_points WHERE object_id = object_in;
|
|
DELETE FROM factory_objects WHERE object_id = object_in;
|
|
DELETE FROM guild_objects WHERE object_id = object_in;
|
|
DELETE FROM harvester_installation_objects WHERE object_id = object_in;
|
|
DELETE FROM installation_objects WHERE object_id = object_in;
|
|
DELETE FROM intangible_objects WHERE object_id = object_in;
|
|
DELETE FROM location_lists WHERE object_id = object_in;
|
|
DELETE FROM manf_schematic_attributes WHERE object_id = object_in;
|
|
DELETE FROM manf_schematic_objects WHERE object_id = object_in;
|
|
DELETE FROM manufacture_inst_objects WHERE object_id = object_in;
|
|
DELETE FROM mission_objects WHERE object_id = object_in;
|
|
DELETE FROM object_variables WHERE object_id = object_in;
|
|
DELETE FROM planet_objects WHERE object_id = object_in;
|
|
DELETE FROM player_objects WHERE object_id = object_in;
|
|
DELETE FROM player_quest_objects WHERE object_id = object_in;
|
|
DELETE FROM property_lists WHERE object_id = object_in;
|
|
DELETE FROM resource_container_objects WHERE object_id = object_in;
|
|
DELETE FROM scripts WHERE object_id = object_in;
|
|
DELETE FROM ship_objects WHERE object_id = object_in;
|
|
DELETE FROM static_objects WHERE object_id = object_in;
|
|
DELETE FROM swg_characters WHERE object_id = object_in;
|
|
DELETE FROM tangible_objects WHERE object_id = object_in;
|
|
DELETE FROM temp_characters WHERE object_id = object_in;
|
|
DELETE FROM token_objects WHERE object_id = object_in;
|
|
DELETE FROM universe_objects WHERE object_id = object_in;
|
|
DELETE FROM vehicle_objects WHERE object_id = object_in;
|
|
DELETE FROM waypoints WHERE object_id = object_in;
|
|
DELETE FROM weapon_objects WHERE object_id = object_in;
|
|
DELETE FROM messages WHERE target = object_in;
|
|
DELETE FROM objects WHERE object_id = object_in;
|
|
END purge_one_object;
|
|
|
|
procedure purge_objects_bulk(p_object_id VAOFSTRING, p_chunk_size number, p_enable_db_logging number )
|
|
as
|
|
|
|
errors NUMBER;
|
|
|
|
begin
|
|
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM armor WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM battlefield_marker_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM battlefield_participants WHERE region_object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM battlefield_participants WHERE character_object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM biographies WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM building_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM cell_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM city_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM creature_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM experience_points WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM factory_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM guild_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM harvester_installation_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM installation_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM intangible_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM location_lists WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM manf_schematic_attributes WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM manf_schematic_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM manufacture_inst_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM mission_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM object_variables WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM planet_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM player_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM player_quest_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM property_lists WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM resource_container_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM scripts WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM static_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM swg_characters WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM tangible_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM temp_characters WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM token_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM universe_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM vehicle_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM waypoints WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM weapon_objects WHERE object_id = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM messages WHERE target = p_object_id(i);
|
|
FORALL i in 1..p_chunk_size SAVE EXCEPTIONS DELETE FROM objects WHERE object_id = p_object_id(i);
|
|
|
|
exception when others then
|
|
if ( p_enable_db_logging > 0 ) then
|
|
errors:=SQL%BULK_EXCEPTIONS.COUNT;
|
|
FOR x IN 1..errors LOOP
|
|
db_error_logger.dblogerror( -SQL%BULK_EXCEPTIONS(x).ERROR_CODE, 'procedure purge_objects_bulk: error occurred in FORALL DELETE during iteration: ' || SQL%BULK_EXCEPTIONS(x).ERROR_INDEX );
|
|
if ( p_enable_db_logging > 1 ) then
|
|
db_error_logger.dblogerror_values( 'lazy deleter', 'object_id' , 'number', p_object_id(to_number(SQL%BULK_EXCEPTIONS(x).ERROR_INDEX)));
|
|
end if;
|
|
END LOOP;
|
|
|
|
else
|
|
NULL;
|
|
end if;
|
|
|
|
end;
|
|
|
|
end lazy_deleter;
|
|
/
|