Files
2014-01-17 07:03:16 -07:00

6467 lines
276 KiB
Plaintext

create or replace package body persister
as
procedure set_clock (p_time number)
as
begin
update clock set last_save_time = p_time, last_save_timestamp = sysdate;
end;
procedure add_player (p_station_id number, p_character_object objectid, p_character_name varchar2, p_normalized_name varchar2)
as
rc number;
begin
insert into players (station_id, character_object,uc_character_name, character_full_name, create_time)
values (p_station_id, p_character_object, p_normalized_name, p_character_name, sysdate);
end;
function delete_character (p_station_id number, p_character_id number, p_delete_minutes number) return number
as
valid_check number;
l_deleted_name number;
begin
l_deleted_name := 0;
select count(*)
into valid_check
from players
where players.character_object = p_character_id
and players.station_id = p_station_id;
if (valid_check = 1) then
-- recursive query needed in order to get bank box contents, etc.
update objects
set
deleted = (select reason_code from delete_reasons where tag='CharacterDeleted'),
deleted_date = sysdate
where object_id in (select object_id
from objects
where deleted = 0
start with load_with = p_character_id
connect by prior object_id = load_with and prior load_with <> load_with);
-- remove character record if the character is new enough (so that players can experiment creating new characters
-- and deleting them right away)
delete players
where players.character_object = p_character_id
and players.station_id = p_station_id
and (sysdate - create_time) * (1440) < p_delete_minutes;
if (sql%rowcount > 0) then
l_deleted_name := 1;
end if;
-- Add a message for all deleted buildings owned by this character. The game will delete the buildings
-- and run appropriate cleanup the next time the buildings are loaded.
for oid in (select o.object_id from objects o, tangible_objects t, building_objects b
where o.object_id = t.object_id
and o.object_id = b.object_id
and t.object_id = b.object_id
and t.owner_id = p_character_id
and o.deleted = 0)
loop
save_message (objectidmanager.get_single_id(), oid.object_id, 'msgDestroyStructure',NULL,0,'Y',1);
end loop;
for oid1 in (select o.object_id from objects o, tangible_objects t, installation_objects b
where o.object_id = t.object_id
and o.object_id = b.object_id
and t.owner_id = p_character_id
and o.deleted = 0)
loop
save_message (objectidmanager.get_single_id(), oid1.object_id, 'msgDestroyStructure',NULL,0,'Y',1);
end loop;
if (l_deleted_name=0) then
return 0;
else
return 2;
end if;
else
return 1;
end if;
end;
procedure update_object_variable_batch (p_object_id vaofstring, p_name_id VAOFNUMBER, p_type VAOFNUMBER, p_value VAOFSTRING, p_chunk_size number)
as
begin
FORALL i in 1..p_chunk_size
UPDATE OBJECT_VARIABLES Set
type = p_type(i),
value = p_value(i),
detached = 0
WHERE
object_id = p_object_id(i) and
name_id = p_name_id(i);
end;
procedure add_object_variable_batch (p_object_id vaofstring, p_name_id VAOFNUMBER, p_type VAOFNUMBER, p_value VAOFSTRING, p_chunk_size number)
as
errors number;
error_index number;
begin
FORALL i in 1..p_chunk_size
INSERT into OBJECT_VARIABLES (
object_id,
name_id,
type,
value,
detached )
VALUES (
p_object_id(i),
p_name_id(i),
p_type(i),
p_value(i),
0 );
exception
when DUP_VAL_ON_INDEX then
for i in 1..p_chunk_size loop
UPDATE OBJECT_VARIABLES Set
type = p_type(i),
value = p_value(i),
detached = 0
WHERE
object_id = p_object_id(i) and
name_id = p_name_id(i);
if SQL%ROWCOUNT=0 then
INSERT into OBJECT_VARIABLES (
object_id,
name_id,
type,
value,
detached )
VALUES (
p_object_id(i),
p_name_id(i),
p_type(i),
p_value(i),
0 );
end if;
end loop;
end;
procedure remove_object_variable_batch (p_object_id vaofstring, p_name_id VAOFNUMBER, p_chunk_size number)
as
begin
FORALL i in 1..p_chunk_size
delete from object_variables
where object_id = p_object_id(i)
and name_id = p_name_id(i);
end;
procedure clear_scripts (p_object_id objectid)
as
begin
delete from scripts
where object_id = p_object_id;
end;
procedure save_message (p_message_id number, p_object_id objectid, p_method varchar, p_data varchar, p_call_time number, p_guaranteed varchar, p_delivery_type int)
as
begin
insert into messages (message_id, target, method, data, call_time, guaranteed, delivery_type)
values (p_message_id, p_object_id, p_method, p_data, p_call_time, p_guaranteed, p_delivery_type);
end;
procedure save_message_batch (p_message_id VAOFSTRING, p_object_id VAOFSTRING, p_method VAOFSTRING, p_data VAOFLONGSTRING, p_call_time VAOFNUMBER, p_guaranteed VAOFSTRING, p_delivery_type VAOFNUMBER, p_chunk_size number, p_enable_db_logging number )
as
begin
forall i in 1..p_chunk_size
insert into messages (message_id, target, method, data, call_time, guaranteed, delivery_type)
values (p_message_id(i), p_object_id(i), p_method(i), p_data(i), p_call_time(i), p_guaranteed(i), p_delivery_type(i));
exception when dup_val_on_index then
for i in 1..p_chunk_size loop
begin
insert into messages (message_id, target, method, data, call_time, guaranteed, delivery_type)
values (p_message_id(i), p_object_id(i), p_method(i), p_data(i), p_call_time(i), p_guaranteed(i), p_delivery_type(i));
exception when dup_val_on_index then
if ( p_enable_db_logging > 0 ) then
db_error_logger.dblogerror( SQLCODE, 'procedure save_message_batch: duplicate rows were sent to the message buffer that resulted in a dup_val_on_index error.');
if ( p_enable_db_logging > 1 ) then
db_error_logger.dblogerror_values( 'messages', 'message_id' , 'number', p_message_id(i));
db_error_logger.dblogerror_values( 'messages', 'target' , 'number', p_object_id(i));
db_error_logger.dblogerror_values( 'messages', 'method' , 'varchar2', p_method(i));
db_error_logger.dblogerror_values( 'messages', 'data' , 'varchar2', p_data(i));
db_error_logger.dblogerror_values( 'messages', 'call_time' , 'number', to_char(p_call_time(i)));
db_error_logger.dblogerror_values( 'messages', 'guaranteed' , 'varchar2', p_guaranteed(i));
db_error_logger.dblogerror_values( 'messages', 'delivery_type' , 'number', to_char(p_delivery_type(i)));
end if;
else
NULL;
end if;
end;
end loop;
end;
procedure acknowledge_message(p_message_id number)
as
begin
delete from messages
where message_id = p_message_id;
end;
procedure acknowledge_message_batch (p_message_id VAOFSTRING, p_chunk_size number, p_enable_db_logging number)
as
begin
forall i in 1..p_chunk_size
delete from messages
where message_id = p_message_id(i);
exception when dup_val_on_index then
for i in 1..p_chunk_size loop
begin
delete from messages
where message_id = p_message_id(i);
exception when dup_val_on_index then
if ( p_enable_db_logging > 0 ) then
db_error_logger.dblogerror( SQLCODE, 'procedure acknowledge_message_batch: duplicate rows were sent to the message buffer that resulted in a dup_val_on_index error.');
if ( p_enable_db_logging > 1 ) then
db_error_logger.dblogerror_values( 'messages', 'message_id' , 'number', p_message_id(i));
end if;
else
NULL;
end if;
end;
end loop;
end;
procedure save_object ( p_x VAOFNUMBER, p_y VAOFNUMBER, p_z VAOFNUMBER, p_quaternion_w VAOFNUMBER, p_quaternion_x VAOFNUMBER, p_quaternion_y VAOFNUMBER, p_quaternion_z VAOFNUMBER, p_node_x VAOFNUMBER, p_node_y VAOFNUMBER, p_node_z VAOFNUMBER, p_object_template_id VAOFNUMBER, p_type_id VAOFNUMBER, p_scene_id VAOFSTRING, p_controller_type VAOFNUMBER, p_deleted VAOFNUMBER, p_object_name VAOFSTRING, p_volume VAOFNUMBER, p_contained_by VAOFSTRING, p_slot_arrangement VAOFNUMBER, p_player_controlled VAOFSTRING, p_cache_version VAOFNUMBER, p_load_contents VAOFSTRING, p_cash_balance VAOFNUMBER, p_bank_balance VAOFNUMBER, p_complexity VAOFNUMBER, p_name_string_table VAOFSTRING, p_name_string_text VAOFSTRING, p_static_item_name VAOFSTRING, p_static_item_version VAOFNUMBER, p_conversion_id VAOFNUMBER, p_load_with VAOFSTRING,
p_objvar_0_name VAOFSTRING,p_objvar_0_type VAOFNUMBER,p_objvar_0_value VAOFSTRING,p_objvar_1_name VAOFSTRING,p_objvar_1_type VAOFNUMBER,p_objvar_1_value VAOFSTRING,p_objvar_2_name VAOFSTRING,p_objvar_2_type VAOFNUMBER,p_objvar_2_value VAOFSTRING,p_objvar_3_name VAOFSTRING,p_objvar_3_type VAOFNUMBER,p_objvar_3_value VAOFSTRING,p_objvar_4_name VAOFSTRING,p_objvar_4_type VAOFNUMBER,p_objvar_4_value VAOFSTRING,p_objvar_5_name VAOFSTRING,p_objvar_5_type VAOFNUMBER,p_objvar_5_value VAOFSTRING,p_objvar_6_name VAOFSTRING,p_objvar_6_type VAOFNUMBER,p_objvar_6_value VAOFSTRING,p_objvar_7_name VAOFSTRING,p_objvar_7_type VAOFNUMBER,p_objvar_7_value VAOFSTRING,p_objvar_8_name VAOFSTRING,p_objvar_8_type VAOFNUMBER,p_objvar_8_value VAOFSTRING,p_objvar_9_name VAOFSTRING,p_objvar_9_type VAOFNUMBER,p_objvar_9_value VAOFSTRING, p_objvar_10_name VAOFSTRING,p_objvar_10_type VAOFNUMBER,p_objvar_10_value VAOFSTRING,p_objvar_11_name VAOFSTRING,p_objvar_11_type VAOFNUMBER,p_objvar_11_value VAOFSTRING,p_objvar_12_name VAOFSTRING,p_objvar_12_type VAOFNUMBER,p_objvar_12_value VAOFSTRING,p_objvar_13_name VAOFSTRING,p_objvar_13_type VAOFNUMBER,p_objvar_13_value VAOFSTRING,p_objvar_14_name VAOFSTRING,p_objvar_14_type VAOFNUMBER,p_objvar_14_value VAOFSTRING,p_objvar_15_name VAOFSTRING,p_objvar_15_type VAOFNUMBER,p_objvar_15_value VAOFSTRING,p_objvar_16_name VAOFSTRING,p_objvar_16_type VAOFNUMBER,p_objvar_16_value VAOFSTRING,p_objvar_17_name VAOFSTRING,p_objvar_17_type VAOFNUMBER,p_objvar_17_value VAOFSTRING,p_objvar_18_name VAOFSTRING,p_objvar_18_type VAOFNUMBER,p_objvar_18_value VAOFSTRING,p_objvar_19_name VAOFSTRING,p_objvar_19_type VAOFNUMBER,p_objvar_19_value VAOFSTRING, p_script_list VAOFLONGSTRING, p_object_id VAOFSTRING, p_chunk_size number)
as
cache_update VAOFNUMBER;
begin
cache_update := VAOFNUMBER(); -- initialize VARRAY object
cache_update.extend(p_chunk_size); -- allocate VARRAY object memory to chunk size
-- create cache_update array for use in bulk update
FOR i IN 1..p_chunk_size
LOOP
if
((p_x(i) is not null)
or (p_y(i) is not null)
or (p_z(i) is not null)
or (p_quaternion_w(i) is not null)
or (p_quaternion_x(i) is not null)
or (p_quaternion_y(i) is not null)
or (p_quaternion_z(i) is not null)
or (p_contained_by(i) is not null)
or (p_cache_version(i) is not null))
then
cache_update(i) := 0;
else
cache_update(i) := NULL;
end if;
END LOOP;
-- process deletes
FORALL i IN 1..p_chunk_size
update objects set
deleted = p_deleted(i),
deleted_date = sysdate,
load_with = NULL
where object_id = p_object_id(i) and
p_deleted(i) <> 0;
-- process updates
FORALL i IN 1..p_chunk_size
update objects set
x = nvl(p_x(i),x),
y = nvl(p_y(i),y),
z = nvl(p_z(i),z),
quaternion_w = nvl(p_quaternion_w(i),quaternion_w),
quaternion_x = nvl(p_quaternion_x(i),quaternion_x),
quaternion_y = nvl(p_quaternion_y(i),quaternion_y),
quaternion_z = nvl(p_quaternion_z(i),quaternion_z),
node_x = nvl(p_node_x(i),node_x),
node_y = nvl(p_node_y(i),node_y),
node_z = nvl(p_node_z(i),node_z),
object_template_id = nvl(p_object_template_id(i),object_template_id),
type_id = nvl(p_type_id(i),type_id),
scene_id = nvl(p_scene_id(i),scene_id),
controller_type = nvl(p_controller_type(i),controller_type),
deleted = nvl(p_deleted(i),deleted),
object_name = nvl(p_object_name(i),object_name),
volume = nvl(p_volume(i),volume),
contained_by = nvl(p_contained_by(i),contained_by),
slot_arrangement = nvl(p_slot_arrangement(i),slot_arrangement),
player_controlled = nvl(p_player_controlled(i),player_controlled),
cache_version = nvl(cache_update(i),cache_version),
load_contents = nvl(p_load_contents(i),load_contents),
cash_balance = nvl(p_cash_balance(i),cash_balance),
bank_balance = nvl(p_bank_balance(i),bank_balance),
complexity = nvl(p_complexity(i),complexity),
name_string_table = nvl(p_name_string_table(i),name_string_table),
name_string_text = nvl(p_name_string_text(i),name_string_text),
static_item_name = nvl(p_static_item_name(i),static_item_name),
static_item_version = nvl(p_static_item_version(i),static_item_version),
conversion_id = nvl(p_conversion_id(i),conversion_id),
load_with = nvl(p_load_with(i),load_with),
objvar_0_name = nvl(p_objvar_0_name(i), objvar_0_name),
objvar_0_type = nvl(p_objvar_0_type(i), objvar_0_type),
objvar_0_value= nvl(p_objvar_0_value(i),objvar_0_value),
objvar_1_name = nvl(p_objvar_1_name(i), objvar_1_name),
objvar_1_type = nvl(p_objvar_1_type(i), objvar_1_type),
objvar_1_value= nvl(p_objvar_1_value(i),objvar_1_value),
objvar_2_name = nvl(p_objvar_2_name(i), objvar_2_name),
objvar_2_type = nvl(p_objvar_2_type(i), objvar_2_type),
objvar_2_value= nvl(p_objvar_2_value(i),objvar_2_value),
objvar_3_name = nvl(p_objvar_3_name(i), objvar_3_name),
objvar_3_type = nvl(p_objvar_3_type(i), objvar_3_type),
objvar_3_value= nvl(p_objvar_3_value(i),objvar_3_value),
objvar_4_name = nvl(p_objvar_4_name(i), objvar_4_name),
objvar_4_type = nvl(p_objvar_4_type(i), objvar_4_type),
objvar_4_value= nvl(p_objvar_4_value(i),objvar_4_value),
objvar_5_name = nvl(p_objvar_5_name(i), objvar_5_name),
objvar_5_type = nvl(p_objvar_5_type(i), objvar_5_type),
objvar_5_value= nvl(p_objvar_5_value(i),objvar_5_value),
objvar_6_name = nvl(p_objvar_6_name(i), objvar_6_name),
objvar_6_type = nvl(p_objvar_6_type(i), objvar_6_type),
objvar_6_value= nvl(p_objvar_6_value(i),objvar_6_value),
objvar_7_name = nvl(p_objvar_7_name(i), objvar_7_name),
objvar_7_type = nvl(p_objvar_7_type(i), objvar_7_type),
objvar_7_value= nvl(p_objvar_7_value(i),objvar_7_value),
objvar_8_name = nvl(p_objvar_8_name(i), objvar_8_name),
objvar_8_type = nvl(p_objvar_8_type(i), objvar_8_type),
objvar_8_value= nvl(p_objvar_8_value(i),objvar_8_value),
objvar_9_name = nvl(p_objvar_9_name(i), objvar_9_name),
objvar_9_type = nvl(p_objvar_9_type(i), objvar_9_type),
objvar_9_value= nvl(p_objvar_9_value(i),objvar_9_value),
objvar_10_name = nvl(p_objvar_10_name(i), objvar_10_name),
objvar_10_type = nvl(p_objvar_10_type(i), objvar_10_type),
objvar_10_value= nvl(p_objvar_10_value(i),objvar_10_value),
objvar_11_name = nvl(p_objvar_11_name(i), objvar_11_name),
objvar_11_type = nvl(p_objvar_11_type(i), objvar_11_type),
objvar_11_value= nvl(p_objvar_11_value(i),objvar_11_value),
objvar_12_name = nvl(p_objvar_12_name(i), objvar_12_name),
objvar_12_type = nvl(p_objvar_12_type(i), objvar_12_type),
objvar_12_value= nvl(p_objvar_12_value(i),objvar_12_value),
objvar_13_name = nvl(p_objvar_13_name(i), objvar_13_name),
objvar_13_type = nvl(p_objvar_13_type(i), objvar_13_type),
objvar_13_value= nvl(p_objvar_13_value(i),objvar_13_value),
objvar_14_name = nvl(p_objvar_14_name(i), objvar_14_name),
objvar_14_type = nvl(p_objvar_14_type(i), objvar_14_type),
objvar_14_value= nvl(p_objvar_14_value(i),objvar_14_value),
objvar_15_name = nvl(p_objvar_15_name(i), objvar_15_name),
objvar_15_type = nvl(p_objvar_15_type(i), objvar_15_type),
objvar_15_value= nvl(p_objvar_15_value(i),objvar_15_value),
objvar_16_name = nvl(p_objvar_16_name(i), objvar_16_name),
objvar_16_type = nvl(p_objvar_16_type(i), objvar_16_type),
objvar_16_value= nvl(p_objvar_16_value(i),objvar_16_value),
objvar_17_name = nvl(p_objvar_17_name(i), objvar_17_name),
objvar_17_type = nvl(p_objvar_17_type(i), objvar_17_type),
objvar_17_value= nvl(p_objvar_17_value(i),objvar_17_value),
objvar_18_name = nvl(p_objvar_18_name(i), objvar_18_name),
objvar_18_type = nvl(p_objvar_18_type(i), objvar_18_type),
objvar_18_value= nvl(p_objvar_18_value(i),objvar_18_value),
objvar_19_name = nvl(p_objvar_19_name(i), objvar_19_name),
objvar_19_type = nvl(p_objvar_19_type(i), objvar_19_type),
objvar_19_value= nvl(p_objvar_19_value(i),objvar_19_value),
script_list = nvl(p_script_list(i),script_list)
where
object_id=p_object_id(i) and
(p_deleted(i) = 0 or p_deleted(i) is null);
cache_update.delete; -- cleanup - delete VARRAY list
end;
procedure add_object ( p_x VAOFNUMBER, p_y VAOFNUMBER, p_z VAOFNUMBER, p_quaternion_w VAOFNUMBER, p_quaternion_x VAOFNUMBER, p_quaternion_y VAOFNUMBER, p_quaternion_z VAOFNUMBER, p_node_x VAOFNUMBER, p_node_y VAOFNUMBER, p_node_z VAOFNUMBER, p_object_template_id VAOFNUMBER, p_type_id VAOFNUMBER, p_scene_id VAOFSTRING, p_controller_type VAOFNUMBER, p_deleted VAOFNUMBER, p_object_name VAOFSTRING, p_volume VAOFNUMBER, p_contained_by VAOFSTRING, p_slot_arrangement VAOFNUMBER, p_player_controlled VAOFSTRING, p_cache_version VAOFNUMBER, p_load_contents VAOFSTRING, p_cash_balance VAOFNUMBER, p_bank_balance VAOFNUMBER, p_complexity VAOFNUMBER, p_name_string_table VAOFSTRING, p_name_string_text VAOFSTRING, p_static_item_name VAOFSTRING, p_static_item_version VAOFNUMBER, p_conversion_id VAOFNUMBER, p_load_with VAOFSTRING,
p_objvar_0_name VAOFSTRING,p_objvar_0_type VAOFNUMBER,p_objvar_0_value VAOFSTRING,p_objvar_1_name VAOFSTRING,p_objvar_1_type VAOFNUMBER,p_objvar_1_value VAOFSTRING,p_objvar_2_name VAOFSTRING,p_objvar_2_type VAOFNUMBER,p_objvar_2_value VAOFSTRING,p_objvar_3_name VAOFSTRING,p_objvar_3_type VAOFNUMBER,p_objvar_3_value VAOFSTRING,p_objvar_4_name VAOFSTRING,p_objvar_4_type VAOFNUMBER,p_objvar_4_value VAOFSTRING,p_objvar_5_name VAOFSTRING,p_objvar_5_type VAOFNUMBER,p_objvar_5_value VAOFSTRING,p_objvar_6_name VAOFSTRING,p_objvar_6_type VAOFNUMBER,p_objvar_6_value VAOFSTRING,p_objvar_7_name VAOFSTRING,p_objvar_7_type VAOFNUMBER,p_objvar_7_value VAOFSTRING,p_objvar_8_name VAOFSTRING,p_objvar_8_type VAOFNUMBER,p_objvar_8_value VAOFSTRING,p_objvar_9_name VAOFSTRING,p_objvar_9_type VAOFNUMBER,p_objvar_9_value VAOFSTRING, p_objvar_10_name VAOFSTRING,p_objvar_10_type VAOFNUMBER,p_objvar_10_value VAOFSTRING,p_objvar_11_name VAOFSTRING,p_objvar_11_type VAOFNUMBER,p_objvar_11_value VAOFSTRING,p_objvar_12_name VAOFSTRING,p_objvar_12_type VAOFNUMBER,p_objvar_12_value VAOFSTRING,p_objvar_13_name VAOFSTRING,p_objvar_13_type VAOFNUMBER,p_objvar_13_value VAOFSTRING,p_objvar_14_name VAOFSTRING,p_objvar_14_type VAOFNUMBER,p_objvar_14_value VAOFSTRING,p_objvar_15_name VAOFSTRING,p_objvar_15_type VAOFNUMBER,p_objvar_15_value VAOFSTRING,p_objvar_16_name VAOFSTRING,p_objvar_16_type VAOFNUMBER,p_objvar_16_value VAOFSTRING,p_objvar_17_name VAOFSTRING,p_objvar_17_type VAOFNUMBER,p_objvar_17_value VAOFSTRING,p_objvar_18_name VAOFSTRING,p_objvar_18_type VAOFNUMBER,p_objvar_18_value VAOFSTRING,p_objvar_19_name VAOFSTRING,p_objvar_19_type VAOFNUMBER,p_objvar_19_value VAOFSTRING, p_script_list VAOFLONGSTRING, p_object_id VAOFSTRING, p_chunk_size number)
as
p_cache_update NUMBER;
begin
FORALL i IN 1..p_chunk_size
insert into objects
(
x,
y,
z,
quaternion_w,
quaternion_x,
quaternion_y,
quaternion_z,
node_x,
node_y,
node_z,
object_template_id,
type_id,
scene_id,
controller_type,
deleted,
object_name,
volume,
contained_by,
slot_arrangement,
player_controlled,
cache_version,
load_contents,
cash_balance,
bank_balance,
complexity,
name_string_table,
name_string_text,
static_item_name,
static_item_version,
conversion_id,
load_with,
objvar_0_name,
objvar_0_type,
objvar_0_value,
objvar_1_name,
objvar_1_type,
objvar_1_value,
objvar_2_name,
objvar_2_type,
objvar_2_value,
objvar_3_name,
objvar_3_type,
objvar_3_value,
objvar_4_name,
objvar_4_type,
objvar_4_value,
objvar_5_name,
objvar_5_type,
objvar_5_value,
objvar_6_name,
objvar_6_type,
objvar_6_value,
objvar_7_name,
objvar_7_type,
objvar_7_value,
objvar_8_name,
objvar_8_type,
objvar_8_value,
objvar_9_name,
objvar_9_type,
objvar_9_value,
objvar_10_name,
objvar_10_type,
objvar_10_value,
objvar_11_name,
objvar_11_type,
objvar_11_value,
objvar_12_name,
objvar_12_type,
objvar_12_value,
objvar_13_name,
objvar_13_type,
objvar_13_value,
objvar_14_name,
objvar_14_type,
objvar_14_value,
objvar_15_name,
objvar_15_type,
objvar_15_value,
objvar_16_name,
objvar_16_type,
objvar_16_value,
objvar_17_name,
objvar_17_type,
objvar_17_value,
objvar_18_name,
objvar_18_type,
objvar_18_value,
objvar_19_name,
objvar_19_type,
objvar_19_value,
script_list,
object_id
)
values
(
p_x(i),
p_y(i),
p_z(i),
p_quaternion_w(i),
p_quaternion_x(i),
p_quaternion_y(i),
p_quaternion_z(i),
p_node_x(i),
p_node_y(i),
p_node_z(i),
p_object_template_id(i),
p_type_id(i),
p_scene_id(i),
p_controller_type(i),
p_deleted(i),
p_object_name(i),
p_volume(i),
p_contained_by(i),
p_slot_arrangement(i),
p_player_controlled(i),
0,
p_load_contents(i),
p_cash_balance(i),
p_bank_balance(i),
p_complexity(i),
p_name_string_table(i),
p_name_string_text(i),
p_static_item_name(i),
p_static_item_version(i),
p_conversion_id(i),
p_load_with(i),
p_objvar_0_name(i),
p_objvar_0_type(i),
p_objvar_0_value(i),
p_objvar_1_name(i),
p_objvar_1_type(i),
p_objvar_1_value(i),
p_objvar_2_name(i),
p_objvar_2_type(i),
p_objvar_2_value(i),
p_objvar_3_name(i),
p_objvar_3_type(i),
p_objvar_3_value(i),
p_objvar_4_name(i),
p_objvar_4_type(i),
p_objvar_4_value(i),
p_objvar_5_name(i),
p_objvar_5_type(i),
p_objvar_5_value(i),
p_objvar_6_name(i),
p_objvar_6_type(i),
p_objvar_6_value(i),
p_objvar_7_name(i),
p_objvar_7_type(i),
p_objvar_7_value(i),
p_objvar_8_name(i),
p_objvar_8_type(i),
p_objvar_8_value(i),
p_objvar_9_name(i),
p_objvar_9_type(i),
p_objvar_9_value(i),
p_objvar_10_name(i),
p_objvar_10_type(i),
p_objvar_10_value(i),
p_objvar_11_name(i),
p_objvar_11_type(i),
p_objvar_11_value(i),
p_objvar_12_name(i),
p_objvar_12_type(i),
p_objvar_12_value(i),
p_objvar_13_name(i),
p_objvar_13_type(i),
p_objvar_13_value(i),
p_objvar_14_name(i),
p_objvar_14_type(i),
p_objvar_14_value(i),
p_objvar_15_name(i),
p_objvar_15_type(i),
p_objvar_15_value(i),
p_objvar_16_name(i),
p_objvar_16_type(i),
p_objvar_16_value(i),
p_objvar_17_name(i),
p_objvar_17_type(i),
p_objvar_17_value(i),
p_objvar_18_name(i),
p_objvar_18_type(i),
p_objvar_18_value(i),
p_objvar_19_name(i),
p_objvar_19_type(i),
p_objvar_19_value(i),
p_script_list(i),
p_object_id(i)
);
exception when dup_val_on_index then
for i in 1..p_chunk_size loop
if
((p_x(i) is not null)
or (p_y(i) is not null)
or (p_z(i) is not null)
or (p_quaternion_w(i) is not null)
or (p_quaternion_x(i) is not null)
or (p_quaternion_y(i) is not null)
or (p_quaternion_z(i) is not null)
or (p_contained_by(i) is not null)
or (p_cache_version(i) is not null))
then
p_cache_update := 0;
else
p_cache_update := NULL;
end if;
UPDATE OBJECTS Set
x = nvl(p_x(i),x),
y = nvl(p_y(i),y),
z = nvl(p_z(i),z),
quaternion_w = nvl(p_quaternion_w(i),quaternion_w),
quaternion_x = nvl(p_quaternion_x(i),quaternion_x),
quaternion_y = nvl(p_quaternion_y(i),quaternion_y),
quaternion_z = nvl(p_quaternion_z(i),quaternion_z),
node_x = nvl(p_node_x(i),node_x),
node_y = nvl(p_node_y(i),node_y),
node_z = nvl(p_node_z(i),node_z),
object_template_id = nvl(p_object_template_id(i),object_template_id),
type_id = nvl(p_type_id(i),type_id),
scene_id = nvl(p_scene_id(i),scene_id),
controller_type = nvl(p_controller_type(i),controller_type),
deleted = nvl(p_deleted(i),deleted),
object_name = nvl(p_object_name(i),object_name),
volume = nvl(p_volume(i),volume),
contained_by = nvl(p_contained_by(i),contained_by),
slot_arrangement = nvl(p_slot_arrangement(i),slot_arrangement),
player_controlled = nvl(p_player_controlled(i),player_controlled),
cache_version = nvl(p_cache_update,cache_version),
load_contents = nvl(p_load_contents(i),load_contents),
cash_balance = nvl(p_cash_balance(i),cash_balance),
bank_balance = nvl(p_bank_balance(i),bank_balance),
complexity = nvl(p_complexity(i),complexity),
name_string_table = nvl(p_name_string_table(i),name_string_table),
name_string_text = nvl(p_name_string_text(i),name_string_text),
static_item_name = nvl(p_static_item_name(i),static_item_name),
static_item_version = nvl(p_static_item_version(i),static_item_version),
conversion_id = nvl(p_conversion_id(i),conversion_id),
load_with = nvl(p_load_with(i),load_with),
objvar_0_name = nvl(p_objvar_0_name(i), objvar_0_name),
objvar_0_type = nvl(p_objvar_0_type(i), objvar_0_type),
objvar_0_value= nvl(p_objvar_0_value(i),objvar_0_value),
objvar_1_name = nvl(p_objvar_1_name(i), objvar_1_name),
objvar_1_type = nvl(p_objvar_1_type(i), objvar_1_type),
objvar_1_value= nvl(p_objvar_1_value(i),objvar_1_value),
objvar_2_name = nvl(p_objvar_2_name(i), objvar_2_name),
objvar_2_type = nvl(p_objvar_2_type(i), objvar_2_type),
objvar_2_value= nvl(p_objvar_2_value(i),objvar_2_value),
objvar_3_name = nvl(p_objvar_3_name(i), objvar_3_name),
objvar_3_type = nvl(p_objvar_3_type(i), objvar_3_type),
objvar_3_value= nvl(p_objvar_3_value(i),objvar_3_value),
objvar_4_name = nvl(p_objvar_4_name(i), objvar_4_name),
objvar_4_type = nvl(p_objvar_4_type(i), objvar_4_type),
objvar_4_value= nvl(p_objvar_4_value(i),objvar_4_value),
objvar_5_name = nvl(p_objvar_5_name(i), objvar_5_name),
objvar_5_type = nvl(p_objvar_5_type(i), objvar_5_type),
objvar_5_value= nvl(p_objvar_5_value(i),objvar_5_value),
objvar_6_name = nvl(p_objvar_6_name(i), objvar_6_name),
objvar_6_type = nvl(p_objvar_6_type(i), objvar_6_type),
objvar_6_value= nvl(p_objvar_6_value(i),objvar_6_value),
objvar_7_name = nvl(p_objvar_7_name(i), objvar_7_name),
objvar_7_type = nvl(p_objvar_7_type(i), objvar_7_type),
objvar_7_value= nvl(p_objvar_7_value(i),objvar_7_value),
objvar_8_name = nvl(p_objvar_8_name(i), objvar_8_name),
objvar_8_type = nvl(p_objvar_8_type(i), objvar_8_type),
objvar_8_value= nvl(p_objvar_8_value(i),objvar_8_value),
objvar_9_name = nvl(p_objvar_9_name(i), objvar_9_name),
objvar_9_type = nvl(p_objvar_9_type(i), objvar_9_type),
objvar_9_value= nvl(p_objvar_9_value(i),objvar_9_value),
objvar_10_name = nvl(p_objvar_10_name(i), objvar_10_name),
objvar_10_type = nvl(p_objvar_10_type(i), objvar_10_type),
objvar_10_value= nvl(p_objvar_10_value(i),objvar_10_value),
objvar_11_name = nvl(p_objvar_11_name(i), objvar_11_name),
objvar_11_type = nvl(p_objvar_11_type(i), objvar_11_type),
objvar_11_value= nvl(p_objvar_11_value(i),objvar_11_value),
objvar_12_name = nvl(p_objvar_12_name(i), objvar_12_name),
objvar_12_type = nvl(p_objvar_12_type(i), objvar_12_type),
objvar_12_value= nvl(p_objvar_12_value(i),objvar_12_value),
objvar_13_name = nvl(p_objvar_13_name(i), objvar_13_name),
objvar_13_type = nvl(p_objvar_13_type(i), objvar_13_type),
objvar_13_value= nvl(p_objvar_13_value(i),objvar_13_value),
objvar_14_name = nvl(p_objvar_14_name(i), objvar_14_name),
objvar_14_type = nvl(p_objvar_14_type(i), objvar_14_type),
objvar_14_value= nvl(p_objvar_14_value(i),objvar_14_value),
objvar_15_name = nvl(p_objvar_15_name(i), objvar_15_name),
objvar_15_type = nvl(p_objvar_15_type(i), objvar_15_type),
objvar_15_value= nvl(p_objvar_15_value(i),objvar_15_value),
objvar_16_name = nvl(p_objvar_16_name(i), objvar_16_name),
objvar_16_type = nvl(p_objvar_16_type(i), objvar_16_type),
objvar_16_value= nvl(p_objvar_16_value(i),objvar_16_value),
objvar_17_name = nvl(p_objvar_17_name(i), objvar_17_name),
objvar_17_type = nvl(p_objvar_17_type(i), objvar_17_type),
objvar_17_value= nvl(p_objvar_17_value(i),objvar_17_value),
objvar_18_name = nvl(p_objvar_18_name(i), objvar_18_name),
objvar_18_type = nvl(p_objvar_18_type(i), objvar_18_type),
objvar_18_value= nvl(p_objvar_18_value(i),objvar_18_value),
objvar_19_name = nvl(p_objvar_19_name(i), objvar_19_name),
objvar_19_type = nvl(p_objvar_19_type(i), objvar_19_type),
objvar_19_value= nvl(p_objvar_19_value(i),objvar_19_value),
script_list = nvl(p_script_list(i), script_list)
WHERE
object_id=p_object_id(i) and
p_deleted(i) = 0;
if SQL%ROWCOUNT=0 then
insert into objects
(
x,
y,
z,
quaternion_w,
quaternion_x,
quaternion_y,
quaternion_z,
node_x,
node_y,
node_z,
object_template_id,
type_id,
scene_id,
controller_type,
deleted,
object_name,
volume,
contained_by,
slot_arrangement,
player_controlled,
cache_version,
load_contents,
cash_balance,
bank_balance,
complexity,
name_string_table,
name_string_text,
static_item_name,
static_item_version,
conversion_id,
load_with,
objvar_0_name,
objvar_0_type,
objvar_0_value,
objvar_1_name,
objvar_1_type,
objvar_1_value,
objvar_2_name,
objvar_2_type,
objvar_2_value,
objvar_3_name,
objvar_3_type,
objvar_3_value,
objvar_4_name,
objvar_4_type,
objvar_4_value,
objvar_5_name,
objvar_5_type,
objvar_5_value,
objvar_6_name,
objvar_6_type,
objvar_6_value,
objvar_7_name,
objvar_7_type,
objvar_7_value,
objvar_8_name,
objvar_8_type,
objvar_8_value,
objvar_9_name,
objvar_9_type,
objvar_9_value,
objvar_10_name,
objvar_10_type,
objvar_10_value,
objvar_11_name,
objvar_11_type,
objvar_11_value,
objvar_12_name,
objvar_12_type,
objvar_12_value,
objvar_13_name,
objvar_13_type,
objvar_13_value,
objvar_14_name,
objvar_14_type,
objvar_14_value,
objvar_15_name,
objvar_15_type,
objvar_15_value,
objvar_16_name,
objvar_16_type,
objvar_16_value,
objvar_17_name,
objvar_17_type,
objvar_17_value,
objvar_18_name,
objvar_18_type,
objvar_18_value,
objvar_19_name,
objvar_19_type,
objvar_19_value,
script_list,
object_id
)
values
(
p_x(i),
p_y(i),
p_z(i),
p_quaternion_w(i),
p_quaternion_x(i),
p_quaternion_y(i),
p_quaternion_z(i),
p_node_x(i),
p_node_y(i),
p_node_z(i),
p_object_template_id(i),
p_type_id(i),
p_scene_id(i),
p_controller_type(i),
p_deleted(i),
p_object_name(i),
p_volume(i),
p_contained_by(i),
p_slot_arrangement(i),
p_player_controlled(i),
0,
p_load_contents(i),
p_cash_balance(i),
p_bank_balance(i),
p_complexity(i),
p_name_string_table(i),
p_name_string_text(i),
p_static_item_name(i),
p_static_item_version(i),
p_conversion_id(i),
p_load_with(i),
p_objvar_0_name(i),
p_objvar_0_type(i),
p_objvar_0_value(i),
p_objvar_1_name(i),
p_objvar_1_type(i),
p_objvar_1_value(i),
p_objvar_2_name(i),
p_objvar_2_type(i),
p_objvar_2_value(i),
p_objvar_3_name(i),
p_objvar_3_type(i),
p_objvar_3_value(i),
p_objvar_4_name(i),
p_objvar_4_type(i),
p_objvar_4_value(i),
p_objvar_5_name(i),
p_objvar_5_type(i),
p_objvar_5_value(i),
p_objvar_6_name(i),
p_objvar_6_type(i),
p_objvar_6_value(i),
p_objvar_7_name(i),
p_objvar_7_type(i),
p_objvar_7_value(i),
p_objvar_8_name(i),
p_objvar_8_type(i),
p_objvar_8_value(i),
p_objvar_9_name(i),
p_objvar_9_type(i),
p_objvar_9_value(i),
p_objvar_10_name(i),
p_objvar_10_type(i),
p_objvar_10_value(i),
p_objvar_11_name(i),
p_objvar_11_type(i),
p_objvar_11_value(i),
p_objvar_12_name(i),
p_objvar_12_type(i),
p_objvar_12_value(i),
p_objvar_13_name(i),
p_objvar_13_type(i),
p_objvar_13_value(i),
p_objvar_14_name(i),
p_objvar_14_type(i),
p_objvar_14_value(i),
p_objvar_15_name(i),
p_objvar_15_type(i),
p_objvar_15_value(i),
p_objvar_16_name(i),
p_objvar_16_type(i),
p_objvar_16_value(i),
p_objvar_17_name(i),
p_objvar_17_type(i),
p_objvar_17_value(i),
p_objvar_18_name(i),
p_objvar_18_type(i),
p_objvar_18_value(i),
p_objvar_19_name(i),
p_objvar_19_type(i),
p_objvar_19_value(i),
p_script_list(i),
p_object_id(i)
);
end if;
end loop;
end;
procedure remove_object ( p_object_id VAOFSTRING, p_chunk_size number)
as
begin
FORALL i IN 1..p_chunk_size
delete from objects
where object_id = p_object_id(i);
end;
procedure save_manf_schem_attribute
(
p_action number,
p_object_id objectid,
p_attribute_type varchar2,
p_value number
)
as
begin
if (p_action = 0) then
delete manf_schematic_attributes
where object_id = p_object_id
and attribute_type = p_attribute_type;
else
update manf_schematic_attributes
set value = p_value
where
object_id = p_object_id
and attribute_type = p_attribute_type;
if (sql%rowcount = 0) then
insert into manf_schematic_attributes (object_id, attribute_type, value)
values (p_object_id, p_attribute_type, p_value);
end if;
end if;
end;
procedure update_property_list
(
p_object_id objectid,
p_list_id number,
p_operation number,
p_value varchar2
)
as
begin
-- Operations:
-- 0=ERASE
-- 1=INSERT
-- 2=CLEAR
IF p_operation = 0 THEN
delete from property_lists
where object_id = p_object_id
and list_id = p_list_id
and value = p_value;
ELSIF p_operation = 1 THEN
insert into property_lists (object_id, list_id, value)
values (p_object_id, p_list_id, p_value);
ELSIF p_operation = 2 THEN
delete from property_lists
where object_id = p_object_id
and list_id = p_list_id;
ELSE
raise_application_error(-20000,'Invalid operation code passed to update_command.');
END IF;
exception when dup_val_on_index then
null;
end;
procedure update_property_list_batch (p_object_id VAOFSTRING, p_list_id VAOFNUMBER, p_operation number, p_value VAOFSTRING, p_chunk_size number, p_enable_db_logging number )
as
begin
-- Operations:
-- 0=ERASE
-- 1=INSERT
-- 2=CLEAR
if (p_operation = 0) THEN
FORALL i IN 1.. p_chunk_size
delete from property_lists
where object_id = p_object_id(i)
and list_id = p_list_id(i)
and value = p_value(i);
ELSIF (p_operation = 1) THEN
FORALL i IN 1.. p_chunk_size
insert into property_lists (object_id, list_id, value)
values (p_object_id(i), p_list_id(i), p_value(i));
ELSIF (p_operation = 2) THEN
FORALL i IN 1.. p_chunk_size
delete from property_lists
where object_id = p_object_id(i)
and list_id = p_list_id(i);
ELSE
raise_application_error(-20000,'Invalid operation code passed to update_command.');
END IF;
exception when dup_val_on_index then
for i in 1..p_chunk_size loop
begin
insert into property_lists
(
property_lists.list_id,
property_lists.value,
property_lists.object_id
)
VALUES
(
p_list_id(i),
p_value(i),
p_object_id(i)
);
exception when dup_val_on_index then
if ( p_enable_db_logging > 0 ) then
db_error_logger.dblogerror( SQLCODE, 'procedure update_property_list_batch: duplicate rows were sent to the property list buffer that resulted in a dup_val_on_index error.');
if ( p_enable_db_logging > 1 ) then
db_error_logger.dblogerror_values( 'property_lists', 'object_id' , 'number', p_object_id(i));
db_error_logger.dblogerror_values( 'property_lists', 'list_id' , 'number', to_char(p_list_id(i)));
db_error_logger.dblogerror_values( 'property_lists', 'value' , 'varchar2', p_value(i));
end if;
else
NULL;
end if;
end;
end loop;
end;
procedure save_armor
(
p_object_template varchar2,
p_effectiveness number,
p_integrity number,
p_special_protections varchar2,
p_encumberance_0 number,
p_encumberance_1 number,
p_encumberance_2 number,
p_encumberance_3 number,
p_encumberance_4 number,
p_encumberance_5 number,
p_encumberance_6 number,
p_encumberance_7 number,
p_encumberance_8 number,
p_layer number,
p_object_id objectid
)
as
begin
-- Note: armor always updates all properties
update armor
set
object_template = p_object_template,
effectiveness = p_effectiveness,
integrity = p_integrity,
special_protections = p_special_protections,
encumberance_0 = p_encumberance_0,
encumberance_1 = p_encumberance_1,
encumberance_2 = p_encumberance_2,
encumberance_3 = p_encumberance_3,
encumberance_4 = p_encumberance_4,
encumberance_5 = p_encumberance_5,
encumberance_6 = p_encumberance_6,
encumberance_7 = p_encumberance_7,
encumberance_8 = p_encumberance_8
where
layer = p_layer
and object_id = p_object_id;
end;
procedure add_armor
(
p_object_template varchar2,
p_effectiveness number,
p_integrity number,
p_special_protections varchar2,
p_encumberance_0 number,
p_encumberance_1 number,
p_encumberance_2 number,
p_encumberance_3 number,
p_encumberance_4 number,
p_encumberance_5 number,
p_encumberance_6 number,
p_encumberance_7 number,
p_encumberance_8 number,
p_layer number,
p_object_id objectid
)
as
begin
insert into armor
(
object_template,
effectiveness,
integrity,
special_protections,
encumberance_0,
encumberance_1,
encumberance_2,
encumberance_3,
encumberance_4,
encumberance_5,
encumberance_6,
encumberance_7,
encumberance_8,
layer,
object_id
)
values
(
p_object_template,
p_effectiveness,
p_integrity,
p_special_protections,
p_encumberance_0,
p_encumberance_1,
p_encumberance_2,
p_encumberance_3,
p_encumberance_4,
p_encumberance_5,
p_encumberance_6,
p_encumberance_7,
p_encumberance_8,
p_layer,
p_object_id
);
exception when dup_val_on_index then
null;
end;
procedure save_location
(
p_object_id number,
p_list_id number,
p_sequence_number number,
p_operation number,
p_name varchar2,
p_scene varchar2,
p_x number,
p_y number,
p_z number,
p_radius number
)
as
begin
-- Operations:
-- 0=INSERT
-- 1=DELETE
-- 2=SET
IF p_operation = 0 THEN
insert into location_lists (object_id, list_id, sequence_number, name, scene, x, y, z, radius)
select p_object_id, p_list_id, p_sequence_number, p_name, p_scene, p_x, p_y, p_z, p_radius
from dual
where not exists (select * from location_lists
where object_id = p_object_id
and list_id = p_list_id
and sequence_number = p_sequence_number);
ELSIF p_operation = 1 THEN
delete from location_lists
where object_id = p_object_id
and list_id = p_list_id
and sequence_number = p_sequence_number;
update location_lists
set sequence_number = sequence_number - 1
where object_id = p_object_id
and list_id = p_list_id
and sequence_number > p_sequence_number;
ELSIF p_operation = 2 THEN
update location_lists
set
name = p_name,
scene = p_scene,
x = p_x,
y = p_y,
z = p_z,
radius = p_radius
where object_id = p_object_id
and list_id = p_list_id
and sequence_number = p_sequence_number;
ELSE
raise_application_error(-20000,'Invalid operation code passed to update_skill.');
END IF;
end;
procedure save_experience ( p_points number, p_experience_type varchar2, p_object_id number )
as
begin
update experience_points
set points = p_points
where object_id = p_object_id and experience_type = p_experience_type;
if sql%rowcount = 0 then
insert into experience_points (object_id, experience_type, points)
values (p_object_id, p_experience_type, p_points);
end if;
end;
procedure save_battlefield_participants ( p_faction_id number, p_character_object_id number, p_region_object_id number )
as
begin
if (p_faction_id <> 0) then
update battlefield_participants
set faction_id = p_faction_id
where region_object_id = p_region_object_id and character_object_id = p_character_object_id;
if sql%rowcount = 0 then
insert into battlefield_participants (region_object_id, character_object_id, faction_id)
values (p_region_object_id, p_character_object_id, p_faction_id);
end if;
else
delete battlefield_participants
where region_object_id = p_region_object_id and character_object_id = p_character_object_id;
end if;
end;
function rename_character( p_character_id objectid, p_new_name varchar2, p_normalized_name varchar2) return number
as
l_existing_object_with_name objectid;
begin
select character_object
into l_existing_object_with_name
from players
where uc_character_name = p_normalized_name;
if (l_existing_object_with_name = p_character_id) then
update objects
set object_name = p_new_name
where object_id = p_character_id;
if (sql%rowcount=1) then
update players
set uc_character_name = p_normalized_name, character_full_name = p_new_name
where character_object = p_character_id;
return 1;
else
return 0;
end if;
else
return 0;
end if;
exception
when no_data_found then
update objects
set object_name = p_new_name
where object_id = p_character_id;
if (sql%rowcount=1) then
update players
set uc_character_name = p_normalized_name, character_full_name = p_new_name
where character_object = p_character_id;
return 1;
else
return 0;
end if;
when others then
return 0;
end;
procedure save_waypoint
(
p_object_id objectid,
p_waypoint_id objectid,
p_appearance_name_crc number,
p_location_x number,
p_location_y number,
p_location_z number,
p_location_cell number,
p_location_scene number,
p_name varchar2,
p_color number,
p_active char,
p_detached char
)
as
begin
if p_detached='N' then
update waypoints set
appearance_name_crc = p_appearance_name_crc,
location_x = p_location_x,
location_y = p_location_y,
location_z = p_location_z,
location_cell = p_location_cell,
location_scene = p_location_scene,
name = p_name,
color = p_color,
active = p_active
where
waypoint_id = p_waypoint_id;
if (sql%rowcount=0) then
insert into waypoints
(
object_id,
waypoint_id,
appearance_name_crc,
location_x,
location_y,
location_z,
location_cell,
location_scene,
name,
color,
active
)
values
(
p_object_id,
p_waypoint_id,
p_appearance_name_crc,
p_location_x,
p_location_y,
p_location_z,
p_location_cell,
p_location_scene,
p_name,
p_color,
p_active
);
end if;
else -- p_detached <> 'N'
delete waypoints
where waypoint_id = p_waypoint_id;
end if;
EXCEPTION
WHEN OTHERS THEN
BEGIN
Db_Error_Logger.dblogerror( SQLCODE, 'procedure save_waypoint: attempting to find numeric overflow error.');
Db_Error_Logger.dblogerror_values( 'waypoints', 'object_id' , 'number', p_object_id);
Db_Error_Logger.dblogerror_values( 'waypoints', 'waypoint_id' , 'number', p_waypoint_id);
Db_Error_Logger.dblogerror_values( 'waypoints', 'appearance_name_crc' , 'number', TO_CHAR(p_appearance_name_crc));
Db_Error_Logger.dblogerror_values( 'waypoints', 'location_x' , 'number', TO_CHAR(p_location_x));
Db_Error_Logger.dblogerror_values( 'waypoints', 'location_y' , 'number', TO_CHAR(p_location_y));
Db_Error_Logger.dblogerror_values( 'waypoints', 'location_z' , 'number', TO_CHAR(p_location_z));
Db_Error_Logger.dblogerror_values( 'waypoints', 'location_cell' , 'number', TO_CHAR(p_location_cell));
Db_Error_Logger.dblogerror_values( 'waypoints', 'location_scene' , 'number', TO_CHAR(p_location_scene));
Db_Error_Logger.dblogerror_values( 'waypoints', 'name' , 'varchar2', p_name);
Db_Error_Logger.dblogerror_values( 'waypoints', 'color' , 'char', p_color);
Db_Error_Logger.dblogerror_values( 'waypoints', 'active' , 'char', p_active);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
end;
procedure save_player_obj( p_object_id VAOFSTRING, p_station_id VAOFNUMBER, p_house_id VAOFSTRING, p_account_num_lots VAOFNUMBER, p_account_is_outcast VAOFSTRING, p_account_cheater_level VAOFNUMBER, p_account_max_lots_adjustment VAOFNUMBER, p_personal_profile_id VAOFSTRING, p_character_profile_id VAOFSTRING, p_skill_title VAOFSTRING, p_born_date VAOFNUMBER, p_played_time VAOFNUMBER, p_force_regen_rate VAOFNUMBER, p_force_power VAOFNUMBER, p_max_force_power VAOFNUMBER, p_active_quests VAOFSTRING, p_completed_quests VAOFSTRING, p_current_quest VAOFNUMBER, p_quests VAOFLONGSTRING, p_role_icon_choice VAOFNUMBER, p_quests2 VAOFLONGSTRING, p_quests3 VAOFLONGSTRING, p_quests4 VAOFLONGSTRING, p_skill_template VAOFSTRING, p_working_skill VAOFSTRING, p_current_gcw_points VAOFNUMBER, p_current_gcw_rating VAOFNUMBER, p_current_pvp_kills VAOFNUMBER, p_lifetime_gcw_points VAOFNUMBER, p_max_gcw_imperial_rating VAOFNUMBER, p_max_gcw_rebel_rating VAOFNUMBER, p_lifetime_pvp_kills VAOFNUMBER, p_next_gcw_rating_calc_time VAOFNUMBER, p_collections VAOFLONGSTRING, p_show_backpack VAOFSTRING, p_show_helmet VAOFSTRING, p_collections2 VAOFLONGSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
update player_objects set
player_objects.station_id = nvl(p_station_id(i),player_objects.station_id),
player_objects.personal_profile_id = nvl(p_personal_profile_id(i),player_objects.personal_profile_id),
player_objects.character_profile_id = nvl(p_character_profile_id(i),player_objects.character_profile_id),
player_objects.skill_title = nvl(p_skill_title(i),player_objects.skill_title),
player_objects.born_date = nvl(p_born_date(i),player_objects.born_date),
player_objects.played_time = nvl(p_played_time(i),player_objects.played_time),
player_objects.force_regen_rate = nvl(p_force_regen_rate(i),player_objects.force_regen_rate),
player_objects.force_power = nvl(p_force_power(i),player_objects.force_power),
player_objects.max_force_power = nvl(p_max_force_power(i),player_objects.max_force_power),
player_objects.active_quests = nvl(p_active_quests(i),player_objects.active_quests),
player_objects.completed_quests = nvl(p_completed_quests(i),player_objects.completed_quests),
player_objects.current_quest = nvl(p_current_quest(i),player_objects.current_quest),
player_objects.quests = nvl(p_quests(i),player_objects.quests),
player_objects.role_icon_choice = nvl(p_role_icon_choice(i),player_objects.role_icon_choice),
player_objects.quests2 = nvl(p_quests2(i),player_objects.quests2),
player_objects.quests3 = nvl(p_quests3(i),player_objects.quests3),
player_objects.quests4 = nvl(p_quests4(i),player_objects.quests4),
player_objects.skill_template = nvl(p_skill_template(i),player_objects.skill_template),
player_objects.working_skill = nvl(p_working_skill(i),player_objects.working_skill),
player_objects.current_gcw_points = nvl(p_current_gcw_points(i),player_objects.current_gcw_points),
player_objects.current_gcw_rating = nvl(p_current_gcw_rating(i),player_objects.current_gcw_rating),
player_objects.current_pvp_kills = nvl(p_current_pvp_kills(i),player_objects.current_pvp_kills),
player_objects.lifetime_gcw_points = nvl(p_lifetime_gcw_points(i),player_objects.lifetime_gcw_points),
player_objects.max_gcw_imperial_rating = nvl(p_max_gcw_imperial_rating(i),player_objects.max_gcw_imperial_rating),
player_objects.max_gcw_rebel_rating = nvl(p_max_gcw_rebel_rating(i),player_objects.max_gcw_rebel_rating),
player_objects.lifetime_pvp_kills = nvl(p_lifetime_pvp_kills(i),player_objects.lifetime_pvp_kills),
player_objects.next_gcw_rating_calc_time = nvl(p_next_gcw_rating_calc_time(i),player_objects.next_gcw_rating_calc_time),
player_objects.collections = nvl(p_collections(i),player_objects.collections),
player_objects.show_backpack = nvl(p_show_backpack(i),player_objects.show_backpack),
player_objects.show_helmet = nvl(p_show_helmet(i),player_objects.show_helmet),
player_objects.collections2 = nvl(p_collections2(i),player_objects.collections2),
num_lots = nvl(p_account_num_lots(i), num_lots)
where
player_objects.object_id=p_object_id(i);
FOR i IN 1.. p_chunk_size
LOOP
if (p_station_id(i) is not null) then
begin
insert into accounts (station_id, is_outcast, cheater_level)
values (p_station_id(i), 0,0);
exception when dup_val_on_index then
null;
end;
end if;
end LOOP;
FORALL i IN 1..p_chunk_size
update accounts
set
is_outcast = nvl(p_account_is_outcast(i), is_outcast),
cheater_level = nvl(p_account_cheater_level(i), cheater_level),
max_lots_adjustment = nvl(p_account_max_lots_adjustment(i), max_lots_adjustment),
house_id = nvl(p_house_id(i), house_id)
where
station_id = (select station_id from player_objects where object_id = p_object_id(i));
end;
procedure add_player_obj( p_object_id VAOFSTRING, p_station_id VAOFNUMBER, p_house_id VAOFSTRING, p_account_num_lots VAOFNUMBER, p_account_is_outcast VAOFSTRING, p_account_cheater_level VAOFNUMBER, p_account_max_lots_adjustment VAOFNUMBER, p_personal_profile_id VAOFSTRING, p_character_profile_id VAOFSTRING, p_skill_title VAOFSTRING, p_born_date VAOFNUMBER, p_played_time VAOFNUMBER, p_force_regen_rate VAOFNUMBER, p_force_power VAOFNUMBER, p_max_force_power VAOFNUMBER, p_active_quests VAOFSTRING, p_completed_quests VAOFSTRING, p_current_quest VAOFNUMBER, p_quests VAOFLONGSTRING, p_role_icon_choice VAOFNUMBER, p_quests2 VAOFLONGSTRING, p_quests3 VAOFLONGSTRING, p_quests4 VAOFLONGSTRING, p_skill_template VAOFSTRING, p_working_skill VAOFSTRING, p_current_gcw_points VAOFNUMBER, p_current_gcw_rating VAOFNUMBER, p_current_pvp_kills VAOFNUMBER, p_lifetime_gcw_points VAOFNUMBER, p_max_gcw_imperial_rating VAOFNUMBER, p_max_gcw_rebel_rating VAOFNUMBER, p_lifetime_pvp_kills VAOFNUMBER, p_next_gcw_rating_calc_time VAOFNUMBER, p_collections VAOFLONGSTRING, p_show_backpack VAOFSTRING, p_show_helmet VAOFSTRING, p_collections2 VAOFLONGSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
insert into player_objects
(
player_objects.station_id,
player_objects.personal_profile_id,
player_objects.character_profile_id,
player_objects.skill_title,
player_objects.born_date,
player_objects.played_time,
player_objects.force_regen_rate,
player_objects.force_power,
player_objects.max_force_power,
player_objects.num_lots,
player_objects.object_id,
player_objects.active_quests,
player_objects.completed_quests,
player_objects.current_quest,
player_objects.quests,
player_objects.role_icon_choice,
player_objects.quests2,
player_objects.quests3,
player_objects.quests4,
player_objects.skill_template,
player_objects.working_skill,
player_objects.current_gcw_points,
player_objects.current_gcw_rating,
player_objects.current_pvp_kills,
player_objects.lifetime_gcw_points,
player_objects.max_gcw_imperial_rating,
player_objects.max_gcw_rebel_rating,
player_objects.lifetime_pvp_kills,
player_objects.next_gcw_rating_calc_time,
player_objects.collections,
player_objects.show_backpack,
player_objects.show_helmet,
player_objects.collections2
)
VALUES
(
p_station_id(i),
p_personal_profile_id(i),
p_character_profile_id(i),
p_skill_title(i),
p_born_date(i),
p_played_time(i),
p_force_regen_rate(i),
p_force_power(i),
p_max_force_power(i),
p_account_num_lots(i),
p_object_id(i),
p_active_quests(i),
p_completed_quests(i),
p_current_quest(i),
p_quests(i),
p_role_icon_choice(i),
p_quests2(i),
p_quests3(i),
p_quests4(i),
p_skill_template(i),
p_working_skill(i),
p_current_gcw_points(i),
p_current_gcw_rating(i),
p_current_pvp_kills(i),
p_lifetime_gcw_points(i),
p_max_gcw_imperial_rating(i),
p_max_gcw_rebel_rating(i),
p_lifetime_pvp_kills(i),
p_next_gcw_rating_calc_time(i),
p_collections(i),
p_show_backpack(i),
p_show_helmet(i),
p_collections2(i)
);
FOR i IN 1.. p_chunk_size
LOOP
if (p_station_id(i) is not null) then
begin
insert into accounts (station_id, is_outcast, cheater_level, max_lots_adjustment, house_id)
values (p_station_id(i), p_account_is_outcast(i), p_account_cheater_level(i), p_account_max_lots_adjustment(i), p_house_id(i));
exception when dup_val_on_index then
null;
end;
end if;
end LOOP;
exception when dup_val_on_index then
for i in 1..p_chunk_size loop
UPDATE player_objects Set
player_objects.station_id = nvl(p_station_id(i),player_objects.station_id),
player_objects.personal_profile_id = nvl(p_personal_profile_id(i),player_objects.personal_profile_id),
player_objects.character_profile_id = nvl(p_character_profile_id(i),player_objects.character_profile_id),
player_objects.skill_title = nvl(p_skill_title(i),player_objects.skill_title),
player_objects.born_date = nvl(p_born_date(i),player_objects.born_date),
player_objects.played_time = nvl(p_played_time(i),player_objects.played_time),
player_objects.force_regen_rate = nvl(p_force_regen_rate(i),player_objects.force_regen_rate),
player_objects.force_power = nvl(p_force_power(i),player_objects.force_power),
player_objects.max_force_power = nvl(p_max_force_power(i),player_objects.max_force_power),
player_objects.num_lots = nvl(p_account_num_lots(i), num_lots),
player_objects.active_quests = nvl(p_active_quests(i),player_objects.active_quests),
player_objects.completed_quests = nvl(p_completed_quests(i),player_objects.completed_quests),
player_objects.current_quest = nvl(p_current_quest(i),player_objects.current_quest),
player_objects.quests = nvl(p_quests(i),player_objects.quests),
player_objects.role_icon_choice = nvl(p_role_icon_choice(i),player_objects.role_icon_choice),
player_objects.quests2 = nvl(p_quests(i),player_objects.quests2),
player_objects.quests3 = nvl(p_quests(i),player_objects.quests3),
player_objects.quests4 = nvl(p_quests(i),player_objects.quests4),
player_objects.skill_template = nvl(p_skill_template(i),player_objects.skill_template),
player_objects.working_skill = nvl(p_working_skill(i),player_objects.working_skill),
player_objects.current_gcw_points = nvl(p_current_gcw_points(i),player_objects.current_gcw_points),
player_objects.current_gcw_rating = nvl(p_current_gcw_rating(i),player_objects.current_gcw_rating),
player_objects.current_pvp_kills = nvl(p_current_pvp_kills(i),player_objects.current_pvp_kills),
player_objects.lifetime_gcw_points = nvl(p_lifetime_gcw_points(i),player_objects.lifetime_gcw_points),
player_objects.max_gcw_imperial_rating = nvl(p_max_gcw_imperial_rating(i),player_objects.max_gcw_imperial_rating),
player_objects.max_gcw_rebel_rating = nvl(p_max_gcw_rebel_rating(i),player_objects.max_gcw_rebel_rating),
player_objects.lifetime_pvp_kills = nvl(p_lifetime_pvp_kills(i),player_objects.lifetime_pvp_kills),
player_objects.next_gcw_rating_calc_time = nvl(p_next_gcw_rating_calc_time(i),player_objects.next_gcw_rating_calc_time),
player_objects.collections = nvl(p_collections(i),player_objects.collections),
player_objects.show_backpack = nvl(p_show_backpack(i),player_objects.show_backpack),
player_objects.show_helmet = nvl(p_show_helmet(i),player_objects.show_helmet),
player_objects.collections2 = nvl(p_collections2(i),player_objects.collections2)
where
player_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into player_objects
(
player_objects.station_id,
player_objects.personal_profile_id,
player_objects.character_profile_id,
player_objects.skill_title,
player_objects.born_date,
player_objects.played_time,
player_objects.force_regen_rate,
player_objects.force_power,
player_objects.max_force_power,
player_objects.num_lots,
player_objects.object_id,
player_objects.active_quests,
player_objects.completed_quests,
player_objects.current_quest,
player_objects.quests,
player_objects.role_icon_choice,
player_objects.quests2,
player_objects.quests3,
player_objects.quests4,
player_objects.skill_template,
player_objects.working_skill,
player_objects.current_gcw_points,
player_objects.current_gcw_rating,
player_objects.current_pvp_kills,
player_objects.lifetime_gcw_points,
player_objects.max_gcw_imperial_rating,
player_objects.max_gcw_rebel_rating,
player_objects.lifetime_pvp_kills,
player_objects.next_gcw_rating_calc_time,
player_objects.collections,
player_objects.show_backpack,
player_objects.show_helmet,
player_objects.collections2
)
VALUES
(
p_station_id(i),
p_personal_profile_id(i),
p_character_profile_id(i),
p_skill_title(i),
p_born_date(i),
p_played_time(i),
p_force_regen_rate(i),
p_force_power(i),
p_max_force_power(i),
p_account_num_lots(i),
p_object_id(i),
p_active_quests(i),
p_completed_quests(i),
p_current_quest(i),
p_quests(i),
p_role_icon_choice(i),
p_quests2(i),
p_quests3(i),
p_quests4(i),
p_skill_template(i),
p_working_skill(i),
p_current_gcw_points(i),
p_current_gcw_rating(i),
p_current_pvp_kills(i),
p_lifetime_gcw_points(i),
p_max_gcw_imperial_rating(i),
p_max_gcw_rebel_rating(i),
p_lifetime_pvp_kills(i),
p_next_gcw_rating_calc_time(i),
p_collections(i),
p_show_backpack(i),
p_show_helmet(i),
p_collections2(i)
);
end if;
end loop;
FOR i IN 1.. p_chunk_size
LOOP
if (p_station_id(i) is not null) then
begin
insert into accounts (station_id, is_outcast, cheater_level, max_lots_adjustment, house_id)
values (p_station_id(i), p_account_is_outcast(i), p_account_cheater_level(i), p_account_max_lots_adjustment(i), p_house_id(i));
exception when dup_val_on_index then
null;
end;
end if;
end LOOP;
end;
procedure remove_player_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete player_objects
where
object_id=p_object_id(i);
end;
procedure delete_demand_container( p_object_id VAOFSTRING, p_reason VAOFNUMBER, p_chunk_size number )
as
l_delete_reason number;
begin
select reason_code
into l_delete_reason
from delete_reasons
where tag='ContainerDeleted';
FOR i IN 1.. p_chunk_size
LOOP
update objects
set deleted = decode(p_reason(i),0,l_delete_reason,p_reason(i)), -- use reason if specified, otherwise use 'ContainerDeleted' if it is 0
load_with = null,
deleted_date = sysdate
where load_with = p_object_id(i);
end LOOP;
end;
procedure save_resource_type(p_resource_id VAOFSTRING, p_resource_name VAOFSTRING, p_resource_class VAOFSTRING, p_attributes VAOFSTRING, p_fractal_seeds VAOFSTRING, p_depleted_timestamp VAOFNUMBER, p_chunk_size number)
as
begin
forall i in 1..p_chunk_size
insert into resource_types
(
resource_id,
resource_name,
resource_class,
attributes,
fractal_seeds,
depleted_timestamp
)
values
(
p_resource_id(i),
p_resource_name(i),
p_resource_class(i),
p_attributes(i),
p_fractal_seeds(i),
p_depleted_timestamp(i)
);
exception when dup_val_on_index then
for i in 1..p_chunk_size loop
update resource_types set
resource_name = p_resource_name(i),
resource_class = p_resource_class(i),
attributes = p_attributes(i),
fractal_seeds = p_fractal_seeds(i),
depleted_timestamp = p_depleted_timestamp(i)
where
resource_id=p_resource_id(i);
if SQL%ROWCOUNT=0 then
insert into resource_types
(
resource_id,
resource_name,
resource_class,
attributes,
fractal_seeds,
depleted_timestamp
)
values
(
p_resource_id(i),
p_resource_name(i),
p_resource_class(i),
p_attributes(i),
p_fractal_seeds(i),
p_depleted_timestamp(i)
);
end if;
end loop;
end;
procedure save_bounty_hunter_target(p_object_id VAOFSTRING, p_target_id VAOFSTRING, p_chunk_size number)
as
begin
forall i in 1..p_chunk_size
insert into bounty_hunter_targets
(
object_id,
target_id
)
values
(
p_object_id(i),
p_target_id(i)
);
delete bounty_hunter_targets
where target_id = 0;
exception when dup_val_on_index then
begin
for i in 1..p_chunk_size loop
update bounty_hunter_targets set
target_id = p_target_id(i)
where
object_id = p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into bounty_hunter_targets
(
object_id,
target_id
)
values
(
p_object_id(i),
p_target_id(i)
);
end if;
end loop;
delete bounty_hunter_targets
where target_id = 0;
end;
end;
function subtract_money_from_object(p_object_id number, p_amount number) return char
as
new_bank_balance number;
new_cash_balance number;
begin
select bank_balance, cash_balance
into new_bank_balance, new_cash_balance
from objects
where object_id = p_object_id
for update;
if (new_bank_balance + new_cash_balance < p_amount) then
return 'N';
end if;
new_bank_balance := new_bank_balance - p_amount;
if (new_bank_balance < 0) then
new_cash_balance := new_cash_balance + new_bank_balance;
new_bank_balance := 0;
end if;
update objects
set bank_balance = new_bank_balance, cash_balance = new_cash_balance
where object_id = p_object_id;
return 'Y';
exception
when others then
return 'N';
end;
-- GENERATED PLSQL FOLLOWS
-- generated by makepersister.pl
procedure save_battlefield_marker_obj( p_object_id VAOFSTRING, p_region_name VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update battlefield_marker_objects set
battlefield_marker_objects.region_name = nvl(p_region_name(i),battlefield_marker_objects.region_name)
where
battlefield_marker_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update battlefield_marker_objects set
battlefield_marker_objects.region_name = nvl(p_region_name(i),battlefield_marker_objects.region_name)
where
battlefield_marker_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_battlefield_marker_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_battlefield_marker_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_battlefield_marker_obj','region_name','varchar2',p_region_name(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_battlefield_marker_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_battlefield_marker_obj( p_object_id VAOFSTRING, p_region_name VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into battlefield_marker_objects
(
battlefield_marker_objects.region_name,
battlefield_marker_objects.object_id
)
VALUES
(
p_region_name(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_battlefield_marker_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE battlefield_marker_objects Set
battlefield_marker_objects.region_name = nvl(p_region_name(i),battlefield_marker_objects.region_name)
where
battlefield_marker_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into battlefield_marker_objects
(
battlefield_marker_objects.region_name,
battlefield_marker_objects.object_id
)
VALUES
(
p_region_name(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into battlefield_marker_objects
(
battlefield_marker_objects.region_name,
battlefield_marker_objects.object_id
)
VALUES
(
p_region_name(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_battlefield_marker_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_battlefield_marker_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_battlefield_marker_obj','region_name','varchar2',p_region_name(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_battlefield_marker_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_battlefield_marker_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete battlefield_marker_objects
where
object_id=p_object_id(i);
end;
procedure save_building_obj( p_object_id VAOFSTRING, p_maintenance_cost VAOFNUMBER, p_time_last_checked VAOFNUMBER, p_is_public VAOFSTRING, p_city_id VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update building_objects set
building_objects.maintenance_cost = nvl(p_maintenance_cost(i),building_objects.maintenance_cost),
building_objects.time_last_checked = nvl(p_time_last_checked(i),building_objects.time_last_checked),
building_objects.is_public = nvl(p_is_public(i),building_objects.is_public),
building_objects.city_id = nvl(p_city_id(i),building_objects.city_id)
where
building_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update building_objects set
building_objects.maintenance_cost = nvl(p_maintenance_cost(i),building_objects.maintenance_cost),
building_objects.time_last_checked = nvl(p_time_last_checked(i),building_objects.time_last_checked),
building_objects.is_public = nvl(p_is_public(i),building_objects.is_public),
building_objects.city_id = nvl(p_city_id(i),building_objects.city_id)
where
building_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_building_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_building_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_building_obj','maintenance_cost','int',to_char(p_maintenance_cost(m_error_index)));
db_error_logger.dblogerror_values('persister.save_building_obj','time_last_checked','float',to_char(p_time_last_checked(m_error_index)));
db_error_logger.dblogerror_values('persister.save_building_obj','is_public','char',p_is_public(m_error_index));
db_error_logger.dblogerror_values('persister.save_building_obj','city_id','int',to_char(p_city_id(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_building_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_building_obj( p_object_id VAOFSTRING, p_maintenance_cost VAOFNUMBER, p_time_last_checked VAOFNUMBER, p_is_public VAOFSTRING, p_city_id VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into building_objects
(
building_objects.maintenance_cost,
building_objects.time_last_checked,
building_objects.is_public,
building_objects.city_id,
building_objects.object_id
)
VALUES
(
p_maintenance_cost(i),
p_time_last_checked(i),
p_is_public(i),
p_city_id(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_building_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE building_objects Set
building_objects.maintenance_cost = nvl(p_maintenance_cost(i),building_objects.maintenance_cost),
building_objects.time_last_checked = nvl(p_time_last_checked(i),building_objects.time_last_checked),
building_objects.is_public = nvl(p_is_public(i),building_objects.is_public),
building_objects.city_id = nvl(p_city_id(i),building_objects.city_id)
where
building_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into building_objects
(
building_objects.maintenance_cost,
building_objects.time_last_checked,
building_objects.is_public,
building_objects.city_id,
building_objects.object_id
)
VALUES
(
p_maintenance_cost(i),
p_time_last_checked(i),
p_is_public(i),
p_city_id(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into building_objects
(
building_objects.maintenance_cost,
building_objects.time_last_checked,
building_objects.is_public,
building_objects.city_id,
building_objects.object_id
)
VALUES
(
p_maintenance_cost(i),
p_time_last_checked(i),
p_is_public(i),
p_city_id(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_building_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_building_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_building_obj','maintenance_cost','int',to_char(p_maintenance_cost(m_error_index)));
db_error_logger.dblogerror_values('persister.add_building_obj','time_last_checked','float',to_char(p_time_last_checked(m_error_index)));
db_error_logger.dblogerror_values('persister.add_building_obj','is_public','char',p_is_public(m_error_index));
db_error_logger.dblogerror_values('persister.add_building_obj','city_id','int',to_char(p_city_id(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_building_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_building_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete building_objects
where
object_id=p_object_id(i);
end;
procedure save_cell_obj( p_object_id VAOFSTRING, p_cell_number VAOFNUMBER, p_is_public VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update cell_objects set
cell_objects.cell_number = nvl(p_cell_number(i),cell_objects.cell_number),
cell_objects.is_public = nvl(p_is_public(i),cell_objects.is_public)
where
cell_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update cell_objects set
cell_objects.cell_number = nvl(p_cell_number(i),cell_objects.cell_number),
cell_objects.is_public = nvl(p_is_public(i),cell_objects.is_public)
where
cell_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_cell_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_cell_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_cell_obj','cell_number','int',to_char(p_cell_number(m_error_index)));
db_error_logger.dblogerror_values('persister.save_cell_obj','is_public','char',p_is_public(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_cell_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_cell_obj( p_object_id VAOFSTRING, p_cell_number VAOFNUMBER, p_is_public VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into cell_objects
(
cell_objects.cell_number,
cell_objects.is_public,
cell_objects.object_id
)
VALUES
(
p_cell_number(i),
p_is_public(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_cell_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE cell_objects Set
cell_objects.cell_number = nvl(p_cell_number(i),cell_objects.cell_number),
cell_objects.is_public = nvl(p_is_public(i),cell_objects.is_public)
where
cell_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into cell_objects
(
cell_objects.cell_number,
cell_objects.is_public,
cell_objects.object_id
)
VALUES
(
p_cell_number(i),
p_is_public(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into cell_objects
(
cell_objects.cell_number,
cell_objects.is_public,
cell_objects.object_id
)
VALUES
(
p_cell_number(i),
p_is_public(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_cell_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_cell_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_cell_obj','cell_number','int',to_char(p_cell_number(m_error_index)));
db_error_logger.dblogerror_values('persister.add_cell_obj','is_public','char',p_is_public(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_cell_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_cell_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete cell_objects
where
object_id=p_object_id(i);
end;
procedure save_city_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
null;
end;
procedure add_city_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into city_objects
(
city_objects.object_id
)
VALUES
(
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_city_obj : dup_val_on_index error.');
END IF;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into city_objects
(
city_objects.object_id
)
VALUES
(
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_city_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_city_obj','object_id','number',p_object_id(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_city_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_city_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
null;
end;
procedure save_creature_obj( p_object_id VAOFSTRING, p_scale_factor VAOFNUMBER, p_states VAOFNUMBER, p_posture VAOFNUMBER, p_shock_wounds VAOFNUMBER, p_master_id VAOFSTRING, p_rank VAOFNUMBER, p_base_walk_speed VAOFNUMBER, p_base_run_speed VAOFNUMBER, p_attribute_0 VAOFNUMBER, p_attribute_1 VAOFNUMBER, p_attribute_2 VAOFNUMBER, p_attribute_3 VAOFNUMBER, p_attribute_4 VAOFNUMBER, p_attribute_5 VAOFNUMBER, p_attribute_6 VAOFNUMBER, p_attribute_7 VAOFNUMBER, p_attribute_8 VAOFNUMBER, p_attribute_9 VAOFNUMBER, p_attribute_10 VAOFNUMBER, p_attribute_11 VAOFNUMBER, p_attribute_12 VAOFNUMBER, p_attribute_13 VAOFNUMBER, p_attribute_14 VAOFNUMBER, p_attribute_15 VAOFNUMBER, p_attribute_16 VAOFNUMBER, p_attribute_17 VAOFNUMBER, p_attribute_18 VAOFNUMBER, p_attribute_19 VAOFNUMBER, p_attribute_20 VAOFNUMBER, p_attribute_21 VAOFNUMBER, p_attribute_22 VAOFNUMBER, p_attribute_23 VAOFNUMBER, p_attribute_24 VAOFNUMBER, p_attribute_25 VAOFNUMBER, p_attribute_26 VAOFNUMBER, p_persisted_buffs VAOFSTRING, p_ws_x VAOFNUMBER, p_ws_y VAOFNUMBER, p_ws_z VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update creature_objects set
creature_objects.scale_factor = nvl(p_scale_factor(i),creature_objects.scale_factor),
creature_objects.states = nvl(p_states(i),creature_objects.states),
creature_objects.posture = nvl(p_posture(i),creature_objects.posture),
creature_objects.shock_wounds = nvl(p_shock_wounds(i),creature_objects.shock_wounds),
creature_objects.master_id = nvl(p_master_id(i),creature_objects.master_id),
creature_objects.rank = nvl(p_rank(i),creature_objects.rank),
creature_objects.base_walk_speed = nvl(p_base_walk_speed(i),creature_objects.base_walk_speed),
creature_objects.base_run_speed = nvl(p_base_run_speed(i),creature_objects.base_run_speed),
creature_objects.attribute_0 = nvl(p_attribute_0(i),creature_objects.attribute_0),
creature_objects.attribute_1 = nvl(p_attribute_1(i),creature_objects.attribute_1),
creature_objects.attribute_2 = nvl(p_attribute_2(i),creature_objects.attribute_2),
creature_objects.attribute_3 = nvl(p_attribute_3(i),creature_objects.attribute_3),
creature_objects.attribute_4 = nvl(p_attribute_4(i),creature_objects.attribute_4),
creature_objects.attribute_5 = nvl(p_attribute_5(i),creature_objects.attribute_5),
creature_objects.attribute_6 = nvl(p_attribute_6(i),creature_objects.attribute_6),
creature_objects.attribute_7 = nvl(p_attribute_7(i),creature_objects.attribute_7),
creature_objects.attribute_8 = nvl(p_attribute_8(i),creature_objects.attribute_8),
creature_objects.attribute_9 = nvl(p_attribute_9(i),creature_objects.attribute_9),
creature_objects.attribute_10 = nvl(p_attribute_10(i),creature_objects.attribute_10),
creature_objects.attribute_11 = nvl(p_attribute_11(i),creature_objects.attribute_11),
creature_objects.attribute_12 = nvl(p_attribute_12(i),creature_objects.attribute_12),
creature_objects.attribute_13 = nvl(p_attribute_13(i),creature_objects.attribute_13),
creature_objects.attribute_14 = nvl(p_attribute_14(i),creature_objects.attribute_14),
creature_objects.attribute_15 = nvl(p_attribute_15(i),creature_objects.attribute_15),
creature_objects.attribute_16 = nvl(p_attribute_16(i),creature_objects.attribute_16),
creature_objects.attribute_17 = nvl(p_attribute_17(i),creature_objects.attribute_17),
creature_objects.attribute_18 = nvl(p_attribute_18(i),creature_objects.attribute_18),
creature_objects.attribute_19 = nvl(p_attribute_19(i),creature_objects.attribute_19),
creature_objects.attribute_20 = nvl(p_attribute_20(i),creature_objects.attribute_20),
creature_objects.attribute_21 = nvl(p_attribute_21(i),creature_objects.attribute_21),
creature_objects.attribute_22 = nvl(p_attribute_22(i),creature_objects.attribute_22),
creature_objects.attribute_23 = nvl(p_attribute_23(i),creature_objects.attribute_23),
creature_objects.attribute_24 = nvl(p_attribute_24(i),creature_objects.attribute_24),
creature_objects.attribute_25 = nvl(p_attribute_25(i),creature_objects.attribute_25),
creature_objects.attribute_26 = nvl(p_attribute_26(i),creature_objects.attribute_26),
creature_objects.persisted_buffs = nvl(p_persisted_buffs(i),creature_objects.persisted_buffs),
creature_objects.ws_x = nvl(p_ws_x(i),creature_objects.ws_x),
creature_objects.ws_y = nvl(p_ws_y(i),creature_objects.ws_y),
creature_objects.ws_z = nvl(p_ws_z(i),creature_objects.ws_z)
where
creature_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update creature_objects set
creature_objects.scale_factor = nvl(p_scale_factor(i),creature_objects.scale_factor),
creature_objects.states = nvl(p_states(i),creature_objects.states),
creature_objects.posture = nvl(p_posture(i),creature_objects.posture),
creature_objects.shock_wounds = nvl(p_shock_wounds(i),creature_objects.shock_wounds),
creature_objects.master_id = nvl(p_master_id(i),creature_objects.master_id),
creature_objects.rank = nvl(p_rank(i),creature_objects.rank),
creature_objects.base_walk_speed = nvl(p_base_walk_speed(i),creature_objects.base_walk_speed),
creature_objects.base_run_speed = nvl(p_base_run_speed(i),creature_objects.base_run_speed),
creature_objects.attribute_0 = nvl(p_attribute_0(i),creature_objects.attribute_0),
creature_objects.attribute_1 = nvl(p_attribute_1(i),creature_objects.attribute_1),
creature_objects.attribute_2 = nvl(p_attribute_2(i),creature_objects.attribute_2),
creature_objects.attribute_3 = nvl(p_attribute_3(i),creature_objects.attribute_3),
creature_objects.attribute_4 = nvl(p_attribute_4(i),creature_objects.attribute_4),
creature_objects.attribute_5 = nvl(p_attribute_5(i),creature_objects.attribute_5),
creature_objects.attribute_6 = nvl(p_attribute_6(i),creature_objects.attribute_6),
creature_objects.attribute_7 = nvl(p_attribute_7(i),creature_objects.attribute_7),
creature_objects.attribute_8 = nvl(p_attribute_8(i),creature_objects.attribute_8),
creature_objects.attribute_9 = nvl(p_attribute_9(i),creature_objects.attribute_9),
creature_objects.attribute_10 = nvl(p_attribute_10(i),creature_objects.attribute_10),
creature_objects.attribute_11 = nvl(p_attribute_11(i),creature_objects.attribute_11),
creature_objects.attribute_12 = nvl(p_attribute_12(i),creature_objects.attribute_12),
creature_objects.attribute_13 = nvl(p_attribute_13(i),creature_objects.attribute_13),
creature_objects.attribute_14 = nvl(p_attribute_14(i),creature_objects.attribute_14),
creature_objects.attribute_15 = nvl(p_attribute_15(i),creature_objects.attribute_15),
creature_objects.attribute_16 = nvl(p_attribute_16(i),creature_objects.attribute_16),
creature_objects.attribute_17 = nvl(p_attribute_17(i),creature_objects.attribute_17),
creature_objects.attribute_18 = nvl(p_attribute_18(i),creature_objects.attribute_18),
creature_objects.attribute_19 = nvl(p_attribute_19(i),creature_objects.attribute_19),
creature_objects.attribute_20 = nvl(p_attribute_20(i),creature_objects.attribute_20),
creature_objects.attribute_21 = nvl(p_attribute_21(i),creature_objects.attribute_21),
creature_objects.attribute_22 = nvl(p_attribute_22(i),creature_objects.attribute_22),
creature_objects.attribute_23 = nvl(p_attribute_23(i),creature_objects.attribute_23),
creature_objects.attribute_24 = nvl(p_attribute_24(i),creature_objects.attribute_24),
creature_objects.attribute_25 = nvl(p_attribute_25(i),creature_objects.attribute_25),
creature_objects.attribute_26 = nvl(p_attribute_26(i),creature_objects.attribute_26),
creature_objects.persisted_buffs = nvl(p_persisted_buffs(i),creature_objects.persisted_buffs),
creature_objects.ws_x = nvl(p_ws_x(i),creature_objects.ws_x),
creature_objects.ws_y = nvl(p_ws_y(i),creature_objects.ws_y),
creature_objects.ws_z = nvl(p_ws_z(i),creature_objects.ws_z)
where
creature_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_creature_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_creature_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_creature_obj','scale_factor','float',to_char(p_scale_factor(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','states','int',to_char(p_states(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','posture','int',to_char(p_posture(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','shock_wounds','int',to_char(p_shock_wounds(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','master_id','number',p_master_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_creature_obj','rank','int',to_char(p_rank(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','base_walk_speed','float',to_char(p_base_walk_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','base_run_speed','float',to_char(p_base_run_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_0','int',to_char(p_attribute_0(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_1','int',to_char(p_attribute_1(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_2','int',to_char(p_attribute_2(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_3','int',to_char(p_attribute_3(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_4','int',to_char(p_attribute_4(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_5','int',to_char(p_attribute_5(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_6','int',to_char(p_attribute_6(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_7','int',to_char(p_attribute_7(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_8','int',to_char(p_attribute_8(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_9','int',to_char(p_attribute_9(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_10','int',to_char(p_attribute_10(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_11','int',to_char(p_attribute_11(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_12','int',to_char(p_attribute_12(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_13','int',to_char(p_attribute_13(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_14','int',to_char(p_attribute_14(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_15','int',to_char(p_attribute_15(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_16','int',to_char(p_attribute_16(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_17','int',to_char(p_attribute_17(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_18','int',to_char(p_attribute_18(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_19','int',to_char(p_attribute_19(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_20','int',to_char(p_attribute_20(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_21','int',to_char(p_attribute_21(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_22','int',to_char(p_attribute_22(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_23','int',to_char(p_attribute_23(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_24','int',to_char(p_attribute_24(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_25','int',to_char(p_attribute_25(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','attribute_26','int',to_char(p_attribute_26(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','persisted_buffs','varchar2',p_persisted_buffs(m_error_index));
db_error_logger.dblogerror_values('persister.save_creature_obj','ws_x','float',to_char(p_ws_x(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','ws_y','float',to_char(p_ws_y(m_error_index)));
db_error_logger.dblogerror_values('persister.save_creature_obj','ws_z','float',to_char(p_ws_z(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_creature_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_creature_obj( p_object_id VAOFSTRING, p_scale_factor VAOFNUMBER, p_states VAOFNUMBER, p_posture VAOFNUMBER, p_shock_wounds VAOFNUMBER, p_master_id VAOFSTRING, p_rank VAOFNUMBER, p_base_walk_speed VAOFNUMBER, p_base_run_speed VAOFNUMBER, p_attribute_0 VAOFNUMBER, p_attribute_1 VAOFNUMBER, p_attribute_2 VAOFNUMBER, p_attribute_3 VAOFNUMBER, p_attribute_4 VAOFNUMBER, p_attribute_5 VAOFNUMBER, p_attribute_6 VAOFNUMBER, p_attribute_7 VAOFNUMBER, p_attribute_8 VAOFNUMBER, p_attribute_9 VAOFNUMBER, p_attribute_10 VAOFNUMBER, p_attribute_11 VAOFNUMBER, p_attribute_12 VAOFNUMBER, p_attribute_13 VAOFNUMBER, p_attribute_14 VAOFNUMBER, p_attribute_15 VAOFNUMBER, p_attribute_16 VAOFNUMBER, p_attribute_17 VAOFNUMBER, p_attribute_18 VAOFNUMBER, p_attribute_19 VAOFNUMBER, p_attribute_20 VAOFNUMBER, p_attribute_21 VAOFNUMBER, p_attribute_22 VAOFNUMBER, p_attribute_23 VAOFNUMBER, p_attribute_24 VAOFNUMBER, p_attribute_25 VAOFNUMBER, p_attribute_26 VAOFNUMBER, p_persisted_buffs VAOFSTRING, p_ws_x VAOFNUMBER, p_ws_y VAOFNUMBER, p_ws_z VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into creature_objects
(
creature_objects.scale_factor,
creature_objects.states,
creature_objects.posture,
creature_objects.shock_wounds,
creature_objects.master_id,
creature_objects.rank,
creature_objects.base_walk_speed,
creature_objects.base_run_speed,
creature_objects.attribute_0,
creature_objects.attribute_1,
creature_objects.attribute_2,
creature_objects.attribute_3,
creature_objects.attribute_4,
creature_objects.attribute_5,
creature_objects.attribute_6,
creature_objects.attribute_7,
creature_objects.attribute_8,
creature_objects.attribute_9,
creature_objects.attribute_10,
creature_objects.attribute_11,
creature_objects.attribute_12,
creature_objects.attribute_13,
creature_objects.attribute_14,
creature_objects.attribute_15,
creature_objects.attribute_16,
creature_objects.attribute_17,
creature_objects.attribute_18,
creature_objects.attribute_19,
creature_objects.attribute_20,
creature_objects.attribute_21,
creature_objects.attribute_22,
creature_objects.attribute_23,
creature_objects.attribute_24,
creature_objects.attribute_25,
creature_objects.attribute_26,
creature_objects.persisted_buffs,
creature_objects.object_id,
creature_objects.ws_x,
creature_objects.ws_y,
creature_objects.ws_z
)
VALUES
(
p_scale_factor(i),
p_states(i),
p_posture(i),
p_shock_wounds(i),
p_master_id(i),
p_rank(i),
p_base_walk_speed(i),
p_base_run_speed(i),
p_attribute_0(i),
p_attribute_1(i),
p_attribute_2(i),
p_attribute_3(i),
p_attribute_4(i),
p_attribute_5(i),
p_attribute_6(i),
p_attribute_7(i),
p_attribute_8(i),
p_attribute_9(i),
p_attribute_10(i),
p_attribute_11(i),
p_attribute_12(i),
p_attribute_13(i),
p_attribute_14(i),
p_attribute_15(i),
p_attribute_16(i),
p_attribute_17(i),
p_attribute_18(i),
p_attribute_19(i),
p_attribute_20(i),
p_attribute_21(i),
p_attribute_22(i),
p_attribute_23(i),
p_attribute_24(i),
p_attribute_25(i),
p_attribute_26(i),
p_persisted_buffs(i),
p_object_id(i),
NULL,
NULL,
NULL
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_creature_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE creature_objects Set
creature_objects.scale_factor = nvl(p_scale_factor(i),creature_objects.scale_factor),
creature_objects.states = nvl(p_states(i),creature_objects.states),
creature_objects.posture = nvl(p_posture(i),creature_objects.posture),
creature_objects.shock_wounds = nvl(p_shock_wounds(i),creature_objects.shock_wounds),
creature_objects.master_id = nvl(p_master_id(i),creature_objects.master_id),
creature_objects.rank = nvl(p_rank(i),creature_objects.rank),
creature_objects.base_walk_speed = nvl(p_base_walk_speed(i),creature_objects.base_walk_speed),
creature_objects.base_run_speed = nvl(p_base_run_speed(i),creature_objects.base_run_speed),
creature_objects.attribute_0 = nvl(p_attribute_0(i),creature_objects.attribute_0),
creature_objects.attribute_1 = nvl(p_attribute_1(i),creature_objects.attribute_1),
creature_objects.attribute_2 = nvl(p_attribute_2(i),creature_objects.attribute_2),
creature_objects.attribute_3 = nvl(p_attribute_3(i),creature_objects.attribute_3),
creature_objects.attribute_4 = nvl(p_attribute_4(i),creature_objects.attribute_4),
creature_objects.attribute_5 = nvl(p_attribute_5(i),creature_objects.attribute_5),
creature_objects.attribute_6 = nvl(p_attribute_6(i),creature_objects.attribute_6),
creature_objects.attribute_7 = nvl(p_attribute_7(i),creature_objects.attribute_7),
creature_objects.attribute_8 = nvl(p_attribute_8(i),creature_objects.attribute_8),
creature_objects.attribute_9 = nvl(p_attribute_9(i),creature_objects.attribute_9),
creature_objects.attribute_10 = nvl(p_attribute_10(i),creature_objects.attribute_10),
creature_objects.attribute_11 = nvl(p_attribute_11(i),creature_objects.attribute_11),
creature_objects.attribute_12 = nvl(p_attribute_12(i),creature_objects.attribute_12),
creature_objects.attribute_13 = nvl(p_attribute_13(i),creature_objects.attribute_13),
creature_objects.attribute_14 = nvl(p_attribute_14(i),creature_objects.attribute_14),
creature_objects.attribute_15 = nvl(p_attribute_15(i),creature_objects.attribute_15),
creature_objects.attribute_16 = nvl(p_attribute_16(i),creature_objects.attribute_16),
creature_objects.attribute_17 = nvl(p_attribute_17(i),creature_objects.attribute_17),
creature_objects.attribute_18 = nvl(p_attribute_18(i),creature_objects.attribute_18),
creature_objects.attribute_19 = nvl(p_attribute_19(i),creature_objects.attribute_19),
creature_objects.attribute_20 = nvl(p_attribute_20(i),creature_objects.attribute_20),
creature_objects.attribute_21 = nvl(p_attribute_21(i),creature_objects.attribute_21),
creature_objects.attribute_22 = nvl(p_attribute_22(i),creature_objects.attribute_22),
creature_objects.attribute_23 = nvl(p_attribute_23(i),creature_objects.attribute_23),
creature_objects.attribute_24 = nvl(p_attribute_24(i),creature_objects.attribute_24),
creature_objects.attribute_25 = nvl(p_attribute_25(i),creature_objects.attribute_25),
creature_objects.attribute_26 = nvl(p_attribute_26(i),creature_objects.attribute_26),
creature_objects.persisted_buffs = nvl(p_persisted_buffs(i),creature_objects.persisted_buffs),
creature_objects.ws_x = nvl(p_ws_x(i),creature_objects.ws_x),
creature_objects.ws_y = nvl(p_ws_y(i),creature_objects.ws_y),
creature_objects.ws_z = nvl(p_ws_z(i),creature_objects.ws_z)
where
creature_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into creature_objects
(
creature_objects.scale_factor,
creature_objects.states,
creature_objects.posture,
creature_objects.shock_wounds,
creature_objects.master_id,
creature_objects.rank,
creature_objects.base_walk_speed,
creature_objects.base_run_speed,
creature_objects.attribute_0,
creature_objects.attribute_1,
creature_objects.attribute_2,
creature_objects.attribute_3,
creature_objects.attribute_4,
creature_objects.attribute_5,
creature_objects.attribute_6,
creature_objects.attribute_7,
creature_objects.attribute_8,
creature_objects.attribute_9,
creature_objects.attribute_10,
creature_objects.attribute_11,
creature_objects.attribute_12,
creature_objects.attribute_13,
creature_objects.attribute_14,
creature_objects.attribute_15,
creature_objects.attribute_16,
creature_objects.attribute_17,
creature_objects.attribute_18,
creature_objects.attribute_19,
creature_objects.attribute_20,
creature_objects.attribute_21,
creature_objects.attribute_22,
creature_objects.attribute_23,
creature_objects.attribute_24,
creature_objects.attribute_25,
creature_objects.attribute_26,
creature_objects.persisted_buffs,
creature_objects.object_id,
creature_objects.ws_x,
creature_objects.ws_y,
creature_objects.ws_z
)
VALUES
(
p_scale_factor(i),
p_states(i),
p_posture(i),
p_shock_wounds(i),
p_master_id(i),
p_rank(i),
p_base_walk_speed(i),
p_base_run_speed(i),
p_attribute_0(i),
p_attribute_1(i),
p_attribute_2(i),
p_attribute_3(i),
p_attribute_4(i),
p_attribute_5(i),
p_attribute_6(i),
p_attribute_7(i),
p_attribute_8(i),
p_attribute_9(i),
p_attribute_10(i),
p_attribute_11(i),
p_attribute_12(i),
p_attribute_13(i),
p_attribute_14(i),
p_attribute_15(i),
p_attribute_16(i),
p_attribute_17(i),
p_attribute_18(i),
p_attribute_19(i),
p_attribute_20(i),
p_attribute_21(i),
p_attribute_22(i),
p_attribute_23(i),
p_attribute_24(i),
p_attribute_25(i),
p_attribute_26(i),
p_persisted_buffs(i),
p_object_id(i),
NULL,
NULL,
NULL
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into creature_objects
(
creature_objects.scale_factor,
creature_objects.states,
creature_objects.posture,
creature_objects.shock_wounds,
creature_objects.master_id,
creature_objects.rank,
creature_objects.base_walk_speed,
creature_objects.base_run_speed,
creature_objects.attribute_0,
creature_objects.attribute_1,
creature_objects.attribute_2,
creature_objects.attribute_3,
creature_objects.attribute_4,
creature_objects.attribute_5,
creature_objects.attribute_6,
creature_objects.attribute_7,
creature_objects.attribute_8,
creature_objects.attribute_9,
creature_objects.attribute_10,
creature_objects.attribute_11,
creature_objects.attribute_12,
creature_objects.attribute_13,
creature_objects.attribute_14,
creature_objects.attribute_15,
creature_objects.attribute_16,
creature_objects.attribute_17,
creature_objects.attribute_18,
creature_objects.attribute_19,
creature_objects.attribute_20,
creature_objects.attribute_21,
creature_objects.attribute_22,
creature_objects.attribute_23,
creature_objects.attribute_24,
creature_objects.attribute_25,
creature_objects.attribute_26,
creature_objects.persisted_buffs,
creature_objects.object_id,
creature_objects.ws_x,
creature_objects.ws_y,
creature_objects.ws_z
)
VALUES
(
p_scale_factor(i),
p_states(i),
p_posture(i),
p_shock_wounds(i),
p_master_id(i),
p_rank(i),
p_base_walk_speed(i),
p_base_run_speed(i),
p_attribute_0(i),
p_attribute_1(i),
p_attribute_2(i),
p_attribute_3(i),
p_attribute_4(i),
p_attribute_5(i),
p_attribute_6(i),
p_attribute_7(i),
p_attribute_8(i),
p_attribute_9(i),
p_attribute_10(i),
p_attribute_11(i),
p_attribute_12(i),
p_attribute_13(i),
p_attribute_14(i),
p_attribute_15(i),
p_attribute_16(i),
p_attribute_17(i),
p_attribute_18(i),
p_attribute_19(i),
p_attribute_20(i),
p_attribute_21(i),
p_attribute_22(i),
p_attribute_23(i),
p_attribute_24(i),
p_attribute_25(i),
p_attribute_26(i),
p_persisted_buffs(i),
p_object_id(i),
NULL,
NULL,
NULL
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_creature_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_creature_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_creature_obj','scale_factor','float',to_char(p_scale_factor(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','states','int',to_char(p_states(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','posture','int',to_char(p_posture(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','shock_wounds','int',to_char(p_shock_wounds(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','master_id','number',p_master_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_creature_obj','rank','int',to_char(p_rank(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','base_walk_speed','float',to_char(p_base_walk_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','base_run_speed','float',to_char(p_base_run_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_0','int',to_char(p_attribute_0(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_1','int',to_char(p_attribute_1(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_2','int',to_char(p_attribute_2(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_3','int',to_char(p_attribute_3(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_4','int',to_char(p_attribute_4(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_5','int',to_char(p_attribute_5(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_6','int',to_char(p_attribute_6(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_7','int',to_char(p_attribute_7(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_8','int',to_char(p_attribute_8(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_9','int',to_char(p_attribute_9(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_10','int',to_char(p_attribute_10(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_11','int',to_char(p_attribute_11(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_12','int',to_char(p_attribute_12(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_13','int',to_char(p_attribute_13(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_14','int',to_char(p_attribute_14(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_15','int',to_char(p_attribute_15(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_16','int',to_char(p_attribute_16(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_17','int',to_char(p_attribute_17(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_18','int',to_char(p_attribute_18(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_19','int',to_char(p_attribute_19(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_20','int',to_char(p_attribute_20(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_21','int',to_char(p_attribute_21(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_22','int',to_char(p_attribute_22(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_23','int',to_char(p_attribute_23(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_24','int',to_char(p_attribute_24(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_25','int',to_char(p_attribute_25(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','attribute_26','int',to_char(p_attribute_26(m_error_index)));
db_error_logger.dblogerror_values('persister.add_creature_obj','persisted_buffs','varchar2',p_persisted_buffs(m_error_index));
db_error_logger.dblogerror_values('persister.add_creature_obj','ws_x','float',p_ws_x(m_error_index));
db_error_logger.dblogerror_values('persister.add_creature_obj','ws_y','float',p_ws_y(m_error_index));
db_error_logger.dblogerror_values('persister.add_creature_obj','ws_z','float',p_ws_z(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_creature_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_creature_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete creature_objects
where
object_id=p_object_id(i);
end;
procedure save_factory_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
null;
end;
procedure add_factory_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into factory_objects
(
factory_objects.object_id
)
VALUES
(
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_factory_obj : dup_val_on_index error.');
END IF;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into factory_objects
(
factory_objects.object_id
)
VALUES
(
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_factory_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_factory_obj','object_id','number',p_object_id(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_factory_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_factory_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
null;
end;
procedure save_guild_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
null;
end;
procedure add_guild_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into guild_objects
(
guild_objects.object_id
)
VALUES
(
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_guild_obj : dup_val_on_index error.');
END IF;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into guild_objects
(
guild_objects.object_id
)
VALUES
(
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_guild_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_guild_obj','object_id','number',p_object_id(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_guild_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_guild_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
null;
end;
procedure save_harvester_inst_obj( p_object_id VAOFSTRING, p_installed_efficiency VAOFNUMBER, p_max_extraction_rate VAOFNUMBER, p_current_extraction_rate VAOFNUMBER, p_max_hopper_amount VAOFNUMBER, p_hopper_resource VAOFSTRING, p_hopper_amount VAOFNUMBER, p_resource_type VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update harvester_installation_objects set
harvester_installation_objects.installed_efficiency = nvl(p_installed_efficiency(i),harvester_installation_objects.installed_efficiency),
harvester_installation_objects.max_extraction_rate = nvl(p_max_extraction_rate(i),harvester_installation_objects.max_extraction_rate),
harvester_installation_objects.current_extraction_rate = nvl(p_current_extraction_rate(i),harvester_installation_objects.current_extraction_rate),
harvester_installation_objects.max_hopper_amount = nvl(p_max_hopper_amount(i),harvester_installation_objects.max_hopper_amount),
harvester_installation_objects.hopper_resource = nvl(p_hopper_resource(i),harvester_installation_objects.hopper_resource),
harvester_installation_objects.hopper_amount = nvl(p_hopper_amount(i),harvester_installation_objects.hopper_amount),
harvester_installation_objects.resource_type = nvl(p_resource_type(i),harvester_installation_objects.resource_type)
where
harvester_installation_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update harvester_installation_objects set
harvester_installation_objects.installed_efficiency = nvl(p_installed_efficiency(i),harvester_installation_objects.installed_efficiency),
harvester_installation_objects.max_extraction_rate = nvl(p_max_extraction_rate(i),harvester_installation_objects.max_extraction_rate),
harvester_installation_objects.current_extraction_rate = nvl(p_current_extraction_rate(i),harvester_installation_objects.current_extraction_rate),
harvester_installation_objects.max_hopper_amount = nvl(p_max_hopper_amount(i),harvester_installation_objects.max_hopper_amount),
harvester_installation_objects.hopper_resource = nvl(p_hopper_resource(i),harvester_installation_objects.hopper_resource),
harvester_installation_objects.hopper_amount = nvl(p_hopper_amount(i),harvester_installation_objects.hopper_amount),
harvester_installation_objects.resource_type = nvl(p_resource_type(i),harvester_installation_objects.resource_type)
where
harvester_installation_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_harvester_inst_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','installed_efficiency','float',to_char(p_installed_efficiency(m_error_index)));
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','max_extraction_rate','int',to_char(p_max_extraction_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','current_extraction_rate','float',to_char(p_current_extraction_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','max_hopper_amount','int',to_char(p_max_hopper_amount(m_error_index)));
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','hopper_resource','number',p_hopper_resource(m_error_index));
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','hopper_amount','float',to_char(p_hopper_amount(m_error_index)));
db_error_logger.dblogerror_values('persister.save_harvester_inst_obj','resource_type','number',p_resource_type(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_harvester_inst_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_harvester_inst_obj( p_object_id VAOFSTRING, p_installed_efficiency VAOFNUMBER, p_max_extraction_rate VAOFNUMBER, p_current_extraction_rate VAOFNUMBER, p_max_hopper_amount VAOFNUMBER, p_hopper_resource VAOFSTRING, p_hopper_amount VAOFNUMBER, p_resource_type VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into harvester_installation_objects
(
harvester_installation_objects.installed_efficiency,
harvester_installation_objects.max_extraction_rate,
harvester_installation_objects.current_extraction_rate,
harvester_installation_objects.max_hopper_amount,
harvester_installation_objects.hopper_resource,
harvester_installation_objects.hopper_amount,
harvester_installation_objects.resource_type,
harvester_installation_objects.object_id
)
VALUES
(
p_installed_efficiency(i),
p_max_extraction_rate(i),
p_current_extraction_rate(i),
p_max_hopper_amount(i),
p_hopper_resource(i),
p_hopper_amount(i),
p_resource_type(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_harvester_inst_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE harvester_installation_objects Set
harvester_installation_objects.installed_efficiency = nvl(p_installed_efficiency(i),harvester_installation_objects.installed_efficiency),
harvester_installation_objects.max_extraction_rate = nvl(p_max_extraction_rate(i),harvester_installation_objects.max_extraction_rate),
harvester_installation_objects.current_extraction_rate = nvl(p_current_extraction_rate(i),harvester_installation_objects.current_extraction_rate),
harvester_installation_objects.max_hopper_amount = nvl(p_max_hopper_amount(i),harvester_installation_objects.max_hopper_amount),
harvester_installation_objects.hopper_resource = nvl(p_hopper_resource(i),harvester_installation_objects.hopper_resource),
harvester_installation_objects.hopper_amount = nvl(p_hopper_amount(i),harvester_installation_objects.hopper_amount),
harvester_installation_objects.resource_type = nvl(p_resource_type(i),harvester_installation_objects.resource_type)
where
harvester_installation_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into harvester_installation_objects
(
harvester_installation_objects.installed_efficiency,
harvester_installation_objects.max_extraction_rate,
harvester_installation_objects.current_extraction_rate,
harvester_installation_objects.max_hopper_amount,
harvester_installation_objects.hopper_resource,
harvester_installation_objects.hopper_amount,
harvester_installation_objects.resource_type,
harvester_installation_objects.object_id
)
VALUES
(
p_installed_efficiency(i),
p_max_extraction_rate(i),
p_current_extraction_rate(i),
p_max_hopper_amount(i),
p_hopper_resource(i),
p_hopper_amount(i),
p_resource_type(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into harvester_installation_objects
(
harvester_installation_objects.installed_efficiency,
harvester_installation_objects.max_extraction_rate,
harvester_installation_objects.current_extraction_rate,
harvester_installation_objects.max_hopper_amount,
harvester_installation_objects.hopper_resource,
harvester_installation_objects.hopper_amount,
harvester_installation_objects.resource_type,
harvester_installation_objects.object_id
)
VALUES
(
p_installed_efficiency(i),
p_max_extraction_rate(i),
p_current_extraction_rate(i),
p_max_hopper_amount(i),
p_hopper_resource(i),
p_hopper_amount(i),
p_resource_type(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_harvester_inst_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','installed_efficiency','float',to_char(p_installed_efficiency(m_error_index)));
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','max_extraction_rate','int',to_char(p_max_extraction_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','current_extraction_rate','float',to_char(p_current_extraction_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','max_hopper_amount','int',to_char(p_max_hopper_amount(m_error_index)));
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','hopper_resource','number',p_hopper_resource(m_error_index));
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','hopper_amount','float',to_char(p_hopper_amount(m_error_index)));
db_error_logger.dblogerror_values('persister.add_harvester_inst_obj','resource_type','number',p_resource_type(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_harvester_inst_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_harvester_inst_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete harvester_installation_objects
where
object_id=p_object_id(i);
end;
procedure save_installation_obj( p_object_id VAOFSTRING, p_installation_type VAOFNUMBER, p_activated VAOFSTRING, p_tick_count VAOFNUMBER, p_activate_start_time VAOFNUMBER, p_power VAOFNUMBER, p_power_rate VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update installation_objects set
installation_objects.installation_type = nvl(p_installation_type(i),installation_objects.installation_type),
installation_objects.activated = nvl(p_activated(i),installation_objects.activated),
installation_objects.tick_count = nvl(p_tick_count(i),installation_objects.tick_count),
installation_objects.activate_start_time = nvl(p_activate_start_time(i),installation_objects.activate_start_time),
installation_objects.power = nvl(p_power(i),installation_objects.power),
installation_objects.power_rate = nvl(p_power_rate(i),installation_objects.power_rate)
where
installation_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update installation_objects set
installation_objects.installation_type = nvl(p_installation_type(i),installation_objects.installation_type),
installation_objects.activated = nvl(p_activated(i),installation_objects.activated),
installation_objects.tick_count = nvl(p_tick_count(i),installation_objects.tick_count),
installation_objects.activate_start_time = nvl(p_activate_start_time(i),installation_objects.activate_start_time),
installation_objects.power = nvl(p_power(i),installation_objects.power),
installation_objects.power_rate = nvl(p_power_rate(i),installation_objects.power_rate)
where
installation_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_installation_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_installation_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_installation_obj','installation_type','int',to_char(p_installation_type(m_error_index)));
db_error_logger.dblogerror_values('persister.save_installation_obj','activated','char',p_activated(m_error_index));
db_error_logger.dblogerror_values('persister.save_installation_obj','tick_count','float',to_char(p_tick_count(m_error_index)));
db_error_logger.dblogerror_values('persister.save_installation_obj','activate_start_time','float',to_char(p_activate_start_time(m_error_index)));
db_error_logger.dblogerror_values('persister.save_installation_obj','power','float',to_char(p_power(m_error_index)));
db_error_logger.dblogerror_values('persister.save_installation_obj','power_rate','float',to_char(p_power_rate(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_installation_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_installation_obj( p_object_id VAOFSTRING, p_installation_type VAOFNUMBER, p_activated VAOFSTRING, p_tick_count VAOFNUMBER, p_activate_start_time VAOFNUMBER, p_power VAOFNUMBER, p_power_rate VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into installation_objects
(
installation_objects.installation_type,
installation_objects.activated,
installation_objects.tick_count,
installation_objects.activate_start_time,
installation_objects.power,
installation_objects.power_rate,
installation_objects.object_id
)
VALUES
(
p_installation_type(i),
p_activated(i),
p_tick_count(i),
p_activate_start_time(i),
p_power(i),
p_power_rate(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_installation_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE installation_objects Set
installation_objects.installation_type = nvl(p_installation_type(i),installation_objects.installation_type),
installation_objects.activated = nvl(p_activated(i),installation_objects.activated),
installation_objects.tick_count = nvl(p_tick_count(i),installation_objects.tick_count),
installation_objects.activate_start_time = nvl(p_activate_start_time(i),installation_objects.activate_start_time),
installation_objects.power = nvl(p_power(i),installation_objects.power),
installation_objects.power_rate = nvl(p_power_rate(i),installation_objects.power_rate)
where
installation_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into installation_objects
(
installation_objects.installation_type,
installation_objects.activated,
installation_objects.tick_count,
installation_objects.activate_start_time,
installation_objects.power,
installation_objects.power_rate,
installation_objects.object_id
)
VALUES
(
p_installation_type(i),
p_activated(i),
p_tick_count(i),
p_activate_start_time(i),
p_power(i),
p_power_rate(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into installation_objects
(
installation_objects.installation_type,
installation_objects.activated,
installation_objects.tick_count,
installation_objects.activate_start_time,
installation_objects.power,
installation_objects.power_rate,
installation_objects.object_id
)
VALUES
(
p_installation_type(i),
p_activated(i),
p_tick_count(i),
p_activate_start_time(i),
p_power(i),
p_power_rate(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_installation_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_installation_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_installation_obj','installation_type','int',to_char(p_installation_type(m_error_index)));
db_error_logger.dblogerror_values('persister.add_installation_obj','activated','char',p_activated(m_error_index));
db_error_logger.dblogerror_values('persister.add_installation_obj','tick_count','float',to_char(p_tick_count(m_error_index)));
db_error_logger.dblogerror_values('persister.add_installation_obj','activate_start_time','float',to_char(p_activate_start_time(m_error_index)));
db_error_logger.dblogerror_values('persister.add_installation_obj','power','float',to_char(p_power(m_error_index)));
db_error_logger.dblogerror_values('persister.add_installation_obj','power_rate','float',to_char(p_power_rate(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_installation_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_installation_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete installation_objects
where
object_id=p_object_id(i);
end;
procedure save_intangible_obj( p_object_id VAOFSTRING, p_count VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update intangible_objects set
intangible_objects.count = nvl(p_count(i),intangible_objects.count)
where
intangible_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update intangible_objects set
intangible_objects.count = nvl(p_count(i),intangible_objects.count)
where
intangible_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_intangible_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_intangible_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_intangible_obj','count','int',to_char(p_count(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_intangible_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_intangible_obj( p_object_id VAOFSTRING, p_count VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into intangible_objects
(
intangible_objects.count,
intangible_objects.object_id
)
VALUES
(
p_count(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_intangible_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE intangible_objects Set
intangible_objects.count = nvl(p_count(i),intangible_objects.count)
where
intangible_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into intangible_objects
(
intangible_objects.count,
intangible_objects.object_id
)
VALUES
(
p_count(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into intangible_objects
(
intangible_objects.count,
intangible_objects.object_id
)
VALUES
(
p_count(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_intangible_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_intangible_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_intangible_obj','count','int',to_char(p_count(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_intangible_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_intangible_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete intangible_objects
where
object_id=p_object_id(i);
end;
procedure save_manf_schematic_obj( p_object_id VAOFSTRING, p_creator_id VAOFSTRING, p_creator_name VAOFSTRING, p_items_per_container VAOFNUMBER, p_manufacture_time VAOFNUMBER, p_draft_schematic VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update manf_schematic_objects set
manf_schematic_objects.creator_id = nvl(p_creator_id(i),manf_schematic_objects.creator_id),
manf_schematic_objects.creator_name = nvl(p_creator_name(i),manf_schematic_objects.creator_name),
manf_schematic_objects.items_per_container = nvl(p_items_per_container(i),manf_schematic_objects.items_per_container),
manf_schematic_objects.manufacture_time = nvl(p_manufacture_time(i),manf_schematic_objects.manufacture_time),
manf_schematic_objects.draft_schematic = nvl(p_draft_schematic(i),manf_schematic_objects.draft_schematic)
where
manf_schematic_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update manf_schematic_objects set
manf_schematic_objects.creator_id = nvl(p_creator_id(i),manf_schematic_objects.creator_id),
manf_schematic_objects.creator_name = nvl(p_creator_name(i),manf_schematic_objects.creator_name),
manf_schematic_objects.items_per_container = nvl(p_items_per_container(i),manf_schematic_objects.items_per_container),
manf_schematic_objects.manufacture_time = nvl(p_manufacture_time(i),manf_schematic_objects.manufacture_time),
manf_schematic_objects.draft_schematic = nvl(p_draft_schematic(i),manf_schematic_objects.draft_schematic)
where
manf_schematic_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_manf_schematic_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_manf_schematic_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_manf_schematic_obj','creator_id','number',p_creator_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_manf_schematic_obj','creator_name','varchar2',p_creator_name(m_error_index));
db_error_logger.dblogerror_values('persister.save_manf_schematic_obj','items_per_container','int',to_char(p_items_per_container(m_error_index)));
db_error_logger.dblogerror_values('persister.save_manf_schematic_obj','manufacture_time','float',to_char(p_manufacture_time(m_error_index)));
db_error_logger.dblogerror_values('persister.save_manf_schematic_obj','draft_schematic','int',to_char(p_draft_schematic(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_manf_schematic_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_manf_schematic_obj( p_object_id VAOFSTRING, p_creator_id VAOFSTRING, p_creator_name VAOFSTRING, p_items_per_container VAOFNUMBER, p_manufacture_time VAOFNUMBER, p_draft_schematic VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into manf_schematic_objects
(
manf_schematic_objects.creator_id,
manf_schematic_objects.creator_name,
manf_schematic_objects.items_per_container,
manf_schematic_objects.manufacture_time,
manf_schematic_objects.draft_schematic,
manf_schematic_objects.object_id
)
VALUES
(
p_creator_id(i),
p_creator_name(i),
p_items_per_container(i),
p_manufacture_time(i),
p_draft_schematic(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_manf_schematic_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE manf_schematic_objects Set
manf_schematic_objects.creator_id = nvl(p_creator_id(i),manf_schematic_objects.creator_id),
manf_schematic_objects.creator_name = nvl(p_creator_name(i),manf_schematic_objects.creator_name),
manf_schematic_objects.items_per_container = nvl(p_items_per_container(i),manf_schematic_objects.items_per_container),
manf_schematic_objects.manufacture_time = nvl(p_manufacture_time(i),manf_schematic_objects.manufacture_time),
manf_schematic_objects.draft_schematic = nvl(p_draft_schematic(i),manf_schematic_objects.draft_schematic)
where
manf_schematic_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into manf_schematic_objects
(
manf_schematic_objects.creator_id,
manf_schematic_objects.creator_name,
manf_schematic_objects.items_per_container,
manf_schematic_objects.manufacture_time,
manf_schematic_objects.draft_schematic,
manf_schematic_objects.object_id
)
VALUES
(
p_creator_id(i),
p_creator_name(i),
p_items_per_container(i),
p_manufacture_time(i),
p_draft_schematic(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into manf_schematic_objects
(
manf_schematic_objects.creator_id,
manf_schematic_objects.creator_name,
manf_schematic_objects.items_per_container,
manf_schematic_objects.manufacture_time,
manf_schematic_objects.draft_schematic,
manf_schematic_objects.object_id
)
VALUES
(
p_creator_id(i),
p_creator_name(i),
p_items_per_container(i),
p_manufacture_time(i),
p_draft_schematic(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_manf_schematic_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_manf_schematic_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_manf_schematic_obj','creator_id','number',p_creator_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_manf_schematic_obj','creator_name','varchar2',p_creator_name(m_error_index));
db_error_logger.dblogerror_values('persister.add_manf_schematic_obj','items_per_container','int',to_char(p_items_per_container(m_error_index)));
db_error_logger.dblogerror_values('persister.add_manf_schematic_obj','manufacture_time','float',to_char(p_manufacture_time(m_error_index)));
db_error_logger.dblogerror_values('persister.add_manf_schematic_obj','draft_schematic','int',to_char(p_draft_schematic(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_manf_schematic_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_manf_schematic_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete manf_schematic_objects
where
object_id=p_object_id(i);
end;
procedure save_manufacture_inst_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
null;
end;
procedure add_manufacture_inst_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into manufacture_inst_objects
(
manufacture_inst_objects.object_id
)
VALUES
(
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_manufacture_inst_obj : dup_val_on_index error.');
END IF;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into manufacture_inst_objects
(
manufacture_inst_objects.object_id
)
VALUES
(
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_manufacture_inst_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_manufacture_inst_obj','object_id','number',p_object_id(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_manufacture_inst_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_manufacture_inst_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
null;
end;
procedure save_mission_obj( p_object_id VAOFSTRING, p_difficulty VAOFNUMBER, p_end_x VAOFNUMBER, p_end_y VAOFNUMBER, p_end_z VAOFNUMBER, p_end_cell VAOFSTRING, p_end_scene VAOFNUMBER, p_mission_creator VAOFSTRING, p_reward VAOFNUMBER, p_root_script_name VAOFSTRING, p_start_x VAOFNUMBER, p_start_y VAOFNUMBER, p_start_z VAOFNUMBER, p_start_cell VAOFSTRING, p_start_scene VAOFNUMBER, p_description_table VAOFSTRING, p_description_text VAOFSTRING, p_title_table VAOFSTRING, p_title_text VAOFSTRING, p_mission_holder_id VAOFSTRING, p_status VAOFNUMBER, p_mission_type VAOFNUMBER, p_target_appearance VAOFNUMBER, p_target_name VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update mission_objects set
mission_objects.difficulty = nvl(p_difficulty(i),mission_objects.difficulty),
mission_objects.end_x = nvl(p_end_x(i),mission_objects.end_x),
mission_objects.end_y = nvl(p_end_y(i),mission_objects.end_y),
mission_objects.end_z = nvl(p_end_z(i),mission_objects.end_z),
mission_objects.end_cell = nvl(p_end_cell(i),mission_objects.end_cell),
mission_objects.end_scene = nvl(p_end_scene(i),mission_objects.end_scene),
mission_objects.mission_creator = nvl(p_mission_creator(i),mission_objects.mission_creator),
mission_objects.reward = nvl(p_reward(i),mission_objects.reward),
mission_objects.root_script_name = nvl(p_root_script_name(i),mission_objects.root_script_name),
mission_objects.start_x = nvl(p_start_x(i),mission_objects.start_x),
mission_objects.start_y = nvl(p_start_y(i),mission_objects.start_y),
mission_objects.start_z = nvl(p_start_z(i),mission_objects.start_z),
mission_objects.start_cell = nvl(p_start_cell(i),mission_objects.start_cell),
mission_objects.start_scene = nvl(p_start_scene(i),mission_objects.start_scene),
mission_objects.description_table = nvl(p_description_table(i),mission_objects.description_table),
mission_objects.description_text = nvl(p_description_text(i),mission_objects.description_text),
mission_objects.title_table = nvl(p_title_table(i),mission_objects.title_table),
mission_objects.title_text = nvl(p_title_text(i),mission_objects.title_text),
mission_objects.mission_holder_id = nvl(p_mission_holder_id(i),mission_objects.mission_holder_id),
mission_objects.status = nvl(p_status(i),mission_objects.status),
mission_objects.mission_type = nvl(p_mission_type(i),mission_objects.mission_type),
mission_objects.target_appearance = nvl(p_target_appearance(i),mission_objects.target_appearance),
mission_objects.target_name = nvl(p_target_name(i),mission_objects.target_name)
where
mission_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update mission_objects set
mission_objects.difficulty = nvl(p_difficulty(i),mission_objects.difficulty),
mission_objects.end_x = nvl(p_end_x(i),mission_objects.end_x),
mission_objects.end_y = nvl(p_end_y(i),mission_objects.end_y),
mission_objects.end_z = nvl(p_end_z(i),mission_objects.end_z),
mission_objects.end_cell = nvl(p_end_cell(i),mission_objects.end_cell),
mission_objects.end_scene = nvl(p_end_scene(i),mission_objects.end_scene),
mission_objects.mission_creator = nvl(p_mission_creator(i),mission_objects.mission_creator),
mission_objects.reward = nvl(p_reward(i),mission_objects.reward),
mission_objects.root_script_name = nvl(p_root_script_name(i),mission_objects.root_script_name),
mission_objects.start_x = nvl(p_start_x(i),mission_objects.start_x),
mission_objects.start_y = nvl(p_start_y(i),mission_objects.start_y),
mission_objects.start_z = nvl(p_start_z(i),mission_objects.start_z),
mission_objects.start_cell = nvl(p_start_cell(i),mission_objects.start_cell),
mission_objects.start_scene = nvl(p_start_scene(i),mission_objects.start_scene),
mission_objects.description_table = nvl(p_description_table(i),mission_objects.description_table),
mission_objects.description_text = nvl(p_description_text(i),mission_objects.description_text),
mission_objects.title_table = nvl(p_title_table(i),mission_objects.title_table),
mission_objects.title_text = nvl(p_title_text(i),mission_objects.title_text),
mission_objects.mission_holder_id = nvl(p_mission_holder_id(i),mission_objects.mission_holder_id),
mission_objects.status = nvl(p_status(i),mission_objects.status),
mission_objects.mission_type = nvl(p_mission_type(i),mission_objects.mission_type),
mission_objects.target_appearance = nvl(p_target_appearance(i),mission_objects.target_appearance),
mission_objects.target_name = nvl(p_target_name(i),mission_objects.target_name)
where
mission_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_mission_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_mission_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','difficulty','int',to_char(p_difficulty(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','end_x','float',to_char(p_end_x(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','end_y','float',to_char(p_end_y(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','end_z','float',to_char(p_end_z(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','end_cell','number',p_end_cell(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','end_scene','int',to_char(p_end_scene(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','mission_creator','varchar2',p_mission_creator(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','reward','int',to_char(p_reward(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','root_script_name','varchar2',p_root_script_name(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','start_x','float',to_char(p_start_x(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','start_y','float',to_char(p_start_y(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','start_z','float',to_char(p_start_z(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','start_cell','number',p_start_cell(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','start_scene','int',to_char(p_start_scene(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','description_table','varchar2',p_description_table(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','description_text','varchar2',p_description_text(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','title_table','varchar2',p_title_table(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','title_text','varchar2',p_title_text(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','mission_holder_id','number',p_mission_holder_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_mission_obj','status','int',to_char(p_status(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','mission_type','int',to_char(p_mission_type(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','target_appearance','int',to_char(p_target_appearance(m_error_index)));
db_error_logger.dblogerror_values('persister.save_mission_obj','target_name','varchar2',p_target_name(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_mission_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_mission_obj( p_object_id VAOFSTRING, p_difficulty VAOFNUMBER, p_end_x VAOFNUMBER, p_end_y VAOFNUMBER, p_end_z VAOFNUMBER, p_end_cell VAOFSTRING, p_end_scene VAOFNUMBER, p_mission_creator VAOFSTRING, p_reward VAOFNUMBER, p_root_script_name VAOFSTRING, p_start_x VAOFNUMBER, p_start_y VAOFNUMBER, p_start_z VAOFNUMBER, p_start_cell VAOFSTRING, p_start_scene VAOFNUMBER, p_description_table VAOFSTRING, p_description_text VAOFSTRING, p_title_table VAOFSTRING, p_title_text VAOFSTRING, p_mission_holder_id VAOFSTRING, p_status VAOFNUMBER, p_mission_type VAOFNUMBER, p_target_appearance VAOFNUMBER, p_target_name VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into mission_objects
(
mission_objects.difficulty,
mission_objects.end_x,
mission_objects.end_y,
mission_objects.end_z,
mission_objects.end_cell,
mission_objects.end_scene,
mission_objects.mission_creator,
mission_objects.reward,
mission_objects.root_script_name,
mission_objects.start_x,
mission_objects.start_y,
mission_objects.start_z,
mission_objects.start_cell,
mission_objects.start_scene,
mission_objects.description_table,
mission_objects.description_text,
mission_objects.title_table,
mission_objects.title_text,
mission_objects.mission_holder_id,
mission_objects.status,
mission_objects.mission_type,
mission_objects.target_appearance,
mission_objects.target_name,
mission_objects.object_id
)
VALUES
(
p_difficulty(i),
p_end_x(i),
p_end_y(i),
p_end_z(i),
p_end_cell(i),
p_end_scene(i),
p_mission_creator(i),
p_reward(i),
p_root_script_name(i),
p_start_x(i),
p_start_y(i),
p_start_z(i),
p_start_cell(i),
p_start_scene(i),
p_description_table(i),
p_description_text(i),
p_title_table(i),
p_title_text(i),
p_mission_holder_id(i),
p_status(i),
p_mission_type(i),
p_target_appearance(i),
p_target_name(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_mission_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE mission_objects Set
mission_objects.difficulty = nvl(p_difficulty(i),mission_objects.difficulty),
mission_objects.end_x = nvl(p_end_x(i),mission_objects.end_x),
mission_objects.end_y = nvl(p_end_y(i),mission_objects.end_y),
mission_objects.end_z = nvl(p_end_z(i),mission_objects.end_z),
mission_objects.end_cell = nvl(p_end_cell(i),mission_objects.end_cell),
mission_objects.end_scene = nvl(p_end_scene(i),mission_objects.end_scene),
mission_objects.mission_creator = nvl(p_mission_creator(i),mission_objects.mission_creator),
mission_objects.reward = nvl(p_reward(i),mission_objects.reward),
mission_objects.root_script_name = nvl(p_root_script_name(i),mission_objects.root_script_name),
mission_objects.start_x = nvl(p_start_x(i),mission_objects.start_x),
mission_objects.start_y = nvl(p_start_y(i),mission_objects.start_y),
mission_objects.start_z = nvl(p_start_z(i),mission_objects.start_z),
mission_objects.start_cell = nvl(p_start_cell(i),mission_objects.start_cell),
mission_objects.start_scene = nvl(p_start_scene(i),mission_objects.start_scene),
mission_objects.description_table = nvl(p_description_table(i),mission_objects.description_table),
mission_objects.description_text = nvl(p_description_text(i),mission_objects.description_text),
mission_objects.title_table = nvl(p_title_table(i),mission_objects.title_table),
mission_objects.title_text = nvl(p_title_text(i),mission_objects.title_text),
mission_objects.mission_holder_id = nvl(p_mission_holder_id(i),mission_objects.mission_holder_id),
mission_objects.status = nvl(p_status(i),mission_objects.status),
mission_objects.mission_type = nvl(p_mission_type(i),mission_objects.mission_type),
mission_objects.target_appearance = nvl(p_target_appearance(i),mission_objects.target_appearance),
mission_objects.target_name = nvl(p_target_name(i),mission_objects.target_name)
where
mission_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into mission_objects
(
mission_objects.difficulty,
mission_objects.end_x,
mission_objects.end_y,
mission_objects.end_z,
mission_objects.end_cell,
mission_objects.end_scene,
mission_objects.mission_creator,
mission_objects.reward,
mission_objects.root_script_name,
mission_objects.start_x,
mission_objects.start_y,
mission_objects.start_z,
mission_objects.start_cell,
mission_objects.start_scene,
mission_objects.description_table,
mission_objects.description_text,
mission_objects.title_table,
mission_objects.title_text,
mission_objects.mission_holder_id,
mission_objects.status,
mission_objects.mission_type,
mission_objects.target_appearance,
mission_objects.target_name,
mission_objects.object_id
)
VALUES
(
p_difficulty(i),
p_end_x(i),
p_end_y(i),
p_end_z(i),
p_end_cell(i),
p_end_scene(i),
p_mission_creator(i),
p_reward(i),
p_root_script_name(i),
p_start_x(i),
p_start_y(i),
p_start_z(i),
p_start_cell(i),
p_start_scene(i),
p_description_table(i),
p_description_text(i),
p_title_table(i),
p_title_text(i),
p_mission_holder_id(i),
p_status(i),
p_mission_type(i),
p_target_appearance(i),
p_target_name(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into mission_objects
(
mission_objects.difficulty,
mission_objects.end_x,
mission_objects.end_y,
mission_objects.end_z,
mission_objects.end_cell,
mission_objects.end_scene,
mission_objects.mission_creator,
mission_objects.reward,
mission_objects.root_script_name,
mission_objects.start_x,
mission_objects.start_y,
mission_objects.start_z,
mission_objects.start_cell,
mission_objects.start_scene,
mission_objects.description_table,
mission_objects.description_text,
mission_objects.title_table,
mission_objects.title_text,
mission_objects.mission_holder_id,
mission_objects.status,
mission_objects.mission_type,
mission_objects.target_appearance,
mission_objects.target_name,
mission_objects.object_id
)
VALUES
(
p_difficulty(i),
p_end_x(i),
p_end_y(i),
p_end_z(i),
p_end_cell(i),
p_end_scene(i),
p_mission_creator(i),
p_reward(i),
p_root_script_name(i),
p_start_x(i),
p_start_y(i),
p_start_z(i),
p_start_cell(i),
p_start_scene(i),
p_description_table(i),
p_description_text(i),
p_title_table(i),
p_title_text(i),
p_mission_holder_id(i),
p_status(i),
p_mission_type(i),
p_target_appearance(i),
p_target_name(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_mission_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_mission_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','difficulty','int',to_char(p_difficulty(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','end_x','float',to_char(p_end_x(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','end_y','float',to_char(p_end_y(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','end_z','float',to_char(p_end_z(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','end_cell','number',p_end_cell(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','end_scene','int',to_char(p_end_scene(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','mission_creator','varchar2',p_mission_creator(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','reward','int',to_char(p_reward(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','root_script_name','varchar2',p_root_script_name(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','start_x','float',to_char(p_start_x(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','start_y','float',to_char(p_start_y(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','start_z','float',to_char(p_start_z(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','start_cell','number',p_start_cell(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','start_scene','int',to_char(p_start_scene(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','description_table','varchar2',p_description_table(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','description_text','varchar2',p_description_text(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','title_table','varchar2',p_title_table(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','title_text','varchar2',p_title_text(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','mission_holder_id','number',p_mission_holder_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_mission_obj','status','int',to_char(p_status(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','mission_type','int',to_char(p_mission_type(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','target_appearance','int',to_char(p_target_appearance(m_error_index)));
db_error_logger.dblogerror_values('persister.add_mission_obj','target_name','varchar2',p_target_name(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_mission_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_mission_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete mission_objects
where
object_id=p_object_id(i);
end;
procedure save_planet_obj( p_object_id VAOFSTRING, p_planet_name VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update planet_objects set
planet_objects.planet_name = nvl(p_planet_name(i),planet_objects.planet_name)
where
planet_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update planet_objects set
planet_objects.planet_name = nvl(p_planet_name(i),planet_objects.planet_name)
where
planet_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_planet_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_planet_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_planet_obj','planet_name','varchar',p_planet_name(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_planet_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_planet_obj( p_object_id VAOFSTRING, p_planet_name VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into planet_objects
(
planet_objects.planet_name,
planet_objects.object_id
)
VALUES
(
p_planet_name(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_planet_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE planet_objects Set
planet_objects.planet_name = nvl(p_planet_name(i),planet_objects.planet_name)
where
planet_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into planet_objects
(
planet_objects.planet_name,
planet_objects.object_id
)
VALUES
(
p_planet_name(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into planet_objects
(
planet_objects.planet_name,
planet_objects.object_id
)
VALUES
(
p_planet_name(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_planet_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_planet_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_planet_obj','planet_name','varchar',p_planet_name(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_planet_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_planet_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete planet_objects
where
object_id=p_object_id(i);
end;
procedure save_resource_container_obj( p_object_id VAOFSTRING, p_resource_type VAOFSTRING, p_quantity VAOFNUMBER, p_source VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update resource_container_objects set
resource_container_objects.resource_type = nvl(p_resource_type(i),resource_container_objects.resource_type),
resource_container_objects.quantity = nvl(p_quantity(i),resource_container_objects.quantity),
resource_container_objects.source = nvl(p_source(i),resource_container_objects.source)
where
resource_container_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update resource_container_objects set
resource_container_objects.resource_type = nvl(p_resource_type(i),resource_container_objects.resource_type),
resource_container_objects.quantity = nvl(p_quantity(i),resource_container_objects.quantity),
resource_container_objects.source = nvl(p_source(i),resource_container_objects.source)
where
resource_container_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_resource_container_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_resource_container_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_resource_container_obj','resource_type','number',p_resource_type(m_error_index));
db_error_logger.dblogerror_values('persister.save_resource_container_obj','quantity','int',to_char(p_quantity(m_error_index)));
db_error_logger.dblogerror_values('persister.save_resource_container_obj','source','number',p_source(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_resource_container_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_resource_container_obj( p_object_id VAOFSTRING, p_resource_type VAOFSTRING, p_quantity VAOFNUMBER, p_source VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into resource_container_objects
(
resource_container_objects.resource_type,
resource_container_objects.quantity,
resource_container_objects.source,
resource_container_objects.object_id
)
VALUES
(
p_resource_type(i),
p_quantity(i),
p_source(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_resource_container_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE resource_container_objects Set
resource_container_objects.resource_type = nvl(p_resource_type(i),resource_container_objects.resource_type),
resource_container_objects.quantity = nvl(p_quantity(i),resource_container_objects.quantity),
resource_container_objects.source = nvl(p_source(i),resource_container_objects.source)
where
resource_container_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into resource_container_objects
(
resource_container_objects.resource_type,
resource_container_objects.quantity,
resource_container_objects.source,
resource_container_objects.object_id
)
VALUES
(
p_resource_type(i),
p_quantity(i),
p_source(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into resource_container_objects
(
resource_container_objects.resource_type,
resource_container_objects.quantity,
resource_container_objects.source,
resource_container_objects.object_id
)
VALUES
(
p_resource_type(i),
p_quantity(i),
p_source(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_resource_container_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_resource_container_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_resource_container_obj','resource_type','number',p_resource_type(m_error_index));
db_error_logger.dblogerror_values('persister.add_resource_container_obj','quantity','int',to_char(p_quantity(m_error_index)));
db_error_logger.dblogerror_values('persister.add_resource_container_obj','source','number',p_source(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_resource_container_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_resource_container_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete resource_container_objects
where
object_id=p_object_id(i);
end;
procedure save_ship_obj(p_object_id VAOFSTRING, p_slide_dampener VAOFNUMBER, p_current_chassis_hit_points VAOFNUMBER, p_maximum_chassis_hit_points VAOFNUMBER, p_chassis_type VAOFNUMBER, p_cmp_armor_hp_maximum VAOFSTRING, p_cmp_armor_hp_current VAOFSTRING, p_cmp_efficiency_general VAOFSTRING, p_cmp_efficiency_eng VAOFSTRING, p_cmp_eng_maintenance VAOFSTRING, p_cmp_mass VAOFSTRING, p_cmp_crc VAOFSTRING, p_cmp_hp_current VAOFSTRING, p_cmp_hp_maximum VAOFSTRING, p_cmp_flags VAOFSTRING, p_cmp_names VAOFLONGSTRING, p_weapon_damage_maximum VAOFSTRING, p_weapon_damage_minimum VAOFSTRING, p_weapon_effectiveness_shields VAOFSTRING, p_weapon_effectiveness_armor VAOFSTRING, p_weapon_eng_per_shot VAOFSTRING, p_weapon_refire_rate VAOFSTRING, p_weapon_ammo_current VAOFSTRING, p_weapon_ammo_maximum VAOFSTRING, p_weapon_ammo_type VAOFSTRING, p_shield_hp_front_maximum VAOFNUMBER, p_shield_hp_back_maximum VAOFNUMBER, p_shield_recharge_rate VAOFNUMBER, p_capacitor_eng_maximum VAOFNUMBER, p_capacitor_eng_recharge_rate VAOFNUMBER, p_engine_acc_rate VAOFNUMBER, p_engine_deceleration_rate VAOFNUMBER, p_engine_pitch_acc_rate VAOFNUMBER, p_engine_yaw_acc_rate VAOFNUMBER, p_engine_roll_acc_rate VAOFNUMBER, p_engine_pitch_rate_maximum VAOFNUMBER, p_engine_yaw_rate_maximum VAOFNUMBER, p_engine_roll_rate_maximum VAOFNUMBER, p_engine_speed_maximum VAOFNUMBER, p_reactor_eng_generation_rate VAOFNUMBER, p_booster_eng_maximum VAOFNUMBER, p_booster_eng_recharge_rate VAOFNUMBER, p_booster_eng_consumption_rate VAOFNUMBER, p_booster_acc VAOFNUMBER, p_booster_speed_maximum VAOFNUMBER, p_droid_if_cmd_speed VAOFNUMBER, p_installed_dcd VAOFSTRING, p_chassis_cmp_mass_maximum VAOFNUMBER, p_cmp_creators VAOFSTRING, p_cargo_hold_contents_maximum VAOFNUMBER, p_cargo_hold_contents_current VAOFNUMBER, p_cargo_hold_contents VAOFSTRING, p_chunk_size number)
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update ship_objects set
ship_objects.slide_dampener = nvl(p_slide_dampener(i),ship_objects.slide_dampener),
ship_objects.current_chassis_hit_points = nvl(p_current_chassis_hit_points(i),ship_objects.current_chassis_hit_points),
ship_objects.maximum_chassis_hit_points = nvl(p_maximum_chassis_hit_points(i),ship_objects.maximum_chassis_hit_points),
ship_objects.chassis_type = nvl(p_chassis_type(i),ship_objects.chassis_type),
ship_objects.cmp_armor_hp_maximum = nvl(p_cmp_armor_hp_maximum(i),ship_objects.cmp_armor_hp_maximum),
ship_objects.cmp_armor_hp_current = nvl(p_cmp_armor_hp_current(i),ship_objects.cmp_armor_hp_current),
ship_objects.cmp_efficiency_general = nvl(p_cmp_efficiency_general(i),ship_objects.cmp_efficiency_general),
ship_objects.cmp_efficiency_eng = nvl(p_cmp_efficiency_eng(i),ship_objects.cmp_efficiency_eng),
ship_objects.cmp_eng_maintenance = nvl(p_cmp_eng_maintenance(i),ship_objects.cmp_eng_maintenance),
ship_objects.cmp_mass = nvl(p_cmp_mass(i),ship_objects.cmp_mass),
ship_objects.cmp_crc = nvl(p_cmp_crc(i),ship_objects.cmp_crc),
ship_objects.cmp_hp_current = nvl(p_cmp_hp_current(i),ship_objects.cmp_hp_current),
ship_objects.cmp_hp_maximum = nvl(p_cmp_hp_maximum(i),ship_objects.cmp_hp_maximum),
ship_objects.cmp_flags = nvl(p_cmp_flags(i),ship_objects.cmp_flags),
ship_objects.cmp_names = nvl(p_cmp_names(i),ship_objects.cmp_names),
ship_objects.weapon_damage_maximum = nvl(p_weapon_damage_maximum(i),ship_objects.weapon_damage_maximum),
ship_objects.weapon_damage_minimum = nvl(p_weapon_damage_minimum(i),ship_objects.weapon_damage_minimum),
ship_objects.weapon_effectiveness_shields = nvl(p_weapon_effectiveness_shields(i),ship_objects.weapon_effectiveness_shields),
ship_objects.weapon_effectiveness_armor = nvl(p_weapon_effectiveness_armor(i),ship_objects.weapon_effectiveness_armor),
ship_objects.weapon_eng_per_shot = nvl(p_weapon_eng_per_shot(i),ship_objects.weapon_eng_per_shot),
ship_objects.weapon_refire_rate = nvl(p_weapon_refire_rate(i),ship_objects.weapon_refire_rate),
ship_objects.weapon_ammo_current = nvl(p_weapon_ammo_current(i),ship_objects.weapon_ammo_current),
ship_objects.weapon_ammo_maximum = nvl(p_weapon_ammo_maximum(i),ship_objects.weapon_ammo_maximum),
ship_objects.weapon_ammo_type = nvl(p_weapon_ammo_type(i),ship_objects.weapon_ammo_type),
ship_objects.shield_hp_front_maximum = nvl(p_shield_hp_front_maximum(i),ship_objects.shield_hp_front_maximum),
ship_objects.shield_hp_back_maximum = nvl(p_shield_hp_back_maximum(i),ship_objects.shield_hp_back_maximum),
ship_objects.shield_recharge_rate = nvl(p_shield_recharge_rate(i),ship_objects.shield_recharge_rate),
ship_objects.capacitor_eng_maximum = nvl(p_capacitor_eng_maximum(i),ship_objects.capacitor_eng_maximum),
ship_objects.capacitor_eng_recharge_rate = nvl(p_capacitor_eng_recharge_rate(i),ship_objects.capacitor_eng_recharge_rate),
ship_objects.engine_acc_rate = nvl(p_engine_acc_rate(i),ship_objects.engine_acc_rate),
ship_objects.engine_deceleration_rate = nvl(p_engine_deceleration_rate(i),ship_objects.engine_deceleration_rate),
ship_objects.engine_pitch_acc_rate = nvl(p_engine_pitch_acc_rate(i),ship_objects.engine_pitch_acc_rate),
ship_objects.engine_yaw_acc_rate = nvl(p_engine_yaw_acc_rate(i),ship_objects.engine_yaw_acc_rate),
ship_objects.engine_roll_acc_rate = nvl(p_engine_roll_acc_rate(i),ship_objects.engine_roll_acc_rate),
ship_objects.engine_pitch_rate_maximum = nvl(p_engine_pitch_rate_maximum(i),ship_objects.engine_pitch_rate_maximum),
ship_objects.engine_yaw_rate_maximum = nvl(p_engine_yaw_rate_maximum(i),ship_objects.engine_yaw_rate_maximum),
ship_objects.engine_roll_rate_maximum = nvl(p_engine_roll_rate_maximum(i),ship_objects.engine_roll_rate_maximum),
ship_objects.engine_speed_maximum = nvl(p_engine_speed_maximum(i),ship_objects.engine_speed_maximum),
ship_objects.reactor_eng_generation_rate = nvl(p_reactor_eng_generation_rate(i),ship_objects.reactor_eng_generation_rate),
ship_objects.booster_eng_maximum = nvl(p_booster_eng_maximum(i),ship_objects.booster_eng_maximum),
ship_objects.booster_eng_recharge_rate = nvl(p_booster_eng_recharge_rate(i),ship_objects.booster_eng_recharge_rate),
ship_objects.booster_eng_consumption_rate = nvl(p_booster_eng_consumption_rate(i),ship_objects.booster_eng_consumption_rate),
ship_objects.booster_acc = nvl(p_booster_acc(i),ship_objects.booster_acc),
ship_objects.booster_speed_maximum = nvl(p_booster_speed_maximum(i),ship_objects.booster_speed_maximum),
ship_objects.droid_if_cmd_speed = nvl(p_droid_if_cmd_speed(i),ship_objects.droid_if_cmd_speed),
ship_objects.installed_dcd = nvl(p_installed_dcd(i),ship_objects.installed_dcd),
ship_objects.chassis_cmp_mass_maximum = nvl(p_chassis_cmp_mass_maximum(i),ship_objects.chassis_cmp_mass_maximum),
ship_objects.cmp_creators = nvl(p_cmp_creators(i),ship_objects.cmp_creators),
ship_objects.cargo_hold_contents_maximum = nvl(p_cargo_hold_contents_maximum(i),ship_objects.cargo_hold_contents_maximum),
ship_objects.cargo_hold_contents_current = nvl(p_cargo_hold_contents_current(i),ship_objects.cargo_hold_contents_current),
ship_objects.cargo_hold_contents = nvl(p_cargo_hold_contents(i),ship_objects.cargo_hold_contents)
where
ship_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update ship_objects set
ship_objects.slide_dampener = nvl(p_slide_dampener(i),ship_objects.slide_dampener),
ship_objects.current_chassis_hit_points = nvl(p_current_chassis_hit_points(i),ship_objects.current_chassis_hit_points),
ship_objects.maximum_chassis_hit_points = nvl(p_maximum_chassis_hit_points(i),ship_objects.maximum_chassis_hit_points),
ship_objects.chassis_type = nvl(p_chassis_type(i),ship_objects.chassis_type),
ship_objects.cmp_armor_hp_maximum = nvl(p_cmp_armor_hp_maximum(i),ship_objects.cmp_armor_hp_maximum),
ship_objects.cmp_armor_hp_current = nvl(p_cmp_armor_hp_current(i),ship_objects.cmp_armor_hp_current),
ship_objects.cmp_efficiency_general = nvl(p_cmp_efficiency_general(i),ship_objects.cmp_efficiency_general),
ship_objects.cmp_efficiency_eng = nvl(p_cmp_efficiency_eng(i),ship_objects.cmp_efficiency_eng),
ship_objects.cmp_eng_maintenance = nvl(p_cmp_eng_maintenance(i),ship_objects.cmp_eng_maintenance),
ship_objects.cmp_mass = nvl(p_cmp_mass(i),ship_objects.cmp_mass),
ship_objects.cmp_crc = nvl(p_cmp_crc(i),ship_objects.cmp_crc),
ship_objects.cmp_hp_current = nvl(p_cmp_hp_current(i),ship_objects.cmp_hp_current),
ship_objects.cmp_hp_maximum = nvl(p_cmp_hp_maximum(i),ship_objects.cmp_hp_maximum),
ship_objects.cmp_flags = nvl(p_cmp_flags(i),ship_objects.cmp_flags),
ship_objects.cmp_names = nvl(p_cmp_names(i),ship_objects.cmp_names),
ship_objects.weapon_damage_maximum = nvl(p_weapon_damage_maximum(i),ship_objects.weapon_damage_maximum),
ship_objects.weapon_damage_minimum = nvl(p_weapon_damage_minimum(i),ship_objects.weapon_damage_minimum),
ship_objects.weapon_effectiveness_shields = nvl(p_weapon_effectiveness_shields(i),ship_objects.weapon_effectiveness_shields),
ship_objects.weapon_effectiveness_armor = nvl(p_weapon_effectiveness_armor(i),ship_objects.weapon_effectiveness_armor),
ship_objects.weapon_eng_per_shot = nvl(p_weapon_eng_per_shot(i),ship_objects.weapon_eng_per_shot),
ship_objects.weapon_refire_rate = nvl(p_weapon_refire_rate(i),ship_objects.weapon_refire_rate),
ship_objects.weapon_ammo_current = nvl(p_weapon_ammo_current(i),ship_objects.weapon_ammo_current),
ship_objects.weapon_ammo_maximum = nvl(p_weapon_ammo_maximum(i),ship_objects.weapon_ammo_maximum),
ship_objects.weapon_ammo_type = nvl(p_weapon_ammo_type(i),ship_objects.weapon_ammo_type),
ship_objects.shield_hp_front_maximum = nvl(p_shield_hp_front_maximum(i),ship_objects.shield_hp_front_maximum),
ship_objects.shield_hp_back_maximum = nvl(p_shield_hp_back_maximum(i),ship_objects.shield_hp_back_maximum),
ship_objects.shield_recharge_rate = nvl(p_shield_recharge_rate(i),ship_objects.shield_recharge_rate),
ship_objects.capacitor_eng_maximum = nvl(p_capacitor_eng_maximum(i),ship_objects.capacitor_eng_maximum),
ship_objects.capacitor_eng_recharge_rate = nvl(p_capacitor_eng_recharge_rate(i),ship_objects.capacitor_eng_recharge_rate),
ship_objects.engine_acc_rate = nvl(p_engine_acc_rate(i),ship_objects.engine_acc_rate),
ship_objects.engine_deceleration_rate = nvl(p_engine_deceleration_rate(i),ship_objects.engine_deceleration_rate),
ship_objects.engine_pitch_acc_rate = nvl(p_engine_pitch_acc_rate(i),ship_objects.engine_pitch_acc_rate),
ship_objects.engine_yaw_acc_rate = nvl(p_engine_yaw_acc_rate(i),ship_objects.engine_yaw_acc_rate),
ship_objects.engine_roll_acc_rate = nvl(p_engine_roll_acc_rate(i),ship_objects.engine_roll_acc_rate),
ship_objects.engine_pitch_rate_maximum = nvl(p_engine_pitch_rate_maximum(i),ship_objects.engine_pitch_rate_maximum),
ship_objects.engine_yaw_rate_maximum = nvl(p_engine_yaw_rate_maximum(i),ship_objects.engine_yaw_rate_maximum),
ship_objects.engine_roll_rate_maximum = nvl(p_engine_roll_rate_maximum(i),ship_objects.engine_roll_rate_maximum),
ship_objects.engine_speed_maximum = nvl(p_engine_speed_maximum(i),ship_objects.engine_speed_maximum),
ship_objects.reactor_eng_generation_rate = nvl(p_reactor_eng_generation_rate(i),ship_objects.reactor_eng_generation_rate),
ship_objects.booster_eng_maximum = nvl(p_booster_eng_maximum(i),ship_objects.booster_eng_maximum),
ship_objects.booster_eng_recharge_rate = nvl(p_booster_eng_recharge_rate(i),ship_objects.booster_eng_recharge_rate),
ship_objects.booster_eng_consumption_rate = nvl(p_booster_eng_consumption_rate(i),ship_objects.booster_eng_consumption_rate),
ship_objects.booster_acc = nvl(p_booster_acc(i),ship_objects.booster_acc),
ship_objects.booster_speed_maximum = nvl(p_booster_speed_maximum(i),ship_objects.booster_speed_maximum),
ship_objects.droid_if_cmd_speed = nvl(p_droid_if_cmd_speed(i),ship_objects.droid_if_cmd_speed),
ship_objects.installed_dcd = nvl(p_installed_dcd(i),ship_objects.installed_dcd),
ship_objects.chassis_cmp_mass_maximum = nvl(p_chassis_cmp_mass_maximum(i),ship_objects.chassis_cmp_mass_maximum),
ship_objects.cmp_creators = nvl(p_cmp_creators(i),ship_objects.cmp_creators),
ship_objects.cargo_hold_contents_maximum = nvl(p_cargo_hold_contents_maximum(i),ship_objects.cargo_hold_contents_maximum),
ship_objects.cargo_hold_contents_current = nvl(p_cargo_hold_contents_current(i),ship_objects.cargo_hold_contents_current),
ship_objects.cargo_hold_contents = nvl(p_cargo_hold_contents(i),ship_objects.cargo_hold_contents)
where
ship_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_ship_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_ship_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','slide_dampener','float',to_char(p_slide_dampener(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','current_chassis_hit_points','float',to_char(p_current_chassis_hit_points(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','maximum_chassis_hit_points','float',to_char(p_maximum_chassis_hit_points(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','chassis_type','int',to_char(p_chassis_type(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_armor_hp_maximum','varchar2',p_cmp_armor_hp_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_armor_hp_current','varchar2',p_cmp_armor_hp_current(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_efficiency_general','varchar2',p_cmp_efficiency_general(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_efficiency_eng','varchar2',p_cmp_efficiency_eng(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_eng_maintenance','varchar2',p_cmp_eng_maintenance(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_mass','varchar2',p_cmp_mass(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_crc','varchar2',p_cmp_crc(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_hp_current','varchar2',p_cmp_hp_current(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_hp_maximum','varchar2',p_cmp_hp_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_flags','varchar2',p_cmp_flags(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_names','varchar2',p_cmp_names(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_damage_maximum','varchar2',p_weapon_damage_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_damage_minimum','varchar2',p_weapon_damage_minimum(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_effectiveness_shields','varchar2',p_weapon_effectiveness_shields(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_effectiveness_armor','varchar2',p_weapon_effectiveness_armor(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_eng_per_shot','varchar2',p_weapon_eng_per_shot(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_refire_rate','varchar2',p_weapon_refire_rate(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_ammo_current','varchar2',p_weapon_ammo_current(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_ammo_maximum','varchar2',p_weapon_ammo_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','weapon_ammo_type','varchar2',p_weapon_ammo_type(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','shield_hp_front_maximum','float',to_char(p_shield_hp_front_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','shield_hp_back_maximum','float',to_char(p_shield_hp_back_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','shield_recharge_rate','float',to_char(p_shield_recharge_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','capacitor_eng_maximum','float',to_char(p_capacitor_eng_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','capacitor_eng_recharge_rate','float',to_char(p_capacitor_eng_recharge_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_acc_rate','float',to_char(p_engine_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_deceleration_rate','float',to_char(p_engine_deceleration_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_pitch_acc_rate','float',to_char(p_engine_pitch_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_yaw_acc_rate','float',to_char(p_engine_yaw_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_roll_acc_rate','float',to_char(p_engine_roll_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_pitch_rate_maximum','float',to_char(p_engine_pitch_rate_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_yaw_rate_maximum','float',to_char(p_engine_yaw_rate_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_roll_rate_maximum','float',to_char(p_engine_roll_rate_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','engine_speed_maximum','float',to_char(p_engine_speed_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','reactor_eng_generation_rate','float',to_char(p_reactor_eng_generation_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','booster_eng_maximum','float',to_char(p_booster_eng_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','booster_eng_recharge_rate','float',to_char(p_booster_eng_recharge_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','booster_eng_consumption_rate','float',to_char(p_booster_eng_consumption_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','booster_acc','float',to_char(p_booster_acc(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','booster_speed_maximum','float',to_char(p_booster_speed_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','droid_if_cmd_speed','float',to_char(p_droid_if_cmd_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','installed_dcd','number',p_installed_dcd(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','chassis_cmp_mass_maximum','float',to_char(p_chassis_cmp_mass_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','cmp_creators','varchar2',p_cmp_creators(m_error_index));
db_error_logger.dblogerror_values('persister.save_ship_obj','cargo_hold_contents_maximum','number',to_char(p_cargo_hold_contents_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','cargo_hold_contents_current','number',to_char(p_cargo_hold_contents_current(m_error_index)));
db_error_logger.dblogerror_values('persister.save_ship_obj','cargo_hold_contents','varchar2',p_cargo_hold_contents(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_ship_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_ship_obj(p_object_id VAOFSTRING, p_slide_dampener VAOFNUMBER, p_current_chassis_hit_points VAOFNUMBER, p_maximum_chassis_hit_points VAOFNUMBER, p_chassis_type VAOFNUMBER, p_cmp_armor_hp_maximum VAOFSTRING, p_cmp_armor_hp_current VAOFSTRING, p_cmp_efficiency_general VAOFSTRING, p_cmp_efficiency_eng VAOFSTRING, p_cmp_eng_maintenance VAOFSTRING, p_cmp_mass VAOFSTRING, p_cmp_crc VAOFSTRING, p_cmp_hp_current VAOFSTRING, p_cmp_hp_maximum VAOFSTRING, p_cmp_flags VAOFSTRING, p_cmp_names VAOFLONGSTRING, p_weapon_damage_maximum VAOFSTRING, p_weapon_damage_minimum VAOFSTRING, p_weapon_effectiveness_shields VAOFSTRING, p_weapon_effectiveness_armor VAOFSTRING, p_weapon_eng_per_shot VAOFSTRING, p_weapon_refire_rate VAOFSTRING, p_weapon_ammo_current VAOFSTRING, p_weapon_ammo_maximum VAOFSTRING, p_weapon_ammo_type VAOFSTRING, p_shield_hp_front_maximum VAOFNUMBER, p_shield_hp_back_maximum VAOFNUMBER, p_shield_recharge_rate VAOFNUMBER, p_capacitor_eng_maximum VAOFNUMBER, p_capacitor_eng_recharge_rate VAOFNUMBER, p_engine_acc_rate VAOFNUMBER, p_engine_deceleration_rate VAOFNUMBER, p_engine_pitch_acc_rate VAOFNUMBER, p_engine_yaw_acc_rate VAOFNUMBER, p_engine_roll_acc_rate VAOFNUMBER, p_engine_pitch_rate_maximum VAOFNUMBER, p_engine_yaw_rate_maximum VAOFNUMBER, p_engine_roll_rate_maximum VAOFNUMBER, p_engine_speed_maximum VAOFNUMBER, p_reactor_eng_generation_rate VAOFNUMBER, p_booster_eng_maximum VAOFNUMBER, p_booster_eng_recharge_rate VAOFNUMBER, p_booster_eng_consumption_rate VAOFNUMBER, p_booster_acc VAOFNUMBER, p_booster_speed_maximum VAOFNUMBER, p_droid_if_cmd_speed VAOFNUMBER, p_installed_dcd VAOFSTRING, p_chassis_cmp_mass_maximum VAOFNUMBER, p_cmp_creators VAOFSTRING, p_cargo_hold_contents_maximum VAOFNUMBER, p_cargo_hold_contents_current VAOFNUMBER, p_cargo_hold_contents VAOFSTRING, p_chunk_size number)
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into ship_objects
(
ship_objects.slide_dampener,
ship_objects.current_chassis_hit_points,
ship_objects.maximum_chassis_hit_points,
ship_objects.chassis_type,
ship_objects.cmp_armor_hp_maximum,
ship_objects.cmp_armor_hp_current,
ship_objects.cmp_efficiency_general,
ship_objects.cmp_efficiency_eng,
ship_objects.cmp_eng_maintenance,
ship_objects.cmp_mass,
ship_objects.cmp_crc,
ship_objects.cmp_hp_current,
ship_objects.cmp_hp_maximum,
ship_objects.cmp_flags,
ship_objects.cmp_names,
ship_objects.weapon_damage_maximum,
ship_objects.weapon_damage_minimum,
ship_objects.weapon_effectiveness_shields,
ship_objects.weapon_effectiveness_armor,
ship_objects.weapon_eng_per_shot,
ship_objects.weapon_refire_rate,
ship_objects.weapon_ammo_current,
ship_objects.weapon_ammo_maximum,
ship_objects.weapon_ammo_type,
ship_objects.shield_hp_front_maximum,
ship_objects.shield_hp_back_maximum,
ship_objects.shield_recharge_rate,
ship_objects.capacitor_eng_maximum,
ship_objects.capacitor_eng_recharge_rate,
ship_objects.engine_acc_rate,
ship_objects.engine_deceleration_rate,
ship_objects.engine_pitch_acc_rate,
ship_objects.engine_yaw_acc_rate,
ship_objects.engine_roll_acc_rate,
ship_objects.engine_pitch_rate_maximum,
ship_objects.engine_yaw_rate_maximum,
ship_objects.engine_roll_rate_maximum,
ship_objects.engine_speed_maximum,
ship_objects.reactor_eng_generation_rate,
ship_objects.booster_eng_maximum,
ship_objects.booster_eng_recharge_rate,
ship_objects.booster_eng_consumption_rate,
ship_objects.booster_acc,
ship_objects.booster_speed_maximum,
ship_objects.droid_if_cmd_speed,
ship_objects.installed_dcd,
ship_objects.chassis_cmp_mass_maximum,
ship_objects.cmp_creators,
ship_objects.cargo_hold_contents_maximum,
ship_objects.cargo_hold_contents_current,
ship_objects.cargo_hold_contents,
ship_objects.object_id
)
VALUES
(
p_slide_dampener(i),
p_current_chassis_hit_points(i),
p_maximum_chassis_hit_points(i),
p_chassis_type(i),
p_cmp_armor_hp_maximum(i),
p_cmp_armor_hp_current(i),
p_cmp_efficiency_general(i),
p_cmp_efficiency_eng(i),
p_cmp_eng_maintenance(i),
p_cmp_mass(i),
p_cmp_crc(i),
p_cmp_hp_current(i),
p_cmp_hp_maximum(i),
p_cmp_flags(i),
p_cmp_names(i),
p_weapon_damage_maximum(i),
p_weapon_damage_minimum(i),
p_weapon_effectiveness_shields(i),
p_weapon_effectiveness_armor(i),
p_weapon_eng_per_shot(i),
p_weapon_refire_rate(i),
p_weapon_ammo_current(i),
p_weapon_ammo_maximum(i),
p_weapon_ammo_type(i),
p_shield_hp_front_maximum(i),
p_shield_hp_back_maximum(i),
p_shield_recharge_rate(i),
p_capacitor_eng_maximum(i),
p_capacitor_eng_recharge_rate(i),
p_engine_acc_rate(i),
p_engine_deceleration_rate(i),
p_engine_pitch_acc_rate(i),
p_engine_yaw_acc_rate(i),
p_engine_roll_acc_rate(i),
p_engine_pitch_rate_maximum(i),
p_engine_yaw_rate_maximum(i),
p_engine_roll_rate_maximum(i),
p_engine_speed_maximum(i),
p_reactor_eng_generation_rate(i),
p_booster_eng_maximum(i),
p_booster_eng_recharge_rate(i),
p_booster_eng_consumption_rate(i),
p_booster_acc(i),
p_booster_speed_maximum(i),
p_droid_if_cmd_speed(i),
p_installed_dcd(i),
p_chassis_cmp_mass_maximum(i),
p_cmp_creators(i),
p_cargo_hold_contents_maximum(i),
p_cargo_hold_contents_current(i),
p_cargo_hold_contents(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_ship_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE ship_objects Set
ship_objects.slide_dampener = nvl(p_slide_dampener(i),ship_objects.slide_dampener),
ship_objects.current_chassis_hit_points = nvl(p_current_chassis_hit_points(i),ship_objects.current_chassis_hit_points),
ship_objects.maximum_chassis_hit_points = nvl(p_maximum_chassis_hit_points(i),ship_objects.maximum_chassis_hit_points),
ship_objects.chassis_type = nvl(p_chassis_type(i),ship_objects.chassis_type),
ship_objects.cmp_armor_hp_maximum = nvl(p_cmp_armor_hp_maximum(i),ship_objects.cmp_armor_hp_maximum),
ship_objects.cmp_armor_hp_current = nvl(p_cmp_armor_hp_current(i),ship_objects.cmp_armor_hp_current),
ship_objects.cmp_efficiency_general = nvl(p_cmp_efficiency_general(i),ship_objects.cmp_efficiency_general),
ship_objects.cmp_efficiency_eng = nvl(p_cmp_efficiency_eng(i),ship_objects.cmp_efficiency_eng),
ship_objects.cmp_eng_maintenance = nvl(p_cmp_eng_maintenance(i),ship_objects.cmp_eng_maintenance),
ship_objects.cmp_mass = nvl(p_cmp_mass(i),ship_objects.cmp_mass),
ship_objects.cmp_crc = nvl(p_cmp_crc(i),ship_objects.cmp_crc),
ship_objects.cmp_hp_current = nvl(p_cmp_hp_current(i),ship_objects.cmp_hp_current),
ship_objects.cmp_hp_maximum = nvl(p_cmp_hp_maximum(i),ship_objects.cmp_hp_maximum),
ship_objects.cmp_flags = nvl(p_cmp_flags(i),ship_objects.cmp_flags),
ship_objects.cmp_names = nvl(p_cmp_names(i),ship_objects.cmp_names),
ship_objects.weapon_damage_maximum = nvl(p_weapon_damage_maximum(i),ship_objects.weapon_damage_maximum),
ship_objects.weapon_damage_minimum = nvl(p_weapon_damage_minimum(i),ship_objects.weapon_damage_minimum),
ship_objects.weapon_effectiveness_shields = nvl(p_weapon_effectiveness_shields(i),ship_objects.weapon_effectiveness_shields),
ship_objects.weapon_effectiveness_armor = nvl(p_weapon_effectiveness_armor(i),ship_objects.weapon_effectiveness_armor),
ship_objects.weapon_eng_per_shot = nvl(p_weapon_eng_per_shot(i),ship_objects.weapon_eng_per_shot),
ship_objects.weapon_refire_rate = nvl(p_weapon_refire_rate(i),ship_objects.weapon_refire_rate),
ship_objects.weapon_ammo_current = nvl(p_weapon_ammo_current(i),ship_objects.weapon_ammo_current),
ship_objects.weapon_ammo_maximum = nvl(p_weapon_ammo_maximum(i),ship_objects.weapon_ammo_maximum),
ship_objects.weapon_ammo_type = nvl(p_weapon_ammo_type(i),ship_objects.weapon_ammo_type),
ship_objects.shield_hp_front_maximum = nvl(p_shield_hp_front_maximum(i),ship_objects.shield_hp_front_maximum),
ship_objects.shield_hp_back_maximum = nvl(p_shield_hp_back_maximum(i),ship_objects.shield_hp_back_maximum),
ship_objects.shield_recharge_rate = nvl(p_shield_recharge_rate(i),ship_objects.shield_recharge_rate),
ship_objects.capacitor_eng_maximum = nvl(p_capacitor_eng_maximum(i),ship_objects.capacitor_eng_maximum),
ship_objects.capacitor_eng_recharge_rate = nvl(p_capacitor_eng_recharge_rate(i),ship_objects.capacitor_eng_recharge_rate),
ship_objects.engine_acc_rate = nvl(p_engine_acc_rate(i),ship_objects.engine_acc_rate),
ship_objects.engine_deceleration_rate = nvl(p_engine_deceleration_rate(i),ship_objects.engine_deceleration_rate),
ship_objects.engine_pitch_acc_rate = nvl(p_engine_pitch_acc_rate(i),ship_objects.engine_pitch_acc_rate),
ship_objects.engine_yaw_acc_rate = nvl(p_engine_yaw_acc_rate(i),ship_objects.engine_yaw_acc_rate),
ship_objects.engine_roll_acc_rate = nvl(p_engine_roll_acc_rate(i),ship_objects.engine_roll_acc_rate),
ship_objects.engine_pitch_rate_maximum = nvl(p_engine_pitch_rate_maximum(i),ship_objects.engine_pitch_rate_maximum),
ship_objects.engine_yaw_rate_maximum = nvl(p_engine_yaw_rate_maximum(i),ship_objects.engine_yaw_rate_maximum),
ship_objects.engine_roll_rate_maximum = nvl(p_engine_roll_rate_maximum(i),ship_objects.engine_roll_rate_maximum),
ship_objects.engine_speed_maximum = nvl(p_engine_speed_maximum(i),ship_objects.engine_speed_maximum),
ship_objects.reactor_eng_generation_rate = nvl(p_reactor_eng_generation_rate(i),ship_objects.reactor_eng_generation_rate),
ship_objects.booster_eng_maximum = nvl(p_booster_eng_maximum(i),ship_objects.booster_eng_maximum),
ship_objects.booster_eng_recharge_rate = nvl(p_booster_eng_recharge_rate(i),ship_objects.booster_eng_recharge_rate),
ship_objects.booster_eng_consumption_rate = nvl(p_booster_eng_consumption_rate(i),ship_objects.booster_eng_consumption_rate),
ship_objects.booster_acc = nvl(p_booster_acc(i),ship_objects.booster_acc),
ship_objects.booster_speed_maximum = nvl(p_booster_speed_maximum(i),ship_objects.booster_speed_maximum),
ship_objects.droid_if_cmd_speed = nvl(p_droid_if_cmd_speed(i),ship_objects.droid_if_cmd_speed),
ship_objects.installed_dcd = nvl(p_installed_dcd(i),ship_objects.installed_dcd),
ship_objects.chassis_cmp_mass_maximum = nvl(p_chassis_cmp_mass_maximum(i),ship_objects.chassis_cmp_mass_maximum),
ship_objects.cmp_creators = nvl(p_cmp_creators(i),ship_objects.cmp_creators),
ship_objects.cargo_hold_contents_maximum = nvl(p_cargo_hold_contents_maximum(i),ship_objects.cargo_hold_contents_maximum),
ship_objects.cargo_hold_contents_current = nvl(p_cargo_hold_contents_current(i),ship_objects.cargo_hold_contents_current),
ship_objects.cargo_hold_contents = nvl(p_cargo_hold_contents(i),ship_objects.cargo_hold_contents)
where
ship_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into ship_objects
(
ship_objects.slide_dampener,
ship_objects.current_chassis_hit_points,
ship_objects.maximum_chassis_hit_points,
ship_objects.chassis_type,
ship_objects.cmp_armor_hp_maximum,
ship_objects.cmp_armor_hp_current,
ship_objects.cmp_efficiency_general,
ship_objects.cmp_efficiency_eng,
ship_objects.cmp_eng_maintenance,
ship_objects.cmp_mass,
ship_objects.cmp_crc,
ship_objects.cmp_hp_current,
ship_objects.cmp_hp_maximum,
ship_objects.cmp_flags,
ship_objects.cmp_names,
ship_objects.weapon_damage_maximum,
ship_objects.weapon_damage_minimum,
ship_objects.weapon_effectiveness_shields,
ship_objects.weapon_effectiveness_armor,
ship_objects.weapon_eng_per_shot,
ship_objects.weapon_refire_rate,
ship_objects.weapon_ammo_current,
ship_objects.weapon_ammo_maximum,
ship_objects.weapon_ammo_type,
ship_objects.shield_hp_front_maximum,
ship_objects.shield_hp_back_maximum,
ship_objects.shield_recharge_rate,
ship_objects.capacitor_eng_maximum,
ship_objects.capacitor_eng_recharge_rate,
ship_objects.engine_acc_rate,
ship_objects.engine_deceleration_rate,
ship_objects.engine_pitch_acc_rate,
ship_objects.engine_yaw_acc_rate,
ship_objects.engine_roll_acc_rate,
ship_objects.engine_pitch_rate_maximum,
ship_objects.engine_yaw_rate_maximum,
ship_objects.engine_roll_rate_maximum,
ship_objects.engine_speed_maximum,
ship_objects.reactor_eng_generation_rate,
ship_objects.booster_eng_maximum,
ship_objects.booster_eng_recharge_rate,
ship_objects.booster_eng_consumption_rate,
ship_objects.booster_acc,
ship_objects.booster_speed_maximum,
ship_objects.droid_if_cmd_speed,
ship_objects.installed_dcd,
ship_objects.chassis_cmp_mass_maximum,
ship_objects.cmp_creators,
ship_objects.cargo_hold_contents_maximum,
ship_objects.cargo_hold_contents_current,
ship_objects.cargo_hold_contents,
ship_objects.object_id
)
VALUES
(
p_slide_dampener(i),
p_current_chassis_hit_points(i),
p_maximum_chassis_hit_points(i),
p_chassis_type(i),
p_cmp_armor_hp_maximum(i),
p_cmp_armor_hp_current(i),
p_cmp_efficiency_general(i),
p_cmp_efficiency_eng(i),
p_cmp_eng_maintenance(i),
p_cmp_mass(i),
p_cmp_crc(i),
p_cmp_hp_current(i),
p_cmp_hp_maximum(i),
p_cmp_flags(i),
p_cmp_names(i),
p_weapon_damage_maximum(i),
p_weapon_damage_minimum(i),
p_weapon_effectiveness_shields(i),
p_weapon_effectiveness_armor(i),
p_weapon_eng_per_shot(i),
p_weapon_refire_rate(i),
p_weapon_ammo_current(i),
p_weapon_ammo_maximum(i),
p_weapon_ammo_type(i),
p_shield_hp_front_maximum(i),
p_shield_hp_back_maximum(i),
p_shield_recharge_rate(i),
p_capacitor_eng_maximum(i),
p_capacitor_eng_recharge_rate(i),
p_engine_acc_rate(i),
p_engine_deceleration_rate(i),
p_engine_pitch_acc_rate(i),
p_engine_yaw_acc_rate(i),
p_engine_roll_acc_rate(i),
p_engine_pitch_rate_maximum(i),
p_engine_yaw_rate_maximum(i),
p_engine_roll_rate_maximum(i),
p_engine_speed_maximum(i),
p_reactor_eng_generation_rate(i),
p_booster_eng_maximum(i),
p_booster_eng_recharge_rate(i),
p_booster_eng_consumption_rate(i),
p_booster_acc(i),
p_booster_speed_maximum(i),
p_droid_if_cmd_speed(i),
p_installed_dcd(i),
p_chassis_cmp_mass_maximum(i),
p_cmp_creators(i),
p_cargo_hold_contents_maximum(i),
p_cargo_hold_contents_current(i),
p_cargo_hold_contents(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into ship_objects
(
ship_objects.slide_dampener,
ship_objects.current_chassis_hit_points,
ship_objects.maximum_chassis_hit_points,
ship_objects.chassis_type,
ship_objects.cmp_armor_hp_maximum,
ship_objects.cmp_armor_hp_current,
ship_objects.cmp_efficiency_general,
ship_objects.cmp_efficiency_eng,
ship_objects.cmp_eng_maintenance,
ship_objects.cmp_mass,
ship_objects.cmp_crc,
ship_objects.cmp_hp_current,
ship_objects.cmp_hp_maximum,
ship_objects.cmp_flags,
ship_objects.cmp_names,
ship_objects.weapon_damage_maximum,
ship_objects.weapon_damage_minimum,
ship_objects.weapon_effectiveness_shields,
ship_objects.weapon_effectiveness_armor,
ship_objects.weapon_eng_per_shot,
ship_objects.weapon_refire_rate,
ship_objects.weapon_ammo_current,
ship_objects.weapon_ammo_maximum,
ship_objects.weapon_ammo_type,
ship_objects.shield_hp_front_maximum,
ship_objects.shield_hp_back_maximum,
ship_objects.shield_recharge_rate,
ship_objects.capacitor_eng_maximum,
ship_objects.capacitor_eng_recharge_rate,
ship_objects.engine_acc_rate,
ship_objects.engine_deceleration_rate,
ship_objects.engine_pitch_acc_rate,
ship_objects.engine_yaw_acc_rate,
ship_objects.engine_roll_acc_rate,
ship_objects.engine_pitch_rate_maximum,
ship_objects.engine_yaw_rate_maximum,
ship_objects.engine_roll_rate_maximum,
ship_objects.engine_speed_maximum,
ship_objects.reactor_eng_generation_rate,
ship_objects.booster_eng_maximum,
ship_objects.booster_eng_recharge_rate,
ship_objects.booster_eng_consumption_rate,
ship_objects.booster_acc,
ship_objects.booster_speed_maximum,
ship_objects.droid_if_cmd_speed,
ship_objects.installed_dcd,
ship_objects.chassis_cmp_mass_maximum,
ship_objects.cmp_creators,
ship_objects.cargo_hold_contents_maximum,
ship_objects.cargo_hold_contents_current,
ship_objects.cargo_hold_contents,
ship_objects.object_id
)
VALUES
(
p_slide_dampener(i),
p_current_chassis_hit_points(i),
p_maximum_chassis_hit_points(i),
p_chassis_type(i),
p_cmp_armor_hp_maximum(i),
p_cmp_armor_hp_current(i),
p_cmp_efficiency_general(i),
p_cmp_efficiency_eng(i),
p_cmp_eng_maintenance(i),
p_cmp_mass(i),
p_cmp_crc(i),
p_cmp_hp_current(i),
p_cmp_hp_maximum(i),
p_cmp_flags(i),
p_cmp_names(i),
p_weapon_damage_maximum(i),
p_weapon_damage_minimum(i),
p_weapon_effectiveness_shields(i),
p_weapon_effectiveness_armor(i),
p_weapon_eng_per_shot(i),
p_weapon_refire_rate(i),
p_weapon_ammo_current(i),
p_weapon_ammo_maximum(i),
p_weapon_ammo_type(i),
p_shield_hp_front_maximum(i),
p_shield_hp_back_maximum(i),
p_shield_recharge_rate(i),
p_capacitor_eng_maximum(i),
p_capacitor_eng_recharge_rate(i),
p_engine_acc_rate(i),
p_engine_deceleration_rate(i),
p_engine_pitch_acc_rate(i),
p_engine_yaw_acc_rate(i),
p_engine_roll_acc_rate(i),
p_engine_pitch_rate_maximum(i),
p_engine_yaw_rate_maximum(i),
p_engine_roll_rate_maximum(i),
p_engine_speed_maximum(i),
p_reactor_eng_generation_rate(i),
p_booster_eng_maximum(i),
p_booster_eng_recharge_rate(i),
p_booster_eng_consumption_rate(i),
p_booster_acc(i),
p_booster_speed_maximum(i),
p_droid_if_cmd_speed(i),
p_installed_dcd(i),
p_chassis_cmp_mass_maximum(i),
p_cmp_creators(i),
p_cargo_hold_contents_maximum(i),
p_cargo_hold_contents_current(i),
p_cargo_hold_contents(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_ship_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_ship_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','slide_dampener','float',to_char(p_slide_dampener(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','current_chassis_hit_points','float',to_char(p_current_chassis_hit_points(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','maximum_chassis_hit_points','float',to_char(p_maximum_chassis_hit_points(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','chassis_type','int',to_char(p_chassis_type(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_armor_hp_maximum','varchar2',p_cmp_armor_hp_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_armor_hp_current','varchar2',p_cmp_armor_hp_current(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_efficiency_general','varchar2',p_cmp_efficiency_general(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_efficiency_eng','varchar2',p_cmp_efficiency_eng(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_eng_maintenance','varchar2',p_cmp_eng_maintenance(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_mass','varchar2',p_cmp_mass(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_crc','varchar2',p_cmp_crc(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_hp_current','varchar2',p_cmp_hp_current(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_hp_maximum','varchar2',p_cmp_hp_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_flags','varchar2',p_cmp_flags(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_names','varchar2',p_cmp_names(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_damage_maximum','varchar2',p_weapon_damage_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_damage_minimum','varchar2',p_weapon_damage_minimum(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_effectiveness_shields','varchar2',p_weapon_effectiveness_shields(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_effectiveness_armor','varchar2',p_weapon_effectiveness_armor(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_eng_per_shot','varchar2',p_weapon_eng_per_shot(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_refire_rate','varchar2',p_weapon_refire_rate(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_ammo_current','varchar2',p_weapon_ammo_current(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_ammo_maximum','varchar2',p_weapon_ammo_maximum(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','weapon_ammo_type','varchar2',p_weapon_ammo_type(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','shield_hp_front_maximum','float',to_char(p_shield_hp_front_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','shield_hp_back_maximum','float',to_char(p_shield_hp_back_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','shield_recharge_rate','float',to_char(p_shield_recharge_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','capacitor_eng_maximum','float',to_char(p_capacitor_eng_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','capacitor_eng_recharge_rate','float',to_char(p_capacitor_eng_recharge_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_acc_rate','float',to_char(p_engine_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_deceleration_rate','float',to_char(p_engine_deceleration_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_pitch_acc_rate','float',to_char(p_engine_pitch_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_yaw_acc_rate','float',to_char(p_engine_yaw_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_roll_acc_rate','float',to_char(p_engine_roll_acc_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_pitch_rate_maximum','float',to_char(p_engine_pitch_rate_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_yaw_rate_maximum','float',to_char(p_engine_yaw_rate_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_roll_rate_maximum','float',to_char(p_engine_roll_rate_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','engine_speed_maximum','float',to_char(p_engine_speed_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','reactor_eng_generation_rate','float',to_char(p_reactor_eng_generation_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','booster_eng_maximum','float',to_char(p_booster_eng_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','booster_eng_recharge_rate','float',to_char(p_booster_eng_recharge_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','booster_eng_consumption_rate','float',to_char(p_booster_eng_consumption_rate(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','booster_acc','float',to_char(p_booster_acc(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','booster_speed_maximum','float',to_char(p_booster_speed_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','droid_if_cmd_speed','float',to_char(p_droid_if_cmd_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','installed_dcd','number',p_installed_dcd(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','chassis_cmp_mass_maximum','float',to_char(p_chassis_cmp_mass_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','cmp_creators','varchar2',p_cmp_creators(m_error_index));
db_error_logger.dblogerror_values('persister.add_ship_obj','cargo_hold_contents_maximum','number',to_char(p_cargo_hold_contents_maximum(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','cargo_hold_contents_current','number',to_char(p_cargo_hold_contents_current(m_error_index)));
db_error_logger.dblogerror_values('persister.add_ship_obj','cargo_hold_contents','varchar2',p_cargo_hold_contents(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_ship_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_ship_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete ship_objects
where
object_id=p_object_id(i);
end;
procedure save_static_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
null;
end;
procedure add_static_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into static_objects
(
static_objects.object_id
)
VALUES
(
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_static_obj : dup_val_on_index error.');
END IF;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into static_objects
(
static_objects.object_id
)
VALUES
(
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_static_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_static_obj','object_id','number',p_object_id(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_static_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_static_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
null;
end;
procedure save_tangible_obj( p_object_id VAOFSTRING, p_max_hit_points VAOFNUMBER, p_owner_id VAOFSTRING, p_visible VAOFSTRING, p_appearance_data VAOFSTRING, p_interest_radius VAOFNUMBER, p_pvp_type VAOFNUMBER, p_pvp_faction VAOFNUMBER, p_damage_taken VAOFNUMBER, p_custom_appearance VAOFSTRING, p_count VAOFNUMBER, p_condition VAOFNUMBER, p_creator_id VAOFSTRING, p_source_draft_schematic VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update tangible_objects set
tangible_objects.max_hit_points = nvl(p_max_hit_points(i),tangible_objects.max_hit_points),
tangible_objects.owner_id = nvl(p_owner_id(i),tangible_objects.owner_id),
tangible_objects.visible = nvl(p_visible(i),tangible_objects.visible),
tangible_objects.appearance_data = nvl(p_appearance_data(i),tangible_objects.appearance_data),
tangible_objects.interest_radius = nvl(p_interest_radius(i),tangible_objects.interest_radius),
tangible_objects.pvp_type = nvl(p_pvp_type(i),tangible_objects.pvp_type),
tangible_objects.pvp_faction = nvl(p_pvp_faction(i),tangible_objects.pvp_faction),
tangible_objects.damage_taken = nvl(p_damage_taken(i),tangible_objects.damage_taken),
tangible_objects.custom_appearance = nvl(p_custom_appearance(i),tangible_objects.custom_appearance),
tangible_objects.count = nvl(p_count(i),tangible_objects.count),
tangible_objects.condition = nvl(p_condition(i),tangible_objects.condition),
tangible_objects.creator_id = nvl(p_creator_id(i),tangible_objects.creator_id),
tangible_objects.source_draft_schematic = nvl(p_source_draft_schematic(i),tangible_objects.source_draft_schematic)
where
tangible_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update tangible_objects set
tangible_objects.max_hit_points = nvl(p_max_hit_points(i),tangible_objects.max_hit_points),
tangible_objects.owner_id = nvl(p_owner_id(i),tangible_objects.owner_id),
tangible_objects.visible = nvl(p_visible(i),tangible_objects.visible),
tangible_objects.appearance_data = nvl(p_appearance_data(i),tangible_objects.appearance_data),
tangible_objects.interest_radius = nvl(p_interest_radius(i),tangible_objects.interest_radius),
tangible_objects.pvp_type = nvl(p_pvp_type(i),tangible_objects.pvp_type),
tangible_objects.pvp_faction = nvl(p_pvp_faction(i),tangible_objects.pvp_faction),
tangible_objects.damage_taken = nvl(p_damage_taken(i),tangible_objects.damage_taken),
tangible_objects.custom_appearance = nvl(p_custom_appearance(i),tangible_objects.custom_appearance),
tangible_objects.count = nvl(p_count(i),tangible_objects.count),
tangible_objects.condition = nvl(p_condition(i),tangible_objects.condition),
tangible_objects.creator_id = nvl(p_creator_id(i),tangible_objects.creator_id),
tangible_objects.source_draft_schematic = nvl(p_source_draft_schematic(i),tangible_objects.source_draft_schematic)
where
tangible_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_tangible_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_tangible_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_tangible_obj','max_hit_points','int',to_char(p_max_hit_points(m_error_index)));
db_error_logger.dblogerror_values('persister.save_tangible_obj','owner_id','int',p_owner_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_tangible_obj','visible','char',p_visible(m_error_index));
db_error_logger.dblogerror_values('persister.save_tangible_obj','appearance_data','varchar',p_appearance_data(m_error_index));
db_error_logger.dblogerror_values('persister.save_tangible_obj','interest_radius','int',to_char(p_interest_radius(m_error_index)));
db_error_logger.dblogerror_values('persister.save_tangible_obj','pvp_type','int',to_char(p_pvp_type(m_error_index)));
db_error_logger.dblogerror_values('persister.save_tangible_obj','pvp_faction','int',to_char(p_pvp_faction(m_error_index)));
db_error_logger.dblogerror_values('persister.save_tangible_obj','damage_taken','int',to_char(p_damage_taken(m_error_index)));
db_error_logger.dblogerror_values('persister.save_tangible_obj','custom_appearance','varchar2',p_custom_appearance(m_error_index));
db_error_logger.dblogerror_values('persister.save_tangible_obj','count','int',to_char(p_count(m_error_index)));
db_error_logger.dblogerror_values('persister.save_tangible_obj','condition','int',to_char(p_condition(m_error_index)));
db_error_logger.dblogerror_values('persister.save_tangible_obj','creator_id','number',p_creator_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_tangible_obj','source_draft_schematic','int',to_char(p_source_draft_schematic(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_tangible_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_tangible_obj( p_object_id VAOFSTRING, p_max_hit_points VAOFNUMBER, p_owner_id VAOFSTRING, p_visible VAOFSTRING, p_appearance_data VAOFSTRING, p_interest_radius VAOFNUMBER, p_pvp_type VAOFNUMBER, p_pvp_faction VAOFNUMBER, p_damage_taken VAOFNUMBER, p_custom_appearance VAOFSTRING, p_count VAOFNUMBER, p_condition VAOFNUMBER, p_creator_id VAOFSTRING, p_source_draft_schematic VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into tangible_objects
(
tangible_objects.max_hit_points,
tangible_objects.owner_id,
tangible_objects.visible,
tangible_objects.appearance_data,
tangible_objects.interest_radius,
tangible_objects.pvp_type,
tangible_objects.pvp_faction,
tangible_objects.damage_taken,
tangible_objects.custom_appearance,
tangible_objects.count,
tangible_objects.condition,
tangible_objects.creator_id,
tangible_objects.source_draft_schematic,
tangible_objects.object_id
)
VALUES
(
p_max_hit_points(i),
p_owner_id(i),
p_visible(i),
p_appearance_data(i),
p_interest_radius(i),
p_pvp_type(i),
p_pvp_faction(i),
p_damage_taken(i),
p_custom_appearance(i),
p_count(i),
p_condition(i),
p_creator_id(i),
p_source_draft_schematic(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_tangible_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE tangible_objects Set
tangible_objects.max_hit_points = nvl(p_max_hit_points(i),tangible_objects.max_hit_points),
tangible_objects.owner_id = nvl(p_owner_id(i),tangible_objects.owner_id),
tangible_objects.visible = nvl(p_visible(i),tangible_objects.visible),
tangible_objects.appearance_data = nvl(p_appearance_data(i),tangible_objects.appearance_data),
tangible_objects.interest_radius = nvl(p_interest_radius(i),tangible_objects.interest_radius),
tangible_objects.pvp_type = nvl(p_pvp_type(i),tangible_objects.pvp_type),
tangible_objects.pvp_faction = nvl(p_pvp_faction(i),tangible_objects.pvp_faction),
tangible_objects.damage_taken = nvl(p_damage_taken(i),tangible_objects.damage_taken),
tangible_objects.custom_appearance = nvl(p_custom_appearance(i),tangible_objects.custom_appearance),
tangible_objects.count = nvl(p_count(i),tangible_objects.count),
tangible_objects.condition = nvl(p_condition(i),tangible_objects.condition),
tangible_objects.creator_id = nvl(p_creator_id(i),tangible_objects.creator_id),
tangible_objects.source_draft_schematic = nvl(p_source_draft_schematic(i),tangible_objects.source_draft_schematic)
where
tangible_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into tangible_objects
(
tangible_objects.max_hit_points,
tangible_objects.owner_id,
tangible_objects.visible,
tangible_objects.appearance_data,
tangible_objects.interest_radius,
tangible_objects.pvp_type,
tangible_objects.pvp_faction,
tangible_objects.damage_taken,
tangible_objects.custom_appearance,
tangible_objects.count,
tangible_objects.condition,
tangible_objects.creator_id,
tangible_objects.source_draft_schematic,
tangible_objects.object_id
)
VALUES
(
p_max_hit_points(i),
p_owner_id(i),
p_visible(i),
p_appearance_data(i),
p_interest_radius(i),
p_pvp_type(i),
p_pvp_faction(i),
p_damage_taken(i),
p_custom_appearance(i),
p_count(i),
p_condition(i),
p_creator_id(i),
p_source_draft_schematic(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into tangible_objects
(
tangible_objects.max_hit_points,
tangible_objects.owner_id,
tangible_objects.visible,
tangible_objects.appearance_data,
tangible_objects.interest_radius,
tangible_objects.pvp_type,
tangible_objects.pvp_faction,
tangible_objects.damage_taken,
tangible_objects.custom_appearance,
tangible_objects.count,
tangible_objects.condition,
tangible_objects.creator_id,
tangible_objects.source_draft_schematic,
tangible_objects.object_id
)
VALUES
(
p_max_hit_points(i),
p_owner_id(i),
p_visible(i),
p_appearance_data(i),
p_interest_radius(i),
p_pvp_type(i),
p_pvp_faction(i),
p_damage_taken(i),
p_custom_appearance(i),
p_count(i),
p_condition(i),
p_creator_id(i),
p_source_draft_schematic(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_tangible_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_tangible_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_tangible_obj','max_hit_points','int',to_char(p_max_hit_points(m_error_index)));
db_error_logger.dblogerror_values('persister.add_tangible_obj','owner_id','int',p_owner_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_tangible_obj','visible','char',p_visible(m_error_index));
db_error_logger.dblogerror_values('persister.add_tangible_obj','appearance_data','varchar',p_appearance_data(m_error_index));
db_error_logger.dblogerror_values('persister.add_tangible_obj','interest_radius','int',to_char(p_interest_radius(m_error_index)));
db_error_logger.dblogerror_values('persister.add_tangible_obj','pvp_type','int',to_char(p_pvp_type(m_error_index)));
db_error_logger.dblogerror_values('persister.add_tangible_obj','pvp_faction','int',to_char(p_pvp_faction(m_error_index)));
db_error_logger.dblogerror_values('persister.add_tangible_obj','damage_taken','int',to_char(p_damage_taken(m_error_index)));
db_error_logger.dblogerror_values('persister.add_tangible_obj','custom_appearance','varchar2',p_custom_appearance(m_error_index));
db_error_logger.dblogerror_values('persister.add_tangible_obj','count','int',to_char(p_count(m_error_index)));
db_error_logger.dblogerror_values('persister.add_tangible_obj','condition','int',to_char(p_condition(m_error_index)));
db_error_logger.dblogerror_values('persister.add_tangible_obj','creator_id','number',p_creator_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_tangible_obj','source_draft_schematic','int',to_char(p_source_draft_schematic(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_tangible_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_tangible_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete tangible_objects
where
object_id=p_object_id(i);
end;
procedure save_token_obj( p_object_id VAOFSTRING, p_reference VAOFSTRING, p_target_server_template_name VAOFSTRING, p_target_shared_template_name VAOFSTRING, p_waypoint VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update token_objects set
token_objects.reference = nvl(p_reference(i),token_objects.reference),
token_objects.target_server_template_name = nvl(p_target_server_template_name(i),token_objects.target_server_template_name),
token_objects.target_shared_template_name = nvl(p_target_shared_template_name(i),token_objects.target_shared_template_name),
token_objects.waypoint = nvl(p_waypoint(i),token_objects.waypoint)
where
token_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update token_objects set
token_objects.reference = nvl(p_reference(i),token_objects.reference),
token_objects.target_server_template_name = nvl(p_target_server_template_name(i),token_objects.target_server_template_name),
token_objects.target_shared_template_name = nvl(p_target_shared_template_name(i),token_objects.target_shared_template_name),
token_objects.waypoint = nvl(p_waypoint(i),token_objects.waypoint)
where
token_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_token_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_token_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_token_obj','reference','number',p_reference(m_error_index));
db_error_logger.dblogerror_values('persister.save_token_obj','target_server_template_name','varchar2',p_target_server_template_name(m_error_index));
db_error_logger.dblogerror_values('persister.save_token_obj','target_shared_template_name','varchar2',p_target_shared_template_name(m_error_index));
db_error_logger.dblogerror_values('persister.save_token_obj','waypoint','number',p_waypoint(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_token_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_token_obj( p_object_id VAOFSTRING, p_reference VAOFSTRING, p_target_server_template_name VAOFSTRING, p_target_shared_template_name VAOFSTRING, p_waypoint VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into token_objects
(
token_objects.reference,
token_objects.target_server_template_name,
token_objects.target_shared_template_name,
token_objects.waypoint,
token_objects.object_id
)
VALUES
(
p_reference(i),
p_target_server_template_name(i),
p_target_shared_template_name(i),
p_waypoint(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_token_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE token_objects Set
token_objects.reference = nvl(p_reference(i),token_objects.reference),
token_objects.target_server_template_name = nvl(p_target_server_template_name(i),token_objects.target_server_template_name),
token_objects.target_shared_template_name = nvl(p_target_shared_template_name(i),token_objects.target_shared_template_name),
token_objects.waypoint = nvl(p_waypoint(i),token_objects.waypoint)
where
token_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into token_objects
(
token_objects.reference,
token_objects.target_server_template_name,
token_objects.target_shared_template_name,
token_objects.waypoint,
token_objects.object_id
)
VALUES
(
p_reference(i),
p_target_server_template_name(i),
p_target_shared_template_name(i),
p_waypoint(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into token_objects
(
token_objects.reference,
token_objects.target_server_template_name,
token_objects.target_shared_template_name,
token_objects.waypoint,
token_objects.object_id
)
VALUES
(
p_reference(i),
p_target_server_template_name(i),
p_target_shared_template_name(i),
p_waypoint(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_token_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_token_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_token_obj','reference','number',p_reference(m_error_index));
db_error_logger.dblogerror_values('persister.add_token_obj','target_server_template_name','varchar2',p_target_server_template_name(m_error_index));
db_error_logger.dblogerror_values('persister.add_token_obj','target_shared_template_name','varchar2',p_target_shared_template_name(m_error_index));
db_error_logger.dblogerror_values('persister.add_token_obj','waypoint','number',p_waypoint(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_token_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_token_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete token_objects
where
object_id=p_object_id(i);
end;
procedure save_universe_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
null;
end;
procedure add_universe_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into universe_objects
(
universe_objects.object_id
)
VALUES
(
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_universe_obj : dup_val_on_index error.');
END IF;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into universe_objects
(
universe_objects.object_id
)
VALUES
(
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_universe_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_universe_obj','object_id','number',p_object_id(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_universe_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_universe_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
null;
end;
procedure save_vehicle_obj( p_object_id VAOFSTRING, p_bogus VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update vehicle_objects set
vehicle_objects.bogus = nvl(p_bogus(i),vehicle_objects.bogus)
where
vehicle_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update vehicle_objects set
vehicle_objects.bogus = nvl(p_bogus(i),vehicle_objects.bogus)
where
vehicle_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_vehicle_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_vehicle_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_vehicle_obj','bogus','int',to_char(p_bogus(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_vehicle_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_vehicle_obj( p_object_id VAOFSTRING, p_bogus VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into vehicle_objects
(
vehicle_objects.bogus,
vehicle_objects.object_id
)
VALUES
(
p_bogus(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_vehicle_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE vehicle_objects Set
vehicle_objects.bogus = nvl(p_bogus(i),vehicle_objects.bogus)
where
vehicle_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into vehicle_objects
(
vehicle_objects.bogus,
vehicle_objects.object_id
)
VALUES
(
p_bogus(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into vehicle_objects
(
vehicle_objects.bogus,
vehicle_objects.object_id
)
VALUES
(
p_bogus(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_vehicle_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_vehicle_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_vehicle_obj','bogus','int',to_char(p_bogus(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_vehicle_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_vehicle_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete vehicle_objects
where
object_id=p_object_id(i);
end;
procedure save_weapon_obj( p_object_id VAOFSTRING, p_min_damage VAOFNUMBER, p_max_damage VAOFNUMBER, p_damage_type VAOFNUMBER, p_elemental_type VAOFNUMBER, p_elemental_value VAOFNUMBER, p_attack_speed VAOFNUMBER, p_wound_chance VAOFNUMBER, p_accuracy VAOFNUMBER, p_attack_cost VAOFNUMBER, p_damage_radius VAOFNUMBER, p_min_range VAOFNUMBER, p_max_range VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
update weapon_objects set
weapon_objects.min_damage = nvl(p_min_damage(i),weapon_objects.min_damage),
weapon_objects.max_damage = nvl(p_max_damage(i),weapon_objects.max_damage),
weapon_objects.damage_type = nvl(p_damage_type(i),weapon_objects.damage_type),
weapon_objects.elemental_type = nvl(p_elemental_type(i),weapon_objects.elemental_type),
weapon_objects.elemental_value = nvl(p_elemental_value(i),weapon_objects.elemental_value),
weapon_objects.attack_speed = nvl(p_attack_speed(i),weapon_objects.attack_speed),
weapon_objects.wound_chance = nvl(p_wound_chance(i),weapon_objects.wound_chance),
weapon_objects.accuracy = nvl(p_accuracy(i),weapon_objects.accuracy),
weapon_objects.attack_cost = nvl(p_attack_cost(i),weapon_objects.attack_cost),
weapon_objects.damage_radius = nvl(p_damage_radius(i),weapon_objects.damage_radius),
weapon_objects.min_range = nvl(p_min_range(i),weapon_objects.min_range),
weapon_objects.max_range = nvl(p_max_range(i),weapon_objects.max_range)
where
weapon_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update weapon_objects set
weapon_objects.min_damage = nvl(p_min_damage(i),weapon_objects.min_damage),
weapon_objects.max_damage = nvl(p_max_damage(i),weapon_objects.max_damage),
weapon_objects.damage_type = nvl(p_damage_type(i),weapon_objects.damage_type),
weapon_objects.elemental_type = nvl(p_elemental_type(i),weapon_objects.elemental_type),
weapon_objects.elemental_value = nvl(p_elemental_value(i),weapon_objects.elemental_value),
weapon_objects.attack_speed = nvl(p_attack_speed(i),weapon_objects.attack_speed),
weapon_objects.wound_chance = nvl(p_wound_chance(i),weapon_objects.wound_chance),
weapon_objects.accuracy = nvl(p_accuracy(i),weapon_objects.accuracy),
weapon_objects.attack_cost = nvl(p_attack_cost(i),weapon_objects.attack_cost),
weapon_objects.damage_radius = nvl(p_damage_radius(i),weapon_objects.damage_radius),
weapon_objects.min_range = nvl(p_min_range(i),weapon_objects.min_range),
weapon_objects.max_range = nvl(p_max_range(i),weapon_objects.max_range)
where
weapon_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_weapon_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_weapon_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_weapon_obj','min_damage','int',to_char(p_min_damage(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','max_damage','int',to_char(p_max_damage(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','damage_type','int',to_char(p_damage_type(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','elemental_type','int',to_char(p_elemental_type(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','elemental_value','int',to_char(p_elemental_value(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','attack_speed','float',to_char(p_attack_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','wound_chance','float',to_char(p_wound_chance(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','accuracy','int',to_char(p_accuracy(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','attack_cost','int',to_char(p_attack_cost(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','damage_radius','float',to_char(p_damage_radius(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','min_range','float',to_char(p_min_range(m_error_index)));
db_error_logger.dblogerror_values('persister.save_weapon_obj','max_range','float',to_char(p_max_range(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_weapon_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_weapon_obj( p_object_id VAOFSTRING, p_min_damage VAOFNUMBER, p_max_damage VAOFNUMBER, p_damage_type VAOFNUMBER, p_elemental_type VAOFNUMBER, p_elemental_value VAOFNUMBER, p_attack_speed VAOFNUMBER, p_wound_chance VAOFNUMBER, p_accuracy VAOFNUMBER, p_attack_cost VAOFNUMBER, p_damage_radius VAOFNUMBER, p_min_range VAOFNUMBER, p_max_range VAOFNUMBER, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=1;
begin
FORALL i IN 1..p_chunk_size
insert into weapon_objects
(
weapon_objects.min_damage,
weapon_objects.max_damage,
weapon_objects.damage_type,
weapon_objects.elemental_type,
weapon_objects.elemental_value,
weapon_objects.attack_speed,
weapon_objects.wound_chance,
weapon_objects.accuracy,
weapon_objects.attack_cost,
weapon_objects.damage_radius,
weapon_objects.min_range,
weapon_objects.max_range,
weapon_objects.object_id
)
VALUES
(
p_min_damage(i),
p_max_damage(i),
p_damage_type(i),
p_elemental_type(i),
p_elemental_value(i),
p_attack_speed(i),
p_wound_chance(i),
p_accuracy(i),
p_attack_cost(i),
p_damage_radius(i),
p_min_range(i),
p_max_range(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_weapon_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE weapon_objects Set
weapon_objects.min_damage = nvl(p_min_damage(i),weapon_objects.min_damage),
weapon_objects.max_damage = nvl(p_max_damage(i),weapon_objects.max_damage),
weapon_objects.damage_type = nvl(p_damage_type(i),weapon_objects.damage_type),
weapon_objects.elemental_type = nvl(p_elemental_type(i),weapon_objects.elemental_type),
weapon_objects.elemental_value = nvl(p_elemental_value(i),weapon_objects.elemental_value),
weapon_objects.attack_speed = nvl(p_attack_speed(i),weapon_objects.attack_speed),
weapon_objects.wound_chance = nvl(p_wound_chance(i),weapon_objects.wound_chance),
weapon_objects.accuracy = nvl(p_accuracy(i),weapon_objects.accuracy),
weapon_objects.attack_cost = nvl(p_attack_cost(i),weapon_objects.attack_cost),
weapon_objects.damage_radius = nvl(p_damage_radius(i),weapon_objects.damage_radius),
weapon_objects.min_range = nvl(p_min_range(i),weapon_objects.min_range),
weapon_objects.max_range = nvl(p_max_range(i),weapon_objects.max_range)
where
weapon_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into weapon_objects
(
weapon_objects.min_damage,
weapon_objects.max_damage,
weapon_objects.damage_type,
weapon_objects.elemental_type,
weapon_objects.elemental_value,
weapon_objects.attack_speed,
weapon_objects.wound_chance,
weapon_objects.accuracy,
weapon_objects.attack_cost,
weapon_objects.damage_radius,
weapon_objects.min_range,
weapon_objects.max_range,
weapon_objects.object_id
)
VALUES
(
p_min_damage(i),
p_max_damage(i),
p_damage_type(i),
p_elemental_type(i),
p_elemental_value(i),
p_attack_speed(i),
p_wound_chance(i),
p_accuracy(i),
p_attack_cost(i),
p_damage_radius(i),
p_min_range(i),
p_max_range(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into weapon_objects
(
weapon_objects.min_damage,
weapon_objects.max_damage,
weapon_objects.damage_type,
weapon_objects.elemental_type,
weapon_objects.elemental_value,
weapon_objects.attack_speed,
weapon_objects.wound_chance,
weapon_objects.accuracy,
weapon_objects.attack_cost,
weapon_objects.damage_radius,
weapon_objects.min_range,
weapon_objects.max_range,
weapon_objects.object_id
)
VALUES
(
p_min_damage(i),
p_max_damage(i),
p_damage_type(i),
p_elemental_type(i),
p_elemental_value(i),
p_attack_speed(i),
p_wound_chance(i),
p_accuracy(i),
p_attack_cost(i),
p_damage_radius(i),
p_min_range(i),
p_max_range(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_weapon_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_weapon_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_weapon_obj','min_damage','int',to_char(p_min_damage(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','max_damage','int',to_char(p_max_damage(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','damage_type','int',to_char(p_damage_type(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','elemental_type','int',to_char(p_elemental_type(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','elemental_value','int',to_char(p_elemental_value(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','attack_speed','float',to_char(p_attack_speed(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','wound_chance','float',to_char(p_wound_chance(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','accuracy','int',to_char(p_accuracy(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','attack_cost','int',to_char(p_attack_cost(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','damage_radius','float',to_char(p_damage_radius(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','min_range','float',to_char(p_min_range(m_error_index)));
db_error_logger.dblogerror_values('persister.add_weapon_obj','max_range','float',to_char(p_max_range(m_error_index)));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_weapon_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_weapon_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete weapon_objects
where
object_id=p_object_id(i);
end;
procedure save_player_quest_obj( p_object_id VAOFSTRING, p_title VAOFSTRING, p_description VAOFSTRING, p_creator VAOFSTRING, p_total_tasks VAOFNUMBER, p_difficulty VAOFNUMBER, p_task_title1 VAOFSTRING, p_task_description1 VAOFSTRING, p_task_title2 VAOFSTRING, p_task_description2 VAOFSTRING, p_task_title3 VAOFSTRING, p_task_description3 VAOFSTRING, p_task_title4 VAOFSTRING, p_task_description4 VAOFSTRING, p_task_title5 VAOFSTRING, p_task_description5 VAOFSTRING, p_task_title6 VAOFSTRING, p_task_description6 VAOFSTRING, p_task_title7 VAOFSTRING, p_task_description7 VAOFSTRING, p_task_title8 VAOFSTRING, p_task_description8 VAOFSTRING, p_task_title9 VAOFSTRING, p_task_description9 VAOFSTRING, p_task_title10 VAOFSTRING, p_task_description10 VAOFSTRING, p_task_title11 VAOFSTRING, p_task_description11 VAOFSTRING, p_task_title12 VAOFSTRING, p_task_description12 VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=0;
begin
FORALL i IN 1..p_chunk_size
update player_quest_objects set
player_quest_objects.title = nvl(p_title(i),player_quest_objects.title),
player_quest_objects.description = nvl(p_description(i),player_quest_objects.description),
player_quest_objects.creator = nvl(p_creator(i),player_quest_objects.creator),
player_quest_objects.total_tasks = nvl(p_total_tasks(i),player_quest_objects.total_tasks),
player_quest_objects.difficulty = nvl(p_difficulty(i),player_quest_objects.difficulty),
player_quest_objects.task_title1 = nvl(p_task_title1(i),player_quest_objects.task_title1),
player_quest_objects.task_description1 = nvl(p_task_description1(i),player_quest_objects.task_description1),
player_quest_objects.task_title2 = nvl(p_task_title2(i),player_quest_objects.task_title2),
player_quest_objects.task_description2 = nvl(p_task_description2(i),player_quest_objects.task_description2),
player_quest_objects.task_title3 = nvl(p_task_title3(i),player_quest_objects.task_title3),
player_quest_objects.task_description3 = nvl(p_task_description3(i),player_quest_objects.task_description3),
player_quest_objects.task_title4 = nvl(p_task_title4(i),player_quest_objects.task_title4),
player_quest_objects.task_description4 = nvl(p_task_description4(i),player_quest_objects.task_description4),
player_quest_objects.task_title5 = nvl(p_task_title5(i),player_quest_objects.task_title5),
player_quest_objects.task_description5 = nvl(p_task_description5(i),player_quest_objects.task_description5),
player_quest_objects.task_title6 = nvl(p_task_title6(i),player_quest_objects.task_title6),
player_quest_objects.task_description6 = nvl(p_task_description6(i),player_quest_objects.task_description6),
player_quest_objects.task_title7 = nvl(p_task_title7(i),player_quest_objects.task_title7),
player_quest_objects.task_description7 = nvl(p_task_description7(i),player_quest_objects.task_description7),
player_quest_objects.task_title8 = nvl(p_task_title8(i),player_quest_objects.task_title8),
player_quest_objects.task_description8 = nvl(p_task_description8(i),player_quest_objects.task_description8),
player_quest_objects.task_title9 = nvl(p_task_title9(i),player_quest_objects.task_title9),
player_quest_objects.task_description9 = nvl(p_task_description9(i),player_quest_objects.task_description9),
player_quest_objects.task_title10 = nvl(p_task_title10(i),player_quest_objects.task_title10),
player_quest_objects.task_description10 = nvl(p_task_description10(i),player_quest_objects.task_description10),
player_quest_objects.task_title11 = nvl(p_task_title11(i),player_quest_objects.task_title11),
player_quest_objects.task_description11 = nvl(p_task_description11(i),player_quest_objects.task_description11),
player_quest_objects.task_title12 = nvl(p_task_title12(i),player_quest_objects.task_title12),
player_quest_objects.task_description12 = nvl(p_task_description12(i),player_quest_objects.task_description12)
where
player_quest_objects.object_id=p_object_id(i);
exception
when others then
begin
FOR i IN 1..p_chunk_size LOOP
m_error_index := i;
update player_quest_objects set
player_quest_objects.title = nvl(p_title(i),player_quest_objects.title),
player_quest_objects.description = nvl(p_description(i),player_quest_objects.description),
player_quest_objects.creator = nvl(p_creator(i),player_quest_objects.creator),
player_quest_objects.total_tasks = nvl(p_total_tasks(i),player_quest_objects.total_tasks),
player_quest_objects.difficulty = nvl(p_difficulty(i),player_quest_objects.difficulty),
player_quest_objects.task_title1 = nvl(p_task_title1(i),player_quest_objects.task_title1),
player_quest_objects.task_description1 = nvl(p_task_description1(i),player_quest_objects.task_description1),
player_quest_objects.task_title2 = nvl(p_task_title2(i),player_quest_objects.task_title2),
player_quest_objects.task_description2 = nvl(p_task_description2(i),player_quest_objects.task_description2),
player_quest_objects.task_title3 = nvl(p_task_title3(i),player_quest_objects.task_title3),
player_quest_objects.task_description3 = nvl(p_task_description3(i),player_quest_objects.task_description3),
player_quest_objects.task_title4 = nvl(p_task_title4(i),player_quest_objects.task_title4),
player_quest_objects.task_description4 = nvl(p_task_description4(i),player_quest_objects.task_description4),
player_quest_objects.task_title5 = nvl(p_task_title5(i),player_quest_objects.task_title5),
player_quest_objects.task_description5 = nvl(p_task_description5(i),player_quest_objects.task_description5),
player_quest_objects.task_title6 = nvl(p_task_title6(i),player_quest_objects.task_title6),
player_quest_objects.task_description6 = nvl(p_task_description6(i),player_quest_objects.task_description6),
player_quest_objects.task_title7 = nvl(p_task_title7(i),player_quest_objects.task_title7),
player_quest_objects.task_description7 = nvl(p_task_description7(i),player_quest_objects.task_description7),
player_quest_objects.task_title8 = nvl(p_task_title8(i),player_quest_objects.task_title8),
player_quest_objects.task_description8 = nvl(p_task_description8(i),player_quest_objects.task_description8),
player_quest_objects.task_title9 = nvl(p_task_title9(i),player_quest_objects.task_title9),
player_quest_objects.task_description9 = nvl(p_task_description9(i),player_quest_objects.task_description9),
player_quest_objects.task_title10 = nvl(p_task_title10(i),player_quest_objects.task_title10),
player_quest_objects.task_description10 = nvl(p_task_description10(i),player_quest_objects.task_description10),
player_quest_objects.task_title11 = nvl(p_task_title11(i),player_quest_objects.task_title11),
player_quest_objects.task_description11 = nvl(p_task_description11(i),player_quest_objects.task_description11),
player_quest_objects.task_title12 = nvl(p_task_title12(i),player_quest_objects.task_title12),
player_quest_objects.task_description12 = nvl(p_task_description12(i),player_quest_objects.task_description12)
where
player_quest_objects.object_id=p_object_id(i);
end LOOP;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.save_player_quest_obj : update error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.save_player_quest_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','title','varchar2',p_title(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','description','varchar2',p_description(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','creator','number',p_creator(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','total_tasks','int',to_char(p_total_tasks(m_error_index)));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','difficulty','int',to_char(p_difficulty(m_error_index)));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title1','varchar2',p_task_title1(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description1','varchar2',p_task_description1(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title2','varchar2',p_task_title2(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description2','varchar2',p_task_description2(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title3','varchar2',p_task_title3(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description3','varchar2',p_task_description3(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title4','varchar2',p_task_title4(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description4','varchar2',p_task_description4(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title5','varchar2',p_task_title5(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description5','varchar2',p_task_description5(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title6','varchar2',p_task_title6(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description6','varchar2',p_task_description6(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title7','varchar2',p_task_title7(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description7','varchar2',p_task_description7(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title8','varchar2',p_task_title8(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description8','varchar2',p_task_description8(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title9','varchar2',p_task_title9(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description9','varchar2',p_task_description9(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title10','varchar2',p_task_title10(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description10','varchar2',p_task_description10(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title11','varchar2',p_task_title11(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description11','varchar2',p_task_description11(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_title12','varchar2',p_task_title12(m_error_index));
db_error_logger.dblogerror_values('persister.save_player_quest_obj','task_description12','varchar2',p_task_description12(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','save_player_quest_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure add_player_quest_obj( p_object_id VAOFSTRING, p_title VAOFSTRING, p_description VAOFSTRING, p_creator VAOFSTRING, p_total_tasks VAOFNUMBER, p_difficulty VAOFNUMBER, p_task_title1 VAOFSTRING, p_task_description1 VAOFSTRING, p_task_title2 VAOFSTRING, p_task_description2 VAOFSTRING, p_task_title3 VAOFSTRING, p_task_description3 VAOFSTRING, p_task_title4 VAOFSTRING, p_task_description4 VAOFSTRING, p_task_title5 VAOFSTRING, p_task_description5 VAOFSTRING, p_task_title6 VAOFSTRING, p_task_description6 VAOFSTRING, p_task_title7 VAOFSTRING, p_task_description7 VAOFSTRING, p_task_title8 VAOFSTRING, p_task_description8 VAOFSTRING, p_task_title9 VAOFSTRING, p_task_description9 VAOFSTRING, p_task_title10 VAOFSTRING, p_task_description10 VAOFSTRING, p_task_title11 VAOFSTRING, p_task_description11 VAOFSTRING, p_task_title12 VAOFSTRING, p_task_description12 VAOFSTRING, p_chunk_size number )
as
m_enable_db_logging INTEGER := 0;
m_error_index INTEGER :=0;
begin
FORALL i IN 1..p_chunk_size
insert into player_quest_objects
(
player_quest_objects.title,
player_quest_objects.description,
player_quest_objects.creator,
player_quest_objects.total_tasks,
player_quest_objects.difficulty,
player_quest_objects.task_title1,
player_quest_objects.task_description1,
player_quest_objects.task_title2,
player_quest_objects.task_description2,
player_quest_objects.task_title3,
player_quest_objects.task_description3,
player_quest_objects.task_title4,
player_quest_objects.task_description4,
player_quest_objects.task_title5,
player_quest_objects.task_description5,
player_quest_objects.task_title6,
player_quest_objects.task_description6,
player_quest_objects.task_title7,
player_quest_objects.task_description7,
player_quest_objects.task_title8,
player_quest_objects.task_description8,
player_quest_objects.task_title9,
player_quest_objects.task_description9,
player_quest_objects.task_title10,
player_quest_objects.task_description10,
player_quest_objects.task_title11,
player_quest_objects.task_description11,
player_quest_objects.task_title12,
player_quest_objects.task_description12,
player_quest_objects.object_id
)
VALUES
(
p_title(i),
p_description(i),
p_creator(i),
p_total_tasks(i),
p_difficulty(i),
p_task_title1(i),
p_task_description1(i),
p_task_title2(i),
p_task_description2(i),
p_task_title3(i),
p_task_description3(i),
p_task_title4(i),
p_task_description4(i),
p_task_title5(i),
p_task_description5(i),
p_task_title6(i),
p_task_description6(i),
p_task_title7(i),
p_task_description7(i),
p_task_title8(i),
p_task_description8(i),
p_task_title9(i),
p_task_description9(i),
p_task_title10(i),
p_task_description10(i),
p_task_title11(i),
p_task_description11(i),
p_task_title12(i),
p_task_description12(i),
p_object_id(i)
);
exception
when dup_val_on_index then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_player_quest_obj : dup_val_on_index error.');
END IF;
for i in 1..p_chunk_size loop
m_error_index := i;
UPDATE player_quest_objects Set
player_quest_objects.title = nvl(p_title(i),player_quest_objects.title),
player_quest_objects.description = nvl(p_description(i),player_quest_objects.description),
player_quest_objects.creator = nvl(p_creator(i),player_quest_objects.creator),
player_quest_objects.total_tasks = nvl(p_total_tasks(i),player_quest_objects.total_tasks),
player_quest_objects.difficulty = nvl(p_difficulty(i),player_quest_objects.difficulty),
player_quest_objects.task_title1 = nvl(p_task_title1(i),player_quest_objects.task_title1),
player_quest_objects.task_description1 = nvl(p_task_description1(i),player_quest_objects.task_description1),
player_quest_objects.task_title2 = nvl(p_task_title2(i),player_quest_objects.task_title2),
player_quest_objects.task_description2 = nvl(p_task_description2(i),player_quest_objects.task_description2),
player_quest_objects.task_title3 = nvl(p_task_title3(i),player_quest_objects.task_title3),
player_quest_objects.task_description3 = nvl(p_task_description3(i),player_quest_objects.task_description3),
player_quest_objects.task_title4 = nvl(p_task_title4(i),player_quest_objects.task_title4),
player_quest_objects.task_description4 = nvl(p_task_description4(i),player_quest_objects.task_description4),
player_quest_objects.task_title5 = nvl(p_task_title5(i),player_quest_objects.task_title5),
player_quest_objects.task_description5 = nvl(p_task_description5(i),player_quest_objects.task_description5),
player_quest_objects.task_title6 = nvl(p_task_title6(i),player_quest_objects.task_title6),
player_quest_objects.task_description6 = nvl(p_task_description6(i),player_quest_objects.task_description6),
player_quest_objects.task_title7 = nvl(p_task_title7(i),player_quest_objects.task_title7),
player_quest_objects.task_description7 = nvl(p_task_description7(i),player_quest_objects.task_description7),
player_quest_objects.task_title8 = nvl(p_task_title8(i),player_quest_objects.task_title8),
player_quest_objects.task_description8 = nvl(p_task_description8(i),player_quest_objects.task_description8),
player_quest_objects.task_title9 = nvl(p_task_title9(i),player_quest_objects.task_title9),
player_quest_objects.task_description9 = nvl(p_task_description9(i),player_quest_objects.task_description9),
player_quest_objects.task_title10 = nvl(p_task_title10(i),player_quest_objects.task_title10),
player_quest_objects.task_description10 = nvl(p_task_description10(i),player_quest_objects.task_description10),
player_quest_objects.task_title11 = nvl(p_task_title11(i),player_quest_objects.task_title11),
player_quest_objects.task_description11 = nvl(p_task_description11(i),player_quest_objects.task_description11),
player_quest_objects.task_title12 = nvl(p_task_title12(i),player_quest_objects.task_title12),
player_quest_objects.task_description12 = nvl(p_task_description12(i),player_quest_objects.task_description12)
where
player_quest_objects.object_id=p_object_id(i);
if SQL%ROWCOUNT=0 then
insert into player_quest_objects
(
player_quest_objects.title,
player_quest_objects.description,
player_quest_objects.creator,
player_quest_objects.total_tasks,
player_quest_objects.difficulty,
player_quest_objects.task_title1,
player_quest_objects.task_description1,
player_quest_objects.task_title2,
player_quest_objects.task_description2,
player_quest_objects.task_title3,
player_quest_objects.task_description3,
player_quest_objects.task_title4,
player_quest_objects.task_description4,
player_quest_objects.task_title5,
player_quest_objects.task_description5,
player_quest_objects.task_title6,
player_quest_objects.task_description6,
player_quest_objects.task_title7,
player_quest_objects.task_description7,
player_quest_objects.task_title8,
player_quest_objects.task_description8,
player_quest_objects.task_title9,
player_quest_objects.task_description9,
player_quest_objects.task_title10,
player_quest_objects.task_description10,
player_quest_objects.task_title11,
player_quest_objects.task_description11,
player_quest_objects.task_title12,
player_quest_objects.task_description12,
player_quest_objects.object_id
)
VALUES
(
p_title(i),
p_description(i),
p_creator(i),
p_total_tasks(i),
p_difficulty(i),
p_task_title1(i),
p_task_description1(i),
p_task_title2(i),
p_task_description2(i),
p_task_title3(i),
p_task_description3(i),
p_task_title4(i),
p_task_description4(i),
p_task_title5(i),
p_task_description5(i),
p_task_title6(i),
p_task_description6(i),
p_task_title7(i),
p_task_description7(i),
p_task_title8(i),
p_task_description8(i),
p_task_title9(i),
p_task_description9(i),
p_task_title10(i),
p_task_description10(i),
p_task_title11(i),
p_task_description11(i),
p_task_title12(i),
p_task_description12(i),
p_object_id(i)
);
end if;
end loop;
end;
when others then
begin
for i in 1..p_chunk_size loop
m_error_index := i;
insert into player_quest_objects
(
player_quest_objects.title,
player_quest_objects.description,
player_quest_objects.creator,
player_quest_objects.total_tasks,
player_quest_objects.difficulty,
player_quest_objects.task_title1,
player_quest_objects.task_description1,
player_quest_objects.task_title2,
player_quest_objects.task_description2,
player_quest_objects.task_title3,
player_quest_objects.task_description3,
player_quest_objects.task_title4,
player_quest_objects.task_description4,
player_quest_objects.task_title5,
player_quest_objects.task_description5,
player_quest_objects.task_title6,
player_quest_objects.task_description6,
player_quest_objects.task_title7,
player_quest_objects.task_description7,
player_quest_objects.task_title8,
player_quest_objects.task_description8,
player_quest_objects.task_title9,
player_quest_objects.task_description9,
player_quest_objects.task_title10,
player_quest_objects.task_description10,
player_quest_objects.task_title11,
player_quest_objects.task_description11,
player_quest_objects.task_title12,
player_quest_objects.task_description12,
player_quest_objects.object_id
)
VALUES
(
p_title(i),
p_description(i),
p_creator(i),
p_total_tasks(i),
p_difficulty(i),
p_task_title1(i),
p_task_description1(i),
p_task_title2(i),
p_task_description2(i),
p_task_title3(i),
p_task_description3(i),
p_task_title4(i),
p_task_description4(i),
p_task_title5(i),
p_task_description5(i),
p_task_title6(i),
p_task_description6(i),
p_task_title7(i),
p_task_description7(i),
p_task_title8(i),
p_task_description8(i),
p_task_title9(i),
p_task_description9(i),
p_task_title10(i),
p_task_description10(i),
p_task_title11(i),
p_task_description11(i),
p_task_title12(i),
p_task_description12(i),
p_object_id(i)
);
end loop;
exception
when others then
begin
m_enable_db_logging := db_error_logger.getLogLevel();
IF (m_enable_db_logging > 0) THEN
db_error_logger.dblogerror(SQLCODE,'persister.add_player_quest_obj : error.');
IF (m_enable_db_logging > 1) THEN
db_error_logger.dblogerror_values('persister.add_player_quest_obj','object_id','number',p_object_id(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','title','varchar2',p_title(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','description','varchar2',p_description(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','creator','number',p_creator(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','total_tasks','int',to_char(p_total_tasks(m_error_index)));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','difficulty','int',to_char(p_difficulty(m_error_index)));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title1','varchar2',p_task_title1(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description1','varchar2',p_task_description1(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title2','varchar2',p_task_title2(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description2','varchar2',p_task_description2(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title3','varchar2',p_task_title3(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description3','varchar2',p_task_description3(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title4','varchar2',p_task_title4(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description4','varchar2',p_task_description4(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title5','varchar2',p_task_title5(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description5','varchar2',p_task_description5(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title6','varchar2',p_task_title6(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description6','varchar2',p_task_description6(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title7','varchar2',p_task_title7(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description7','varchar2',p_task_description7(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title8','varchar2',p_task_title8(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description8','varchar2',p_task_description8(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title9','varchar2',p_task_title9(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description9','varchar2',p_task_description9(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title10','varchar2',p_task_title10(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description10','varchar2',p_task_description10(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title11','varchar2',p_task_title11(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description11','varchar2',p_task_description11(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_title12','varchar2',p_task_title12(m_error_index));
db_error_logger.dblogerror_values('persister.add_player_quest_obj','task_description12','varchar2',p_task_description12(m_error_index));
END IF;
END IF;
IF (db_error_logger.reraisecheck('persister','add_player_quest_obj') = 1) THEN
RAISE;
END IF;
end;
end;
end;
procedure remove_player_quest_obj( p_object_id VAOFSTRING, p_chunk_size number )
as
begin
FORALL i IN 1..p_chunk_size
delete player_quest_objects
where
object_id=p_object_id(i);
end;
end;
/