|
| 1 | +-- Create tolldemo user and grants, must be done as SYS/ADMIN |
| 2 | +create user tolldemo identified by "WelcomE-12345#"; |
| 3 | +grant resource, connect, unlimited tablespace to tolldemo; |
| 4 | +grant execute on dbms_aq to tolldemo; |
| 5 | +grant execute on dbms_aqadm to tolldemo; |
| 6 | +grant execute on dbms_aqin to tolldemo; |
| 7 | +grant execute on dbms_aqjms_internal to tolldemo; |
| 8 | +grant execute on dbms_teqk to tolldemo; |
| 9 | +grant execute on DBMS_RESOURCE_MANAGER to tolldemo; |
| 10 | +grant select_catalog_role to tolldemo; |
| 11 | +grant select on sys.aq$_queue_shards to tolldemo; |
| 12 | +grant select on user_queue_partition_assignment_table to tolldemo; |
| 13 | +commit; |
| 14 | + |
| 15 | +connect tolldemo/Welcome12345 |
| 16 | + |
| 17 | +begin |
| 18 | + dbms_aqadm.create_transactional_event_queue (queue_name => 'TollGate', multiple_consumers => true); |
| 19 | + dbms_aqadm.start_queue(tname) ; |
| 20 | +end; |
| 21 | + |
| 22 | +-- dodgy bodgy sql slower downer |
| 23 | +create or replace function remove_state(plate in varchar2) |
| 24 | +return varchar2 |
| 25 | +is |
| 26 | +begin |
| 27 | + dbms_lock.sleep(dbms_random.value(0.004,0.005)); |
| 28 | + return regexp_replace(plate, '[A-Z]+-', '', 1, 1); |
| 29 | +end; |
| 30 | + |
| 31 | +-- Helper SQL |
| 32 | +-- select msg_id, utl_raw.cast_to_varchar2(dbms_lob.substr(user_data)), msg_state from aq$tollgate; |
| 33 | + |
| 34 | +drop table if exists journal cascade constraints; |
| 35 | + |
| 36 | +create table if not exists journal ( |
| 37 | + JOURNAL_ID NUMBER GENERATED ALWAYS AS IDENTITY (START WITH 1 CACHE 20) primary key not null, |
| 38 | + account_number varchar2(10), |
| 39 | + tag_id varchar2(64), |
| 40 | + license_plate varchar2(10), |
| 41 | + vehicle_type varchar2(10), |
| 42 | + toll_date varchar2(25), |
| 43 | + toll_cost number, |
| 44 | + detected_vehicle_type varchar2(10) |
| 45 | +); |
| 46 | + |
| 47 | + |
| 48 | +drop table if exists vehicle cascade constraints; |
| 49 | +drop table if exists customer cascade constraints; |
| 50 | + |
| 51 | +create table if not exists customer ( |
| 52 | + customer_id varchar2(42) primary key not null, |
| 53 | + account_number varchar2(42), |
| 54 | + first_name varchar2(32), |
| 55 | + last_name varchar2(32), |
| 56 | + address varchar2(64), |
| 57 | + city varchar2(32), |
| 58 | + zipcode varchar2(6) |
| 59 | +); |
| 60 | + |
| 61 | +create table if not exists vehicle ( |
| 62 | + vehicle_id varchar2(42) primary key not null, |
| 63 | + customer_id varchar2(42), |
| 64 | + tag_id varchar2(42), |
| 65 | + state varchar2(16), |
| 66 | + license_plate varchar2(10), |
| 67 | + vehicle_type varchar2(10), |
| 68 | + image varchar2(64) |
| 69 | +); |
| 70 | + |
| 71 | +alter table vehicle add constraint customer_fk foreign key (customer_id) references customer(customer_id); |
| 72 | + |
0 commit comments