Files
src-1.2/game/server/database/import/resources/resource_importer.plsql
T
2014-01-17 07:03:16 -07:00

71 lines
2.1 KiB
Plaintext

-- PL/SQL Package for importing resource data
create or replace package resource_importer
as
procedure import_resources;
procedure clear_import_tables;
end;
/
create or replace package body resource_importer
as
procedure import_resources
as
begin
delete from res_imp_oid_map;
insert into res_imp_oid_map (object_id, reference_id, new)
select rco.object_id, import_reference_id, 0
from resource_class_objects rco, objects o
where rco.object_id = o.object_id
and o.deleted = 0;
insert into res_imp_oid_map (object_id, reference_id, new)
select objectidmanager.get_single_id, id, 1
from resource_import
where not exists (
select * from res_imp_oid_map
where res_imp_oid_map.reference_id = resource_import.id);
insert into universe_objects (object_id)
select object_id
from res_imp_oid_map
where new=1;
insert into objects (object_id, x, y, z, quaternion_w, quaternion_x, quaternion_y, quaternion_z, node_x, node_y, node_z,
object_template, type_id, scene_id, deleted,object_name,contained_by,slot_arrangement)
select object_id, 0,0,0, 0,0,0,0, 0,0,0,
'object/resource_class/resource_class.iff',1380270927,'universe',0,ri.name,0,-1
from res_imp_oid_map m, resource_import ri
where m.reference_id = ri.id
and new=1;
delete from resource_class_objects
where object_id in (select object_id from res_imp_oid_map);
insert into resource_class_objects (object_id,resource_class_name,min_types,max_types,parent_class,import_reference_id)
select m.object_id,i.name,i.min_types,i.max_types,nvl(p.object_id,0),i.id
from res_imp_oid_map m, resource_import i, res_imp_oid_map p
where m.reference_id = i.id
and p.reference_id (+) = i.parent_id;
delete from object_variables
where object_id in (select object_id from res_imp_oid_map);
insert into object_variables (object_id, name, type, value)
select m.object_id, i.name, i.type, i.value
from res_imp_oid_map m, res_imp_object_variables i
where m.reference_id = i.id;
end;
procedure clear_import_tables
as
begin
delete from res_imp_oid_map;
delete from resource_import;
delete from res_imp_object_variables;
end;
end;
/