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

286 lines
8.0 KiB
Plaintext

CREATE OR REPLACE package body cm_persister
as
procedure update_auction_locations (p_location_id VAOFSTRING,
p_location_name VAOFSTRING,
p_owner_id VAOFSTRING,
p_sales_tax VAOFNUMBER,
p_sales_tax_bank_id VAOFSTRING,
p_empty_date VAOFNUMBER,
p_last_access_date VAOFNUMBER,
p_inactive_date VAOFNUMBER,
p_status VAOFNUMBER,
p_search_enabled VAOFSTRING,
p_entrance_charge VAOFNUMBER,
p_chunk_size number)
as
errors number;
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
UPDATE AUCTION_LOCATIONS Set
location_name = DECODE(p_location_name(i), NULL, location_name, p_location_name(i)),
owner_id = DECODE(p_owner_id(i), NULL, owner_id, p_owner_id(i)),
sales_tax = DECODE(p_sales_tax(i), NULL, sales_tax, p_sales_tax(i)),
sales_tax_bank_id = DECODE(p_sales_tax_bank_id(i), NULL, sales_tax_bank_id, p_sales_tax_bank_id(i)),
empty_date = DECODE(p_empty_date(i), NULL, empty_date, p_empty_date(i)),
last_access_date = DECODE(p_last_access_date(i), NULL, last_access_date, p_last_access_date(i)),
inactive_date = DECODE(p_inactive_date(i), NULL, inactive_date, p_inactive_date(i)),
status = DECODE(p_status(i), NULL, status, p_status(i)),
search_enabled = DECODE(p_search_enabled(i), NULL, search_enabled, p_search_enabled(i)),
entrance_charge = DECODE(p_entrance_charge(i), NULL, entrance_charge, p_entrance_charge(i))
WHERE
location_id = p_location_id(i);
exception
when dml_errors then
errors := SQL%BULK_EXCEPTIONS.count;
end;
procedure insert_auction_locations (p_location_id VAOFSTRING,
p_location_name VAOFSTRING,
p_owner_id VAOFSTRING,
p_sales_tax VAOFNUMBER,
p_sales_tax_bank_id VAOFSTRING,
p_empty_date VAOFNUMBER,
p_last_access_date VAOFNUMBER,
p_inactive_date VAOFNUMBER,
p_status VAOFNUMBER,
p_search_enabled VAOFSTRING,
p_entrance_charge VAOFNUMBER,
p_chunk_size number)
as
errors number;
k number;
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
INSERT into auction_locations (
location_id,
location_name,
owner_id,
sales_tax,
sales_tax_bank_id,
empty_date,
last_access_date,
inactive_date,
status,
search_enabled,
entrance_charge )
VALUES (
p_location_id(i),
p_location_name(i),
p_owner_id(i),
p_sales_tax(i),
p_sales_tax_bank_id(i),
p_empty_date(i),
p_last_access_date(i),
p_inactive_date(i),
p_status(i),
p_search_enabled(i),
p_entrance_charge(i) );
exception
when dml_errors then
errors := SQL%BULK_EXCEPTIONS.count;
for j in 1..errors loop
k := SQL%BULK_EXCEPTIONS(j).ERROR_INDEX;
UPDATE auction_locations Set
location_name = p_location_name(k),
owner_id = p_owner_id(k),
sales_tax = p_sales_tax(k),
sales_tax_bank_id = p_sales_tax_bank_id(k),
empty_date = p_empty_date(k),
last_access_date = p_last_access_date(k),
inactive_date = p_inactive_date(k),
status = p_status(k),
search_enabled = p_search_enabled(k),
entrance_charge = p_entrance_charge(k)
WHERE
location_id = p_location_id(k);
end loop;
end;
procedure delete_auction_locations (p_location_id VAOFSTRING, p_chunk_size number)
as
errors number;
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
delete from auction_locations
where location_id = p_location_id(i);
exception
when dml_errors then
errors := SQL%BULK_EXCEPTIONS.count;
end;
procedure insert_market_auction_bids (p_item_id VAOFSTRING,
p_bidder_id VAOFSTRING,
p_bid VAOFNUMBER,
p_max_proxy_bid VAOFNUMBER,
p_chunk_size number)
as
errors number;
k number;
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
INSERT into market_auction_bids (
item_id,
bidder_id,
bid,
max_proxy_bid )
VALUES (
p_item_id(i),
p_bidder_id(i),
p_bid(i),
p_max_proxy_bid(i) );
exception
when dml_errors then
errors := SQL%BULK_EXCEPTIONS.count;
for j in 1..errors loop
k := SQL%BULK_EXCEPTIONS(j).ERROR_INDEX;
UPDATE market_auction_bids Set
bidder_id = p_bidder_id(k),
bid = p_bid(k),
max_proxy_bid = p_max_proxy_bid(k)
WHERE
item_id = p_item_id(k);
end loop;
end;
procedure update_market_auctions (p_item_id VAOFSTRING,
p_owner_id VAOFSTRING,
p_active VAOFNUMBER,
p_chunk_size number)
as
errors number;
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
UPDATE market_auctions Set
owner_id = DECODE(p_owner_id(i), NULL, owner_id, p_owner_id(i)),
active = DECODE(p_active(i), NULL, active, p_active(i))
WHERE
item_id = p_item_id(i);
exception
when dml_errors then
errors := SQL%BULK_EXCEPTIONS.count;
end;
procedure insert_market_auctions (p_item_id VAOFSTRING,
p_owner_id VAOFSTRING,
p_creator_id VAOFSTRING,
p_location_id VAOFSTRING,
p_min_bid VAOFNUMBER,
p_buy_now_price VAOFNUMBER,
p_auction_timer VAOFNUMBER,
p_oob VAOFLONGSTRING,
p_user_description VAOFLONGSTRING,
p_category VAOFNUMBER,
p_item_name VAOFLONGSTRING,
p_item_timer VAOFNUMBER,
p_active VAOFNUMBER,
p_item_size VAOFNUMBER,
p_object_template_id VAOFNUMBER,
p_chunk_size number)
as
errors number;
k number;
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
INSERT into market_auctions (
item_id,
owner_id,
creator_id,
location_id,
min_bid,
buy_now_price,
auction_timer,
oob,
user_description,
category,
item_name,
item_timer,
active,
item_size,
object_template_id )
VALUES (
p_item_id(i),
p_owner_id(i),
p_creator_id(i),
p_location_id(i),
p_min_bid(i),
p_buy_now_price(i),
p_auction_timer(i),
p_oob(i),
p_user_description(i),
p_category(i),
p_item_name(i),
p_item_timer(i),
p_active(i),
p_item_size(i),
p_object_template_id(i) );
exception
when dml_errors then
errors := SQL%BULK_EXCEPTIONS.count;
for j in 1..errors loop
k := SQL%BULK_EXCEPTIONS(j).ERROR_INDEX;
UPDATE market_auctions Set
owner_id = p_owner_id(k),
creator_id = p_creator_id(k),
location_id = p_location_id(k),
min_bid = p_min_bid(k),
buy_now_price = p_buy_now_price(k),
auction_timer = p_auction_timer(k),
oob = p_oob(k),
user_description = p_user_description(k),
category = p_category(k),
item_name = p_item_name(k),
item_timer = p_item_timer(k),
active = p_active(k),
item_size = p_item_size(k),
object_template_id = p_object_template_id(k)
WHERE
item_id = p_item_id(k);
end loop;
end;
procedure delete_market_auctions (p_item_id VAOFSTRING, p_chunk_size number)
as
errors number;
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
delete from market_auction_attributes
where item_id = p_item_id(i);
FORALL i in 1..p_chunk_size save exceptions
delete from market_auctions
where item_id = p_item_id(i);
--exception
--when dml_errors then
--errors := SQL%BULK_EXCEPTIONS.count;
end;
procedure insert_auction_attributes (p_item_id VAOFSTRING, p_attribute_name VAOFSTRING, p_attribute_value VAOFSTRING, p_chunk_size number)
as
dml_errors EXCEPTION;
PRAGMA exception_init(dml_errors, -24381);
begin
FORALL i in 1..p_chunk_size save exceptions
insert into market_auction_attributes (item_id, attribute_name, attribute_value)
values (p_item_id(i), p_attribute_name(i), p_attribute_value(i));
exception when dml_errors then
null;
end;
end;
/