From 3bf343e32c98f6623ff564de651520ce0a6f463c Mon Sep 17 00:00:00 2001 From: MohammedRagab00 Date: Sun, 23 Mar 2025 12:11:18 +0200 Subject: [PATCH 1/4] chore: update dependencies and add logging - Updated all versions of dependencies in pom.xml - Added logging to improve visibility and debugging --- Template/.idea/.gitignore | 8 - Template/.idea/compiler.xml | 14 -- .../inspectionProfiles/Project_Default.xml | 10 - Template/.idea/jarRepositories.xml | 20 -- Template/.idea/jpa.xml | 7 - Template/.idea/misc.xml | 12 - Template/.idea/modules.xml | 8 - Template/.idea/sqldialects.xml | 6 - Template/.idea/uiDesigner.xml | 124 ---------- Template/.idea/vcs.xml | 6 - .../CS308Spring2022.iml | 12 - Template/CS308Spring2022.iml | 14 -- Template/README.md | 17 -- Template/Screenshot 2024-05-06 142616.png | Bin 157782 -> 0 bytes Template/Screenshot 2024-05-06 143010.png | Bin 28609 -> 0 bytes Template/pom.xml | 51 ---- Template/src/main/java/com/sci/TesterApp.java | 17 -- .../java/com/sci/criteria/FilterQuery.java | 16 -- .../main/java/com/sci/criteria/Operator.java | 6 - .../src/main/java/com/sci/dao/DBBooking.java | 214 ----------------- .../src/main/java/com/sci/dao/DBConfig.java | 16 -- .../src/main/java/com/sci/dao/DBEmployee.java | 214 ----------------- .../src/main/java/com/sci/dao/DBGuest.java | 214 ----------------- .../main/java/com/sci/dao/DBJobHistory.java | 107 --------- .../src/main/java/com/sci/dao/DBPrice.java | 216 ----------------- .../src/main/java/com/sci/dao/DBRegion.java | 104 --------- .../main/java/com/sci/dao/DBReservation.java | 217 ------------------ .../src/main/java/com/sci/dao/DBRoom.java | 214 ----------------- .../src/main/java/com/sci/dao/DBRoomType.java | 214 ----------------- .../src/main/java/com/sci/models/Booking.java | 39 ---- .../main/java/com/sci/models/Employee.java | 67 ------ .../src/main/java/com/sci/models/Guest.java | 41 ---- .../main/java/com/sci/models/JobHistory.java | 36 --- .../sci/models/JobHistoryCompositeKey.java | 18 -- .../src/main/java/com/sci/models/Price.java | 34 --- .../com/sci/models/PriceCompositeKey.java | 20 -- .../src/main/java/com/sci/models/Region.java | 30 --- .../main/java/com/sci/models/Reservation.java | 34 --- .../sci/models/ReservationCompositeKey.java | 21 -- .../src/main/java/com/sci/models/Room.java | 44 ---- .../main/java/com/sci/models/RoomType.java | 38 --- Template/src/main/resources/hibernate.cfg.xml | 31 --- .../target/classes/com/sci/TesterApp.class | Bin 1170 -> 0 bytes .../com/sci/criteria/FilterQuery.class | Bin 2677 -> 0 bytes .../classes/com/sci/criteria/Operator.class | Bin 1452 -> 0 bytes .../classes/com/sci/dao/DBBooking$1.class | Bin 1074 -> 0 bytes .../classes/com/sci/dao/DBBooking.class | Bin 8023 -> 0 bytes .../target/classes/com/sci/dao/DBConfig.class | Bin 734 -> 0 bytes .../classes/com/sci/dao/DBEmployee$1.class | Bin 1077 -> 0 bytes .../classes/com/sci/dao/DBEmployee.class | Bin 8132 -> 0 bytes .../classes/com/sci/dao/DBGuest$1.class | Bin 1068 -> 0 bytes .../target/classes/com/sci/dao/DBGuest.class | Bin 7985 -> 0 bytes .../classes/com/sci/dao/DBJobHistory.class | Bin 3825 -> 0 bytes .../classes/com/sci/dao/DBPrice$1.class | Bin 1068 -> 0 bytes .../target/classes/com/sci/dao/DBPrice.class | Bin 8348 -> 0 bytes .../target/classes/com/sci/dao/DBRegion.class | Bin 3521 -> 0 bytes .../classes/com/sci/dao/DBReservation$1.class | Bin 1086 -> 0 bytes .../classes/com/sci/dao/DBReservation.class | Bin 8505 -> 0 bytes .../target/classes/com/sci/dao/DBRoom$1.class | Bin 1065 -> 0 bytes .../target/classes/com/sci/dao/DBRoom.class | Bin 7972 -> 0 bytes .../classes/com/sci/dao/DBRoomType$1.class | Bin 1077 -> 0 bytes .../classes/com/sci/dao/DBRoomType.class | Bin 8036 -> 0 bytes .../classes/com/sci/models/Booking.class | Bin 4656 -> 0 bytes .../classes/com/sci/models/Employee.class | Bin 9585 -> 0 bytes .../target/classes/com/sci/models/Guest.class | Bin 5167 -> 0 bytes .../classes/com/sci/models/JobHistory.class | Bin 4241 -> 0 bytes .../sci/models/JobHistoryCompositeKey.class | Bin 1447 -> 0 bytes .../target/classes/com/sci/models/Price.class | Bin 3610 -> 0 bytes .../com/sci/models/PriceCompositeKey.class | Bin 1532 -> 0 bytes .../classes/com/sci/models/Region.class | Bin 2588 -> 0 bytes .../classes/com/sci/models/Reservation.class | Bin 3255 -> 0 bytes .../sci/models/ReservationCompositeKey.class | Bin 1718 -> 0 bytes .../target/classes/com/sci/models/Room.class | Bin 5814 -> 0 bytes .../classes/com/sci/models/RoomType.class | Bin 4110 -> 0 bytes Template/target/classes/hibernate.cfg.xml | 31 --- 75 files changed, 2562 deletions(-) delete mode 100644 Template/.idea/.gitignore delete mode 100644 Template/.idea/compiler.xml delete mode 100644 Template/.idea/inspectionProfiles/Project_Default.xml delete mode 100644 Template/.idea/jarRepositories.xml delete mode 100644 Template/.idea/jpa.xml delete mode 100644 Template/.idea/misc.xml delete mode 100644 Template/.idea/modules.xml delete mode 100644 Template/.idea/sqldialects.xml delete mode 100644 Template/.idea/uiDesigner.xml delete mode 100644 Template/.idea/vcs.xml delete mode 100644 Template/CS308Spring2022-master/CS308Spring2022.iml delete mode 100644 Template/CS308Spring2022.iml delete mode 100644 Template/README.md delete mode 100644 Template/Screenshot 2024-05-06 142616.png delete mode 100644 Template/Screenshot 2024-05-06 143010.png delete mode 100644 Template/pom.xml delete mode 100644 Template/src/main/java/com/sci/TesterApp.java delete mode 100644 Template/src/main/java/com/sci/criteria/FilterQuery.java delete mode 100644 Template/src/main/java/com/sci/criteria/Operator.java delete mode 100644 Template/src/main/java/com/sci/dao/DBBooking.java delete mode 100644 Template/src/main/java/com/sci/dao/DBConfig.java delete mode 100644 Template/src/main/java/com/sci/dao/DBEmployee.java delete mode 100644 Template/src/main/java/com/sci/dao/DBGuest.java delete mode 100644 Template/src/main/java/com/sci/dao/DBJobHistory.java delete mode 100644 Template/src/main/java/com/sci/dao/DBPrice.java delete mode 100644 Template/src/main/java/com/sci/dao/DBRegion.java delete mode 100644 Template/src/main/java/com/sci/dao/DBReservation.java delete mode 100644 Template/src/main/java/com/sci/dao/DBRoom.java delete mode 100644 Template/src/main/java/com/sci/dao/DBRoomType.java delete mode 100644 Template/src/main/java/com/sci/models/Booking.java delete mode 100644 Template/src/main/java/com/sci/models/Employee.java delete mode 100644 Template/src/main/java/com/sci/models/Guest.java delete mode 100644 Template/src/main/java/com/sci/models/JobHistory.java delete mode 100644 Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java delete mode 100644 Template/src/main/java/com/sci/models/Price.java delete mode 100644 Template/src/main/java/com/sci/models/PriceCompositeKey.java delete mode 100644 Template/src/main/java/com/sci/models/Region.java delete mode 100644 Template/src/main/java/com/sci/models/Reservation.java delete mode 100644 Template/src/main/java/com/sci/models/ReservationCompositeKey.java delete mode 100644 Template/src/main/java/com/sci/models/Room.java delete mode 100644 Template/src/main/java/com/sci/models/RoomType.java delete mode 100644 Template/src/main/resources/hibernate.cfg.xml delete mode 100644 Template/target/classes/com/sci/TesterApp.class delete mode 100644 Template/target/classes/com/sci/criteria/FilterQuery.class delete mode 100644 Template/target/classes/com/sci/criteria/Operator.class delete mode 100644 Template/target/classes/com/sci/dao/DBBooking$1.class delete mode 100644 Template/target/classes/com/sci/dao/DBBooking.class delete mode 100644 Template/target/classes/com/sci/dao/DBConfig.class delete mode 100644 Template/target/classes/com/sci/dao/DBEmployee$1.class delete mode 100644 Template/target/classes/com/sci/dao/DBEmployee.class delete mode 100644 Template/target/classes/com/sci/dao/DBGuest$1.class delete mode 100644 Template/target/classes/com/sci/dao/DBGuest.class delete mode 100644 Template/target/classes/com/sci/dao/DBJobHistory.class delete mode 100644 Template/target/classes/com/sci/dao/DBPrice$1.class delete mode 100644 Template/target/classes/com/sci/dao/DBPrice.class delete mode 100644 Template/target/classes/com/sci/dao/DBRegion.class delete mode 100644 Template/target/classes/com/sci/dao/DBReservation$1.class delete mode 100644 Template/target/classes/com/sci/dao/DBReservation.class delete mode 100644 Template/target/classes/com/sci/dao/DBRoom$1.class delete mode 100644 Template/target/classes/com/sci/dao/DBRoom.class delete mode 100644 Template/target/classes/com/sci/dao/DBRoomType$1.class delete mode 100644 Template/target/classes/com/sci/dao/DBRoomType.class delete mode 100644 Template/target/classes/com/sci/models/Booking.class delete mode 100644 Template/target/classes/com/sci/models/Employee.class delete mode 100644 Template/target/classes/com/sci/models/Guest.class delete mode 100644 Template/target/classes/com/sci/models/JobHistory.class delete mode 100644 Template/target/classes/com/sci/models/JobHistoryCompositeKey.class delete mode 100644 Template/target/classes/com/sci/models/Price.class delete mode 100644 Template/target/classes/com/sci/models/PriceCompositeKey.class delete mode 100644 Template/target/classes/com/sci/models/Region.class delete mode 100644 Template/target/classes/com/sci/models/Reservation.class delete mode 100644 Template/target/classes/com/sci/models/ReservationCompositeKey.class delete mode 100644 Template/target/classes/com/sci/models/Room.class delete mode 100644 Template/target/classes/com/sci/models/RoomType.class delete mode 100644 Template/target/classes/hibernate.cfg.xml diff --git a/Template/.idea/.gitignore b/Template/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/Template/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/Template/.idea/compiler.xml b/Template/.idea/compiler.xml deleted file mode 100644 index c409301..0000000 --- a/Template/.idea/compiler.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Template/.idea/inspectionProfiles/Project_Default.xml b/Template/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 21bc619..0000000 --- a/Template/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/Template/.idea/jarRepositories.xml b/Template/.idea/jarRepositories.xml deleted file mode 100644 index 712ab9d..0000000 --- a/Template/.idea/jarRepositories.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Template/.idea/jpa.xml b/Template/.idea/jpa.xml deleted file mode 100644 index 9b46c6f..0000000 --- a/Template/.idea/jpa.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Template/.idea/misc.xml b/Template/.idea/misc.xml deleted file mode 100644 index 3be61e2..0000000 --- a/Template/.idea/misc.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Template/.idea/modules.xml b/Template/.idea/modules.xml deleted file mode 100644 index a679cec..0000000 --- a/Template/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Template/.idea/sqldialects.xml b/Template/.idea/sqldialects.xml deleted file mode 100644 index e2f3fb7..0000000 --- a/Template/.idea/sqldialects.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Template/.idea/uiDesigner.xml b/Template/.idea/uiDesigner.xml deleted file mode 100644 index 2b63946..0000000 --- a/Template/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Template/.idea/vcs.xml b/Template/.idea/vcs.xml deleted file mode 100644 index 6c0b863..0000000 --- a/Template/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Template/CS308Spring2022-master/CS308Spring2022.iml b/Template/CS308Spring2022-master/CS308Spring2022.iml deleted file mode 100644 index 6709504..0000000 --- a/Template/CS308Spring2022-master/CS308Spring2022.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/Template/CS308Spring2022.iml b/Template/CS308Spring2022.iml deleted file mode 100644 index 2450ac9..0000000 --- a/Template/CS308Spring2022.iml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Template/README.md b/Template/README.md deleted file mode 100644 index c8da736..0000000 --- a/Template/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# CS308 Spring 2022 - -***[Hibernate Tutorial](https://www.tutorialspoint.com/hibernate/index.htm)*** - -***[Hibernate Tutorial](https://www.javatpoint.com/hibernate-tutorial)*** - -***[Hibernate example](https://www.codejava.net/frameworks/hibernate/how-to-make-hibernate-work-with-oracle-database)*** - -***[Criteria Query example](https://www.baeldung.com/hibernate-criteria-queries)*** - -***[Oracle Maven Dependency](https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8/21.5.0.0)*** - -***[Hibernate Maven Dependency](https://mvnrepository.com/artifact/org.hibernate/hibernate-core/5.6.7.Final)*** - -***[Ehcache Maven Dependency](https://mvnrepository.com/artifact/net.sf.ehcache/ehcache)*** - -***[Hibernate Ehcache Relocation Maven Dependency](https://mvnrepository.com/artifact/org.hibernate/hibernate-ehcache)*** \ No newline at end of file diff --git a/Template/Screenshot 2024-05-06 142616.png b/Template/Screenshot 2024-05-06 142616.png deleted file mode 100644 index 99a4276508d1d89dbe983995f709fcdd48b8c9a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157782 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%0D8AYmhwSj&*fArI^m1T)8z%~Hmx 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

5V5#^=Z)ooIqJ01?;S}-jZHPEh?VzRm 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 TCob@_dvrS246c@I*oOQc-E&Pd diff --git a/Template/pom.xml b/Template/pom.xml deleted file mode 100644 index 7effd55..0000000 --- a/Template/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - com.sci - CS308Spring2022 - 1.0.0 - - - 8 - 8 - - - - - - org.projectlombok - lombok - 1.18.22 - - - - com.oracle.database.jdbc - ojdbc8 - 21.5.0.0 - - - - org.hibernate - hibernate-core - 5.6.7.Final - - - - net.sf.ehcache - ehcache - 2.10.9.2 - - - - org.hibernate - hibernate-ehcache - 5.6.8.Final - - - - - - \ No newline at end of file diff --git a/Template/src/main/java/com/sci/TesterApp.java b/Template/src/main/java/com/sci/TesterApp.java deleted file mode 100644 index c466d2b..0000000 --- a/Template/src/main/java/com/sci/TesterApp.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.sci; - -import com.sci.dao.DBConfig; -import com.sci.dao.DBReservation; -import com.sci.models.*; -import java.util.List; - -public class TesterApp { - public static void main(String[] args) { - DBReservation roomType = new DBReservation(); - List rooms = roomType.get(); - for (Reservation room : rooms) { - System.out.println(room); - } - DBConfig.shutdown(); - } -} diff --git a/Template/src/main/java/com/sci/criteria/FilterQuery.java b/Template/src/main/java/com/sci/criteria/FilterQuery.java deleted file mode 100644 index c0e9875..0000000 --- a/Template/src/main/java/com/sci/criteria/FilterQuery.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.sci.criteria; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class FilterQuery { - - private String attributeName; - private Object attributeValue; - private Operator op; -// private String type;// int double boolean -} diff --git a/Template/src/main/java/com/sci/criteria/Operator.java b/Template/src/main/java/com/sci/criteria/Operator.java deleted file mode 100644 index f3e2749..0000000 --- a/Template/src/main/java/com/sci/criteria/Operator.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.sci.criteria; - -public enum Operator { - Equal, NotEqual, GreaterThan, Between, LessThan, - GreaterThanOrEqual, LessThanOrEqual, In, Like, IsNull -} diff --git a/Template/src/main/java/com/sci/dao/DBBooking.java b/Template/src/main/java/com/sci/dao/DBBooking.java deleted file mode 100644 index 5b754e5..0000000 --- a/Template/src/main/java/com/sci/dao/DBBooking.java +++ /dev/null @@ -1,214 +0,0 @@ -package com.sci.dao; - - -import com.sci.criteria.FilterQuery; -import com.sci.models.Booking; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings({"unchecked", "rawtypes"}) -public class DBBooking { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(Booking.class); - Root root = cr.from(Booking.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be customized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //This is their default, We need a more complex query - cr.select(root).where(predicates); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Booking ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Booking read(String bookingNumber) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Booking.class, bookingNumber); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public String create(Booking booking) { - - Transaction transaction = null; - String bookingNumber = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - bookingNumber = (String) session.save(booking); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return bookingNumber; - } - - public void update(Booking booking) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(booking); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String bookingNumber) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Booking booking = read(bookingNumber); - - session.delete(booking); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/dao/DBConfig.java b/Template/src/main/java/com/sci/dao/DBConfig.java deleted file mode 100644 index 6df3bbb..0000000 --- a/Template/src/main/java/com/sci/dao/DBConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.sci.dao; - -import org.hibernate.SessionFactory; -import org.hibernate.cfg.Configuration; - -public class DBConfig { - - public static final SessionFactory SESSION_FACTORY = new Configuration().configure() - .buildSessionFactory(); - - public static void shutdown() { - if (SESSION_FACTORY != null) { - SESSION_FACTORY.close(); - } - } -} diff --git a/Template/src/main/java/com/sci/dao/DBEmployee.java b/Template/src/main/java/com/sci/dao/DBEmployee.java deleted file mode 100644 index 66d819b..0000000 --- a/Template/src/main/java/com/sci/dao/DBEmployee.java +++ /dev/null @@ -1,214 +0,0 @@ -package com.sci.dao; - - -import com.sci.criteria.FilterQuery; -import com.sci.models.Employee; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings({"unchecked", "rawtypes"}) -public class DBEmployee { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(Employee.class); - Root root = cr.from(Employee.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be customized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //This is their default, We need a more complex query - cr.select(root).where(predicates); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Employee").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Employee read(Integer employeeId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Employee.class, employeeId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Employee employee) { - - Transaction transaction = null; - int employeeId = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - employeeId = (Integer) session.save(employee); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return employeeId; - } - - public void update(Employee employee) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(employee); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer employeeId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Employee employee = read(employeeId); - - session.delete(employee); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/dao/DBGuest.java b/Template/src/main/java/com/sci/dao/DBGuest.java deleted file mode 100644 index e4f08cb..0000000 --- a/Template/src/main/java/com/sci/dao/DBGuest.java +++ /dev/null @@ -1,214 +0,0 @@ -package com.sci.dao; - - -import com.sci.criteria.FilterQuery; -import com.sci.models.Guest; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings({"unchecked", "rawtypes"}) -public class DBGuest { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(Guest.class); - Root root = cr.from(Guest.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be customized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //This is their default, We need a more complex query - cr.select(root).where(predicates); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Guest ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Guest read(String guestId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Guest.class, guestId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public String create(Guest guest) { - - Transaction transaction = null; - String guestId = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - guestId = (String) session.save(guest); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return guestId; - } - - public void update(Guest guest) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(guest); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String guestId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Guest guest = read(guestId); - - session.delete(guest); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/dao/DBJobHistory.java b/Template/src/main/java/com/sci/dao/DBJobHistory.java deleted file mode 100644 index 1554782..0000000 --- a/Template/src/main/java/com/sci/dao/DBJobHistory.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.sci.dao; - -import com.sci.models.JobHistory; -import com.sci.models.JobHistoryCompositeKey; -import org.hibernate.Session; -import org.hibernate.Transaction; - -import java.sql.Date; -import java.util.List; - -public class DBJobHistory { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM JobHistory").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public JobHistory read(Integer employeeId, Date startDate) { - JobHistoryCompositeKey key = new JobHistoryCompositeKey(employeeId, startDate); - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(JobHistory.class, key); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public JobHistoryCompositeKey create(JobHistory jobHistory) { - - Transaction transaction = null; - JobHistoryCompositeKey key = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - key = (JobHistoryCompositeKey) session.save(jobHistory); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return key; - } - - public void update(JobHistory jobHistory) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(jobHistory); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer employeeId, Date date) { - JobHistoryCompositeKey key = new JobHistoryCompositeKey(employeeId, date); - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - JobHistory jobHistory = read(employeeId, date); - - session.delete(jobHistory); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/dao/DBPrice.java b/Template/src/main/java/com/sci/dao/DBPrice.java deleted file mode 100644 index ea867c0..0000000 --- a/Template/src/main/java/com/sci/dao/DBPrice.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.sci.dao; - - -import com.sci.criteria.FilterQuery; -import com.sci.models.Price; -import com.sci.models.PriceCompositeKey; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings({"unchecked", "rawtypes"}) -public class DBPrice { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(Price.class); - Root root = cr.from(Price.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be customized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //This is their default, We need a more complex query - cr.select(root).where(predicates); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Price ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Price read(String roomNumber, String season, String weekday) { - PriceCompositeKey key = new PriceCompositeKey(roomNumber, season, weekday); - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Price.class, key); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public PriceCompositeKey create(Price price) { - - Transaction transaction = null; - PriceCompositeKey key = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - key = (PriceCompositeKey) session.save(price); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return key; - } - - public void update(Price price) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(price); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String roomNumber, String season, String weekday) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Price price = read(roomNumber, season, weekday); - - session.delete(price); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/dao/DBRegion.java b/Template/src/main/java/com/sci/dao/DBRegion.java deleted file mode 100644 index a75ecc8..0000000 --- a/Template/src/main/java/com/sci/dao/DBRegion.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.sci.dao; - -import com.sci.models.Region; -import org.hibernate.Session; -import org.hibernate.Transaction; - -import java.util.List; - -public class DBRegion { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Region").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Region read(Integer regionId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Region.class, regionId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Region region) { - - Transaction transaction = null; - int regionId = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - regionId = (Integer) session.save(region); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return regionId; - } - - public void update(Region region) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(region); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer regionId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Region region = read(regionId); - - session.delete(region); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/dao/DBReservation.java b/Template/src/main/java/com/sci/dao/DBReservation.java deleted file mode 100644 index b278c07..0000000 --- a/Template/src/main/java/com/sci/dao/DBReservation.java +++ /dev/null @@ -1,217 +0,0 @@ -package com.sci.dao; - - -import com.sci.criteria.FilterQuery; -import com.sci.models.Reservation; -import com.sci.models.ReservationCompositeKey; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import java.sql.Date; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings({"unchecked", "rawtypes"}) -public class DBReservation { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(Reservation.class); - Root root = cr.from(Reservation.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be customized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //This is their default, We need a more complex query - cr.select(root).where(predicates); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Reservation ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Reservation read(String bookingNumber, String roomNumber, Date dateReserved) { - ReservationCompositeKey key = new ReservationCompositeKey(bookingNumber, roomNumber, dateReserved); - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Reservation.class, key); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public ReservationCompositeKey create(Reservation reservation) { - - Transaction transaction = null; - ReservationCompositeKey key = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - key = (ReservationCompositeKey) session.save(reservation); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return key; - } - - public void update(Reservation reservation) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(reservation); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String bookingNumber, String roomNumber, Date dateReserved) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Reservation reservation = read(bookingNumber, roomNumber, dateReserved); - - session.delete(reservation); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/dao/DBRoom.java b/Template/src/main/java/com/sci/dao/DBRoom.java deleted file mode 100644 index 3da6116..0000000 --- a/Template/src/main/java/com/sci/dao/DBRoom.java +++ /dev/null @@ -1,214 +0,0 @@ -package com.sci.dao; - - -import com.sci.criteria.FilterQuery; -import com.sci.models.Room; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings({"unchecked", "rawtypes"}) -public class DBRoom { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(Room.class); - Root root = cr.from(Room.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be customized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //This is their default, We need a more complex query - cr.select(root).where(predicates); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Room ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Room read(String roomNumber) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Room.class, roomNumber); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public String create(Room room) { - - Transaction transaction = null; - String roomNumber = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - roomNumber = (String) session.save(room); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return roomNumber; - } - - public void update(Room room) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(room); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String roomNumber) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Room room = read(roomNumber); - - session.delete(room); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/dao/DBRoomType.java b/Template/src/main/java/com/sci/dao/DBRoomType.java deleted file mode 100644 index f90e73b..0000000 --- a/Template/src/main/java/com/sci/dao/DBRoomType.java +++ /dev/null @@ -1,214 +0,0 @@ -package com.sci.dao; - - -import com.sci.criteria.FilterQuery; -import com.sci.models.RoomType; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings({"unchecked", "rawtypes"}) -public class DBRoomType { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(RoomType.class); - Root root = cr.from(RoomType.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be customized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //This is their default, We need a more complex query - cr.select(root).where(predicates); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM RoomType ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public RoomType read(String roomTypeId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(RoomType.class, roomTypeId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public String create(RoomType roomType) { - - Transaction transaction = null; - String roomTypeId = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - roomTypeId = (String) session.save(roomType); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return roomTypeId; - } - - public void update(RoomType roomType) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(roomType); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String roomTypeId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - RoomType roomType = read(roomTypeId); - - session.delete(roomType); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - -} diff --git a/Template/src/main/java/com/sci/models/Booking.java b/Template/src/main/java/com/sci/models/Booking.java deleted file mode 100644 index a44c0e0..0000000 --- a/Template/src/main/java/com/sci/models/Booking.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import java.sql.Date; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "A2_BOOKING") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Booking implements Serializable { - private static final long serialVersionUID = 4L; - - @Id - @Column(name = "BOOKING_NUMBER") - private String bookingNumber; - @Column(name = "GUEST") - private String guest; - @Column(name = "DATE_MADE") - private Date dateMade; - @Column(name = "REASON") - private String reason; - - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "BOOKING_NUMBER", insertable = false, updatable = false) - private List reservations; -} diff --git a/Template/src/main/java/com/sci/models/Employee.java b/Template/src/main/java/com/sci/models/Employee.java deleted file mode 100644 index e396947..0000000 --- a/Template/src/main/java/com/sci/models/Employee.java +++ /dev/null @@ -1,67 +0,0 @@ -//Employees Sequenced, Self-Join, ManyToMany Relationship. -//JobHistory CompositeKey Solution. - -package com.sci.models; - -import java.io.Serializable; -import java.sql.Date; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "employees") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -//Sequencing: -@SequenceGenerator(name = "employees_gen", sequenceName = "employees_seq", allocationSize = 1) -public class Employee implements Serializable { - - private static final long serialVersionUID = -915428707036605461L; - - @Id //Sequence strategy: - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employees_gen") - @Column(name = "employee_id") - private Integer employeeId; - @Column(name = "first_name") - private String firstName; - @Column(name = "last_name") - private String lastName; - @Column(name = "email") - private String email; - @Column(name = "phone_number") - private String phoneNumber; - @Column(name = "hire_date") - private Date hireDate; - @Column(name = "job_id") - private String jobId; - @Column(name = "salary") - private Integer salary; - @Column(name = "commission_pct") - private Double commissionPct; - @Column(name = "manager_id") - private Integer managerId; - @Column(name = "department_id") - private Integer departmentId; - - - //Each employee has a manager: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "MANAGER_ID", insertable = false, updatable = false) - private Employee manager; - - //Each employee (Manager) manages many employees: - //This is a self-referencing relationship: - @OneToMany(mappedBy = "manager") - private List managedEmployees; -} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/Guest.java b/Template/src/main/java/com/sci/models/Guest.java deleted file mode 100644 index af29afa..0000000 --- a/Template/src/main/java/com/sci/models/Guest.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import java.sql.Date; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "A2_GUEST") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Guest implements Serializable { - private static final long serialVersionUID = 3L; - - @Id - @Column(name = "GUEST_ID") - private String guestId; - @Column(name = "FAMILY_NAME") - private String familyName; - @Column(name = "GIVEN_NAME") - private String givenName; - @Column(name = "DATE_OF_BIRTH") - private Date dateOfBirth; - @Column(name = "ADDRESS") - private String address; - - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "GUEST", insertable = false, updatable = false) - private List bookings; -} diff --git a/Template/src/main/java/com/sci/models/JobHistory.java b/Template/src/main/java/com/sci/models/JobHistory.java deleted file mode 100644 index dc7e54f..0000000 --- a/Template/src/main/java/com/sci/models/JobHistory.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import java.sql.Date; -import javax.persistence.*; - -import lombok.*; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "Job_History") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor -@IdClass(JobHistoryCompositeKey.class) //Composite key. -public class JobHistory implements Serializable { - - private static final long serialVersionUID = 6572714351961244926L; - @Id //Key part1. - @Column(name = "EMPLOYEE_ID") - private Integer employeeId; - @Id //Key part2. - @Column(name = "START_DATE") - private Date startDate; - @Column(name = "END_DATE") - private Date endDate; - @Column(name = "JOB_ID") - private String jobId; - @Column(name = "DEPARTMENT_ID") - private Integer departmentId; - -} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java b/Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java deleted file mode 100644 index 9705fe4..0000000 --- a/Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.sci.models; - -import lombok.*; - -import java.io.Serializable; -import java.sql.Date; -//Composite key class: -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -@ToString -public class JobHistoryCompositeKey implements Serializable { - private static final long serialVersionUID = -7519983781399232210L; - - private Integer employeeId; - private Date startDate; -} diff --git a/Template/src/main/java/com/sci/models/Price.java b/Template/src/main/java/com/sci/models/Price.java deleted file mode 100644 index 571e7ba..0000000 --- a/Template/src/main/java/com/sci/models/Price.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import javax.persistence.*; - -import lombok.*; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "A2_PRICE_LIST") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor -@IdClass(PriceCompositeKey.class) //Composite key. -public class Price implements Serializable { - private static final long serialVersionUID = 6L; - - @Id - @Column(name = "ROOM_NUMBER") - private String roomNumber; - @Id - @Column(name = "SEASON") - private String season; - @Id - @Column(name = "WEEKDAY") - private String weekday; - @Column(name = "PRICE") - private Integer price; - -} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/PriceCompositeKey.java b/Template/src/main/java/com/sci/models/PriceCompositeKey.java deleted file mode 100644 index a2bcc4f..0000000 --- a/Template/src/main/java/com/sci/models/PriceCompositeKey.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.sci.models; - -import lombok.*; - -import java.io.Serializable; - -//Composite key class: -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -@ToString -public class PriceCompositeKey implements Serializable { - private static final long serialVersionUID = 5L; - - private String roomNumber; - private String season; - private String weekday; - -} diff --git a/Template/src/main/java/com/sci/models/Region.java b/Template/src/main/java/com/sci/models/Region.java deleted file mode 100644 index 7aca1a3..0000000 --- a/Template/src/main/java/com/sci/models/Region.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import javax.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "Regions") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Region implements Serializable { - - private static final long serialVersionUID = 6596828837219242458L; - - @Id - @Column(name = "REGION_ID") - private Integer regionId; - @Column(name = "REGION_NAME") - private String regionName; - -} diff --git a/Template/src/main/java/com/sci/models/Reservation.java b/Template/src/main/java/com/sci/models/Reservation.java deleted file mode 100644 index aa99fd2..0000000 --- a/Template/src/main/java/com/sci/models/Reservation.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import java.sql.Date; -import javax.persistence.*; - -import lombok.*; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "A2_RESERVATION") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor -@IdClass(ReservationCompositeKey.class) //Composite key. - -public class Reservation implements Serializable { - private static final long serialVersionUID = 8L; - - @Id - @Column(name = "BOOKING_NUMBER") - private String bookingNumber; - @Id - @Column(name = "ROOM_NUMBER") - private String roomNumber; - @Id - @Column(name = "DATE_RESERVED") - private Date dateReserved; - -} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/ReservationCompositeKey.java b/Template/src/main/java/com/sci/models/ReservationCompositeKey.java deleted file mode 100644 index 80db520..0000000 --- a/Template/src/main/java/com/sci/models/ReservationCompositeKey.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.sci.models; - -import lombok.*; - -import java.io.Serializable; -import java.sql.Date; - -//Composite key class: -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -@ToString -public class ReservationCompositeKey implements Serializable { - private static final long serialVersionUID = 7L; - - private String bookingNumber; - private String roomNumber; - private Date dateReserved; - -} diff --git a/Template/src/main/java/com/sci/models/Room.java b/Template/src/main/java/com/sci/models/Room.java deleted file mode 100644 index c378f77..0000000 --- a/Template/src/main/java/com/sci/models/Room.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "A2_ROOM") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Room implements Serializable { - private static final long serialVersionUID = 2L; - - @Id - @Column(name = "ROOM_NUMBER") - private String roomNumber; - @Column(name = "ROOM_TYPE") - private String roomTypeId; - @Column(name = "SHOWER") - private String shower; - @Column(name = "BATH") - private String bath; - @Column(name = "BALCONY") - private String balcony; - - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "ROOM_NUMBER", insertable = false, updatable = false) - private List prices; - - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "ROOM_NUMBER", insertable = false, updatable = false) - private List reservations; -} diff --git a/Template/src/main/java/com/sci/models/RoomType.java b/Template/src/main/java/com/sci/models/RoomType.java deleted file mode 100644 index 733379c..0000000 --- a/Template/src/main/java/com/sci/models/RoomType.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; - -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "A2_ROOM_TYPE") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class RoomType implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "ROOM_TYPE") - private String roomTypeId; - @Column(name = "SLEEPS") - private Integer sleeps; - @Column(name = "DESCRIPTION") - private String description; - - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "ROOM_TYPE", insertable = false, updatable = false) - private List rooms; - -} diff --git a/Template/src/main/resources/hibernate.cfg.xml b/Template/src/main/resources/hibernate.cfg.xml deleted file mode 100644 index 6a529be..0000000 --- a/Template/src/main/resources/hibernate.cfg.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - jdbc:oracle:thin:@localhost:1521:orcl - c##MHBakr - MohamedHedia123 - oracle.jdbc.driver.OracleDriver - org.hibernate.dialect.Oracle10gDialect - true - true - org.hibernate.cache.ehcache.EhCacheRegionFactory - - - true - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Template/target/classes/com/sci/TesterApp.class b/Template/target/classes/com/sci/TesterApp.class deleted file mode 100644 index d4fc05284c8e17f35a6c00d847aaf1692c3e0b68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170 zcmZux*-{fh6g?dhI)upr1T=uSYr;0DC`u4z5zDH8mZ4ImJ`G_Ejmb=EGC}zizrbgG z0MRPTXTQU*@BuxO%>bg2(zYO z5~4qu%G7|Xt}5yoRdLh3h$1G@r=cGM0+G(JKv21+W4N{>Fw{}~tl=lZAciE)X*iDr zIsPLwQv~FWQQ0s*Py)rj_9{j+jN*cT->SLeP3*Ro(-Id2hMP^6>}|7H(c8N0!DU>L zxT@hAu6N8VyI*n564~r3IS1=aD_eizD9g>dj%k$AA>2e#BBfy*69NM@-JLlUUiK=A z7D1AAly-rsTnJN`me4iKc*hoRimji>ifz4B1rD*YQ+2oP_m;$Mfxc$arb(5~Qn}1A ztgt(QXhvD)MzyqMI-AB;k)HmHoi~a(!%^P8;q<#ZszS+`Q%Gq-l?+9_L&-O7g4wgO z3h7jiamThfn$cGA>A`v^hEwn;&H!OQ9>nH;nfgXrFsCjdQ375fVPYq*9rblKMzBV6 z(l*oY>qfZ&5X#zBCvUDPZ+?;1kf*%^=8d_lTClBZ!OScdiWKhDtm=0H{ibbK3p+L2S~m|Yf#KE1=GSJXXqNUe zn>;D)<)lH~Ko5Ea2Ac3Kvsi1xZ|pp_^0tFF4D@3_AW*IdTv+XhVWVPIO}kvp_0o9Q zzz~K7^t@SG`l@CY1xDh&I6S+FhY}nyFoIEm@SbJgI2(H;p73dT(f48;Q4Qw}T#!D( zt?RjF1wxkec_@uvG%$fn0z-b|-c8S1_hOPtmkqpvR|QlmZScAm8ODEIcpR@8cpY!> z!u#go{>}0(c?`xAD;g34W32$)8!Xle#a*k~i#SpS(wJt%bA?jDUU0OwbYuk1`;r=O z=18V=UMjw2;0oTRqFJd}rCot(KffMRo#c70b2{E3C+W$iVTTgO@_W+q)i#5Tgmq-2 zWiU&=(v#)NypA~mk&sa?7?oi!Ro7r;i&ytUy>d8%ZCsdGl~`E?6Y!4H)Z2Gg z)|MF13Jaua9oC9A8@=7{U~9uO9-NZa7Q0lEFYg{R|HDP^X1P|)TTBqM8usOBMs@=( zv&+Ug-GW>>)F=hyIC55w8LkF6Gcd~M4ZdZ#3a)DMDa4NsY?059vuWTaWvM^_KEM)J zrVE$&Y**IWmHWFYv;Dg$_q8hzbX8u)hn{kl*9youlc^JkpC|>;id%EEM_q&$x4e@i zL|*qJtaP)Zy{sKcsI>DjZgsQM_p)|mLZlszTi1@b%9wk2nfq4 z`VE1#bh3^?=as^_^)w$@W%>{FMV03mI)X7BRq7aPAYxgSkXSYpRV60$9K%QGkE+p- z4>Xz82%605QB8t$52Qu)21q$(K*0`rx7|RS^gh9=L(2%h#TrW`fGHHP&b=U#$YX<& z!UQhkHYJsq>$pQHgd(fnm9ooJ@=#(1@X%m7xL5NerTkqUHL0ApYPPlEX7~yeTQE$OMf%X_-ctZkYK;PZa~sCw<= diff --git a/Template/target/classes/com/sci/criteria/Operator.class b/Template/target/classes/com/sci/criteria/Operator.class deleted file mode 100644 index 8556b155d3d607bb34d36b5dd8d7ff1afe18d0fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 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 C6jH1J diff --git a/Template/target/classes/com/sci/dao/DBConfig.class b/Template/target/classes/com/sci/dao/DBConfig.class deleted file mode 100644 index bca0e21f01f4dceeed031664cddcb72afacf4ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmaJ4DU+iLx2eQ*$b5K;t<287svTMB(DlgT!jy4{ieQ2bdc zw5Z^t5B@0eP7*7z;>($P@7#OtVb1*c`Q;mchq&t^hrEM=hayUZ=COP$MJS_@=nswq zl@dxjI@0N5LVjy|zk)I<4qOjac!VWoPDG-#7)m3aJ?)t2NRJ2&|GDqK=BVke&4R5j)sG#hXt!*^?%KTq6$qCI9MdC&v&Y$ zk(i3eVwv&+7cJy1EPJ?&D};)gXw2e(u(`GUm#ho(Z999_!!@iD76+LQhx5`28y8sS zJKBUo#|(L2qo<=_H#^}+*pq{hE3KYUGTfK3w)w1BNXI%MEcgEPxXe~g##uTv?;=9Y zPo;YOQofmumUmP*bIbKj7OSAE?Vj3iZ|+-vaf4mVvHye>>mx^bj`;&HUgu2kNqiRX zoq;}Zki#0Iy|%c{=uI22!DK)MH_wM3O>Th3M>yY6W&Dg9;SWunw^@P`YSwmaa>o1X tEb7)d%Y%tPVBsrT2WMD1#idiMe1cQ{l$C=ARuu36iUP$nme!;MFSv2oPUyn2Q+Kxz?@aUo zO!NUvjPY7cj4_4>@S%+VY^d7{G})PNzHk2H?EmZck0SuHcwiubq>dCr2hth_Y`Jd* zwqx186AItqR;3|)9!g(B`hdGl5oj2hoZ2e=({Le+46-^5hE6aI`IcpkOKWwxu-|ay z3n9!I4W?N=bV9qn&Ko9KnUvUUB{t*4iLGLm$~?u;jhu##!t*9~H4Ocy2Gv#%!x{8y z(4}8#(NE(m^e^h``i9e~$|s~AN3@@4M@$EareiuxRFCN>(M(Loi00a?#}#ig zpHjTd{;J~H*xypzi1=q1$f6hhIEy^SFito@?adL+;~`cF3wVMm;Rc?;Caj@>fH1^M zydr#!H+W0<4)5`SFo|2#emZ)DVce#3g4P{cv*>-Qlg0W8TUlu*Z4~cr6k`F4gelyk NeTkM4Jv<$9nLpMO=1~9u diff --git a/Template/target/classes/com/sci/dao/DBEmployee.class b/Template/target/classes/com/sci/dao/DBEmployee.class deleted file mode 100644 index 4c8cf935e8ecaca71a8c4504cc745e7c82939fc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8132 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 MSHb%7 diff --git a/Template/target/classes/com/sci/dao/DBGuest$1.class b/Template/target/classes/com/sci/dao/DBGuest$1.class deleted file mode 100644 index 6dd14bdce02b98a62e1f780ff002229ac738acfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 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 diff --git a/Template/target/classes/com/sci/dao/DBJobHistory.class b/Template/target/classes/com/sci/dao/DBJobHistory.class deleted file mode 100644 index b9f72e9b8ecf579127feaa4adc710b4a07e062e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3825 zcmaKu-Fp+q6~^C@S6WM28)J-Z0db6zfU)E#5E6<6PVg5PEIC-l#54ic@*=O1v_e`# zoPLrv=||G`s(%BwBp2jS`#hyrT=YL`pEmTJ-PLMkZ3JOBFOZ~p*r z7JrE$gf10|hA<)meOvlNJzdtTrS#JJmQl0?A{Wf6X-^4sjh|YLq8m{aF%5BO0s}>> zl5P~u^oDMwXQyYZ>OHe0aG)?(C@d`H@62DCSy@_M6Bt>v>ZSCixo*^}x^1KjMx$X` z)p@;WTlJl69KAT8qEEv?^a~vOF=K(aRWqvI3Id7oQ?Fh;+l>MGGQYf(8@+0+UojhU zuQ&!Vq+(b@0!IW6zj7hBq;;;S?qWdi0Hr!gj4zCud_rU^sXHe_Hm`s)|&{l5?LGjhfBSMDaG#D&Em> z8fQ9$QP^qNMumDX>U9Ei-8QZCN5o| zZ&4nrVAM^$Y86|;cqgRtaZSS_a*V*bQ8KG5b-mhP)-XZ>ukDe3VAxq^ zNyA6DPL(zEhonCd^vc`Kb6~e$aTKtk;)aG*DZpJ44(!7UK`s^3_B|exb8l(*shrqd zx60*py?9>^f2!d&?r_F-ZG&KUg|g+)YI~&^ir7$LXt)O!mf=B3^QRp88 zPq<$=7hB8hQHcZ1)Uf4vNeLOYn_P}d++~KkVo_N%t44mi!g97EqsaVSw2FFpRcB<` z_Bs`N(`*PF@%P*9c9ybkxTR2FXrD4B5HddV6V1sRKTEklPr)YLoL+M_RYB9<&PpN> zEtn@sh@sw*tF~r{% z|3>_WoaP&J{5<~%Z}2JKU5s&zie>kpUP{pH{91W=`vIU{y&6ntrmmJw<%jpVB8;%v_BZ(cZ z5W?r|W1Znsa=FEmsO-P}cU)XcroP7q`4*v!l2H1mC!3hw zpSm4`vSUG#(lU`mI1wSNMEH3|A+CfH;5EQ=pP^&t@gZjTjxnH1^y&l- zB8CwX8s(fZ+Ktj`gjQp?&Yn+j!eKT=X$ly7^?6fxaeS;eo2F{1M#tn-?-f#-9AKi4YV+K%UMcr(B&=gCBE`F z-=m4-ToXCbLAZ&llwU%j-tr-GzL-xnu}r{(Jt5iNlx#->us_}d`w5O@loS=rsl0~< z$WK1yIeV$mb0j{6Ib7jeA%UAd@eId-6#bjzNSdwFRMfj<{hl-L9Q#(NyqjEOjdz$& z8Nni{SGk_dIT?jsW||v?HELQaS4N@cN1=w_;rApVGxiVoqr`=BAPQHYzU1;Q`Dqn} zSCVfJ_~ieM5POsVMV!z7Ft&nm{@Po dF7K`;f#CE(4HgqOaC;@+<4gWe^dy8o{~wj0K>Gjy diff --git a/Template/target/classes/com/sci/dao/DBPrice$1.class b/Template/target/classes/com/sci/dao/DBPrice$1.class deleted file mode 100644 index 0e06bcbe4f62de5efc40a947b7732a8c648dd8aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmaJ<+fEZf82+{`-F6wI7Lb!7%F4k5D++i3MS)@(OG{FM7u+~(Cv;%h#oaC3n&<l@CdDxZ*g8qt2D9WfmunvUrOqIyh6iDqItMl{!EJ+640`IO>q z_SY59#{QP#M#MkEKo-5|M;`_-hH=6PYHyBk9*?m~SilCVgqwH{o3MsM1cV`8;uYa* zyun+-cX*Evgh||?_S4ZNjNmTq6EyG9oJH?5oh;T*S;|T~ZJ~JgqZkWVBuwD}txGhG K=;CRU%lrXf7vf?7 diff --git a/Template/target/classes/com/sci/dao/DBPrice.class b/Template/target/classes/com/sci/dao/DBPrice.class deleted file mode 100644 index df23d8b013e137edb6a8a36a1c7963f18f670ad7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8348 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 Bng9R* diff --git a/Template/target/classes/com/sci/dao/DBRegion.class b/Template/target/classes/com/sci/dao/DBRegion.class deleted file mode 100644 index 29aae7cc3cd827061a1307c75e0d43c9a744125a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3521 zcmb7`-Fp+q6~^CLOI}M_JC4ByK_G@e@P~we8d@Z9!Czn_*~D@bN)zI>yhsbOWL7H& z^4&IR^Z9ph3tW&m7ok^N^gn8!eDs~!m9#QWpQkswn%OgF&iT!I&gfsi{O}`y349xc zhAtf;17UOv^xrYJ%v8m!mQqV=cdVi-(0#$K+U}%4*T`rgf*wS4L=D7X2<$D^Hd6JX zomw|*shO$iTJ^SF5_l;;o6pZLExtQ$l z>^Bg{0fE6?x8ahaV=>4#8kX}wAT^S0L&>|2T`gsH?s!j{rqlxF@(K>=IBeim3^TmW zO#+qzp^9B6;Q?l#wrIF^C6(nIoebfqf!E}jgo~A0-O_PfU{5=em9kTN&s?im$~1~& z7%?!4F@auleLdgU+;qs;S{K+KOrW(aGg{D*=x{lEzi4f`JQ+{W!ygLf{9xO~hRxPq$$v_^SVR~)lir=ST?;Lr=I4188@77ScN zmLjN|TZA(fjLP554}df};?l7w@Nzr0`KoJ`EGLQ_t{Zp*%K|;bRWK_JI%e6<$FPDo zbrcM|B^9+plYz)s?xeV3yR96L%C&zs@U~poJ z%m2jL#VGqmNRco=a!H%^e)xa{%){17OU{WC*`;#HJY}c82 zYcH=8dhullr|xw+fqlQxr35tVeyf&LX|xKF4tn!0dFRYcwV{rW1o}Fgg+L^4m)KSt z4x=1z7FnyATxiACQ5cy?dhc;mW1J_$Jpr{h5lT6zUZ@c7j&rvY=Q_`^OndibY_o2# zU=HrU6A&fi6!QWHMt;N9XhBMEm+<9>Xuj5Piq@PhkFa-U$~&2p5+ROIV;b*4pd0M7 z>gjNl;z;lv9{UdBF@I>N`$j+nE`J-I0UFriNU*;Q(~66Q#&?Kwb5EdeqgNn1KCovS zgBrGRP#`z{9Fg&D93j$2axlQb>jDoESxh9K;zZ(E_6d^XPw~5__`P^UUlHu%O~3}v zwtSjzF!1wivaj(e-(4!Yqr94dURw9let8KCQrL z{NjO;`nckQk-t90Uzm_YG%FDeD+m{5`W}*8kWxrdl2c7kdK+fWVBnjo&%tOyHCM|AATEpqEoEVZ5{NMEuM!Gv5 zj(3w^JpAk-4x~dq>6-$?DalHq9r_;cJmLxU5nq}pFXJk&r(;C&7H+mQmgaZxUxub& zB{(`sq^EEkXJ|9Ql?mFP=ZXnl7-zAHbGXe5{vL5k#FH$sKFlk`AzBP7?a6A{Y9Zdj zXZV~vG_LqN{=s*M`uP-JFgl5S24t8ari*9n($fJ^zL_MPdGg7@z;) z(F$HiU;5OixJNfVuL=sxtJ%e*M?6X3rUs96@;ODg4fc_TI80SO#~_Ei_atRvkB24Y z5Gn6(%Gra=vX+b=GlLjKmmt?Oq>|xVqofvEe9y76fJ>a6qU8)LcaDEmuX4=-S547& ziN6+jGS~Pki#M^zJNUX{JHhITv2JBuck%mP#kNc4)ndEaVtdPHD~V1?q6v6nl| z`vRN;DsJ%>}w@e(A(J9!F98f>%ISz>j`S^7=>{O(~9d7 zmRnps-L5dM0vX*P*PG<}HhbhPHjh=VERd(g6|2a@q=wh<4%ShkdYih9Q@K)^A$2ky o<$Qp0xkb6`HwlfaJq5QYPxzGC5_X~N&%UVIHs!B*UK+mnFCJ6rPXGV_ diff --git a/Template/target/classes/com/sci/dao/DBReservation$1.class b/Template/target/classes/com/sci/dao/DBReservation$1.class deleted file mode 100644 index 14c4217db18f65a3057040165bf41ee1489fef87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1086 zcmaJ<+fLL#82-AuY&1T>&SjB7R)@jR4yIwCX<6f*wY>O51j66r zq4ZpHN`q-u_ho3;OMKTPLz8lw&D>_3JF#BKQl%#tI+4@RmVe&h4#oaY8LG1`hEwR) zpnHBzy2>LtK2gwdMnnG=-{Y3U-A$|PRU3AFMGB{u_kGV-nR*%eRHpWazTor{t99-w zeSqPt(lbR71Wj>}VJH&IUKmxTEYCAsP-40elpBttB$MHylDb-gR{SH6F@|w<-Pw%Y za(9X0vbswZ<+f0h8QzPY zVvPbWc{QPON>`K{I~&w0-*8CjDtb0|);J9T@k6nr8ghG^e%2v3s$Rpl#fpqP{`k9- zDmewtySC#6(%meHunZ^v^ zERhP5bOJtngLd%4_yYa2`Z~ViWUBHJsYem*A=(zxexm7^o+GNqbeL!+rXxgiE!Lxo zx0p{T-eP}6@oemGDQ-mk6AWb0jUJpvFGes*I7aQw5YFNOmI?ECj4I(Op1~%pVHW{m zh!=QC_zJJ_hVU)k;XPpzH>v$}^aw+^Mdt*q+q9<9{ZuE5(lJ|EX~%68?@knB4)cU5 P+@*bimJvNX9deo9mX7LD diff --git a/Template/target/classes/com/sci/dao/DBReservation.class b/Template/target/classes/com/sci/dao/DBReservation.class deleted file mode 100644 index 9cfbc0b965db8153a9191aa11e151b73e3389c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8505 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 MsTEH0Aux7H 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 O_ItF9=;7&*%lrY)L*`BZ diff --git a/Template/target/classes/com/sci/dao/DBRoomType.class b/Template/target/classes/com/sci/dao/DBRoomType.class deleted file mode 100644 index d64a27b56d4662e66f17fcadcdae4e8c79be2e9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8036 zcmbVRdtg)L75{xVNpG885NlfrA_7(^r6pAqq(vqzEfi_1O+oRUrk6I7CNW8Q$mU~X zKIb-_+Z@BkL`B`Eh^`u6I3H{}hlJ2@4NS=NuaU%M{;kzd(QdJ z_dCCHzH`4k@#(z}0ysiU@3cU$tL3QBQE6a*j2Ecbt5t!rJ~P#v2&c?MIM_58j`W%dftj=_u~_Smn~7vNnKGjx z(;u?M{CVop@ue^)Fv(7i5hmSQ3f)G^7xL6|I1GkUvRYbaq7u;T~K z#5#eatCdq$fSM!0WU_HoZYp)+F%<{vs4{Q}4i%^#g&+33?v;tyfWQ%-b9w@h;;hw} zuA|1l4AcsYRSX+Ug(Lo@gjK+u44-W(cD3o4DNt3wt>Y4AZ#YCeN>Go(bR2GA7Fmq( z4)PWc9pI}Dqq(ZUns6%A-yV!tQL2h;t#ZOx)yd!n$v^?^lFViD7plPpN365*b~l-Us+AfDwmfi2eqd=~9vEZVR{$FXvi zO9c)p0JV&rz>(Pzw~Z8J+;PEFKUXss9R@maoWQ=>t}PEn2KVsIDm3(MBDxF&&`r?H zvj&3^fuJ@02uawoHlDERNMlx7*yaj*>F|ibTu!VMCsoyJjt#_viC|AeW$lRuR^TLN zVV}yvM0bBMDqwyAuZHaw&e#mY6&|M;I91MH9N{|Uf&8>9-1l(!}aK%^Yfsq`B6>I+;_& zshH)YT-bU8U&dEhtRmr6B=8sE<*2eJ!%I2oxdzU|`ONqpGquJv$-MQW4Qf_CWHE2= zqoXFk*RVmy*9}~N3k%l{Sp-;8!}NH*9XVC-n`4m(dkSv+qfdgVxY)oYxRh*2no?V! zs~`#iCH0weI6L_8)_9qLZ{k}lK5P2T1cMx?K3M@aLiHKW)Pex!&r^=eWgl>bz@mc7 z$koelan6$cfZy@`N_cu8pXW&P;p5}wSy@A2Fs>&wQcDx;YRarA? zjnkLwxFN@6%i53`m%J#!P1vI2W&^k2)|_@Uu#P<#dk~kI;C5YMQ8^s*AIFU?#oRK3 z15EtQ_=$m^%JlVesqL(q!9LTA+p$&09R{}HPG{a+RVG@pSxc9H=BO&L z79-z-!d$XC>wq`|&QMeKh7ZaRMum~mtPrp62F$MTyQlLrzYF0+?q?&bNtfrRBn`2pHhlvuuI3Y2A-2N z%wu%c>?{iGlm@~%@H~Ux8Th?aEKacC^aMkz=+#2Yg4z3BVSgQ#zMi!@*rc&-}az8)gR_|IX=^1=C;9&vVk#EP3x={RbZ+e zpy8~yN|=9mfHW;8lh zp_5Rnu5?Nv9oe{Y#a>n+>s^6Mm^R8v&XT9HP~d<9$;o1owE9lAG`YVv_qR8sd-i~@_NThykv6l*C2o)aVm z_`D3C^4TlxSmsCA9Ayv+tIy5@PT_9tXoVH)_gJQrVYgBfhROVNDeQ6G9=mK|c`sS64i4H_R?4yhZf{1i>Z$h;)!sU; z=EunPQ86W>$ckv0W>pE?UZGpRuh){>;Ga=J14n9j2y=(fID{|Fyp^sjQ}aR2fg|}@$1vy1YRd_@&{ozIhFZDAUVHRKGnr*XUsfi2?Q(JDNIWoewCbRPU%Iwvcg zOGc}c#%W4n#mEY21U2dV?2$!s7pr_Xm09g`>GVq->>OF=KCD`CHwMb0Lx|_jIfRrN z9m1M4&Q^9V$dz~q)eXfXoAwpEY(gya6}z3=G|q8LpBnbGRU&QeHT1rcG`=b!gKL8> zwtRAt&+YT1aghdJQ5xUSa6+w*GklvI)qSMlcLW-WYj>c8Wc~rOxp->_f0gssH3C~u z+TgD9xrcCV-S+lvxUqH!KOVwu_u(!=F|-wKlxVxOSFlNYO?y*&i#c>wL@>t(YU)c;Cqbx-OoSlo#v;yxTJ9^`cgkHB`KT|9?2@d7%;OE_M?J<0S4;isTw0rRpK4#&p*KWrr_!LE)sS>+cCUr*q zZ6S!Z#+kgrCETo!tcrHU8b1`lndxlcZplk?M zVljp`R-)1|J=n*&L=C1tS^tU(a4mS$3`wMHZYYe0-G?6>0PgYnal-k=2(NeW&?9E z7kw!SdKpW`rIfgs5|^Qo=P)g}Tme(Vu$8bNDB|)-hPYVd5SMTJWnw>@bS)C1$qFK$ zT)qX#P7Y*HvN$A%9H6o|v{PY4W96d4#%LwELvAB3+C_(hlk6GN*g@*}+{Eh%*%a*T zAXZPa7Q1(#Mn3+HglckwM-EiVf#>Cb(NN^`_=?CXpJ)3POlWZ1F#lHYfZ|43wPmfY z+sfFCCBNnn#Q6kdF|TfPt(+0(l+vuBYZk%5R~@^*qPk z%(LVhcuIT|qC8!ZJrlE>I;{#^Hzg`mRgifS&wv{jm12J)p&=^93!loPhyvWDIJp=^ zZw@>v1ARK4(UFDrI27eQa4;|a09q5%^<$Ls`$Kk50xyaQHs(#7N7kV;1a~j)cI?_Z z>MXqL2=@ybEU4>tU>e6?mbgyhmbU{H{P~InGjaEMB+PEYJl-L*g));`f_w)tF6ACp zOXLp6Q6$(V&b$aqG8oTh)d6nf=vGQ@W4C!1_rM|Q+(WIclzo8G_uyDol1|)lBm|&<<3IYA@JB7tTP-Q#?!0t zEFqF_;7%LQ6Ky>E_r$Y?Rqc46YV; zALi(z#E2D_=TAO7!3y~#OUF)XK1%s#sj-v)2|Yy)KTZDb;vW#tWw`6ZScRUO78cql z2eMG^&!F6Il?cwZG9Tq5Y?R4bayK7kdvs6MIw))60LD`j6UBkNN*34iigCsN2S7|% A(*OVf diff --git a/Template/target/classes/com/sci/models/Booking.class b/Template/target/classes/com/sci/models/Booking.class deleted file mode 100644 index 88435660c8e36f360b77682e3e47a28f73ee8171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4656 zcmcInTX!2*756t_JesfLyIj11rj3+M1r`mtr#wx(H4fv(|^c@rNKIMIqghd5Pt%NtHL z$&Pr^!YA+)L%QI4u762st;R9I-UxCvyss55N~MbyF5#0@vUheIZ$n_bJ^4Wz4`w#l zb|Q{RIy#n7O>;4hX=Z9H(`XpA!>rula);qYRS%S`W%yG}G6)iu*49aCIfn*j0 z#E1-I!NQ`donO&D%gR4#VoBhbN|{^9Ejv}$F1s(;>t&|2mxj1pb*eRX=au;xn&KWk z(`;4W_WV`5Tz3o}HTfqhkY1{LzPs(Lx;2*uCOxm>HyXQNh4Er;M;fd7j#qMW^BYY3 zsSv?*rCi_kD2#gcHXS)KwYd1~{KDMY!jso=mg zN5Kfu2}1M;VB0FX)wco<1uD(TO-P;o{b4iJLFi9(!Vif{8WWZMlRh|btZ~KPQl9~t z&!K$-fsQF*CpW2}>WDLV4GC5~O4K;-Y-TNOF}f8%pJILxw79YC3xw^tNi`tt%${Z6 zF5N8JJ3&T_=a%M+JQiY}M}sq=UiP_nr{A%mz{|u?%OP{9v3n1x_D!A-nSA<$wSOx$ zr&;U|0_-pC?f;AE2WW%ja;07^IhS2I@~q&joRt$Xd^pW=#`$s-q(jcON$=R*JnNv7ojC#%9q=V-V!*V#6>eVU->>VCW zn%k7VCOI5u);_Z|zcS13e1wx<;M0iV6qd0<`U*!+1gredn-bU0bA6Pnt9)PM`m;5B zj!RyD0%14bf#CBL@D_AX@C6EZ?>Q(~qky*`KCi2NZM9#9>ve)l4mRN61$60cH?Ls} zu6*=T%F7L(H>j86TkvgU{{Zn@W#}fKaz7AM=F`#uY{TP9$jb|#oyumX@<6CEFF7H~ z$xh`=s4{OoA<9QOl?OwWc{yTkI^FK;RDLW(`8wl{pu)X(a4Ya2PfmpVSax(5;&%$s z%3Pna(ytLg=44iNV+d5k?U)a0NB59G4StwE$p^KgTTY-J?$412wWB*!;5NRes z9cu%f$(sb7$;Z>C1jPf8nU1%CM)C=QM)JvYLV}V3D3MOKfyVOP1dZjbbhiXq0fp~X4!B5$FEENU_L4Z>1ZH{%XZMBGkHUa*a=E0o;Dhy zk$g;vVoeeILu-xYO(kM$1X`vNoenSLl6Er)rVHQU-|sRAgDHNERD`L21+O!}EO1&&D!+#d zvhaMRp4RlBq^C4}W)Cx|IZcm9{=BAn9%oX|lHNnH^P`~0xgJS{pkzY+3J!c|eMR5F zbDcBuSjZPeD!)m`<)nOr?-<{iES1&QBs;bXGdsSEWHue$#gS~<*u{YvdR*DPq;;Ez zA`^ULXiwcVtysG{VoHQHuvM$K9yn6+=ws~-{fgCj{_wE`H(QZT#|oyQ{~B diff --git a/Template/target/classes/com/sci/models/Employee.class b/Template/target/classes/com/sci/models/Employee.class deleted file mode 100644 index 6575cb54beedb77c7ffad3588a21e1ff85547ed7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9585 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 diff --git a/Template/target/classes/com/sci/models/Guest.class b/Template/target/classes/com/sci/models/Guest.class deleted file mode 100644 index 65d28a7f5ff2b4387e567c4ad1f9ef3900938373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5167 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 I7x?9W0hoy+5dZ)H diff --git a/Template/target/classes/com/sci/models/JobHistory.class b/Template/target/classes/com/sci/models/JobHistory.class deleted file mode 100644 index 1373ed6c2a5d768169e11681d95714893ea5feda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4241 zcma)9YjYb{8GcsY)ymS!7qxMs#0{?N5L=cjE}<7W33Y6xRVq8db`5R;cP%gWCX&|C zu0mZ3<^lW5;_-sgGG zd)>4C=SP3|Gk|mW`5nN4rW^ehF#66@Zq6~u;*GYq5! zPPZC6VpDL34UAw^fp*>57H4EaXRLWmyRqw2A2RT;@YUF{_IXC#YIx7_oj^l)a zMAdARZnn&tf@9Mm8&|ilTUBp<=0yQMY2Xyb6{L49uM`UG*z`<@(he<&)A)pr2?LLc z6GpnhOQQCZ-7bHlQaQf2*K7-E^yJxz4i!7>wf$5pDj?XDL-i<;sF1761 zj@3-EF`hK=6rN^S=k12=UG!NS3Ct@P>-NNSw<9hH(ggz-@p+QW{e9L|!CW}~fmh-5 z_8dDeOe_c!m-?9P!i5Uc%S>R2Da}uGn(jgZmzlTxM9^MbKgT5GC;Zmp>I%z~p9psl zH!BL18R5l>fvbLoJx3lSQu(BgRc6{xn(Y+Utfp<&>{re08k0KW`pXTg>Do@?g);q7 zct(2BY0#;Lw_(;=miE#U|NYnLzpEc{&{kUw&#qe=wrkVCLZjh$rbnvF4Eu4uQrH*9 zT+eD$twMQ+sXrN^SafQwdV@-}Vb`BOx$JVN8w!1L7hWfSy5bcN+1-goJ01WpR4n zEJ1Vewc~huR+AJF)Ks^%SzKS!vo-32!u><564tvp~a0rscM39w|MJr>A=TOHPG6NlXRvLi$v2 z#%5Hx#{9IXqcr8E}O^2kVW@AK>iTjEur;OzZ}YSF3hJFe|n&szuc zypdvjJ1O`A;y8<W$o0w|fj5{LgEh>o0LV%+)5JFLM2oi!XD@t2$cw6)Jf@2g($m z0qd(&@RGh)u|);1<$Dz`6VI42&R>(q7x+~8)N;Rv@*4^ zFwNh7vffV~k0kR3jUcD`$)_X9yk{fGL;d85NHRYHBFLG3@?<3WYuF9QMP?`_GL)M= zgz{TT;fxLW>@kT5GA6Pq>#krAc9b3cLG8#EQE)xlPU=DJ$Zk?_1GOlBh91<8Y(53` z==@|J)Q;>`4nIyvf0Vy4hiPW_gW24#ps9Ce|BBczp$*)brDi#wJHj!4Ng=zE=TA|c z`v+24^?i)qhB22_kMKwvF0N9H!tSuGn6fzA|lg3c5ZSzUk<0Z7j# zLZF%AAVD+5WOh)1k^yKin+$>S#S}sLqLEDrkP(0=wL$6~hBgoyHQ6|C$dEgY^8p%g zn2=-m8}>PVF@DPa4mY_sfE<2}CM6Zm;vKk@G%VwX@F>Mu)*EP1(uuKfi&6sb;xfKY zX%N4_GkAqk5=Tt=0i_iF#J9q$lni`>zAYf5C;o>a9kCBFrsFjKC6o_wLW+YQFVZo7 z{|DXmG@oK>G*Lzo`~8MS>%^`xViCI{KAEK%_eEyP}Yr4Enp2;w6Wukp@3LLAHlU4Bd$$5uJOt|^`*#Dd-V5&HBNPE8 zaSx@-iq?_HH1Ts^R-Bz1qXbm`h;y6o;fYM~2jRC|Nz(kH@ z|IWze525Gg4w1@b)k6&Bvf3f;c~fS5yB8(5GZYiSO+tJA=Yp823IE$*z?a1PSoJ0G uM%8%sn_R`%b>f@jEO)-o=iBs+-yA>S+k&&i#g8rg1V6>kD85t0yZ;AO=0}$R diff --git a/Template/target/classes/com/sci/models/JobHistoryCompositeKey.class b/Template/target/classes/com/sci/models/JobHistoryCompositeKey.class deleted file mode 100644 index cd0f0cfb13aa31a703d64135932f97e460e24b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1447 zcma)6+fEZv6kVqUrY(cLa8vLCXkl8AQG+)MXatR5)x>HOAE)J{9x|P&GgA}%5kA1g zXHBFen)m_!i9cc7XJ&e_G=_)H*>h&^wbowyoc{Xr{U?AmJd7iPsDdFC!x&-6R_(g( zR)t=-_qplndv@iia6Q{O+_vit+Z7&v#t#`1yxuVFL(X^i8ODnT#s@<;4XdW_S{|=) zryy}-D&j~m#9hyDydA^i49OtZeQ)Y=qmY1#F$L#TB#~lBb&+0H4tUjL7}*e(@U|GD zTCS`h!!X@VDtV5uYLA-2+~-aLX^h1%$*?e3x7Jm?DU+vFoW}*CFd7YRQ76~6o>l_v zLhjU7NJrWum{oBRml(!s+*LFpcUXi48eOy7a|KW;Zfk9oF>sUz*L~u<- z7K`+O*h^iL({1vO%`s>UEGPN%DweUr5cBMyLxzcVzCXgSZw0IL#kX46dWk#2FvUls zV$u{-uK!x*jw@{I&F&6??~w`HwnYLhuWXo2K791)^U-fGf*IPT<0OYKEdHWduW;ve z0F)`(Rl_VB1Wv%==8*SJxC~3hGabeP@w)$-Kh-$!#8w^g`k!u^Hk#C$1=|Najy4>TAlc9OD#V z!WT9dq;`ZQLt#`d|B(nvLZ?FLuE_-5uW)prPjrF8;#WQxp#4Dl?Fq&+6D>^TTbOC# ca%Mh=ugZ9d;udoKb5MKmwayT?e7_(31%Lq~qW}N^ diff --git a/Template/target/classes/com/sci/models/Price.class b/Template/target/classes/com/sci/models/Price.class deleted file mode 100644 index 79eb7c5d75b1fd3b60810851d877fbde64850f68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3610 zcma)8+jARN8UG!5SG$(ivE#;Wq@=-d9cs&VRYJH_N*-IcNX% zpTGPKz$N^A7#R#1&@AZ43Y=>Aty0i%OD%ubX$Ga+9k<~KI3_c zU259iUa1~-TyL);y_gn;rHgFf*n#g!(TD|0ij4Oh=i#n>AY~^kjA2|rZ!6a?B)rwU z(Ajf3l^k&s7GA(90kdIy)pxsgQ($r~f!)}7;55R@{96({W#L7fCV0;Y3qDOiSozr9l2N_y?)8UG|mf*((7iT0H=<*j!Pg7UbZkR4Tfn@kE$T0 zU$*dyl;$YCrwWln0rM7$SYXWicCf#~atjR2&DRVp3B1^kOS!+^b(_0RCx=CpEWC!V zFwo1c=Z04!t1S~>6*w8CKG*Nn6^Z|vg|Fiq#M|w*H3&t_>{H>sF#AgUehO5c4wN8y2dvUS{YkjI374 zz#AOTs4lKwsyiLmZn_`XJ5APYJc!sWrxUoocei$fuHIzdR(vlAZ7K8)as!tRmOal8?U1H{z*H3C`=z#Y7KD!1a7wjZCS6ETtoY4t%cD~B>=pwV z+1%Jz+g`uBcD=gEir1^l^^JAT|GjGU){W)+oci0FwUsLIs^Md+uIH$Ibw{N#vFbPM z=9bO$7+EaT!hJUiEp2yl_0iz?fF9c@y$)}&jl`+BWDiNl)5ubjiTBM^ayok3W}e2v zKfd+jmNF+l+?VG347dFr0NeQTc-3$(MSYRb0%OZz!4iMe4Ji|RZbV_!A>Pr!h7`+?VdyMeX|HE=;HM*S+cgF#XLw9>J+}vh$`NsCW z&DtH7{!B_dwcVAb9RzZvM{-XJ%&ex(^orkV`+*xex156t&hrp0K;YZFqY9|uP13ix zlQUT5KkqH_>*UACZSZ}Y{C5IulI4w*uB=nZyD43Hhe}>jv2uj(*yUZEAj3<6&n>Q0 z;#=^o7yk_LM-my_<5Ri?PUE|LS_**sc#E8n7X+V!#>SxWnN(xmBPqtYLF03&#=Id@ zj7JBJr&Eo;hwsP6WhR-CNfsBLLi~wTGU?ICdP*VUq-8-=mjr&0?#FmuKdPYuKTP+N zdtN`P_X68^J1wu#=k=q;gu4%?lppaSb01+F`Bv-Ko%vUVkE+u8BTKAUEaFFb~^bcngPrTko3lZw0+YfRZnrJ5=0 zk&0c6jLf{=Q(Y)$BUScD#op5DYGP@nhJ^x(>6u5$r>t&qc~DcrBY@!T);(! z;T;~lJRwH0oW#}gm}4kZOOXTC(aGjwT3M5>!!98Kw;)}Iya}w7NUz^Z-+)2|{Tz3#RwyJ-raRneq-igZ4^0HEx9QEKozb2%zJq-Y-R{sj7#@z{F4iG>Qjf9 nF%EH_HoX+t^U}T&+1I2^-)9a{?QgYqBG&TpkliQt3?BRir&$cK diff --git a/Template/target/classes/com/sci/models/Region.class b/Template/target/classes/com/sci/models/Region.class deleted file mode 100644 index 2a796f894d7047bc739c31cc9f0d85bf0718265f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2588 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 diff --git a/Template/target/classes/com/sci/models/ReservationCompositeKey.class b/Template/target/classes/com/sci/models/ReservationCompositeKey.class deleted file mode 100644 index 5624a30f565b1f222f0a2950cf024dde9d318e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1718 zcma)63s2Kf7(I6kIz}f@3Mit258TS2J`f+{p$zdwGyz>=VobX228&yZZAYTNN)s80 zCjJ0_l<~W5*`q57OV<17_nq&2=bqcY|9<@eu!QG>NT5$bQbs=p80IQ=U3V*{Ubm~f z=IT4#<<6nunYLB5>j$=Ldi)jt%8)7B_Gi=Dd)=s)xx=7r?;D4PUNfvceb;m7O+i4X zWDE-2v}4=#AXaP-$&is@kgJBrgBrZbFdTrmUuya$y(pwHj1dW=G8Bw4jI>LK}$_>$}`Bjhgw*DAzb?L8hW*i90SC>)ne@LU~EO6>ZD)49hDSwFd7e zgNmQTkSvlLg*{A*2PS$O04dvcg>Vc)Bj9i|>3uR?hV1s)yj<}4M9*eC?x0J=(e2cq zIMKRWU?t3K>6@dp`Bi8t#le0js4nBu%~7nNlgDC{ALB`w{D|612%g&f5!er!CD7)b_OmB~h>*AFNeCj^ z-H6AL&Wa-h6*xs~(o-nW#V37M9C085N5Rt&=L2z05}v9ZJXMMkmSg3o+a4x=Bv|2^rQcBBA7et9Y~q5} m#3dS(*(WB0E)LLqpY|B5=Xa51^=1nO8 diff --git a/Template/target/classes/com/sci/models/Room.class b/Template/target/classes/com/sci/models/Room.class deleted file mode 100644 index 9bcaa3d27a7d531d4cae01dae07d314a0190e4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5814 zcmcgw>vtPh5&x|$X(f4OD|Q~;G-+dENG!`yngjxJ66z#&<6y_Zb`laE=~~{{N@U5^ zBdrVNRh|Xf@`eKC-9QPHKJ0LS(?h?MbNI|B_{3kq7ee^Wy({bCb>qX~5XZZ7XMQtx z?#$eK$NQIm|NeCVhp-$)0Bt6M7D5Oc=*|`w(&cO}y-=KW^X2qpvAAF$R^sbSbz#OW z8R#0j>Rflyd8aU!o~o2`g}Fg760r~!3ko~EwCIk`3cKBcCG2o{zWAtH5>|(WPGJRS zoXWf~Hd*KrhB@Qpv&F)a@HSi6g00kBEakFp*+4>1Tdm~s>9Jh7q9(n^f-NYk~@WVHbJ~#OK_KEV#DP z&3pSARJ^suup7N5-frO?GC`sq3~iGxyE372W3Pq2M$0-bGH1Vqlt`kSb4rCqxce-m zg=>;~oY4{90~QVlFQ#}ZK*By`;hlJwHgML9QCH33dXxnEZVT@bXs4{NDNwsHXyFKs zGEnnQdHw{GZlG;%->8ZA8rW7}n_m3!YA!$PmSQ-DAq&TGf{Q(pE95H2l-BtOh8YnF z;of@192NLO7EWQ5aA$GREzBAiXv~He+O^U4CLE05eN0bkmsr&?JQ~3`7oXat>x#n( zhAp*AYKnvRGhQ-K;o^8oVRbDjht7#Z=Ue=!RmGaD*Zuea!$?0GqDbqP3>bZ~%nw=k zu;eOIDe5&zwG5ef*uZ8L%v>=&<(6_zKKHmYlV`9KtXmGxyQMN~_uS}7nmWz3o?szY zoI>TildrlV?p660Fknws3zgi0dp=jr(ZEolP^{>(H?URt{aAWYjFl^HA?v0`X9o>z z_Ys^Z=Bo<@3WEh_fsV9KPE3qnK67sT`0ylyrAE^i&oZImsZ$ddgc&?OG<}LuK0Y*d zV&cq2qNZ|l1*cLiQQynwYULdnYdK0(kq#c?j5~eYnJBo^#c`*wM0x0nTglG*<3>az zB_N)U4PBxa_xYGRUCb3$R~X9`80CrtyiLML$E%C8j$#0%wO*+SN z1y>&x(>j-3W5p~}=`f+3%3}sA^En=0TUx^*yM${4D`5yzs_rGHLYB`Xl=Mj``#3!E^VOH#Eef>ob0u6XVJ?< z=yG5)s))*wu}`iM{}X+f7ehtPPg_mY zd=IE}Q)UhwxGZP8|LJ=W}fOc*eVFr+(F>6^@utwd~B%wL^Eq z@;b{_OC?@OOFVRFZcZGHO%4y8ynJDDbb1&)Y*cphXugaHw!^^;>8#v&nB^~_68E7ARmJx>iu2fXyhMMdi?d z_u^xGS{i^S@Ntd|={WgpRW@6dcls)`DfLl~wJP85tIXcjM>*cA+~cdvCf7$f(W<=L zSDCFa1Kqmj?pEbJKFT_$pWxhVl6{P9YcAk&UC zfCe&Af(9}%J1U@<2a4LU2GIUYJ3;$1mfbEO%L9>W03FQ42|AeRu;T*i@IZ09qXBd{ z(@D_bOv3IIP{IRs+KCz{c+)q%H+Ar8+sNp_SMW4LyT!2Z43EVCdT|@ilGlbL{)w-W z3gRLB4PPS_!Z`kluagQRk7ay=l!+2v!Z%4ph<+B|A{E8A@f3fbMhq*shVPJS#~ zACr>B-@;EAmNs@M&*P`0g8XCuN&Jjd2p8FM{G3#nUBEbAAZ0R$2XKQ_1TSJ6enBcK zX*cH3afgf`({30{H4Nhp&DO_c-{DCVssU=4U^B~ug&SaXWGmMLo6X=l-bdi6MAoR( zwftqCV$@HuuDh<-Q;)5qUbpa82pVDf_#sBuFM}T-1BB-_B)x(Uwl)j;n%7s%tXE=&d^+=d ztM_-e@R8O#u-m885anNTL2~o`j_(NHsU($Emyt{@!%Pk=BbKy-%ZMlK&@vK9JG_kU zq-`!^&F!^W%`vI%tR4d?*0t_2Q>wj|`!%KdY59VZQVn!aQF0&4_ok;96To6l5t ztL|?^wn&_yxT%`s`?#-u&GBy-9QO7vL8AFG2d}tz6|emVECZ=v diff --git a/Template/target/classes/com/sci/models/RoomType.class b/Template/target/classes/com/sci/models/RoomType.class deleted file mode 100644 index a982a30496b2b33e364bb5fb7b350593e00b42d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4110 zcmb_f+jARN8UGzgtJP(Fi4!}OlO`@UsV&t5K4QQX1082qc}BVYD5A!y#P7a*c-3@qn6!F?n2e&v5D;v+bI;B^69) zn8YCgMIJ`^NngI}nyo_Bblg&gpu-xDU|Jwm*RAsFUA-kRy%;)Z^X6@%?v|FWOYl(* zPa!9eZWwMYuxfg7DFpA?mBBF_SMjul6H@!+z(Zdl-7@59j#N9R;Te2JV2o;eF_M8f zGNd{PjTBhW@L4G^PJxR9rzPuI4U1T!KY=d#J=Iea_WT%@HLPHj$foWz*O?)K_~KGU zMS+3gui1FEIuy zb6$~fbx}YpNuw`m_=*g2%C&thGN;d}xJ*aA@R)X?W^_!wWxl1~Y%zS3jIj(NGyLzi@C~Ot^BLs5WUCTB1ja}0*sbI~rY*&}n%cRYCPP|!YOJ$C0 zSaqXN*<&1LBN*#;tGjQJnXvSI8j{}L+}yaab8V~4nAfW1@>Y%Qaj{%m->z)!R5q^= zQZpNt?shwbKkEmqUmjym2pRNO#+Ny0<|se$`G?P0P5_-M?vccKk$4RqeXo+SQpH zN(P$=w`nr4xhUrXvz8v|l*fl+%o%Rhp{da;>0JhzxZbRo3736uR4frRPEe?kS#*JR z8hkhq>Zhk9C1!?QWLN_?^P}*`xgfO&dwBc?9mGW1Zqw+nXk^e9dJ|alcKgc-k2&ad zc7P8U+VVi5juSZKqlWe}eO+`pJ5a;bSk2YzcQ*8P;Gwd$UD;q|iwdi|V>sQGE1>qR z$}WVD*A|A3NqS5wy&O(OkS@OsyzfviIial~&~P&J|C6%+ma0t6?sn?NB~wnCvF+gd zd0I}Q=%G;NY;k2%<|4Yx3nh8l+VeL;!y>A`*Y$eSkbOk>GgZ6OC^SvB8i$8b&<7){ z;Ngf-x{ltUjc5KBmSeHr?Q}TW?lQJi*O1m`w##c5Z@ju)*(vj@7~{+psPH~9i?5&DULk{5g-02?Wbm%Q=c}IjtDf39 zuCEb%-N4uJ4SW-EU;DSN;|5-nk8yJO>E=_XT!C-Fx03%8#2-9GH~Ez30mo72Q}Y4X zgTa-M*9ksHh1F5v6OqEa14IaCM}_Aig?US$d!r|hj|wkD2>UU*#j_h|1{M^lEGC`J zFF%0zBdHh$&L8r$%=n1Fc^Mc#g#spSN9j?YRF9u+fjiOmWS>-zUmOB0?9)~moGRaa zzs9AW_!IagYe~Q&+D~|r)peCSe&lRYycYT%i?^viOXNq(`QJfF++Y4XV!weBzrXx9 z#5Pv)2bl7fBxbIx@KH>x{sY-u;u9RY2W>T%IKXTVak8ioa$^@WvF4F@g?ng$W?R(SD@<(Xnb^1Du z-=f2^=k*mI!r@*VdAtvoRDxHnJLr;9*x&}8B{Y>CRzGbcznF8tD<4RcR zJEzbz>70;vXGk`5x5O1LR+m`zMPD$;c%FPD-ZI zXU!KCkHsu{LaCh6W1T7{Jyx>MVs0sQJUSgO`?drY$645KRIp0 xmk3QOxpS38;7_X`(~6%E7sI>WSMdZn?{WP;UF6611N@YWpK - - - - jdbc:oracle:thin:@localhost:1521:orcl - c##MHBakr - MohamedHedia123 - oracle.jdbc.driver.OracleDriver - org.hibernate.dialect.Oracle10gDialect - true - true - org.hibernate.cache.ehcache.EhCacheRegionFactory - - - true - - - - - - - - - - - - - - \ No newline at end of file From 3700c8692c90fc3708dbd718654d77951540133a Mon Sep 17 00:00:00 2001 From: MohammedRagab00 Date: Sun, 23 Mar 2025 12:13:30 +0200 Subject: [PATCH 2/4] fixed some issues with last commit --- Hibernate_CS308/.idea/dataSources.xml | 22 + Hibernate_CS308/.idea/misc.xml | 2 +- .../CS308Spring2022.iml | 22 +- Hibernate_CS308/CS308Spring2022.iml | 2 +- .../src/main/java/NormalizeAlgo.java | 302 +- .../src/main/java/com/sci/TesterApp.java | 62 +- .../src/main/java/com/sci/models/Car.java | 68 +- .../src/main/java/com/sci/models/Country.java | 86 +- .../main/java/com/sci/models/Department.java | 110 +- .../src/main/java/com/sci/models/Job.java | 88 +- .../main/java/com/sci/models/JobHistory.java | 98 +- .../sci/models/JobHistoryCompositeKey.java | 38 +- .../main/java/com/sci/models/Location.java | 100 +- .../src/main/java/com/sci/models/Person.java | 70 +- .../src/main/java/com/sci/models/Region.java | 72 +- .../src/main/resources/hibernate.cfg.xml | 11 +- .../target/classes/com/sci/TesterApp.class | Bin 2373 -> 2355 bytes .../classes/com/sci/criteria/Operator.class | Bin 1665 -> 1452 bytes .../classes/com/sci/dao/DBManagement$1.class | Bin 1280 -> 1083 bytes .../com/sci/dao/DBManagement$DBCountry.class | Bin 3535 -> 3535 bytes .../sci/dao/DBManagement$DBDepartment.class | Bin 3671 -> 3671 bytes .../com/sci/dao/DBManagement$DBEmployee.class | Bin 8981 -> 8462 bytes .../com/sci/dao/DBManagement$DBJob.class | Bin 3488 -> 3488 bytes .../sci/dao/DBManagement$DBJobHistory.class | Bin 3927 -> 3927 bytes .../com/sci/dao/DBManagement$DBLocation.class | Bin 3647 -> 3647 bytes .../com/sci/dao/DBManagement$DBRegion.class | Bin 3623 -> 3623 bytes .../target/classes/hibernate.cfg.xml | 11 +- PLSQL/Advanced/Les01.sql | 176 +- PLSQL/Advanced/Les02.sql | 212 +- PLSQL/Advanced/Les03.sql | 424 +-- PLSQL/Advanced/Les04.sql | 382 +- PLSQL/Advanced/Les10.sql | 94 +- PLSQL/Advanced/Scheduling.sql | 166 +- PLSQL/Advanced/Sec08.sql | 54 +- PLSQL/Fundamentals/Les02.sql | 70 +- PLSQL/Fundamentals/Les04.sql | 144 +- PLSQL/Fundamentals/Les05.sql | 98 +- PLSQL/Fundamentals/Les06.sql | 234 +- PLSQL/Fundamentals/Les07.sql | 212 +- PLSQL/Fundamentals/Les09.sql | 66 +- PLSQL/Fundamentals/Problems.sql | 672 ++-- PLSQL/Fundamentals/Rev.sql | 36 +- PLSQL/Fundamentals/Sec1.sql | 150 +- PLSQL/Fundamentals/Sec2.sql | 76 +- PLSQL/Fundamentals/Sec3.sql | 72 +- PLSQL/Fundamentals/Sec7.sql | 88 +- PLSQL/Fundamentals/hrSchema.sql | 2250 +++++------ .../Hatfield_Hotel_Table_and_Data_RD.sql | 3284 ++++++++--------- PLSQL/Hotel Task/PLSQL Task Ans.sql | 1218 +++--- Template/.gitignore | 38 + Template/.idea/.gitignore | 8 + .../inspectionProfiles/Project_Default.xml | 10 + Template/.idea/jpa.xml | 7 + Template/.idea/misc.xml | 12 + Template/.idea/sqldialects.xml | 6 + Template/.idea/uiDesigner.xml | 124 + Template/.idea/vcs.xml | 6 + Template/ERD.png | Bin 0 -> 157782 bytes Template/README.md | 17 + Template/Screenshot 2024-05-06 143010.png | Bin 0 -> 28609 bytes Template/pom.xml | 71 + Template/src/main/java/com/sci/TesterApp.java | 17 + .../java/com/sci/criteria/FilterQuery.java | 16 + .../main/java/com/sci/criteria/Operator.java | 6 + .../src/main/java/com/sci/dao/DBBooking.java | 214 ++ .../src/main/java/com/sci/dao/DBConfig.java | 17 + .../src/main/java/com/sci/dao/DBEmployee.java | 214 ++ .../src/main/java/com/sci/dao/DBGuest.java | 214 ++ .../main/java/com/sci/dao/DBJobHistory.java | 107 + .../src/main/java/com/sci/dao/DBPrice.java | 216 ++ .../src/main/java/com/sci/dao/DBRegion.java | 104 + .../main/java/com/sci/dao/DBReservation.java | 217 ++ .../src/main/java/com/sci/dao/DBRoom.java | 214 ++ .../src/main/java/com/sci/dao/DBRoomType.java | 214 ++ .../src/main/java/com/sci/models/Booking.java | 37 + .../main/java/com/sci/models/Employee.java | 66 + .../src/main/java/com/sci/models/Guest.java | 40 + .../main/java/com/sci/models/JobHistory.java | 35 + .../sci/models/JobHistoryCompositeKey.java | 19 + .../src/main/java/com/sci/models/Price.java | 33 + .../com/sci/models/PriceCompositeKey.java | 21 + .../src/main/java/com/sci/models/Region.java | 29 + .../main/java/com/sci/models/Reservation.java | 33 + .../sci/models/ReservationCompositeKey.java | 22 + .../src/main/java/com/sci/models/Room.java | 43 + .../main/java/com/sci/models/RoomType.java | 37 + Template/src/main/resources/hibernate.cfg.xml | 28 + Template/src/main/resources/logback.xml | 20 + hrSchema.sql | 2250 +++++------ 89 files changed, 9338 insertions(+), 6786 deletions(-) create mode 100644 Hibernate_CS308/.idea/dataSources.xml create mode 100644 Template/.gitignore create mode 100644 Template/.idea/.gitignore create mode 100644 Template/.idea/inspectionProfiles/Project_Default.xml create mode 100644 Template/.idea/jpa.xml create mode 100644 Template/.idea/misc.xml create mode 100644 Template/.idea/sqldialects.xml create mode 100644 Template/.idea/uiDesigner.xml create mode 100644 Template/.idea/vcs.xml create mode 100644 Template/ERD.png create mode 100644 Template/README.md create mode 100644 Template/Screenshot 2024-05-06 143010.png create mode 100644 Template/pom.xml create mode 100644 Template/src/main/java/com/sci/TesterApp.java create mode 100644 Template/src/main/java/com/sci/criteria/FilterQuery.java create mode 100644 Template/src/main/java/com/sci/criteria/Operator.java create mode 100644 Template/src/main/java/com/sci/dao/DBBooking.java create mode 100644 Template/src/main/java/com/sci/dao/DBConfig.java create mode 100644 Template/src/main/java/com/sci/dao/DBEmployee.java create mode 100644 Template/src/main/java/com/sci/dao/DBGuest.java create mode 100644 Template/src/main/java/com/sci/dao/DBJobHistory.java create mode 100644 Template/src/main/java/com/sci/dao/DBPrice.java create mode 100644 Template/src/main/java/com/sci/dao/DBRegion.java create mode 100644 Template/src/main/java/com/sci/dao/DBReservation.java create mode 100644 Template/src/main/java/com/sci/dao/DBRoom.java create mode 100644 Template/src/main/java/com/sci/dao/DBRoomType.java create mode 100644 Template/src/main/java/com/sci/models/Booking.java create mode 100644 Template/src/main/java/com/sci/models/Employee.java create mode 100644 Template/src/main/java/com/sci/models/Guest.java create mode 100644 Template/src/main/java/com/sci/models/JobHistory.java create mode 100644 Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java create mode 100644 Template/src/main/java/com/sci/models/Price.java create mode 100644 Template/src/main/java/com/sci/models/PriceCompositeKey.java create mode 100644 Template/src/main/java/com/sci/models/Region.java create mode 100644 Template/src/main/java/com/sci/models/Reservation.java create mode 100644 Template/src/main/java/com/sci/models/ReservationCompositeKey.java create mode 100644 Template/src/main/java/com/sci/models/Room.java create mode 100644 Template/src/main/java/com/sci/models/RoomType.java create mode 100644 Template/src/main/resources/hibernate.cfg.xml create mode 100644 Template/src/main/resources/logback.xml diff --git a/Hibernate_CS308/.idea/dataSources.xml b/Hibernate_CS308/.idea/dataSources.xml new file mode 100644 index 0000000..6cb171e --- /dev/null +++ b/Hibernate_CS308/.idea/dataSources.xml @@ -0,0 +1,22 @@ + + + + + oracle.19 + true + true + Hibernate + +C:/Users/MohammedRagab/Documents/SQL_Projects/308/PLSQL_CS308_2024/Hibernate_CS308/src/main/resources/hibernate.cfg.xml + false + oracle.jdbc.OracleDriver + jdbc:oracle:thin:@//localhost:1521/freepdb1 + + + + + + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/Hibernate_CS308/.idea/misc.xml b/Hibernate_CS308/.idea/misc.xml index 3be61e2..f24c79d 100644 --- a/Hibernate_CS308/.idea/misc.xml +++ b/Hibernate_CS308/.idea/misc.xml @@ -8,5 +8,5 @@ - + \ No newline at end of file diff --git a/Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml b/Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml index 2cc9fa5..6709504 100644 --- a/Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml +++ b/Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/Hibernate_CS308/CS308Spring2022.iml b/Hibernate_CS308/CS308Spring2022.iml index 2450ac9..7beefe8 100644 --- a/Hibernate_CS308/CS308Spring2022.iml +++ b/Hibernate_CS308/CS308Spring2022.iml @@ -4,7 +4,7 @@ - + diff --git a/Hibernate_CS308/src/main/java/NormalizeAlgo.java b/Hibernate_CS308/src/main/java/NormalizeAlgo.java index 60a9a2c..e5fa6d4 100644 --- a/Hibernate_CS308/src/main/java/NormalizeAlgo.java +++ b/Hibernate_CS308/src/main/java/NormalizeAlgo.java @@ -1,152 +1,152 @@ -/* A class involving Normalization Theoretic Algorithms. - * No need to review it but if it peeks your interest... - * Go right ahead. */ - -import java.util.*; - -public class NormalizeAlgo { - public static void main(String[] args) { - // Example sets of functional dependencies - Set F = new HashSet<>(); - Set E = new HashSet<>(); - - F.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("A")), - new HashSet<>(Collections.singletonList("C")))); - F.add(new FunctionalDependency(new HashSet<>(Arrays.asList("A", "C")), - new HashSet<>(Collections.singletonList("D")))); - F.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("E")), - new HashSet<>(Arrays.asList("A", "D")))); - F.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("E")), - new HashSet<>(Collections.singletonList("H")))); - E.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("A")), - new HashSet<>(Arrays.asList("C", "D")))); - E.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("E")), - new HashSet<>(Arrays.asList("A", "H")))); - - // Check if F covers E - boolean coversE = FunctionalDependencyCoverage.covers(F, E); - System.out.println("Does F cover E? " + coversE); - - // Check if E covers F - boolean coversF = FunctionalDependencyCoverage.covers(E, F); - System.out.println("Does E cover F? " + coversF); - - // Check if F and E are equivalent - boolean areEquivalent = coversE && coversF; - System.out.println("Are F and E equivalent? " + areEquivalent); - } -} - -class FunctionalDependency { - Set leftSide; - Set rightSide; - - public FunctionalDependency(Set leftSide, Set rightSide) { - this.leftSide = leftSide; - this.rightSide = rightSide; - } - - @Override - public String toString() { - return leftSide + " -> " + rightSide; - } -} - -class ClosureFinder { - Set closure(Set attributes, Set fds) { - Set closure = new HashSet<>(attributes); - boolean changed; - do { - changed = false; - for (FunctionalDependency fd : fds) { - if (closure.containsAll(fd.leftSide) && !closure.containsAll(fd.rightSide)) { - closure.addAll(fd.rightSide); - changed = true; - } - } - } while (changed); - System.out.println("Attributes: " + attributes + ", Closure: " + closure); - return closure; - } -} - -class KeyFinder { - Set findKey(Set attributes, Set fds) { - ClosureFinder closureFinder = new ClosureFinder(); - Set candidateKey = new HashSet<>(attributes); - for (String attr : attributes) { - Set temp = new HashSet<>(candidateKey); - temp.remove(attr); - if (closureFinder.closure(temp, fds).equals(attributes)) { - candidateKey.remove(attr); - } - } - return candidateKey; - } -} - -class MinimalCoverFinder { - Set findMinimalCover(Set fds) { - Set minimalCover = new HashSet<>(fds); - - // Step 1: Remove extraneous attributes from right side of each FD - for (FunctionalDependency fd : fds) { - Set rightSide = new HashSet<>(fd.rightSide); - for (String attr : rightSide) { - Set modifiedRightSide = new HashSet<>(rightSide); - modifiedRightSide.remove(attr); - Set temp = new HashSet<>(minimalCover); - temp.remove(fd); - temp.add(new FunctionalDependency(fd.leftSide, modifiedRightSide)); - if (new ClosureFinder().closure(fd.leftSide, temp).containsAll(fd.rightSide)) { - minimalCover.remove(fd); - minimalCover.add(new FunctionalDependency(fd.leftSide, modifiedRightSide)); - } - } - } - - // Step 2: Remove redundant FDs - Set removed = new HashSet<>(); - for (FunctionalDependency fd1 : minimalCover) { - Set temp = new HashSet<>(minimalCover); - temp.remove(fd1); - if (new ClosureFinder().closure(fd1.leftSide, temp).containsAll(fd1.rightSide)) { - removed.add(fd1); - } - } - minimalCover.removeAll(removed); - - return minimalCover; - } -} - - -class FunctionalDependencyCoverage { - public static boolean covers(Set F, Set E) { - for (FunctionalDependency fd : E) { - Set X = fd.leftSide; - @SuppressWarnings("SuspiciousNameCombination") - Set Y = fd.rightSide; - Set closure = calculateClosure(X, F); - if (!closure.containsAll(Y)) { - return false; - } - } - return true; - } - - private static Set calculateClosure(Set X, Set F) { - Set closure = new HashSet<>(X); - boolean changed; - do { - changed = false; - for (FunctionalDependency fd : F) { - if (closure.containsAll(fd.leftSide) && !closure.containsAll(fd.rightSide)) { - closure.addAll(fd.rightSide); - changed = true; - } - } - } while (changed); - return closure; - } +/* A class involving Normalization Theoretic Algorithms. + * No need to review it but if it peeks your interest... + * Go right ahead. */ + +import java.util.*; + +public class NormalizeAlgo { + public static void main(String[] args) { + // Example sets of functional dependencies + Set F = new HashSet<>(); + Set E = new HashSet<>(); + + F.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("A")), + new HashSet<>(Collections.singletonList("C")))); + F.add(new FunctionalDependency(new HashSet<>(Arrays.asList("A", "C")), + new HashSet<>(Collections.singletonList("D")))); + F.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("E")), + new HashSet<>(Arrays.asList("A", "D")))); + F.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("E")), + new HashSet<>(Collections.singletonList("H")))); + E.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("A")), + new HashSet<>(Arrays.asList("C", "D")))); + E.add(new FunctionalDependency(new HashSet<>(Collections.singletonList("E")), + new HashSet<>(Arrays.asList("A", "H")))); + + // Check if F covers E + boolean coversE = FunctionalDependencyCoverage.covers(F, E); + System.out.println("Does F cover E? " + coversE); + + // Check if E covers F + boolean coversF = FunctionalDependencyCoverage.covers(E, F); + System.out.println("Does E cover F? " + coversF); + + // Check if F and E are equivalent + boolean areEquivalent = coversE && coversF; + System.out.println("Are F and E equivalent? " + areEquivalent); + } +} + +class FunctionalDependency { + Set leftSide; + Set rightSide; + + public FunctionalDependency(Set leftSide, Set rightSide) { + this.leftSide = leftSide; + this.rightSide = rightSide; + } + + @Override + public String toString() { + return leftSide + " -> " + rightSide; + } +} + +class ClosureFinder { + Set closure(Set attributes, Set fds) { + Set closure = new HashSet<>(attributes); + boolean changed; + do { + changed = false; + for (FunctionalDependency fd : fds) { + if (closure.containsAll(fd.leftSide) && !closure.containsAll(fd.rightSide)) { + closure.addAll(fd.rightSide); + changed = true; + } + } + } while (changed); + System.out.println("Attributes: " + attributes + ", Closure: " + closure); + return closure; + } +} + +class KeyFinder { + Set findKey(Set attributes, Set fds) { + ClosureFinder closureFinder = new ClosureFinder(); + Set candidateKey = new HashSet<>(attributes); + for (String attr : attributes) { + Set temp = new HashSet<>(candidateKey); + temp.remove(attr); + if (closureFinder.closure(temp, fds).equals(attributes)) { + candidateKey.remove(attr); + } + } + return candidateKey; + } +} + +class MinimalCoverFinder { + Set findMinimalCover(Set fds) { + Set minimalCover = new HashSet<>(fds); + + // Step 1: Remove extraneous attributes from right side of each FD + for (FunctionalDependency fd : fds) { + Set rightSide = new HashSet<>(fd.rightSide); + for (String attr : rightSide) { + Set modifiedRightSide = new HashSet<>(rightSide); + modifiedRightSide.remove(attr); + Set temp = new HashSet<>(minimalCover); + temp.remove(fd); + temp.add(new FunctionalDependency(fd.leftSide, modifiedRightSide)); + if (new ClosureFinder().closure(fd.leftSide, temp).containsAll(fd.rightSide)) { + minimalCover.remove(fd); + minimalCover.add(new FunctionalDependency(fd.leftSide, modifiedRightSide)); + } + } + } + + // Step 2: Remove redundant FDs + Set removed = new HashSet<>(); + for (FunctionalDependency fd1 : minimalCover) { + Set temp = new HashSet<>(minimalCover); + temp.remove(fd1); + if (new ClosureFinder().closure(fd1.leftSide, temp).containsAll(fd1.rightSide)) { + removed.add(fd1); + } + } + minimalCover.removeAll(removed); + + return minimalCover; + } +} + + +class FunctionalDependencyCoverage { + public static boolean covers(Set F, Set E) { + for (FunctionalDependency fd : E) { + Set X = fd.leftSide; + @SuppressWarnings("SuspiciousNameCombination") + Set Y = fd.rightSide; + Set closure = calculateClosure(X, F); + if (!closure.containsAll(Y)) { + return false; + } + } + return true; + } + + private static Set calculateClosure(Set X, Set F) { + Set closure = new HashSet<>(X); + boolean changed; + do { + changed = false; + for (FunctionalDependency fd : F) { + if (closure.containsAll(fd.leftSide) && !closure.containsAll(fd.rightSide)) { + closure.addAll(fd.rightSide); + changed = true; + } + } + } while (changed); + return closure; + } } \ No newline at end of file diff --git a/Hibernate_CS308/src/main/java/com/sci/TesterApp.java b/Hibernate_CS308/src/main/java/com/sci/TesterApp.java index 1c9fa2a..291802e 100644 --- a/Hibernate_CS308/src/main/java/com/sci/TesterApp.java +++ b/Hibernate_CS308/src/main/java/com/sci/TesterApp.java @@ -1,31 +1,31 @@ -package com.sci; - -import com.sci.criteria.FilterQuery; -import com.sci.criteria.Operator; -import com.sci.dao.DBConfig; -import com.sci.dao.DBManagement; -import com.sci.models.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class TesterApp { - public static void main(String[] args) { - DBManagement.DBEmployee emp = new DBManagement.DBEmployee(); - List filters = new ArrayList<>(); - - // Q13, Les02 Oracle SQL Slides: - filters.add(new FilterQuery("jobId", Arrays.asList("SA_REP", "ST_CLERK"), - Operator.In)); - filters.add(new FilterQuery("salary", Arrays.asList(2500, 3500, 7000), - Operator.In)); - List emps = emp.getByFilter(filters); - System.out.println("LastName, JobId, Salary"); - for (Employee employee : emps) { - System.out.println(employee.getLastName() + " " + employee.getJobId() + " " - + employee.getSalary()); - } - DBConfig.shutdown(); - } -} +package com.sci; + +import com.sci.criteria.FilterQuery; +import com.sci.criteria.Operator; +import com.sci.dao.DBConfig; +import com.sci.dao.DBManagement; +import com.sci.models.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class TesterApp { + public static void main(String[] args) { + DBManagement.DBEmployee emp = new DBManagement.DBEmployee(); + List filters = new ArrayList<>(); + + // Q13, Les02 Oracle SQL Slides: + filters.add(new FilterQuery("jobId", Arrays.asList("SA_REP", "ST_CLERK"), + Operator.In)); + filters.add(new FilterQuery("salary", Arrays.asList(2500, 3500, 7000), + Operator.In)); + List emps = emp.getByFilter(filters); + System.out.println("LastName, JobId, Salary"); + for (Employee employee : emps) { + System.out.println(employee.getLastName() + " " + employee.getJobId() + " " + + employee.getSalary()); + } + DBConfig.shutdown(); + } +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Car.java b/Hibernate_CS308/src/main/java/com/sci/models/Car.java index eb7b2e5..174a374 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Car.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Car.java @@ -1,34 +1,34 @@ -package com.sci.models; -import java.io.Serializable; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "CAR") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor -public class Car implements Serializable{ - private static final long serialVersionUID = 2722273942263295807L; - - @Id - @Column(name = "ID") - private Integer id; - @Column(name = "BRAND") - private String name; - @Column(name = "PERSON_ID") - private Integer personId; - - //Many cars are owned by one person: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "id", insertable = false, updatable = false) - private Person owner; -} +package com.sci.models; +import java.io.Serializable; +import javax.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "CAR") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor +public class Car implements Serializable{ + private static final long serialVersionUID = 2722273942263295807L; + + @Id + @Column(name = "ID") + private Integer id; + @Column(name = "BRAND") + private String name; + @Column(name = "PERSON_ID") + private Integer personId; + + //Many cars are owned by one person: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "id", insertable = false, updatable = false) + private Person owner; +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Country.java b/Hibernate_CS308/src/main/java/com/sci/models/Country.java index c09be11..3a82e53 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Country.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Country.java @@ -1,43 +1,43 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "Countries") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Country implements Serializable { - - private static final long serialVersionUID = -4275743947797911430L; - - @Id - @Column(name = "COUNTRY_ID") - private String countryId; - @Column(name = "COUNTRY_NAME") - private String countryName; - @Column(name = "REGION_ID") - private Integer regionId; - - //Many Countries belong to one region: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "REGION_ID", insertable = false, updatable = false) - private Region region; - - //One country has many Locations: - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "COUNTRY_ID", insertable = false, updatable = false) - private List locations; -} +package com.sci.models; + +import java.io.Serializable; +import java.util.List; +import javax.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "Countries") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Country implements Serializable { + + private static final long serialVersionUID = -4275743947797911430L; + + @Id + @Column(name = "COUNTRY_ID") + private String countryId; + @Column(name = "COUNTRY_NAME") + private String countryName; + @Column(name = "REGION_ID") + private Integer regionId; + + //Many Countries belong to one region: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "REGION_ID", insertable = false, updatable = false) + private Region region; + + //One country has many Locations: + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "COUNTRY_ID", insertable = false, updatable = false) + private List locations; +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Department.java b/Hibernate_CS308/src/main/java/com/sci/models/Department.java index ea49241..9ee9678 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Department.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Department.java @@ -1,55 +1,55 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "departments") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor -@SequenceGenerator(name = "departments_gen", sequenceName = "departments_seq", - allocationSize = 1) -public class Department implements Serializable { - - private static final long serialVersionUID = 4396093107304957078L; - - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "departments_gen") - @Column(name = "DEPARTMENT_ID") - private Integer departmentId; - @Column(name = "DEPARTMENT_NAME") - private String departmentName; - @Column(name = "MANAGER_ID") - private Integer managerId; - @Column(name = "LOCATION_ID") - private Integer locationId; - - //One department has many employees: - @ManyToMany(fetch = FetchType.LAZY) - @JoinTable(name = "EMPLOYEES", - joinColumns = {@JoinColumn(name = "DEPARTMENT_ID")}, - inverseJoinColumns = {@JoinColumn(name = "EMPLOYEE_ID")} - ) - private List employees; - - //Many departments are located in one location: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "LOCATION_ID", insertable = false, updatable = false) - private Location location; - - //One department has many previous employees: - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "DEPARTMENT_ID", insertable = false, updatable = false) - private List previous_Department_Employees; -} +package com.sci.models; + +import java.io.Serializable; +import java.util.List; +import javax.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "departments") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor +@SequenceGenerator(name = "departments_gen", sequenceName = "departments_seq", + allocationSize = 1) +public class Department implements Serializable { + + private static final long serialVersionUID = 4396093107304957078L; + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "departments_gen") + @Column(name = "DEPARTMENT_ID") + private Integer departmentId; + @Column(name = "DEPARTMENT_NAME") + private String departmentName; + @Column(name = "MANAGER_ID") + private Integer managerId; + @Column(name = "LOCATION_ID") + private Integer locationId; + + //One department has many employees: + @ManyToMany(fetch = FetchType.LAZY) + @JoinTable(name = "EMPLOYEES", + joinColumns = {@JoinColumn(name = "DEPARTMENT_ID")}, + inverseJoinColumns = {@JoinColumn(name = "EMPLOYEE_ID")} + ) + private List employees; + + //Many departments are located in one location: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "LOCATION_ID", insertable = false, updatable = false) + private Location location; + + //One department has many previous employees: + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "DEPARTMENT_ID", insertable = false, updatable = false) + private List previous_Department_Employees; +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Job.java b/Hibernate_CS308/src/main/java/com/sci/models/Job.java index 840790b..59be34d 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Job.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Job.java @@ -1,45 +1,45 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "Jobs") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Job implements Serializable { - - private static final long serialVersionUID = 2993868379008216372L; - - @Id - @Column(name = "JOB_ID") - private String jobId; - @Column(name = "JOB_TITLE") - private String jobTitle; - @Column(name = "MIN_SALARY") - private Integer minSalary; - @Column(name = "MAX_SALARY") - private Integer maxSalary; - - //One Job has many employees doing it: - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "JOB_ID", insertable = false, updatable = false) - private List employees; - - //One Job had many employees doing it: - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "JOB_ID", insertable = false, updatable = false) - private List employees_JobHistory; +package com.sci.models; + +import java.io.Serializable; +import java.util.List; +import javax.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "Jobs") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Job implements Serializable { + + private static final long serialVersionUID = 2993868379008216372L; + + @Id + @Column(name = "JOB_ID") + private String jobId; + @Column(name = "JOB_TITLE") + private String jobTitle; + @Column(name = "MIN_SALARY") + private Integer minSalary; + @Column(name = "MAX_SALARY") + private Integer maxSalary; + + //One Job has many employees doing it: + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "JOB_ID", insertable = false, updatable = false) + private List employees; + + //One Job had many employees doing it: + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "JOB_ID", insertable = false, updatable = false) + private List employees_JobHistory; } \ No newline at end of file diff --git a/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java b/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java index 0f1d95e..d46ff2f 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java @@ -1,50 +1,50 @@ -package com.sci.models; - -import java.io.Serializable; -import java.sql.Date; -import javax.persistence.*; - -import lombok.*; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "Job_History") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor -@IdClass(JobHistoryCompositeKey.class) //Composite key. -public class JobHistory implements Serializable { - - private static final long serialVersionUID = 6572714351961244926L; - @Id //Key part1. - @Column(name = "EMPLOYEE_ID") - private Integer employeeId; - @Id //Key part2. - @Column(name = "START_DATE") - private Date startDate; - @Column(name = "END_DATE") - private Date endDate; - @Column(name = "JOB_ID") - private String jobId; - @Column(name = "DEPARTMENT_ID") - private Integer departmentId; - - //One employee used to work many times: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "EMPLOYEE_ID", insertable = false, updatable = false) - private Department employee; - - //Many previous employees used to work in one department: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "DEPARTMENT_ID", insertable = false, updatable = false) - private Department department; - - //Many previous employees used to have one job: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "JOB_ID", insertable = false, updatable = false) - private Job job; +package com.sci.models; + +import java.io.Serializable; +import java.sql.Date; +import javax.persistence.*; + +import lombok.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "Job_History") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor +@IdClass(JobHistoryCompositeKey.class) //Composite key. +public class JobHistory implements Serializable { + + private static final long serialVersionUID = 6572714351961244926L; + @Id //Key part1. + @Column(name = "EMPLOYEE_ID") + private Integer employeeId; + @Id //Key part2. + @Column(name = "START_DATE") + private Date startDate; + @Column(name = "END_DATE") + private Date endDate; + @Column(name = "JOB_ID") + private String jobId; + @Column(name = "DEPARTMENT_ID") + private Integer departmentId; + + //One employee used to work many times: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "EMPLOYEE_ID", insertable = false, updatable = false) + private Department employee; + + //Many previous employees used to work in one department: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "DEPARTMENT_ID", insertable = false, updatable = false) + private Department department; + + //Many previous employees used to have one job: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "JOB_ID", insertable = false, updatable = false) + private Job job; } \ No newline at end of file diff --git a/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java b/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java index 54fc8cf..26a2e24 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java @@ -1,19 +1,19 @@ -package com.sci.models; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import java.io.Serializable; -import java.sql.Date; -//Composite key class: -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class JobHistoryCompositeKey implements Serializable { - private static final long serialVersionUID = -7519983781399232210L; - - private Integer employeeId; - private Date startDate; -} +package com.sci.models; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import java.io.Serializable; +import java.sql.Date; +//Composite key class: +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class JobHistoryCompositeKey implements Serializable { + private static final long serialVersionUID = -7519983781399232210L; + + private Integer employeeId; + private Date startDate; +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Location.java b/Hibernate_CS308/src/main/java/com/sci/models/Location.java index 0313c19..f8e8900 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Location.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Location.java @@ -1,50 +1,50 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "Locations") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor -@SequenceGenerator(name = "locations_gen", - sequenceName = "LOCATIONS_SEQ", allocationSize = 1) -public class Location implements Serializable { - private static final long serialVersionUID = 1432055879282434621L; - - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "locations_gen") - @Column(name = "LOCATION_ID") - private Integer locationId; - @Column(name = "STREET_ADDRESS") - private String streetAddress; - @Column(name = "POSTAL_CODE") - private String postalCode; - @Column(name = "CITY") - private String city; - @Column(name = "STATE_PROVINCE") - private String stateProvince; - @Column(name = "COUNTRY_ID") - private String countryId; - - //Many Locations are in one country: - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "COUNTRY_ID", insertable = false, updatable = false) - private Country country; - - //One location has many departments: - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "LOCATION_ID", insertable = false, updatable = false) - private List departments; -} +package com.sci.models; + +import java.io.Serializable; +import java.util.List; +import javax.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "Locations") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor +@SequenceGenerator(name = "locations_gen", + sequenceName = "LOCATIONS_SEQ", allocationSize = 1) +public class Location implements Serializable { + private static final long serialVersionUID = 1432055879282434621L; + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "locations_gen") + @Column(name = "LOCATION_ID") + private Integer locationId; + @Column(name = "STREET_ADDRESS") + private String streetAddress; + @Column(name = "POSTAL_CODE") + private String postalCode; + @Column(name = "CITY") + private String city; + @Column(name = "STATE_PROVINCE") + private String stateProvince; + @Column(name = "COUNTRY_ID") + private String countryId; + + //Many Locations are in one country: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "COUNTRY_ID", insertable = false, updatable = false) + private Country country; + + //One location has many departments: + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "LOCATION_ID", insertable = false, updatable = false) + private List departments; +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Person.java b/Hibernate_CS308/src/main/java/com/sci/models/Person.java index 844583e..73901f9 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Person.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Person.java @@ -1,35 +1,35 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "PERSON") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Person implements Serializable { - private static final long serialVersionUID = -8823944661193720160L; - - @Id - @Column(name = "ID") - private Integer id; - @Column(name = "NAME") - private String name; - - //One person owns many cars - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "id", insertable = false, updatable = false) - private List cars; -} +package com.sci.models; + +import java.io.Serializable; +import java.util.List; +import javax.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "PERSON") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Person implements Serializable { + private static final long serialVersionUID = -8823944661193720160L; + + @Id + @Column(name = "ID") + private Integer id; + @Column(name = "NAME") + private String name; + + //One person owns many cars + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "id", insertable = false, updatable = false) + private List cars; +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Region.java b/Hibernate_CS308/src/main/java/com/sci/models/Region.java index d6c2c06..0e01c1a 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Region.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Region.java @@ -1,36 +1,36 @@ -package com.sci.models; - -import java.io.Serializable; -import java.util.List; -import javax.persistence.*; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@SuppressWarnings("JpaDataSourceORMInspection") -@Entity -@Table(name = "Regions") -@Data -@Cacheable -@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) -@NoArgsConstructor -@AllArgsConstructor - -public class Region implements Serializable { - - private static final long serialVersionUID = 6596828837219242458L; - - @Id - @Column(name = "REGION_ID") - private Integer regionId; - @Column(name = "REGION_NAME") - private String regionName; - - //One region has many countries: - @OneToMany(fetch = FetchType.LAZY) - @JoinColumn(name = "REGION_ID", insertable = false, updatable = false) - private List countries; -} +package com.sci.models; + +import java.io.Serializable; +import java.util.List; +import javax.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "Regions") +@Data +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Region implements Serializable { + + private static final long serialVersionUID = 6596828837219242458L; + + @Id + @Column(name = "REGION_ID") + private Integer regionId; + @Column(name = "REGION_NAME") + private String regionName; + + //One region has many countries: + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "REGION_ID", insertable = false, updatable = false) + private List countries; +} diff --git a/Hibernate_CS308/src/main/resources/hibernate.cfg.xml b/Hibernate_CS308/src/main/resources/hibernate.cfg.xml index 8c08dd8..0efa7c1 100644 --- a/Hibernate_CS308/src/main/resources/hibernate.cfg.xml +++ b/Hibernate_CS308/src/main/resources/hibernate.cfg.xml @@ -4,11 +4,11 @@ "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> - jdbc:oracle:thin:@localhost:1521:orcl - c##MHBakr - MohamedHedia123 - oracle.jdbc.driver.OracleDriver - org.hibernate.dialect.Oracle10gDialect + oracle.jdbc.OracleDriver + jdbc:oracle:thin:@//localhost:1521/freepdb1 + hr + hr + org.hibernate.dialect.Oracle8iDialect true true org.hibernate.cache.ehcache.EhCacheRegionFactory @@ -26,6 +26,5 @@ - \ No newline at end of file diff --git a/Hibernate_CS308/target/classes/com/sci/TesterApp.class b/Hibernate_CS308/target/classes/com/sci/TesterApp.class index bd6e61e7f98e75e57ccf82df448299d33bcde6b8..84566ac4f0df099f1f8321418f5e615f60795669 100644 GIT binary patch delta 684 zcmYk2$xl;J6vlt|^_5r3BSPa46o*7pP$Z2CsDLw|Wmd3=;!sMhKnH}%;Djj7vo|hu z=SsIoQa}^pMi(ypL);kS&V_g$B*x_CJHz+gd%tr&`=))~uYW$w17*CJ^0pdYFBauC z73|c*MtRO|DlMvPs@bD6#tyYle>Vzq4sg)okWCG>I^R{Db=c+zLEYx^=QPl0(PYz1 zi=K29)irR`<```XGZ`ICE0z~;ZtM#WhXe6&G8Sm*?u$m!RTjq;t0JjHU?|cXNThnA z@u5I%Vj!Lxi$*Ov^iNk|ZU~o`c23%yqD!wfi##FD*qr5@4w_Y)x)o}JBj~Y-(xvdk zqUrincd*B4#%wOotKXS^J4C;8E3POl)_JNx|1wvs3z4)*EnZ8f+R}r)$(Wam3|b7? zq_yAeSHsgy?l($J=pR`D^-Qm~N?I>r$nFqSxXBV6kt!fjNpx?SK}{{vqk;|%xr_+0#96uYybcN delta 657 zcmYk2*-MmB7{-6+Tjq@8k!+|$5|N5AGLg!q)E3JYrNcdGs~%I+HA4K%J$`C z(4`P`n+c;9NH=xSMc3U#^lx;Ly`Mq^hv!|M=RN0n&uH{>H1hS&he@E4p^-?lQq*vT%Nc1yzvb{qDv*ABZS-abWveHSWlHT&&Pw52x%aFJ_YT22&|T`C^-| z3hgg%ZgG;chV=AUCe@NjclUNh$Z%eB!En*e@nh=pXq`W-)PVgFs!-PE>9XcaIPyUV z%9jul?31cOqLSz@8AFXs(^muo8uGX*Xl4Xl|c-^4}yR3r|wpYdFhh`gbB I!Ao-f0+u{~cmMzZ diff --git a/Hibernate_CS308/target/classes/com/sci/criteria/Operator.class b/Hibernate_CS308/target/classes/com/sci/criteria/Operator.class index 26360d23fa0691ddb4a7cc0326e1c55ed1e7827d..8556b155d3d607bb34d36b5dd8d7ff1afe18d0fd 100644 GIT binary patch delta 551 zcmZXR-7W(`6vzLw+uH5yRwk85&_p!a>Ic;-^-Y!fEG2Ov5#lY}HE!Iwv9E!sCfX3v zYmeYz#M!f(Aa;`7`JMBdnR8~Z!grSZ_0KJp2%XC%5vJ`xF3>D|LQo%|d&eZL5eqcS4W9b~!?uCM*^w&P3bDH#z_Nyr1<3cBu+rkDZ#5ZfAZaX9!Rfs4D50!Aj$Q-6r-? z^X+@zzIlZ>iA?Kl%(S30lmZL}!)%a2GR*Zbgc;@y2F0*oGW0PlD)P>0zkbFg<(UIa p%gR%uOe-qH3x_*cZ6W6N?%j1SUr7LE`ajn+*ZiIjP$x&j;Wy6@O|bv~ delta 768 zcmZvZO-~b16o%hB({`qJZsn#XBtR2m0~A_7D+Q`3lrI&5@=;MMRFR|$0)Y+2#7*PI z#EqNz8!n(tD8WeBu;GW8_$P?xo{ou$&Lng4yyv}V&N=s+_bDc?uFuW^!(D< z8%EASR$&CAens5&^0@Edfx+7&^hd z3k)9-3A~_hgmX6e$MG`o=U}la<05^Eu?q;}w@~~0z$=ne%Z4&uvw>zJoB3rHHobt8 z&Lo<6bj<1hA9t`}ddDVvDq5P!gHApoL@KbYZ~TDpzlI96vZgVTrLy+w=%JwM=%Wy; zBUAc!EEjK335xv+id}w(D95MlCZ-#(8D>HZ4#RAiK{Cum7-9^Moo3A((o9cWPTgd9 zs$0f(rg`mfu7l~BZaEW73p&cVTTF{uG9{Uow8zxLRMd*8k7-%Qi1H0&PO;L!klAVL b4&yvn2vcff$?3=9k=3=SK)N*E`fXB78W=V8!b5MX5B_em`-4#`N&^DlBOEKSVe zWME>@;$hGR$+7rkW~YJ#ba@!`KmzPesU_v9sd*qV10DuLkQkF^9y^2aWK*W;jCPaH zGU=-t0c~OwkYM0u-~q81IDqz=0%k delta 413 zcmYjM%SyvQ6g_!pVmhgDAqcv0A&TOwz903`S~WH{6#RiM0*WP~O(}>A|6vyXK*6o8 z;zB`$x^h*}4-mD#A>J8~x;S$lcerQf(Y&;**Pn+c0JHFFR;273xsxbYE*86>VwhnB zj)D%#+)yN=3}Ye@x4fg{KxE?#6C$%HO9fFS2;|i%hG~AT^!qc6meai33reMf!$Rnv zWlqZl*)Y$rAZGgCvL%LPS@3VuDnn9asv8HWMd9tXUlBeoeGPG5(elYEZg7iU+~FAw z;ukdWM*NNsd=YC%Q)j1a{=^n(m5?FqVt}`_1h;jIU=MD~*$(A^4wud>!IHlq;h4WK CY)%jW diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBCountry.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBCountry.class index f39af82c97da105b663de1d20668217e1baf8d8c..8c65b20473d93fbc3407732bbf6840a06b3701ed 100644 GIT binary patch delta 254 zcmWNLO-lj+6h-fJkwGPd7Db4pwU7ZJqee7CM6IBVp+vMVTd0VLiMo&o38~Q5vu@iu znBNipn^rBlt9Q8Xoy%K>m*MZMX(Zeu^D~l!pZnOLjhN;RlgNk#f_t*T3cvV%2tvB@5`*hfOyDMvUHpYst82dWw3fn)C{7&q*Rv?poL(x%d0^!^NS azT!Z+!v(Iy6~3XycieN14nJIL_3IyCVJzYR delta 254 zcmWNLK}!Mw6oh9RVo?dfgAyWX9b`d>AfeKup(rL5nQUYiMIywc=n^3!Ch0+BiHMT) z(mB}Q5&j!b9h%eonD@TnEy9cNPs%hhPTHJCa`3Q#5Q~UuZZU^_@d1yJ;jyzc{~~2w zR1l<%sOBci+S*9*0*9=+evf4&Ygl0&t8Bo}Yn9!os0oWL>?u3rJt|_Gx2Up>8t>5J zgWL3O8#|9upWtH$0d}#@9yZuVLRpqWc`|FDv$+5JFG)LO2v^Tx~ cjyONCtGvV+PQ<7D#5t$9Cvt|FfLdNW+)GN4ojbXMi#v6?D7Soz7^AS;TjCY9h9!Wl6lTUVXFldCk n(w?RDq`gRc)%$M<@*Q)U$N7yFae^PZ{)r8KA;llF>?!>NMz2J; delta 254 zcmWNLJxhXd6vfZq^MGkDLqicLl@Sg~5aeL3NuYzEh#*BxHTMDf6c4mD76{Rc&mdtC z6o!aMMe-~m5>ZhN5fK&^o$36z_x!lm4Y+}$bFbO8FT6X!B7EG(C=W2HoMI7i@jMT) z$dbL)*9(@_IKc=jm{5jT*0zELo+80BXWKVpVpVu}35zuhv94+Z(`+KbD^+XAvxS0q znb%n34c2*!O}fsvKVoL@q_)w|4u*M;F+O0NkBDlv#8)K6DLx_1XXN;TRlYg7fv}0a nOZ$-aDeX&ISMUEI%pT@6Pg@2VahAWj{)ZI{*swhI@!;M+!pBD| diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBEmployee.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBEmployee.class index d4329966fd07ac49c8793bd423ad326d1bf186fa..86bfd453704fed4575f5eeefeb56a5ff043b3ddf 100644 GIT binary patch delta 3640 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 aXVIR9Jn6;wm3wP@&^tqY@I3lV{r&@D1169F delta 263 zcmWNL%Sr+P7=_P#w3rlKRCHNrT0$2J8AH_CbQvn_I#g6*7g91QhKP!aie4dH_YT2q zdV*fTw~7AM`Tp~BIH#NLroUHQC)4rWuT)OGOlXKHWlhJ)sbW0Ow0vfxKeyk>dWtcp z0gCo6DQ{Y^d&fAStU3!(Ar?5rCBd?K@Rej$gREhHCPrmT{YBYkScHulnG<^O^kp2Qz>yFaQ7m diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBLocation.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBLocation.class index f2ee2cab36dcc08a20ec747ebd570a9473623325..1d49ab02711847bca51207a4b4965ebdebee9882 100644 GIT binary patch delta 254 zcmWNLze_>^6ot<_2D`+Tw1yfGv3Ds3oj jB<)SwyWY1E;}}btr}&L+@eV(9{S$lq!V!PW=4AUH!x%fh delta 254 zcmWNLJxhWC6ot=w2>hxB2SZTogK$s;A%~QM-`qrlT6n!Nq-yFpn|i1ap`cCwYKb z7R*iOf3T>=A$%-hR5{L~wk4!k#vCiwt}A9FY9Nm=z&eI`tm+9S*+hhAs@Ad0ORR`j z*}?|TvBfracxCn65hH#r^#&f^!b=-|-XX+$L^VtE8S~-{ACToEmiUBqzF0GZVI%P> m?M>Rdv=3>YdjAVyb}*%RmcLjKFY;U0f3U_bw)tn4hZ=om6+tcl diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBRegion.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBRegion.class index 6656429fa5be3f17aaad1c067eec038507253cba..6f06aa7679219ac2b06f222ca62464676a5e59fb 100644 GIT binary patch delta 255 zcmWNL&nv@m9LAs5XRF!#I5^O1%df^^QVKP$lOnB1D-owT`xE>NzGqk8!%EZFWogQZ zElG%6mL#EZkR&aA6x|D9xo!Ysz!0W#bjDw9d5( z+-Q@#pc+dvS~vAxtvslcN5y$k56>F5ZiY9_8qe{f9IslUp*7xvRNEjEe3-me*s4jybdRAx<(-m1=Q}morgGJ{hHCfS3u-VrwwA{EQ zqc&rn<7)ZZW?6Tv>OQQ+W;FkR>5+&!r1a$KGbO!H)~l->s`_Ntc~5T~>YbWCIM!F# zjF&b0?bja?`X#L{IsGweFzwx%^|0=|VWMKjjzu`I-msLM)Plt^OOmh@X&WGCX^J+; clx3LnzG5S6Id5B*stvJk!yH*YIO#wC2iuT23IG5A diff --git a/Hibernate_CS308/target/classes/hibernate.cfg.xml b/Hibernate_CS308/target/classes/hibernate.cfg.xml index 8c08dd8..0efa7c1 100644 --- a/Hibernate_CS308/target/classes/hibernate.cfg.xml +++ b/Hibernate_CS308/target/classes/hibernate.cfg.xml @@ -4,11 +4,11 @@ "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> - jdbc:oracle:thin:@localhost:1521:orcl - c##MHBakr - MohamedHedia123 - oracle.jdbc.driver.OracleDriver - org.hibernate.dialect.Oracle10gDialect + oracle.jdbc.OracleDriver + jdbc:oracle:thin:@//localhost:1521/freepdb1 + hr + hr + org.hibernate.dialect.Oracle8iDialect true true org.hibernate.cache.ehcache.EhCacheRegionFactory @@ -26,6 +26,5 @@ - \ No newline at end of file diff --git a/PLSQL/Advanced/Les01.sql b/PLSQL/Advanced/Les01.sql index 236856c..f44e52a 100644 --- a/PLSQL/Advanced/Les01.sql +++ b/PLSQL/Advanced/Les01.sql @@ -1,89 +1,89 @@ -set SERVEROUTPUT on; - ---Q1: -CREATE OR REPLACE PROCEDURE ADD_JOB ( - ID VARCHAR2, - TITLE VARCHAR2 -) IS -BEGIN - INSERT INTO JOBS( - JOB_ID, - JOB_TITLE - ) VALUES ( - ID, - TITLE - ); -END; -/ - -BEGIN - ADD_JOB('IT_DBA', 'Database Adminstrator'); -END; -/ - ---Q2: -CREATE OR REPLACE PROCEDURE UPD_JOB ( - ID VARCHAR2, - TITLE VARCHAR2 -) IS -BEGIN - UPDATE JOBS - SET - JOB_TITLE = TITLE - WHERE - JOB_ID = ID; -EXCEPTION - WHEN OTHERS THEN - DBMS_OUTPUT.PUT_LINE(SQLERRM); -END; -/ - -BEGIN - UPD_JOB('IT_DBA', 'Data Adminstrator'); - UPD_JOB('IT_WEB ', 'Web Master'); -END; -/ - ---Q3: -CREATE OR REPLACE PROCEDURE DEL_JOB ( - ID VARCHAR2 -) IS -BEGIN - DELETE FROM JOBS - WHERE - JOB_ID = ID; -EXCEPTION - WHEN OTHERS THEN - DBMS_OUTPUT.PUT_LINE(SQLERRM); -END; -/ - -BEGIN - DEL_JOB('IT_DBA'); - DEL_JOB('IT_WEB'); -END; -/ - ---Q4: -CREATE OR REPLACE PROCEDURE GET_EMPLOYEE ( - ID NUMBER -) AS - REC EMPLOYEES%ROWTYPE; -BEGIN - SELECT - * INTO REC - FROM - EMPLOYEES - WHERE - EMPLOYEE_ID = ID; - DBMS_OUTPUT.PUT_LINE('Salary: ' - ||REC.SALARY); - DBMS_OUTPUT.PUT_LINE('JOB_ID: ' - ||REC.JOB_ID); -END; -/ - -BEGIN - GET_EMPLOYEE(&NUM); -END; +set SERVEROUTPUT on; + +--Q1: +CREATE OR REPLACE PROCEDURE ADD_JOB ( + ID VARCHAR2, + TITLE VARCHAR2 +) IS +BEGIN + INSERT INTO JOBS( + JOB_ID, + JOB_TITLE + ) VALUES ( + ID, + TITLE + ); +END; +/ + +BEGIN + ADD_JOB('IT_DBA', 'Database Adminstrator'); +END; +/ + +--Q2: +CREATE OR REPLACE PROCEDURE UPD_JOB ( + ID VARCHAR2, + TITLE VARCHAR2 +) IS +BEGIN + UPDATE JOBS + SET + JOB_TITLE = TITLE + WHERE + JOB_ID = ID; +EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); +END; +/ + +BEGIN + UPD_JOB('IT_DBA', 'Data Adminstrator'); + UPD_JOB('IT_WEB ', 'Web Master'); +END; +/ + +--Q3: +CREATE OR REPLACE PROCEDURE DEL_JOB ( + ID VARCHAR2 +) IS +BEGIN + DELETE FROM JOBS + WHERE + JOB_ID = ID; +EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); +END; +/ + +BEGIN + DEL_JOB('IT_DBA'); + DEL_JOB('IT_WEB'); +END; +/ + +--Q4: +CREATE OR REPLACE PROCEDURE GET_EMPLOYEE ( + ID NUMBER +) AS + REC EMPLOYEES%ROWTYPE; +BEGIN + SELECT + * INTO REC + FROM + EMPLOYEES + WHERE + EMPLOYEE_ID = ID; + DBMS_OUTPUT.PUT_LINE('Salary: ' + ||REC.SALARY); + DBMS_OUTPUT.PUT_LINE('JOB_ID: ' + ||REC.JOB_ID); +END; +/ + +BEGIN + GET_EMPLOYEE(&NUM); +END; / \ No newline at end of file diff --git a/PLSQL/Advanced/Les02.sql b/PLSQL/Advanced/Les02.sql index b8afefc..f424ad9 100644 --- a/PLSQL/Advanced/Les02.sql +++ b/PLSQL/Advanced/Les02.sql @@ -1,107 +1,107 @@ -set SERVEROUTPUT on; - --- Q1: -CREATE OR REPLACE FUNCTION GET_JOB ( - JOB VARCHAR2 -) RETURN VARCHAR2 IS - TITLE JOBS.JOB_TITLE%TYPE; -BEGIN - SELECT - JOB_TITLE INTO TITLE - FROM - JOBS - WHERE - JOB_ID = JOB; - RETURN TITLE; -END; -/ - -SELECT - GET_JOB('&job_id') "Title" -FROM - DUAL; - --- Q2: -CREATE OR REPLACE FUNCTION GET_ANNUAL_COM( - SAL EMPLOYEES.SALARY%TYPE, - COM EMPLOYEES.COMMISSION_PCT%TYPE -) RETURN NUMBER IS -BEGIN - RETURN (NVL(SAL, 0)*12)*(1+NVL(COM, 0)); -END; -/ - -SELECT - EMPLOYEE_ID, - LAST_NAME, - GET_ANNUAL_COM(SALARY, COMMISSION_PCT) "Annual Compensation" -FROM - EMPLOYEES -WHERE - DEPARTMENT_ID = 30; - --- Q3: -CREATE OR REPLACE FUNCTION VALID_DEPTID ( - DEPTID NUMBER -) RETURN BOOLEAN IS - VAL NUMBER; -BEGIN - SELECT - COUNT(*) INTO VAL - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = DEPTID; - RETURN VAL = 1; -END; -/ - --- Q4: -CREATE OR REPLACE PROCEDURE ADD_EMPLOYEE( - F_NAME VARCHAR2, - L_NAME VARCHAR2, - MAIL VARCHAR2, - JOB VARCHAR2 := 'SA_REP', - MGR NUMBER := 145, - SAL NUMBER := 1000, - COMM NUMBER := 0, - DEPTID NUMBER := 30 -) IS -BEGIN - IF(VALID_DEPTID(DEPTID)) THEN - INSERT INTO EMPLOYEES( - EMPLOYEE_ID, - FIRST_NAME, - LAST_NAME, - EMAIL, - JOB_ID, - MANAGER_ID, - SALARY, - COMMISSION_PCT, - DEPARTMENT_ID, - HIRE_DATE - ) VALUES( - EMPLOYEES_SEQ.NEXTVAL, - F_NAME, - L_NAME, - MAIL, - JOB, - MGR, - SAL, - COMM, - DEPTID, - TRUNC(SYSDATE()) - ); - END IF; -END; -/ - -BEGIN - ADD_EMPLOYEE( - F_NAME => 'Joe', - L_NAME => 'Harris', - DEPTID => 80, -- Invalid departments will neither cause an error nor will it insert. - MAIL => 'JaneHarris1992@gmail.com' -- Must put or mail otherwise not enough arguments error. - ); -END; +set SERVEROUTPUT on; + +-- Q1: +CREATE OR REPLACE FUNCTION GET_JOB ( + JOB VARCHAR2 +) RETURN VARCHAR2 IS + TITLE JOBS.JOB_TITLE%TYPE; +BEGIN + SELECT + JOB_TITLE INTO TITLE + FROM + JOBS + WHERE + JOB_ID = JOB; + RETURN TITLE; +END; +/ + +SELECT + GET_JOB('&job_id') "Title" +FROM + DUAL; + +-- Q2: +CREATE OR REPLACE FUNCTION GET_ANNUAL_COM( + SAL EMPLOYEES.SALARY%TYPE, + COM EMPLOYEES.COMMISSION_PCT%TYPE +) RETURN NUMBER IS +BEGIN + RETURN (NVL(SAL, 0)*12)*(1+NVL(COM, 0)); +END; +/ + +SELECT + EMPLOYEE_ID, + LAST_NAME, + GET_ANNUAL_COM(SALARY, COMMISSION_PCT) "Annual Compensation" +FROM + EMPLOYEES +WHERE + DEPARTMENT_ID = 30; + +-- Q3: +CREATE OR REPLACE FUNCTION VALID_DEPTID ( + DEPTID NUMBER +) RETURN BOOLEAN IS + VAL NUMBER; +BEGIN + SELECT + COUNT(*) INTO VAL + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = DEPTID; + RETURN VAL = 1; +END; +/ + +-- Q4: +CREATE OR REPLACE PROCEDURE ADD_EMPLOYEE( + F_NAME VARCHAR2, + L_NAME VARCHAR2, + MAIL VARCHAR2, + JOB VARCHAR2 := 'SA_REP', + MGR NUMBER := 145, + SAL NUMBER := 1000, + COMM NUMBER := 0, + DEPTID NUMBER := 30 +) IS +BEGIN + IF(VALID_DEPTID(DEPTID)) THEN + INSERT INTO EMPLOYEES( + EMPLOYEE_ID, + FIRST_NAME, + LAST_NAME, + EMAIL, + JOB_ID, + MANAGER_ID, + SALARY, + COMMISSION_PCT, + DEPARTMENT_ID, + HIRE_DATE + ) VALUES( + EMPLOYEES_SEQ.NEXTVAL, + F_NAME, + L_NAME, + MAIL, + JOB, + MGR, + SAL, + COMM, + DEPTID, + TRUNC(SYSDATE()) + ); + END IF; +END; +/ + +BEGIN + ADD_EMPLOYEE( + F_NAME => 'Joe', + L_NAME => 'Harris', + DEPTID => 80, -- Invalid departments will neither cause an error nor will it insert. + MAIL => 'JaneHarris1992@gmail.com' -- Must put or mail otherwise not enough arguments error. + ); +END; / \ No newline at end of file diff --git a/PLSQL/Advanced/Les03.sql b/PLSQL/Advanced/Les03.sql index 7909f8b..e1718a1 100644 --- a/PLSQL/Advanced/Les03.sql +++ b/PLSQL/Advanced/Les03.sql @@ -1,213 +1,213 @@ --- Q1: --- Package: -CREATE OR REPLACE PACKAGE JOB_PKG IS - - FUNCTION GET_JOB ( - JOB VARCHAR2 - ) RETURN VARCHAR2; - - PROCEDURE ADD_JOB ( - ID VARCHAR2, - TITLE VARCHAR2 - ); - - PROCEDURE UPD_JOB ( - ID VARCHAR2, - TITLE VARCHAR2 - ); - - PROCEDURE DEL_JOB ( - ID VARCHAR2 - ); -END JOB_PKG; -/ - --- Package body: -CREATE OR REPLACE PACKAGE BODY JOB_PKG IS - - FUNCTION GET_JOB ( - JOB VARCHAR2 - ) RETURN VARCHAR2 IS - TITLE JOBS.JOB_TITLE%TYPE; - BEGIN - SELECT - JOB_TITLE INTO TITLE - FROM - JOBS - WHERE - JOB_ID = JOB; - RETURN TITLE; - END GET_JOB; - - PROCEDURE ADD_JOB ( - ID VARCHAR2, - TITLE VARCHAR2 - ) IS - BEGIN - INSERT INTO JOBS( - JOB_ID, - JOB_TITLE - ) VALUES ( - ID, - TITLE - ); - END ADD_JOB; - - PROCEDURE UPD_JOB ( - ID VARCHAR2, - TITLE VARCHAR2 - ) IS - BEGIN - UPDATE JOBS - SET - JOB_TITLE = TITLE - WHERE - JOB_ID = ID; - EXCEPTION - WHEN OTHERS THEN - DBMS_OUTPUT.PUT_LINE(SQLERRM); - END UPD_JOB; - - PROCEDURE DEL_JOB ( - ID VARCHAR2 - )IS - BEGIN - DELETE FROM JOBS - WHERE - JOB_ID = ID; - EXCEPTION - WHEN OTHERS THEN - DBMS_OUTPUT.PUT_LINE(SQLERRM); - END DEL_JOB; -END JOB_PKG; -/ - --- Test: -BEGIN - JOB_PKG.ADD_JOB('IT_SYSAN', 'SYSTEMS ANALYST '); -END; -/ - --- Query: -SELECT - * -FROM - JOBS; - ---Return things to its usual: -DELETE FROM JOBS -WHERE - JOB_ID = 'IT_SYSAN'; - --- Q2: --- Package: -CREATE OR REPLACE PACKAGE EMP_PKG IS - - PROCEDURE ADD_EMPLOYEE( - F_NAME VARCHAR2, - L_NAME VARCHAR2, - MAIL VARCHAR2, - JOB VARCHAR2 := 'SA_REP', - MGR NUMBER := 145, - SAL NUMBER := 1000, - COMM NUMBER := 0, - DEPTID NUMBER := 30 - ); - - PROCEDURE GET_EMPLOYEE ( - ID NUMBER - ); -END EMP_PKG; -/ - --- Package body: -CREATE OR REPLACE PACKAGE BODY EMP_PKG IS - - PROCEDURE GET_EMPLOYEE ( - ID NUMBER - ) AS - REC EMPLOYEES%ROWTYPE; - BEGIN - SELECT - * INTO REC - FROM - EMPLOYEES - WHERE - EMPLOYEE_ID = ID; - DBMS_OUTPUT.PUT_LINE('Salary: ' - ||REC.SALARY); - DBMS_OUTPUT.PUT_LINE('JOB_ID: ' - ||REC.JOB_ID); - END GET_EMPLOYEE; - -- Private function: - FUNCTION VALID_DEPTID ( - DEPTID NUMBER - ) RETURN BOOLEAN IS - VAL NUMBER; - BEGIN - SELECT - COUNT(*) INTO VAL - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = DEPTID; - RETURN VAL = 1; - END VALID_DEPTID; - - PROCEDURE ADD_EMPLOYEE( - F_NAME VARCHAR2, - L_NAME VARCHAR2, - MAIL VARCHAR2, - JOB VARCHAR2 := 'SA_REP', - MGR NUMBER := 145, - SAL NUMBER := 1000, - COMM NUMBER := 0, - DEPTID NUMBER := 30 - ) IS - BEGIN - IF(VALID_DEPTID(DEPTID)) THEN - INSERT INTO EMPLOYEES( - EMPLOYEE_ID, - FIRST_NAME, - LAST_NAME, - EMAIL, - JOB_ID, - MANAGER_ID, - SALARY, - COMMISSION_PCT, - DEPARTMENT_ID, - HIRE_DATE - ) VALUES( - EMPLOYEES_SEQ.NEXTVAL, - F_NAME, - L_NAME, - MAIL, - JOB, - MGR, - SAL, - COMM, - DEPTID, - TRUNC(SYSDATE()) - ); - END IF; - END ADD_EMPLOYEE; -END EMP_PKG; -/ - --- Test1: -BEGIN - EMP_PKG.ADD_EMPLOYEE('Jane', 'Harris', 'JAHarris', DEPTID => 15); -END; -/ - --- Test2: -BEGIN - EMP_PKG.ADD_EMPLOYEE('David', 'Smith', 'DASMITH', DEPTID => 80); -END; -/ - --- Query: -SELECT - * -FROM +-- Q1: +-- Package: +CREATE OR REPLACE PACKAGE JOB_PKG IS + + FUNCTION GET_JOB ( + JOB VARCHAR2 + ) RETURN VARCHAR2; + + PROCEDURE ADD_JOB ( + ID VARCHAR2, + TITLE VARCHAR2 + ); + + PROCEDURE UPD_JOB ( + ID VARCHAR2, + TITLE VARCHAR2 + ); + + PROCEDURE DEL_JOB ( + ID VARCHAR2 + ); +END JOB_PKG; +/ + +-- Package body: +CREATE OR REPLACE PACKAGE BODY JOB_PKG IS + + FUNCTION GET_JOB ( + JOB VARCHAR2 + ) RETURN VARCHAR2 IS + TITLE JOBS.JOB_TITLE%TYPE; + BEGIN + SELECT + JOB_TITLE INTO TITLE + FROM + JOBS + WHERE + JOB_ID = JOB; + RETURN TITLE; + END GET_JOB; + + PROCEDURE ADD_JOB ( + ID VARCHAR2, + TITLE VARCHAR2 + ) IS + BEGIN + INSERT INTO JOBS( + JOB_ID, + JOB_TITLE + ) VALUES ( + ID, + TITLE + ); + END ADD_JOB; + + PROCEDURE UPD_JOB ( + ID VARCHAR2, + TITLE VARCHAR2 + ) IS + BEGIN + UPDATE JOBS + SET + JOB_TITLE = TITLE + WHERE + JOB_ID = ID; + EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); + END UPD_JOB; + + PROCEDURE DEL_JOB ( + ID VARCHAR2 + )IS + BEGIN + DELETE FROM JOBS + WHERE + JOB_ID = ID; + EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); + END DEL_JOB; +END JOB_PKG; +/ + +-- Test: +BEGIN + JOB_PKG.ADD_JOB('IT_SYSAN', 'SYSTEMS ANALYST '); +END; +/ + +-- Query: +SELECT + * +FROM + JOBS; + +--Return things to its usual: +DELETE FROM JOBS +WHERE + JOB_ID = 'IT_SYSAN'; + +-- Q2: +-- Package: +CREATE OR REPLACE PACKAGE EMP_PKG IS + + PROCEDURE ADD_EMPLOYEE( + F_NAME VARCHAR2, + L_NAME VARCHAR2, + MAIL VARCHAR2, + JOB VARCHAR2 := 'SA_REP', + MGR NUMBER := 145, + SAL NUMBER := 1000, + COMM NUMBER := 0, + DEPTID NUMBER := 30 + ); + + PROCEDURE GET_EMPLOYEE ( + ID NUMBER + ); +END EMP_PKG; +/ + +-- Package body: +CREATE OR REPLACE PACKAGE BODY EMP_PKG IS + + PROCEDURE GET_EMPLOYEE ( + ID NUMBER + ) AS + REC EMPLOYEES%ROWTYPE; + BEGIN + SELECT + * INTO REC + FROM + EMPLOYEES + WHERE + EMPLOYEE_ID = ID; + DBMS_OUTPUT.PUT_LINE('Salary: ' + ||REC.SALARY); + DBMS_OUTPUT.PUT_LINE('JOB_ID: ' + ||REC.JOB_ID); + END GET_EMPLOYEE; + -- Private function: + FUNCTION VALID_DEPTID ( + DEPTID NUMBER + ) RETURN BOOLEAN IS + VAL NUMBER; + BEGIN + SELECT + COUNT(*) INTO VAL + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = DEPTID; + RETURN VAL = 1; + END VALID_DEPTID; + + PROCEDURE ADD_EMPLOYEE( + F_NAME VARCHAR2, + L_NAME VARCHAR2, + MAIL VARCHAR2, + JOB VARCHAR2 := 'SA_REP', + MGR NUMBER := 145, + SAL NUMBER := 1000, + COMM NUMBER := 0, + DEPTID NUMBER := 30 + ) IS + BEGIN + IF(VALID_DEPTID(DEPTID)) THEN + INSERT INTO EMPLOYEES( + EMPLOYEE_ID, + FIRST_NAME, + LAST_NAME, + EMAIL, + JOB_ID, + MANAGER_ID, + SALARY, + COMMISSION_PCT, + DEPARTMENT_ID, + HIRE_DATE + ) VALUES( + EMPLOYEES_SEQ.NEXTVAL, + F_NAME, + L_NAME, + MAIL, + JOB, + MGR, + SAL, + COMM, + DEPTID, + TRUNC(SYSDATE()) + ); + END IF; + END ADD_EMPLOYEE; +END EMP_PKG; +/ + +-- Test1: +BEGIN + EMP_PKG.ADD_EMPLOYEE('Jane', 'Harris', 'JAHarris', DEPTID => 15); +END; +/ + +-- Test2: +BEGIN + EMP_PKG.ADD_EMPLOYEE('David', 'Smith', 'DASMITH', DEPTID => 80); +END; +/ + +-- Query: +SELECT + * +FROM EMPLOYEES; \ No newline at end of file diff --git a/PLSQL/Advanced/Les04.sql b/PLSQL/Advanced/Les04.sql index 77e40c0..216dfe4 100644 --- a/PLSQL/Advanced/Les04.sql +++ b/PLSQL/Advanced/Les04.sql @@ -1,192 +1,192 @@ --- Q2: --- Package: -CREATE OR REPLACE PACKAGE EMP_PKG IS - - PROCEDURE ADD_EMPLOYEE( - F_NAME VARCHAR2, - L_NAME VARCHAR2, - MAIL VARCHAR2, - JOB VARCHAR2 := 'SA_REP', - MGR NUMBER := 145, - SAL NUMBER := 1000, - COMM NUMBER := 0, - DEPTID NUMBER := 30 - ); - - PROCEDURE ADD_EMPLOYEE( - FNAME VARCHAR2, - LNAME VARCHAR2, - DEPT NUMBER - ); - - PROCEDURE GET_EMPLOYEE ( - ID NUMBER - ); -END EMP_PKG; -/ - --- Package body: -CREATE OR REPLACE PACKAGE BODY EMP_PKG IS - - PROCEDURE GET_EMPLOYEE ( - ID NUMBER - ) AS - REC EMPLOYEES%ROWTYPE; - BEGIN - SELECT - * INTO REC - FROM - EMPLOYEES - WHERE - EMPLOYEE_ID = ID; - DBMS_OUTPUT.PUT_LINE('Salary: ' - ||REC.SALARY); - DBMS_OUTPUT.PUT_LINE('JOB_ID: ' - ||REC.JOB_ID); - END GET_EMPLOYEE; - -- Private function: - FUNCTION VALID_DEPTID ( - DEPTID NUMBER - ) RETURN BOOLEAN IS - VAL NUMBER; - BEGIN - SELECT - COUNT(*) INTO VAL - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = DEPTID; - RETURN VAL = 1; - END VALID_DEPTID; - - PROCEDURE ADD_EMPLOYEE( - F_NAME VARCHAR2, - L_NAME VARCHAR2, - MAIL VARCHAR2, - JOB VARCHAR2 := 'SA_REP', - MGR NUMBER := 145, - SAL NUMBER := 1000, - COMM NUMBER := 0, - DEPTID NUMBER := 30 - ) IS - BEGIN - IF(VALID_DEPTID(DEPTID)) THEN - INSERT INTO EMPLOYEES( - EMPLOYEE_ID, - FIRST_NAME, - LAST_NAME, - EMAIL, - JOB_ID, - MANAGER_ID, - SALARY, - COMMISSION_PCT, - DEPARTMENT_ID, - HIRE_DATE - ) VALUES( - EMPLOYEES_SEQ.NEXTVAL, - F_NAME, - L_NAME, - MAIL, - JOB, - MGR, - SAL, - COMM, - DEPTID, - TRUNC(SYSDATE()) - ); - END IF; - END ADD_EMPLOYEE; - -- Overloading Procedure: - PROCEDURE ADD_EMPLOYEE( - FNAME VARCHAR2, - LNAME VARCHAR2, - DEPT NUMBER - ) IS - BEGIN - ADD_EMPLOYEE (F_NAME => FNAME, L_NAME => LNAME, MAIL => (SUBSTR(FNAME, 0, 1) - || SUBSTR(LNAME, 0, 7)), DEPTID => DEPT); - END ADD_EMPLOYEE; -END EMP_PKG; -/ - --- Test: -BEGIN - EMP_PKG.ADD_EMPLOYEE('Samuel', 'Joplin', 30); -END; -/ - --- Query: -SELECT - * -FROM - EMPLOYEES; - --- DO NOT FORGET TO RUN THE HR SCHEMA AFTER YOU MANIPULATE THE TABLES. - --- Q2: -CREATE OR REPLACE PACKAGE EMP_PKG IS - - FUNCTION GET_EMPLOYEE( - EMP_ID EMPLOYEES.EMPLOYEE_ID%TYPE - ) RETURN EMPLOYEES%ROWTYPE; - - FUNCTION GET_EMPLOYEE( - FAMILY_NAME EMPLOYEES.LAST_NAME%TYPE - ) RETURN EMPLOYEES%ROWTYPE; - - PROCEDURE PRINT_EMPLOYEE( - EMP EMPLOYEES%ROWTYPE - ); -END EMP_PKG; -/ - -CREATE OR REPLACE PACKAGE BODY EMP_PKG IS - - FUNCTION GET_EMPLOYEE( - EMP_ID EMPLOYEES.EMPLOYEE_ID%TYPE - ) RETURN EMPLOYEES%ROWTYPE IS - REC EMPLOYEES%ROWTYPE; - BEGIN - SELECT - * INTO REC - FROM - EMPLOYEES - WHERE - EMPLOYEE_ID = EMP_ID; - RETURN REC; - END GET_EMPLOYEE; - - FUNCTION GET_EMPLOYEE( - FAMILY_NAME EMPLOYEES.LAST_NAME%TYPE - ) RETURN EMPLOYEES%ROWTYPE IS - REC EMPLOYEES%ROWTYPE; - BEGIN - SELECT - * INTO REC - FROM - EMPLOYEES - WHERE - LAST_NAME = FAMILY_NAME; - RETURN REC; - END GET_EMPLOYEE; - - PROCEDURE PRINT_EMPLOYEE( - EMP EMPLOYEES%ROWTYPE - ) IS - BEGIN - DBMS_OUTPUT.PUT_LINE(EMP.EMPLOYEE_ID - || ' ' - || EMP.FIRST_NAME - || ' ' - ||EMP.LAST_NAME - || ' ' - ||EMP.JOB_ID); - END PRINT_EMPLOYEE; -END EMP_PKG; -/ - -BEGIN - EMP_PKG.PRINT_EMPLOYEE(EMP_PKG.GET_EMPLOYEE(100)); - -- EMP_PKG.PRINT_EMPLOYEE(EMP_PKG.GET_EMPLOYEE('Joplin')); -END; +-- Q2: +-- Package: +CREATE OR REPLACE PACKAGE EMP_PKG IS + + PROCEDURE ADD_EMPLOYEE( + F_NAME VARCHAR2, + L_NAME VARCHAR2, + MAIL VARCHAR2, + JOB VARCHAR2 := 'SA_REP', + MGR NUMBER := 145, + SAL NUMBER := 1000, + COMM NUMBER := 0, + DEPTID NUMBER := 30 + ); + + PROCEDURE ADD_EMPLOYEE( + FNAME VARCHAR2, + LNAME VARCHAR2, + DEPT NUMBER + ); + + PROCEDURE GET_EMPLOYEE ( + ID NUMBER + ); +END EMP_PKG; +/ + +-- Package body: +CREATE OR REPLACE PACKAGE BODY EMP_PKG IS + + PROCEDURE GET_EMPLOYEE ( + ID NUMBER + ) AS + REC EMPLOYEES%ROWTYPE; + BEGIN + SELECT + * INTO REC + FROM + EMPLOYEES + WHERE + EMPLOYEE_ID = ID; + DBMS_OUTPUT.PUT_LINE('Salary: ' + ||REC.SALARY); + DBMS_OUTPUT.PUT_LINE('JOB_ID: ' + ||REC.JOB_ID); + END GET_EMPLOYEE; + -- Private function: + FUNCTION VALID_DEPTID ( + DEPTID NUMBER + ) RETURN BOOLEAN IS + VAL NUMBER; + BEGIN + SELECT + COUNT(*) INTO VAL + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = DEPTID; + RETURN VAL = 1; + END VALID_DEPTID; + + PROCEDURE ADD_EMPLOYEE( + F_NAME VARCHAR2, + L_NAME VARCHAR2, + MAIL VARCHAR2, + JOB VARCHAR2 := 'SA_REP', + MGR NUMBER := 145, + SAL NUMBER := 1000, + COMM NUMBER := 0, + DEPTID NUMBER := 30 + ) IS + BEGIN + IF(VALID_DEPTID(DEPTID)) THEN + INSERT INTO EMPLOYEES( + EMPLOYEE_ID, + FIRST_NAME, + LAST_NAME, + EMAIL, + JOB_ID, + MANAGER_ID, + SALARY, + COMMISSION_PCT, + DEPARTMENT_ID, + HIRE_DATE + ) VALUES( + EMPLOYEES_SEQ.NEXTVAL, + F_NAME, + L_NAME, + MAIL, + JOB, + MGR, + SAL, + COMM, + DEPTID, + TRUNC(SYSDATE()) + ); + END IF; + END ADD_EMPLOYEE; + -- Overloading Procedure: + PROCEDURE ADD_EMPLOYEE( + FNAME VARCHAR2, + LNAME VARCHAR2, + DEPT NUMBER + ) IS + BEGIN + ADD_EMPLOYEE (F_NAME => FNAME, L_NAME => LNAME, MAIL => (SUBSTR(FNAME, 0, 1) + || SUBSTR(LNAME, 0, 7)), DEPTID => DEPT); + END ADD_EMPLOYEE; +END EMP_PKG; +/ + +-- Test: +BEGIN + EMP_PKG.ADD_EMPLOYEE('Samuel', 'Joplin', 30); +END; +/ + +-- Query: +SELECT + * +FROM + EMPLOYEES; + +-- DO NOT FORGET TO RUN THE HR SCHEMA AFTER YOU MANIPULATE THE TABLES. + +-- Q2: +CREATE OR REPLACE PACKAGE EMP_PKG IS + + FUNCTION GET_EMPLOYEE( + EMP_ID EMPLOYEES.EMPLOYEE_ID%TYPE + ) RETURN EMPLOYEES%ROWTYPE; + + FUNCTION GET_EMPLOYEE( + FAMILY_NAME EMPLOYEES.LAST_NAME%TYPE + ) RETURN EMPLOYEES%ROWTYPE; + + PROCEDURE PRINT_EMPLOYEE( + EMP EMPLOYEES%ROWTYPE + ); +END EMP_PKG; +/ + +CREATE OR REPLACE PACKAGE BODY EMP_PKG IS + + FUNCTION GET_EMPLOYEE( + EMP_ID EMPLOYEES.EMPLOYEE_ID%TYPE + ) RETURN EMPLOYEES%ROWTYPE IS + REC EMPLOYEES%ROWTYPE; + BEGIN + SELECT + * INTO REC + FROM + EMPLOYEES + WHERE + EMPLOYEE_ID = EMP_ID; + RETURN REC; + END GET_EMPLOYEE; + + FUNCTION GET_EMPLOYEE( + FAMILY_NAME EMPLOYEES.LAST_NAME%TYPE + ) RETURN EMPLOYEES%ROWTYPE IS + REC EMPLOYEES%ROWTYPE; + BEGIN + SELECT + * INTO REC + FROM + EMPLOYEES + WHERE + LAST_NAME = FAMILY_NAME; + RETURN REC; + END GET_EMPLOYEE; + + PROCEDURE PRINT_EMPLOYEE( + EMP EMPLOYEES%ROWTYPE + ) IS + BEGIN + DBMS_OUTPUT.PUT_LINE(EMP.EMPLOYEE_ID + || ' ' + || EMP.FIRST_NAME + || ' ' + ||EMP.LAST_NAME + || ' ' + ||EMP.JOB_ID); + END PRINT_EMPLOYEE; +END EMP_PKG; +/ + +BEGIN + EMP_PKG.PRINT_EMPLOYEE(EMP_PKG.GET_EMPLOYEE(100)); + -- EMP_PKG.PRINT_EMPLOYEE(EMP_PKG.GET_EMPLOYEE('Joplin')); +END; / \ No newline at end of file diff --git a/PLSQL/Advanced/Les10.sql b/PLSQL/Advanced/Les10.sql index fa97ce7..f86628c 100644 --- a/PLSQL/Advanced/Les10.sql +++ b/PLSQL/Advanced/Les10.sql @@ -1,48 +1,48 @@ --- Q1: -CREATE OR REPLACE PROCEDURE CHECK_SALARY( - JOBID VARCHAR2, - SAL NUMBER -) IS - MAXSAL NUMBER; - MINSAL NUMBER; -BEGIN - SELECT - MIN_SALARY, - MAX_SALARY INTO MINSAL, - MAXSAL - FROM - JOBS - WHERE - JOB_ID = JOBID; - IF(SAL NOT IN (MAXSAL, MINSAL)) THEN - RAISE_APPLICATION_ERROR(-20202, 'Employee salary not in the accepted range for the job'); - END IF; -END; -/ - -CREATE OR REPLACE TRIGGER CHECK_SALARY_TRIG BEFORE - INSERT OR UPDATE OF SALARY OR UPDATE OF JOB_ID ON EMPLOYEES FOR EACH ROW -BEGIN - CHECK_SALARY (:NEW.JOB_ID, :NEW.SALARY); -END; -/ - --- Q3: -CREATE OR REPLACE TRIGGER CHECK_SALARY_TRIG BEFORE - INSERT OR UPDATE OF SALARY OR UPDATE OF JOB_ID ON EMPLOYEES FOR EACH ROW -BEGIN - CHECK_SALARY (:NEW.JOB_ID, :NEW.SALARY); -END; -/ - --- Q4 (Section Task): -CREATE OR REPLACE TRIGGER DELETE_EMP_TRG BEFORE - DELETE ON EMPLOYEES FOR EACH ROW -BEGIN - IF NOT (TO_CHAR(SYSDATE(), 'DY') IN ('SAT', 'SUN') - OR TO_CHAR(SYSDATE(), 'HH24:MI') NOT BETWEEN '08:00' - AND '18:00') THEN - RAISE_APPLICATION_ERROR(-20500, 'You may delete from EMPLOYEES table only during business hours.'); - END IF; -END; +-- Q1: +CREATE OR REPLACE PROCEDURE CHECK_SALARY( + JOBID VARCHAR2, + SAL NUMBER +) IS + MAXSAL NUMBER; + MINSAL NUMBER; +BEGIN + SELECT + MIN_SALARY, + MAX_SALARY INTO MINSAL, + MAXSAL + FROM + JOBS + WHERE + JOB_ID = JOBID; + IF(SAL NOT IN (MAXSAL, MINSAL)) THEN + RAISE_APPLICATION_ERROR(-20202, 'Employee salary not in the accepted range for the job'); + END IF; +END; +/ + +CREATE OR REPLACE TRIGGER CHECK_SALARY_TRIG BEFORE + INSERT OR UPDATE OF SALARY OR UPDATE OF JOB_ID ON EMPLOYEES FOR EACH ROW +BEGIN + CHECK_SALARY (:NEW.JOB_ID, :NEW.SALARY); +END; +/ + +-- Q3: +CREATE OR REPLACE TRIGGER CHECK_SALARY_TRIG BEFORE + INSERT OR UPDATE OF SALARY OR UPDATE OF JOB_ID ON EMPLOYEES FOR EACH ROW +BEGIN + CHECK_SALARY (:NEW.JOB_ID, :NEW.SALARY); +END; +/ + +-- Q4 (Section Task): +CREATE OR REPLACE TRIGGER DELETE_EMP_TRG BEFORE + DELETE ON EMPLOYEES FOR EACH ROW +BEGIN + IF NOT (TO_CHAR(SYSDATE(), 'DY') IN ('SAT', 'SUN') + OR TO_CHAR(SYSDATE(), 'HH24:MI') NOT BETWEEN '08:00' + AND '18:00') THEN + RAISE_APPLICATION_ERROR(-20500, 'You may delete from EMPLOYEES table only during business hours.'); + END IF; +END; / \ No newline at end of file diff --git a/PLSQL/Advanced/Scheduling.sql b/PLSQL/Advanced/Scheduling.sql index 4d212ac..6e62500 100644 --- a/PLSQL/Advanced/Scheduling.sql +++ b/PLSQL/Advanced/Scheduling.sql @@ -1,83 +1,83 @@ --- Create a table: -BEGIN - EXECUTE IMMEDIATE 'CREATE TABLE TEMP ( - ID NUMBER PRIMARY KEY -)'; -END; -/ - --- Insert a value initially into the table: -BEGIN - INSERT INTO TEMP VALUES ( - 0 - ); -END; -/ - --- Create a procedure that inserts into it: -CREATE OR REPLACE PROCEDURE INSERT_TEMP AS - MAXNUM NUMBER; -BEGIN - SELECT - MAX(ID) INTO MAXNUM - FROM - TEMP; - INSERT INTO TEMP VALUES ( - MAXNUM+1 - ); -END; -/ - --- Create a program that utilizes the procedure: -BEGIN - DBMS_SCHEDULER.CREATE_PROGRAM( - PROGRAM_NAME => 'inset_into_temp', - PROGRAM_TYPE => 'Stored_procedure', - PROGRAM_ACTION => 'INSERT_TEMP', - ENABLED => TRUE - ); -END; -/ - --- Create a scheduler: -BEGIN - DBMS_SCHEDULER.CREATE_SCHEDULE( - SCHEDULE_NAME => 'Temp_schedule', - START_DATE => SYSTIMESTAMP, - REPEAT_INTERVAL => 'Freq = secondly; interval = 5' - ); -END; -/ - --- Link the program and the scheduler to a job: -BEGIN - DBMS_SCHEDULER.CREATE_JOB( - JOB_NAME => 'Test_Temp', - PROGRAM_NAME => 'inset_into_temp', - SCHEDULE_NAME =>'Temp_schedule', - ENABLED => TRUE - ); -END; -/ - --- Test: -SELECT - * -FROM - TEMP; - --- Undo what you have done: -BEGIN - DBMS_SCHEDULER.DROP_JOB( - JOB_NAME =>'Test_temp' - ); - DBMS_SCHEDULER.DROP_PROGRAM( - PROGRAM_NAME =>'inset_into_temp' - ); - DBMS_SCHEDULER.DROP_SCHEDULE( - SCHEDULE_NAME =>'Temp_schedule' - ); -END; -/ - -DROP TABLE TEMP; +-- Create a table: +BEGIN + EXECUTE IMMEDIATE 'CREATE TABLE TEMP ( + ID NUMBER PRIMARY KEY +)'; +END; +/ + +-- Insert a value initially into the table: +BEGIN + INSERT INTO TEMP VALUES ( + 0 + ); +END; +/ + +-- Create a procedure that inserts into it: +CREATE OR REPLACE PROCEDURE INSERT_TEMP AS + MAXNUM NUMBER; +BEGIN + SELECT + MAX(ID) INTO MAXNUM + FROM + TEMP; + INSERT INTO TEMP VALUES ( + MAXNUM+1 + ); +END; +/ + +-- Create a program that utilizes the procedure: +BEGIN + DBMS_SCHEDULER.CREATE_PROGRAM( + PROGRAM_NAME => 'inset_into_temp', + PROGRAM_TYPE => 'Stored_procedure', + PROGRAM_ACTION => 'INSERT_TEMP', + ENABLED => TRUE + ); +END; +/ + +-- Create a scheduler: +BEGIN + DBMS_SCHEDULER.CREATE_SCHEDULE( + SCHEDULE_NAME => 'Temp_schedule', + START_DATE => SYSTIMESTAMP, + REPEAT_INTERVAL => 'Freq = secondly; interval = 5' + ); +END; +/ + +-- Link the program and the scheduler to a job: +BEGIN + DBMS_SCHEDULER.CREATE_JOB( + JOB_NAME => 'Test_Temp', + PROGRAM_NAME => 'inset_into_temp', + SCHEDULE_NAME =>'Temp_schedule', + ENABLED => TRUE + ); +END; +/ + +-- Test: +SELECT + * +FROM + TEMP; + +-- Undo what you have done: +BEGIN + DBMS_SCHEDULER.DROP_JOB( + JOB_NAME =>'Test_temp' + ); + DBMS_SCHEDULER.DROP_PROGRAM( + PROGRAM_NAME =>'inset_into_temp' + ); + DBMS_SCHEDULER.DROP_SCHEDULE( + SCHEDULE_NAME =>'Temp_schedule' + ); +END; +/ + +DROP TABLE TEMP; diff --git a/PLSQL/Advanced/Sec08.sql b/PLSQL/Advanced/Sec08.sql index 979527d..a466338 100644 --- a/PLSQL/Advanced/Sec08.sql +++ b/PLSQL/Advanced/Sec08.sql @@ -1,28 +1,28 @@ -SELECT - * -FROM - EMPLOYEES -WHERE - JOB_ID = 'SA_REP' - AND DEPARTMENT_ID IS NULL; - -CREATE OR REPLACE TRIGGER DELETE_EMP_TRG BEFORE - DELETE ON EMPLOYEES -BEGIN - IF NOT (TO_CHAR(SYSDATE(), 'DY') IN ('SAT', 'SUN') - OR TO_CHAR(SYSDATE(), 'HH24:MI') NOT BETWEEN '08:00' - AND '18:00') THEN - RAISE_APPLICATION_ERROR(-20500, 'You may delete from EMPLOYEES table only during business hours.'); - END IF; -END; -/ - -DELETE FROM EMPLOYEES -WHERE - JOB_ID = 'SA_REP' - AND DEPARTMENT_ID IS NULL; - -SELECT - * -FROM +SELECT + * +FROM + EMPLOYEES +WHERE + JOB_ID = 'SA_REP' + AND DEPARTMENT_ID IS NULL; + +CREATE OR REPLACE TRIGGER DELETE_EMP_TRG BEFORE + DELETE ON EMPLOYEES +BEGIN + IF NOT (TO_CHAR(SYSDATE(), 'DY') IN ('SAT', 'SUN') + OR TO_CHAR(SYSDATE(), 'HH24:MI') NOT BETWEEN '08:00' + AND '18:00') THEN + RAISE_APPLICATION_ERROR(-20500, 'You may delete from EMPLOYEES table only during business hours.'); + END IF; +END; +/ + +DELETE FROM EMPLOYEES +WHERE + JOB_ID = 'SA_REP' + AND DEPARTMENT_ID IS NULL; + +SELECT + * +FROM EMPLOYEES; \ No newline at end of file diff --git a/PLSQL/Fundamentals/Les02.sql b/PLSQL/Fundamentals/Les02.sql index b4eb636..61667a4 100644 --- a/PLSQL/Fundamentals/Les02.sql +++ b/PLSQL/Fundamentals/Les02.sql @@ -1,36 +1,36 @@ ---Q4: -DECLARE - TODAY DATE := SYSDATE; - TOMORROW DATE; -BEGIN - TOMORROW := TODAY +1; - DBMS_OUTPUT.PUT_LINE('Hello World'); - DBMS_OUTPUT.PUT_LINE('TODAY IS ' - ||TODAY); - DBMS_OUTPUT.PUT_LINE('TOMORROW IS ' - ||TOMORROW); -END; -/ - ---Q5: -variable basic_percent number; - -variable pf_percent number; - -DECLARE - TODAY DATE := SYSDATE; - TOMORROW DATE; -BEGIN - TOMORROW := TODAY +1; - :PF_PERCENT := 12; - DBMS_OUTPUT.PUT_LINE('Hello World'); - DBMS_OUTPUT.PUT_LINE('TODAY IS ' - ||TODAY); - DBMS_OUTPUT.PUT_LINE('TOMORROW IS ' - ||TOMORROW); -END; -/ - -print basic_percent; - +--Q4: +DECLARE + TODAY DATE := SYSDATE; + TOMORROW DATE; +BEGIN + TOMORROW := TODAY +1; + DBMS_OUTPUT.PUT_LINE('Hello World'); + DBMS_OUTPUT.PUT_LINE('TODAY IS ' + ||TODAY); + DBMS_OUTPUT.PUT_LINE('TOMORROW IS ' + ||TOMORROW); +END; +/ + +--Q5: +variable basic_percent number; + +variable pf_percent number; + +DECLARE + TODAY DATE := SYSDATE; + TOMORROW DATE; +BEGIN + TOMORROW := TODAY +1; + :PF_PERCENT := 12; + DBMS_OUTPUT.PUT_LINE('Hello World'); + DBMS_OUTPUT.PUT_LINE('TODAY IS ' + ||TODAY); + DBMS_OUTPUT.PUT_LINE('TOMORROW IS ' + ||TOMORROW); +END; +/ + +print basic_percent; + print pf_percent; \ No newline at end of file diff --git a/PLSQL/Fundamentals/Les04.sql b/PLSQL/Fundamentals/Les04.sql index f515df8..f7613a2 100644 --- a/PLSQL/Fundamentals/Les04.sql +++ b/PLSQL/Fundamentals/Les04.sql @@ -1,73 +1,73 @@ ---Q1: -DECLARE - MAX_DEPTNO NUMBER; -BEGIN - SELECT - MAX(DEPARTMENT_ID) INTO MAX_DEPTNO - FROM - DEPARTMENTS; - DBMS_OUTPUT.PUT_LINE('The maximum department_id is : ' - ||MAX_DEPTNO); -END; - --Q2: -VARIABLE DEPT_ID NUMBER; -DECLARE - DEPT_NAME DEPARTMENTS.DEPARTMENT_NAME%TYPE := 'Education'; -BEGIN - SELECT - MAX(DEPARTMENT_ID) + 10 INTO :DEPT_ID - FROM - DEPARTMENTS; - DBMS_OUTPUT.PUT_LINE('The maximum department_id is : ' - ||(:DEPT_ID - 10)); - INSERT INTO DEPARTMENTS VALUES( - :DEPT_ID, - DEPT_NAME, - NULL, - NULL - ); - DBMS_OUTPUT.PUT_LINE('SQL%ROWCOUNT gives ' - || SQL%ROWCOUNT); -END; - --Show what we have done: -SELECT - * -FROM - DEPARTMENTS; - --Undo changes to the hr schema before next question: -ROLLBACK; - --Q3: - --insert: -VARIABLE DEPT_ID NUMBER; -DECLARE - DEPT_NAME DEPARTMENTS.DEPARTMENT_NAME%TYPE := 'Education'; -BEGIN - SELECT - MAX(DEPARTMENT_ID) + 10 INTO :DEPT_ID - FROM - DEPARTMENTS; - INSERT INTO DEPARTMENTS VALUES( - :DEPT_ID, - DEPT_NAME, - NULL, - NULL - ); -END; -/ - ---update: -BEGIN - UPDATE DEPARTMENTS - SET - LOCATION_ID = 3000 - WHERE - DEPARTMENT_ID = :DEPT_ID; -END; -/ - ---delete: -BEGIN - DELETE FROM DEPARTMENTS - WHERE - DEPARTMENT_ID = :DEPT_ID; +--Q1: +DECLARE + MAX_DEPTNO NUMBER; +BEGIN + SELECT + MAX(DEPARTMENT_ID) INTO MAX_DEPTNO + FROM + DEPARTMENTS; + DBMS_OUTPUT.PUT_LINE('The maximum department_id is : ' + ||MAX_DEPTNO); +END; + --Q2: +VARIABLE DEPT_ID NUMBER; +DECLARE + DEPT_NAME DEPARTMENTS.DEPARTMENT_NAME%TYPE := 'Education'; +BEGIN + SELECT + MAX(DEPARTMENT_ID) + 10 INTO :DEPT_ID + FROM + DEPARTMENTS; + DBMS_OUTPUT.PUT_LINE('The maximum department_id is : ' + ||(:DEPT_ID - 10)); + INSERT INTO DEPARTMENTS VALUES( + :DEPT_ID, + DEPT_NAME, + NULL, + NULL + ); + DBMS_OUTPUT.PUT_LINE('SQL%ROWCOUNT gives ' + || SQL%ROWCOUNT); +END; + --Show what we have done: +SELECT + * +FROM + DEPARTMENTS; + --Undo changes to the hr schema before next question: +ROLLBACK; + --Q3: + --insert: +VARIABLE DEPT_ID NUMBER; +DECLARE + DEPT_NAME DEPARTMENTS.DEPARTMENT_NAME%TYPE := 'Education'; +BEGIN + SELECT + MAX(DEPARTMENT_ID) + 10 INTO :DEPT_ID + FROM + DEPARTMENTS; + INSERT INTO DEPARTMENTS VALUES( + :DEPT_ID, + DEPT_NAME, + NULL, + NULL + ); +END; +/ + +--update: +BEGIN + UPDATE DEPARTMENTS + SET + LOCATION_ID = 3000 + WHERE + DEPARTMENT_ID = :DEPT_ID; +END; +/ + +--delete: +BEGIN + DELETE FROM DEPARTMENTS + WHERE + DEPARTMENT_ID = :DEPT_ID; END; \ No newline at end of file diff --git a/PLSQL/Fundamentals/Les05.sql b/PLSQL/Fundamentals/Les05.sql index a7a5d2c..50b199f 100644 --- a/PLSQL/Fundamentals/Les05.sql +++ b/PLSQL/Fundamentals/Les05.sql @@ -1,50 +1,50 @@ ---Q1: -BEGIN - EXECUTE IMMEDIATE 'create table messages(numbers number)'; -END; - -DECLARE - I NUMBER; -BEGIN - FOR I IN 1 .. 10 LOOP - IF I != 6 AND I!= 8 THEN - INSERT INTO MESSAGES VALUES( - I - ); - END IF; - END LOOP; -END; - ---Q2: -BEGIN - EXECUTE IMMEDIATE 'create table emp( - employee_id number, - salary number, - stars varchar2(50) )'; -END; - -DECLARE - EMPNO NUMBER := 176; - ASTERISK VARCHAR2(50) := ''; - SAL NUMBER; - RATIO NUMBER; -BEGIN - SELECT - SALARY INTO SAL - FROM - EMPLOYEES - WHERE - EMPLOYEE_ID = EMPNO; - RATIO := SAL/1000; - LOOP - ASTERISK := ASTERISK||'*'; - RATIO := RATIO - 1; - EXIT WHEN RATIO < 0; - END LOOP; - - INSERT INTO EMP VALUES ( - EMPNO, - SAL, - ASTERISK - ); +--Q1: +BEGIN + EXECUTE IMMEDIATE 'create table messages(numbers number)'; +END; + +DECLARE + I NUMBER; +BEGIN + FOR I IN 1 .. 10 LOOP + IF I != 6 AND I!= 8 THEN + INSERT INTO MESSAGES VALUES( + I + ); + END IF; + END LOOP; +END; + +--Q2: +BEGIN + EXECUTE IMMEDIATE 'create table emp( + employee_id number, + salary number, + stars varchar2(50) )'; +END; + +DECLARE + EMPNO NUMBER := 176; + ASTERISK VARCHAR2(50) := ''; + SAL NUMBER; + RATIO NUMBER; +BEGIN + SELECT + SALARY INTO SAL + FROM + EMPLOYEES + WHERE + EMPLOYEE_ID = EMPNO; + RATIO := SAL/1000; + LOOP + ASTERISK := ASTERISK||'*'; + RATIO := RATIO - 1; + EXIT WHEN RATIO < 0; + END LOOP; + + INSERT INTO EMP VALUES ( + EMPNO, + SAL, + ASTERISK + ); END; \ No newline at end of file diff --git a/PLSQL/Fundamentals/Les06.sql b/PLSQL/Fundamentals/Les06.sql index af167f0..5dbb1cb 100644 --- a/PLSQL/Fundamentals/Les06.sql +++ b/PLSQL/Fundamentals/Les06.sql @@ -1,118 +1,118 @@ ---Q1: -DECLARE - COUNTRY_RECORD COUNTRIES%ROWTYPE; - COUNTRYID COUNTRIES.COUNTRY_ID%TYPE := '&COUNTRY_ID'; -BEGIN - SELECT - * INTO COUNTRY_RECORD - FROM - COUNTRIES - WHERE - COUNTRY_ID = COUNTRYID; - DBMS_OUTPUT.PUT_LINE('Country Name: ' - ||COUNTRY_RECORD.COUNTRY_NAME - ||' Region: ' - ||COUNTRY_RECORD.REGION_ID); -END; -/ - ---Q2: -DECLARE - TYPE DEP_TABLE IS - TABLE OF DEPARTMENTS.DEPARTMENT_NAME%TYPE INDEX BY PLS_INTEGER; -- With index = Map. - MY_DEPT DEP_TABLE; -- Don't need to Initialize. - LOOP_COUNT NUMBER := 10; -BEGIN - LOOP - SELECT - DEPARTMENT_NAME INTO MY_DEPT(LOOP_COUNT) -- Enters any index (But it's recommended to be sequential). - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = LOOP_COUNT; - DBMS_OUTPUT.PUT_LINE(MY_DEPT(LOOP_COUNT)); -- Indexes here are 10, 20, 30... etc. - LOOP_COUNT := LOOP_COUNT + 10; - EXIT WHEN LOOP_COUNT > 100; - END LOOP; -END; -/ - ---Q2*: -DECLARE - TYPE DEP_TABLE IS - TABLE OF DEPARTMENTS.DEPARTMENT_NAME%TYPE; -- No index = Linked List. - MY_DEPT DEP_TABLE := DEP_TABLE(); -- Must Initialize to empty Collection otherwise it's NULL. - LOOP_COUNT NUMBER := 10; -BEGIN - LOOP - MY_DEPT.EXTEND; -- Have to enlarge the size (it's initially 0). - SELECT - DEPARTMENT_NAME INTO MY_DEPT(MY_DEPT.LAST) -- Add at The tail of the list. - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = LOOP_COUNT; - LOOP_COUNT := LOOP_COUNT + 10; - EXIT WHEN LOOP_COUNT > 100; - END LOOP; - - LOOP_COUNT := 1; - FOR LOOP_COUNT IN 1..MY_DEPT.COUNT() LOOP -- Now you have indexes that you can loop over sequentially. - DBMS_OUTPUT.PUT_LINE(MY_DEPT(LOOP_COUNT)); - END LOOP; -END; -/ - ---Q2**: -DECLARE - TYPE DEP_TABLE IS - VARRAY(10) OF DEPARTMENTS.DEPARTMENT_NAME%TYPE; -- Varray = Upper limit for size. - MY_DEPT DEP_TABLE := DEP_TABLE(); -- You also have to Initialize. - LOOP_COUNT NUMBER := 10; -BEGIN - LOOP - MY_DEPT.EXTEND; -- Same thing with the list. - SELECT - DEPARTMENT_NAME INTO MY_DEPT(MY_DEPT.LAST) -- You know the drill. - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = LOOP_COUNT; - LOOP_COUNT := LOOP_COUNT + 10; - EXIT WHEN LOOP_COUNT > 100; - END LOOP; - - LOOP_COUNT := 1; - FOR LOOP_COUNT IN 1..MY_DEPT.COUNT() LOOP -- Same idea. - DBMS_OUTPUT.PUT_LINE(MY_DEPT(LOOP_COUNT)); - END LOOP; -END; -/ - ---Q3: -DECLARE - TYPE DEP_TABLE IS - TABLE OF DEPARTMENTS%ROWTYPE INDEX BY PLS_INTEGER; - MY_DEPT DEP_TABLE; - LOOP_COUNT NUMBER := 10; -BEGIN - LOOP - SELECT - * INTO MY_DEPT(LOOP_COUNT) - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = LOOP_COUNT; - DBMS_OUTPUT.PUT_LINE('Department Number: ' - ||MY_DEPT(LOOP_COUNT).DEPARTMENT_ID - || ' Department Name: ' - ||MY_DEPT(LOOP_COUNT).DEPARTMENT_NAME - ||' Manager Id: ' - || MY_DEPT(LOOP_COUNT).MANAGER_ID - ||' Location Id: ' - ||MY_DEPT(LOOP_COUNT).LOCATION_ID); - LOOP_COUNT := LOOP_COUNT + 10; - EXIT WHEN LOOP_COUNT > 100; - END LOOP; -END; +--Q1: +DECLARE + COUNTRY_RECORD COUNTRIES%ROWTYPE; + COUNTRYID COUNTRIES.COUNTRY_ID%TYPE := '&COUNTRY_ID'; +BEGIN + SELECT + * INTO COUNTRY_RECORD + FROM + COUNTRIES + WHERE + COUNTRY_ID = COUNTRYID; + DBMS_OUTPUT.PUT_LINE('Country Name: ' + ||COUNTRY_RECORD.COUNTRY_NAME + ||' Region: ' + ||COUNTRY_RECORD.REGION_ID); +END; +/ + +--Q2: +DECLARE + TYPE DEP_TABLE IS + TABLE OF DEPARTMENTS.DEPARTMENT_NAME%TYPE INDEX BY PLS_INTEGER; -- With index = Map. + MY_DEPT DEP_TABLE; -- Don't need to Initialize. + LOOP_COUNT NUMBER := 10; +BEGIN + LOOP + SELECT + DEPARTMENT_NAME INTO MY_DEPT(LOOP_COUNT) -- Enters any index (But it's recommended to be sequential). + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = LOOP_COUNT; + DBMS_OUTPUT.PUT_LINE(MY_DEPT(LOOP_COUNT)); -- Indexes here are 10, 20, 30... etc. + LOOP_COUNT := LOOP_COUNT + 10; + EXIT WHEN LOOP_COUNT > 100; + END LOOP; +END; +/ + +--Q2*: +DECLARE + TYPE DEP_TABLE IS + TABLE OF DEPARTMENTS.DEPARTMENT_NAME%TYPE; -- No index = Linked List. + MY_DEPT DEP_TABLE := DEP_TABLE(); -- Must Initialize to empty Collection otherwise it's NULL. + LOOP_COUNT NUMBER := 10; +BEGIN + LOOP + MY_DEPT.EXTEND; -- Have to enlarge the size (it's initially 0). + SELECT + DEPARTMENT_NAME INTO MY_DEPT(MY_DEPT.LAST) -- Add at The tail of the list. + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = LOOP_COUNT; + LOOP_COUNT := LOOP_COUNT + 10; + EXIT WHEN LOOP_COUNT > 100; + END LOOP; + + LOOP_COUNT := 1; + FOR LOOP_COUNT IN 1..MY_DEPT.COUNT() LOOP -- Now you have indexes that you can loop over sequentially. + DBMS_OUTPUT.PUT_LINE(MY_DEPT(LOOP_COUNT)); + END LOOP; +END; +/ + +--Q2**: +DECLARE + TYPE DEP_TABLE IS + VARRAY(10) OF DEPARTMENTS.DEPARTMENT_NAME%TYPE; -- Varray = Upper limit for size. + MY_DEPT DEP_TABLE := DEP_TABLE(); -- You also have to Initialize. + LOOP_COUNT NUMBER := 10; +BEGIN + LOOP + MY_DEPT.EXTEND; -- Same thing with the list. + SELECT + DEPARTMENT_NAME INTO MY_DEPT(MY_DEPT.LAST) -- You know the drill. + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = LOOP_COUNT; + LOOP_COUNT := LOOP_COUNT + 10; + EXIT WHEN LOOP_COUNT > 100; + END LOOP; + + LOOP_COUNT := 1; + FOR LOOP_COUNT IN 1..MY_DEPT.COUNT() LOOP -- Same idea. + DBMS_OUTPUT.PUT_LINE(MY_DEPT(LOOP_COUNT)); + END LOOP; +END; +/ + +--Q3: +DECLARE + TYPE DEP_TABLE IS + TABLE OF DEPARTMENTS%ROWTYPE INDEX BY PLS_INTEGER; + MY_DEPT DEP_TABLE; + LOOP_COUNT NUMBER := 10; +BEGIN + LOOP + SELECT + * INTO MY_DEPT(LOOP_COUNT) + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = LOOP_COUNT; + DBMS_OUTPUT.PUT_LINE('Department Number: ' + ||MY_DEPT(LOOP_COUNT).DEPARTMENT_ID + || ' Department Name: ' + ||MY_DEPT(LOOP_COUNT).DEPARTMENT_NAME + ||' Manager Id: ' + || MY_DEPT(LOOP_COUNT).MANAGER_ID + ||' Location Id: ' + ||MY_DEPT(LOOP_COUNT).LOCATION_ID); + LOOP_COUNT := LOOP_COUNT + 10; + EXIT WHEN LOOP_COUNT > 100; + END LOOP; +END; / \ No newline at end of file diff --git a/PLSQL/Fundamentals/Les07.sql b/PLSQL/Fundamentals/Les07.sql index fe4ddaa..25769d2 100644 --- a/PLSQL/Fundamentals/Les07.sql +++ b/PLSQL/Fundamentals/Les07.sql @@ -1,106 +1,106 @@ ---Q1: --- First create the table: -BEGIN - EXECUTE IMMEDIATE 'create table top_salaries ( - salary number - )'; -END; -/ - --- Then Insert into it the desired values: -DECLARE - N NUMBER := &VAL; - CURSOR CUR IS ( - SELECT - DISTINCT SALARY, - DENSE_RANK() OVER(ORDER BY SALARY DESC) AS SAL_RANK - FROM - EMPLOYEES - ); -BEGIN - FOR REC IN CUR LOOP - EXIT WHEN REC.SAL_RANK > N; - INSERT INTO TOP_SALARIES VALUES( - REC.SALARY - ); - END LOOP; -END; -/ - --- Finally show what we have done: -SELECT - * -FROM - TOP_SALARIES; - ---Q2: -DECLARE - DEPTNO NUMBER := &VAL; - CURSOR CUR IS ( - SELECT - LAST_NAME, - MANAGER_ID, - SALARY - FROM - EMPLOYEES - WHERE - DEPARTMENT_ID = DEPTNO - ); -BEGIN - FOR REC IN CUR LOOP - IF REC.SALARY < 5000 AND REC.MANAGER_ID IN (101, 124) THEN - DBMS_OUTPUT.PUT_LINE(REC.LAST_NAME - ||' Due for a raise'); - ELSE - DBMS_OUTPUT.PUT_LINE(REC.LAST_NAME - ||' Not due for a raise'); - END IF; - END LOOP; -END; -/ - ---Q3: - -DECLARE - CURSOR DEPT_CURSOR IS - SELECT - DEPARTMENT_ID, - DEPARTMENT_NAME - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID < 100 - ORDER BY - 1; - CURSOR EMP_CURSOR( - DEPT_ID NUMBER - ) IS - SELECT - LAST_NAME, - JOB_ID, - HIRE_DATE, - SALARY - FROM - EMPLOYEES - WHERE - EMPLOYEE_ID < 120 - AND DEPARTMENT_ID = DEPT_ID; -BEGIN - FOR REC IN DEPT_CURSOR LOOP - DBMS_OUTPUT.PUT_LINE(REC.DEPARTMENT_ID - ||' ' - ||REC.DEPARTMENT_NAME); - FOR REC2 IN EMP_CURSOR(REC.DEPARTMENT_ID) LOOP - DBMS_OUTPUT.PUT_LINE(REC2.LAST_NAME - ||' ' - ||REC2.JOB_ID - ||' ' - ||REC2.HIRE_DATE - ||' ' - ||REC2.SALARY); - END LOOP; - DBMS_OUTPUT.PUT_LINE('----------------------------------'); - END LOOP; -END; -/ - +--Q1: +-- First create the table: +BEGIN + EXECUTE IMMEDIATE 'create table top_salaries ( + salary number + )'; +END; +/ + +-- Then Insert into it the desired values: +DECLARE + N NUMBER := &VAL; + CURSOR CUR IS ( + SELECT + DISTINCT SALARY, + DENSE_RANK() OVER(ORDER BY SALARY DESC) AS SAL_RANK + FROM + EMPLOYEES + ); +BEGIN + FOR REC IN CUR LOOP + EXIT WHEN REC.SAL_RANK > N; + INSERT INTO TOP_SALARIES VALUES( + REC.SALARY + ); + END LOOP; +END; +/ + +-- Finally show what we have done: +SELECT + * +FROM + TOP_SALARIES; + +--Q2: +DECLARE + DEPTNO NUMBER := &VAL; + CURSOR CUR IS ( + SELECT + LAST_NAME, + MANAGER_ID, + SALARY + FROM + EMPLOYEES + WHERE + DEPARTMENT_ID = DEPTNO + ); +BEGIN + FOR REC IN CUR LOOP + IF REC.SALARY < 5000 AND REC.MANAGER_ID IN (101, 124) THEN + DBMS_OUTPUT.PUT_LINE(REC.LAST_NAME + ||' Due for a raise'); + ELSE + DBMS_OUTPUT.PUT_LINE(REC.LAST_NAME + ||' Not due for a raise'); + END IF; + END LOOP; +END; +/ + +--Q3: + +DECLARE + CURSOR DEPT_CURSOR IS + SELECT + DEPARTMENT_ID, + DEPARTMENT_NAME + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID < 100 + ORDER BY + 1; + CURSOR EMP_CURSOR( + DEPT_ID NUMBER + ) IS + SELECT + LAST_NAME, + JOB_ID, + HIRE_DATE, + SALARY + FROM + EMPLOYEES + WHERE + EMPLOYEE_ID < 120 + AND DEPARTMENT_ID = DEPT_ID; +BEGIN + FOR REC IN DEPT_CURSOR LOOP + DBMS_OUTPUT.PUT_LINE(REC.DEPARTMENT_ID + ||' ' + ||REC.DEPARTMENT_NAME); + FOR REC2 IN EMP_CURSOR(REC.DEPARTMENT_ID) LOOP + DBMS_OUTPUT.PUT_LINE(REC2.LAST_NAME + ||' ' + ||REC2.JOB_ID + ||' ' + ||REC2.HIRE_DATE + ||' ' + ||REC2.SALARY); + END LOOP; + DBMS_OUTPUT.PUT_LINE('----------------------------------'); + END LOOP; +END; +/ + diff --git a/PLSQL/Fundamentals/Les09.sql b/PLSQL/Fundamentals/Les09.sql index d75627d..439c1b8 100644 --- a/PLSQL/Fundamentals/Les09.sql +++ b/PLSQL/Fundamentals/Les09.sql @@ -1,34 +1,34 @@ ---Q1: -CREATE OR REPLACE PROCEDURE GREET IS -BEGIN - DBMS_OUTPUT.PUT_LINE('Hello World'); - DBMS_OUTPUT.PUT_LINE('TODAY IS: ' - || SYSDATE()); - DBMS_OUTPUT.PUT_LINE('TOMORROW IS: ' - || (SYSDATE()+1)); -END; -/ - -BEGIN - GREET; -END; -/ - ---Q2: Unintentional overloading :) -CREATE OR REPLACE PROCEDURE GREET( - NAME VARCHAR2 -) IS -BEGIN - DBMS_OUTPUT.PUT_LINE('Hello ' - ||NAME); - DBMS_OUTPUT.PUT_LINE('TODAY IS: ' - || SYSDATE()); - DBMS_OUTPUT.PUT_LINE('TOMORROW IS: ' - || (SYSDATE()+1)); -END; -/ - -BEGIN - GREET('&name'); -END; +--Q1: +CREATE OR REPLACE PROCEDURE GREET IS +BEGIN + DBMS_OUTPUT.PUT_LINE('Hello World'); + DBMS_OUTPUT.PUT_LINE('TODAY IS: ' + || SYSDATE()); + DBMS_OUTPUT.PUT_LINE('TOMORROW IS: ' + || (SYSDATE()+1)); +END; +/ + +BEGIN + GREET; +END; +/ + +--Q2: Unintentional overloading :) +CREATE OR REPLACE PROCEDURE GREET( + NAME VARCHAR2 +) IS +BEGIN + DBMS_OUTPUT.PUT_LINE('Hello ' + ||NAME); + DBMS_OUTPUT.PUT_LINE('TODAY IS: ' + || SYSDATE()); + DBMS_OUTPUT.PUT_LINE('TOMORROW IS: ' + || (SYSDATE()+1)); +END; +/ + +BEGIN + GREET('&name'); +END; / \ No newline at end of file diff --git a/PLSQL/Fundamentals/Problems.sql b/PLSQL/Fundamentals/Problems.sql index 1b72181..d3155cb 100644 --- a/PLSQL/Fundamentals/Problems.sql +++ b/PLSQL/Fundamentals/Problems.sql @@ -1,337 +1,337 @@ --- Write a PL/SQL block that checks whether a given number from the user is prime. -DECLARE - USER_INPUT NUMBER := &NUMBER; - LOOP_COUNTER NUMBER := USER_INPUT-1; - FLAG NUMBER := 0; -BEGIN - IF USER_INPUT > 2 THEN - LOOP - IF USER_INPUT MOD LOOP_COUNTER = 0 THEN - FLAG := 1; - END IF; - - LOOP_COUNTER := LOOP_COUNTER - 1; - EXIT WHEN LOOP_COUNTER = 1 OR FLAG = 1; - END LOOP; - ELSIF USER_INPUT <= 1 THEN - FLAG := 1; - END IF; - - IF FLAG = 0 THEN - DBMS_OUTPUT.PUT_LINE('Prime.'); - ELSIF FLAG = 1 THEN - DBMS_OUTPUT.PUT_LINE('Not Prime.'); - END IF; -END; -/ - -/* Write a PL/SQL block that prints the largest and smallest in an array. -type arr is varray(5) of number; -myArr arr := arr(10,4,6,22,11); */ -DECLARE - TYPE ARR IS - VARRAY(5) OF NUMBER; - MYARR ARR := ARR(10, 4, 6, 22, 11); - MN NUMBER := MYARR(1); - MX NUMBER := 0; -BEGIN - FOR I IN 1..MYARR.COUNT LOOP - IF MYARR(I) > MX THEN - MX := MYARR(I); - END IF; - - IF MYARR(I) < MN THEN - MN := MYARR(I); - END IF; - END LOOP; - - DBMS_OUTPUT.PUT_LINE('Max: ' - ||MX - ||', Min: ' - ||MN); -END; -/ - -/* Write a PL/SQL block that prints every number and its frequency in an array. -Eg: type arr is varray(6) of number; -myArr arr := arr(10,10,10,6,6,11); */ -DECLARE - TYPE ARR IS - VARRAY(6) OF NUMBER; - MYARR ARR := ARR(10, 10, 10, 6, 6, 11); - TYPE HELPER IS - TABLE OF NUMBER INDEX BY PLS_INTEGER; - FREQ HELPER; - COUNTER NUMBER; -BEGIN - FOR I IN 1..MYARR.COUNT LOOP - IF NOT (FREQ.EXISTS(MYARR(I))) THEN - FREQ(MYARR(I)) := 1; - ELSE - FREQ(MYARR(I)) := FREQ(MYARR(I)) + 1; - END IF; - END LOOP; - - FOR I IN FREQ.FIRST .. FREQ.LAST LOOP - IF FREQ.EXISTS(I) THEN - IF FREQ(I) = 1 THEN - DBMS_OUTPUT.PUT_LINE('The number ' - ||I - ||' appears one time.'); - ELSE - DBMS_OUTPUT.PUT_LINE('The number ' - ||I - ||' appears ' - ||FREQ(I) - ||' times.'); - END IF; - END IF; - END LOOP; -END; -/ - --- Write a PL/SQL block that takes a number n from the user and outputs the nth term in Fibonacci's sequence. -DECLARE - USER_INPUT NUMBER := &VAL; - PREV NUMBER := 0; - MID NUMBER; - CURR NUMBER := 1; -BEGIN - IF(USER_INPUT = 0) THEN - DBMS_OUTPUT.PUT_LINE(PREV); - ELSIF(USER_INPUT = 1) THEN - DBMS_OUTPUT.PUT_LINE(CURR); - ELSE - FOR I IN 2..USER_INPUT LOOP - MID := PREV; - PREV := CURR; - CURR := CURR + MID; - END LOOP; - - DBMS_OUTPUT.PUT_LINE(CURR); - END IF; -END; -/ - --- Write a PL/SQL block to print the first_name and the salary for all the employees using explicit cursors. -DECLARE - CURSOR CUR IS ( - SELECT - FIRST_NAME, - SALARY - FROM - EMPLOYEES - ); -BEGIN - FOR REC IN CUR LOOP - DBMS_OUTPUT.PUT_LINE('Name: ' - ||REC.FIRST_NAME - ||', salary: ' - ||REC.SALARY); - END LOOP; -END; -/ - -/* The user is prompted to enter a date in the past. -Write a PL/SQL that prints the number of employees who are hired after the specified date. -When the given date is greater than or equal to the current date an exception should be triggered... -printing the following message “invalid date”. */ -DECLARE - USER_INPUT DATE := '&VAL'; - OUTPUT NUMBER; -BEGIN - IF USER_INPUT >= TO_DATE(SYSDATE) THEN - RAISE_APPLICATION_ERROR(-20001, 'Invalid Date.'); - ELSE - SELECT - COUNT(*) INTO OUTPUT - FROM - EMPLOYEES - WHERE - HIRE_DATE > USER_INPUT; - DBMS_OUTPUT.PUT_LINE('#Of Employees: ' - ||OUTPUT - ||'.'); - END IF; -EXCEPTION - WHEN OTHERS THEN - DBMS_OUTPUT.PUT_LINE(SQLERRM); -END; -/ - --- First Hard SQL Problem on LeetCode: https://leetcode.com/problems/department-top-three-salaries/description/. -SELECT - DEP_NAME "Department", - EMP_NAME "Employee", - SALARY "Salary" -FROM - ( - SELECT - SALARY, - D.NAME AS DEP_NAME, - E.NAME AS EMP_NAME, - DENSE_RANK() OVER(PARTITION BY D.NAME ORDER BY E.SALARY DESC) AS RANKED - FROM - EMPLOYEE E - JOIN DEPARTMENT D - ON (E.DEPARTMENTID = D.ID) - ) -WHERE - RANKED <= 3 -ORDER BY - 3 DESC; - --- Second Hard SQL Problem on LeetCode: https://leetcode.com/problems/trips-and-users/description/. -SELECT - REQUEST_AT "Day", - ROUND(1-(SUM(DECODE(STATUS, 'completed', 1, 0))/COUNT(*)), 2) "Cancellation Rate" -FROM - TRIPS -WHERE - CLIENT_ID NOT IN ( - SELECT - USERS_ID - FROM - USERS - WHERE - BANNED = 'Yes' - ) - AND DRIVER_ID NOT IN ( - SELECT - USERS_ID - FROM - USERS - WHERE - BANNED = 'Yes' - ) - AND REQUEST_AT BETWEEN '2013-10-01' AND '2013-10-03' -GROUP BY - REQUEST_AT -ORDER BY - 1; - --- Third Hard SQL Problem on LeetCode: https://leetcode.com/problems/human-traffic-of-stadium/description/. -WITH CTE1 AS ( - SELECT - GRP - FROM - ( - SELECT - ID - ROW_NUMBER() OVER (ORDER BY ID) AS GRP - FROM - STADIUM - WHERE - PEOPLE >= 100 - ) - GROUP BY - GRP - HAVING - COUNT(GRP) >= 3 -) -SELECT - ID, - TO_CHAR(VISIT_DATE) AS VISIT_DATE, - PEOPLE -FROM - ( - SELECT - ID, - VISIT_DATE, - PEOPLE, - ID - ROW_NUMBER() OVER (ORDER BY ID) AS QQ - FROM - STADIUM - WHERE - PEOPLE >= 100 - ) -WHERE - QQ IN ( - SELECT - GRP - FROM - CTE1 - ) -ORDER BY - 1; - -/* Write a PL/SQL block that prints the first_name, their salary, their manager's last_name -and their department name for the first 10 employees sorted by the salary descendingly using cursors. */ -DECLARE - CURSOR CUR IS ( - SELECT - E.FIRST_NAME AS FNAME, - E.SALARY AS PAY, - M.LAST_NAME AS LNAME, - D.DEPARTMENT_NAME AS DNAME, - ROW_NUMBER() OVER (ORDER BY E.SALARY DESC) SAL - FROM - EMPLOYEES E - JOIN EMPLOYEES M - ON (E.MANAGER_ID = M.EMPLOYEE_ID) - JOIN DEPARTMENTS D - ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID) - ); -BEGIN - FOR REC IN CUR LOOP - EXIT WHEN REC.SAL > 10; - DBMS_OUTPUT.PUT_LINE('First Name: ' - ||REC.FNAME - ||', salary: ' - ||REC.PAY - || ', last name of the manager: ' - ||REC.LNAME - ||', department name: ' - ||REC.DNAME - ||'.'); - END LOOP; -END; -/ - -/* Write a PL/SQL block that declares a custom exception and creates a table named "MyTestTable" -with the columns id(primary key) and name(not null). The block tries to delete all the records -in the newly created table but if there are no records to delete it raises an exception -with the error message "There are no records to delete". */ - -DECLARE - SZ NUMBER; - EX EXCEPTION; - PRAGMA EXCEPTION_INIT(EX, -20002); -BEGIN - SELECT - COUNT(*) INTO SZ - FROM - MYTESTTABLE; - IF SZ = 0 THEN - RAISE EX; - ELSE - DELETE FROM MYTESTTABLE; - END IF; -EXCEPTION - WHEN EX THEN - DBMS_OUTPUT.PUT_LINE('Error ' - ||SQLCODE - ||': There are no records to delete.'); - WHEN OTHERS THEN - DBMS_OUTPUT.PUT_LINE(SQLERRM); -END; -/ - --- Implement Fibonacci using a function recursively: -CREATE OR REPLACE FUNCTION FIBONACCI ( - N NUMBER -) RETURN NUMBER IS -BEGIN - IF N = 0 THEN - RETURN 0; - ELSIF N = 1 THEN - RETURN 1; - ELSE - RETURN FIBONACCI(N-1) + FIBONACCI(N-2); - END IF; -END; -/ - -BEGIN - DBMS_OUTPUT.PUT_LINE(FIBONACCI(&NUM)); -END; +-- Write a PL/SQL block that checks whether a given number from the user is prime. +DECLARE + USER_INPUT NUMBER := &NUMBER; + LOOP_COUNTER NUMBER := USER_INPUT-1; + FLAG NUMBER := 0; +BEGIN + IF USER_INPUT > 2 THEN + LOOP + IF USER_INPUT MOD LOOP_COUNTER = 0 THEN + FLAG := 1; + END IF; + + LOOP_COUNTER := LOOP_COUNTER - 1; + EXIT WHEN LOOP_COUNTER = 1 OR FLAG = 1; + END LOOP; + ELSIF USER_INPUT <= 1 THEN + FLAG := 1; + END IF; + + IF FLAG = 0 THEN + DBMS_OUTPUT.PUT_LINE('Prime.'); + ELSIF FLAG = 1 THEN + DBMS_OUTPUT.PUT_LINE('Not Prime.'); + END IF; +END; +/ + +/* Write a PL/SQL block that prints the largest and smallest in an array. +type arr is varray(5) of number; +myArr arr := arr(10,4,6,22,11); */ +DECLARE + TYPE ARR IS + VARRAY(5) OF NUMBER; + MYARR ARR := ARR(10, 4, 6, 22, 11); + MN NUMBER := MYARR(1); + MX NUMBER := 0; +BEGIN + FOR I IN 1..MYARR.COUNT LOOP + IF MYARR(I) > MX THEN + MX := MYARR(I); + END IF; + + IF MYARR(I) < MN THEN + MN := MYARR(I); + END IF; + END LOOP; + + DBMS_OUTPUT.PUT_LINE('Max: ' + ||MX + ||', Min: ' + ||MN); +END; +/ + +/* Write a PL/SQL block that prints every number and its frequency in an array. +Eg: type arr is varray(6) of number; +myArr arr := arr(10,10,10,6,6,11); */ +DECLARE + TYPE ARR IS + VARRAY(6) OF NUMBER; + MYARR ARR := ARR(10, 10, 10, 6, 6, 11); + TYPE HELPER IS + TABLE OF NUMBER INDEX BY PLS_INTEGER; + FREQ HELPER; + COUNTER NUMBER; +BEGIN + FOR I IN 1..MYARR.COUNT LOOP + IF NOT (FREQ.EXISTS(MYARR(I))) THEN + FREQ(MYARR(I)) := 1; + ELSE + FREQ(MYARR(I)) := FREQ(MYARR(I)) + 1; + END IF; + END LOOP; + + FOR I IN FREQ.FIRST .. FREQ.LAST LOOP + IF FREQ.EXISTS(I) THEN + IF FREQ(I) = 1 THEN + DBMS_OUTPUT.PUT_LINE('The number ' + ||I + ||' appears one time.'); + ELSE + DBMS_OUTPUT.PUT_LINE('The number ' + ||I + ||' appears ' + ||FREQ(I) + ||' times.'); + END IF; + END IF; + END LOOP; +END; +/ + +-- Write a PL/SQL block that takes a number n from the user and outputs the nth term in Fibonacci's sequence. +DECLARE + USER_INPUT NUMBER := &VAL; + PREV NUMBER := 0; + MID NUMBER; + CURR NUMBER := 1; +BEGIN + IF(USER_INPUT = 0) THEN + DBMS_OUTPUT.PUT_LINE(PREV); + ELSIF(USER_INPUT = 1) THEN + DBMS_OUTPUT.PUT_LINE(CURR); + ELSE + FOR I IN 2..USER_INPUT LOOP + MID := PREV; + PREV := CURR; + CURR := CURR + MID; + END LOOP; + + DBMS_OUTPUT.PUT_LINE(CURR); + END IF; +END; +/ + +-- Write a PL/SQL block to print the first_name and the salary for all the employees using explicit cursors. +DECLARE + CURSOR CUR IS ( + SELECT + FIRST_NAME, + SALARY + FROM + EMPLOYEES + ); +BEGIN + FOR REC IN CUR LOOP + DBMS_OUTPUT.PUT_LINE('Name: ' + ||REC.FIRST_NAME + ||', salary: ' + ||REC.SALARY); + END LOOP; +END; +/ + +/* The user is prompted to enter a date in the past. +Write a PL/SQL that prints the number of employees who are hired after the specified date. +When the given date is greater than or equal to the current date an exception should be triggered... +printing the following message “invalid date”. */ +DECLARE + USER_INPUT DATE := '&VAL'; + OUTPUT NUMBER; +BEGIN + IF USER_INPUT >= TO_DATE(SYSDATE) THEN + RAISE_APPLICATION_ERROR(-20001, 'Invalid Date.'); + ELSE + SELECT + COUNT(*) INTO OUTPUT + FROM + EMPLOYEES + WHERE + HIRE_DATE > USER_INPUT; + DBMS_OUTPUT.PUT_LINE('#Of Employees: ' + ||OUTPUT + ||'.'); + END IF; +EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); +END; +/ + +-- First Hard SQL Problem on LeetCode: https://leetcode.com/problems/department-top-three-salaries/description/. +SELECT + DEP_NAME "Department", + EMP_NAME "Employee", + SALARY "Salary" +FROM + ( + SELECT + SALARY, + D.NAME AS DEP_NAME, + E.NAME AS EMP_NAME, + DENSE_RANK() OVER(PARTITION BY D.NAME ORDER BY E.SALARY DESC) AS RANKED + FROM + EMPLOYEE E + JOIN DEPARTMENT D + ON (E.DEPARTMENTID = D.ID) + ) +WHERE + RANKED <= 3 +ORDER BY + 3 DESC; + +-- Second Hard SQL Problem on LeetCode: https://leetcode.com/problems/trips-and-users/description/. +SELECT + REQUEST_AT "Day", + ROUND(1-(SUM(DECODE(STATUS, 'completed', 1, 0))/COUNT(*)), 2) "Cancellation Rate" +FROM + TRIPS +WHERE + CLIENT_ID NOT IN ( + SELECT + USERS_ID + FROM + USERS + WHERE + BANNED = 'Yes' + ) + AND DRIVER_ID NOT IN ( + SELECT + USERS_ID + FROM + USERS + WHERE + BANNED = 'Yes' + ) + AND REQUEST_AT BETWEEN '2013-10-01' AND '2013-10-03' +GROUP BY + REQUEST_AT +ORDER BY + 1; + +-- Third Hard SQL Problem on LeetCode: https://leetcode.com/problems/human-traffic-of-stadium/description/. +WITH CTE1 AS ( + SELECT + GRP + FROM + ( + SELECT + ID - ROW_NUMBER() OVER (ORDER BY ID) AS GRP + FROM + STADIUM + WHERE + PEOPLE >= 100 + ) + GROUP BY + GRP + HAVING + COUNT(GRP) >= 3 +) +SELECT + ID, + TO_CHAR(VISIT_DATE) AS VISIT_DATE, + PEOPLE +FROM + ( + SELECT + ID, + VISIT_DATE, + PEOPLE, + ID - ROW_NUMBER() OVER (ORDER BY ID) AS QQ + FROM + STADIUM + WHERE + PEOPLE >= 100 + ) +WHERE + QQ IN ( + SELECT + GRP + FROM + CTE1 + ) +ORDER BY + 1; + +/* Write a PL/SQL block that prints the first_name, their salary, their manager's last_name +and their department name for the first 10 employees sorted by the salary descendingly using cursors. */ +DECLARE + CURSOR CUR IS ( + SELECT + E.FIRST_NAME AS FNAME, + E.SALARY AS PAY, + M.LAST_NAME AS LNAME, + D.DEPARTMENT_NAME AS DNAME, + ROW_NUMBER() OVER (ORDER BY E.SALARY DESC) SAL + FROM + EMPLOYEES E + JOIN EMPLOYEES M + ON (E.MANAGER_ID = M.EMPLOYEE_ID) + JOIN DEPARTMENTS D + ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID) + ); +BEGIN + FOR REC IN CUR LOOP + EXIT WHEN REC.SAL > 10; + DBMS_OUTPUT.PUT_LINE('First Name: ' + ||REC.FNAME + ||', salary: ' + ||REC.PAY + || ', last name of the manager: ' + ||REC.LNAME + ||', department name: ' + ||REC.DNAME + ||'.'); + END LOOP; +END; +/ + +/* Write a PL/SQL block that declares a custom exception and creates a table named "MyTestTable" +with the columns id(primary key) and name(not null). The block tries to delete all the records +in the newly created table but if there are no records to delete it raises an exception +with the error message "There are no records to delete". */ + +DECLARE + SZ NUMBER; + EX EXCEPTION; + PRAGMA EXCEPTION_INIT(EX, -20002); +BEGIN + SELECT + COUNT(*) INTO SZ + FROM + MYTESTTABLE; + IF SZ = 0 THEN + RAISE EX; + ELSE + DELETE FROM MYTESTTABLE; + END IF; +EXCEPTION + WHEN EX THEN + DBMS_OUTPUT.PUT_LINE('Error ' + ||SQLCODE + ||': There are no records to delete.'); + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE(SQLERRM); +END; +/ + +-- Implement Fibonacci using a function recursively: +CREATE OR REPLACE FUNCTION FIBONACCI ( + N NUMBER +) RETURN NUMBER IS +BEGIN + IF N = 0 THEN + RETURN 0; + ELSIF N = 1 THEN + RETURN 1; + ELSE + RETURN FIBONACCI(N-1) + FIBONACCI(N-2); + END IF; +END; +/ + +BEGIN + DBMS_OUTPUT.PUT_LINE(FIBONACCI(&NUM)); +END; / \ No newline at end of file diff --git a/PLSQL/Fundamentals/Rev.sql b/PLSQL/Fundamentals/Rev.sql index 0a67c5e..f089cd6 100644 --- a/PLSQL/Fundamentals/Rev.sql +++ b/PLSQL/Fundamentals/Rev.sql @@ -1,18 +1,18 @@ ---Q1: Group workers by year using hire_date, also obtain the number of those who worked in these years. -select to_char(hire_date,'YYYY'), count(*) -from employees -group by to_char(hire_date,'YYYY'); - ---Q2: Get each employee's first name and their manager first name (ignore the case where there is someone with no manager.) -select manager.first_name "Manager", employee.first_name "Employee" -from employees manager join employees employee on (manager.employee_id = employee.manager_id); - ---Q3: get the first name and salary of those who earn higher than Steven and their name ends with 'a'. -select first_name, salary -from employees -where salary > All (select salary from employees where first_name = 'Steven') and last_name like '%a'; - ---helper Query for Q3 (explaining why Q3 yields no data set.) -select first_name, salary -from employees -where salary = (select max(salary) from employees); +--Q1: Group workers by year using hire_date, also obtain the number of those who worked in these years. +select to_char(hire_date,'YYYY'), count(*) +from employees +group by to_char(hire_date,'YYYY'); + +--Q2: Get each employee's first name and their manager first name (ignore the case where there is someone with no manager.) +select manager.first_name "Manager", employee.first_name "Employee" +from employees manager join employees employee on (manager.employee_id = employee.manager_id); + +--Q3: get the first name and salary of those who earn higher than Steven and their name ends with 'a'. +select first_name, salary +from employees +where salary > All (select salary from employees where first_name = 'Steven') and last_name like '%a'; + +--helper Query for Q3 (explaining why Q3 yields no data set.) +select first_name, salary +from employees +where salary = (select max(salary) from employees); diff --git a/PLSQL/Fundamentals/Sec1.sql b/PLSQL/Fundamentals/Sec1.sql index 51d4238..f2c8165 100644 --- a/PLSQL/Fundamentals/Sec1.sql +++ b/PLSQL/Fundamentals/Sec1.sql @@ -1,76 +1,76 @@ ---Must run this statement first for only one time: -set serveroutput on; - ---Q1: print the max salary of the accounting department. (Can be solved by subquery) -variable max_salary number; - -BEGIN - SELECT - MAX(SALARY) INTO :MAX_SALARY - FROM - EMPLOYEES - JOIN DEPARTMENTS - ON EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID - GROUP BY - DEPARTMENT_NAME - HAVING - DEPARTMENT_NAME = 'Accounting'; -END; -/ - -print max_salary - ---Q2: print the manager of the accounting department. (Can be solved by subquery) -DECLARE - MANAGER EMPLOYEES.FIRST_NAME%TYPE; -BEGIN - SELECT - FIRST_NAME INTO MANAGER - FROM - EMPLOYEES - WHERE - EMPLOYEE_ID = ( - SELECT - MANAGER_ID - FROM - DEPARTMENTS - WHERE - DEPARTMENT_NAME = 'Accounting' - ); - DBMS_OUTPUT.PUT_LINE(MANAGER); -END; -/ - ---Q3: find the second max salary in the employees table. -SELECT - MAX(SALARY) -FROM - EMPLOYEES -WHERE - SALARY IN ( - SELECT - SALARY - FROM - EMPLOYEES MINUS - SELECT - MAX(SALARY) - FROM - EMPLOYEES - ); - ---Q4: print the first name of the manager for 'Mourad' [Yeilds an error because "Mourad" is not in the employees table] ---(Can be solved by subquery.) -DECLARE - MANAGER_NAME EMPLOYEES.FIRST_NAME%TYPE; -BEGIN - SELECT - MAN.FIRST_NAME INTO MANAGER_NAME - FROM - EMPLOYEES EMP - JOIN EMPLOYEES MAN - ON EMP.MANAGER_ID = MAN.EMPLOYEE_ID - WHERE - EMP.FIRST_NAME = 'Mourad'; - DBMS_OUTPUT.PUT_LINE(MANAGER_NAME); -END; +--Must run this statement first for only one time: +set serveroutput on; + +--Q1: print the max salary of the accounting department. (Can be solved by subquery) +variable max_salary number; + +BEGIN + SELECT + MAX(SALARY) INTO :MAX_SALARY + FROM + EMPLOYEES + JOIN DEPARTMENTS + ON EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID + GROUP BY + DEPARTMENT_NAME + HAVING + DEPARTMENT_NAME = 'Accounting'; +END; +/ + +print max_salary + +--Q2: print the manager of the accounting department. (Can be solved by subquery) +DECLARE + MANAGER EMPLOYEES.FIRST_NAME%TYPE; +BEGIN + SELECT + FIRST_NAME INTO MANAGER + FROM + EMPLOYEES + WHERE + EMPLOYEE_ID = ( + SELECT + MANAGER_ID + FROM + DEPARTMENTS + WHERE + DEPARTMENT_NAME = 'Accounting' + ); + DBMS_OUTPUT.PUT_LINE(MANAGER); +END; +/ + +--Q3: find the second max salary in the employees table. +SELECT + MAX(SALARY) +FROM + EMPLOYEES +WHERE + SALARY IN ( + SELECT + SALARY + FROM + EMPLOYEES MINUS + SELECT + MAX(SALARY) + FROM + EMPLOYEES + ); + +--Q4: print the first name of the manager for 'Mourad' [Yeilds an error because "Mourad" is not in the employees table] +--(Can be solved by subquery.) +DECLARE + MANAGER_NAME EMPLOYEES.FIRST_NAME%TYPE; +BEGIN + SELECT + MAN.FIRST_NAME INTO MANAGER_NAME + FROM + EMPLOYEES EMP + JOIN EMPLOYEES MAN + ON EMP.MANAGER_ID = MAN.EMPLOYEE_ID + WHERE + EMP.FIRST_NAME = 'Mourad'; + DBMS_OUTPUT.PUT_LINE(MANAGER_NAME); +END; / \ No newline at end of file diff --git a/PLSQL/Fundamentals/Sec2.sql b/PLSQL/Fundamentals/Sec2.sql index 17a654f..fdebf6b 100644 --- a/PLSQL/Fundamentals/Sec2.sql +++ b/PLSQL/Fundamentals/Sec2.sql @@ -1,39 +1,39 @@ -/*Write a PL/SQL anonymous block that creates a table named tempTable with attributes: -id a number that is the primary key -name varchar2 which is not null -salary number that has to be greater than zero. -*/ -BEGIN - EXECUTE IMMEDIATE ' - create table tempTable( - id number primary key, - name varchar2(20) not null, - salary number check (salary > 0) - ) - '; -END; - -- Now enter 2 recodrs and presist the data: -BEGIN - INSERT INTO TEMPTABLE VALUES( - 1, - 'Bakr', - 20000 - ); - INSERT INTO TEMPTABLE VALUES( - 2, - 'M7md', - 30000 - ); - COMMIT; -END; - -- A query to test each step. -SELECT - * -FROM - TEMPTABLE; - -- Now delete those 2 records permanently: -BEGIN - EXECUTE IMMEDIATE' - truncate table tempTable - '; +/*Write a PL/SQL anonymous block that creates a table named tempTable with attributes: +id a number that is the primary key +name varchar2 which is not null +salary number that has to be greater than zero. +*/ +BEGIN + EXECUTE IMMEDIATE ' + create table tempTable( + id number primary key, + name varchar2(20) not null, + salary number check (salary > 0) + ) + '; +END; + -- Now enter 2 recodrs and presist the data: +BEGIN + INSERT INTO TEMPTABLE VALUES( + 1, + 'Bakr', + 20000 + ); + INSERT INTO TEMPTABLE VALUES( + 2, + 'M7md', + 30000 + ); + COMMIT; +END; + -- A query to test each step. +SELECT + * +FROM + TEMPTABLE; + -- Now delete those 2 records permanently: +BEGIN + EXECUTE IMMEDIATE' + truncate table tempTable + '; END; \ No newline at end of file diff --git a/PLSQL/Fundamentals/Sec3.sql b/PLSQL/Fundamentals/Sec3.sql index 25a0f60..b483ad6 100644 --- a/PLSQL/Fundamentals/Sec3.sql +++ b/PLSQL/Fundamentals/Sec3.sql @@ -1,37 +1,37 @@ ---Q1: -DECLARE - COUNTRY_RECORD COUNTRIES%ROWTYPE; - COUNTRYID COUNTRIES.COUNTRY_ID%TYPE := 'CA'; -BEGIN - SELECT - * INTO COUNTRY_RECORD - FROM - COUNTRIES - WHERE - COUNTRY_ID = COUNTRYID; - DBMS_OUTPUT.PUT_LINE('country Id: ' - || COUNTRY_RECORD.COUNTRY_ID - || ' Country Name: ' - || COUNTRY_RECORD.COUNTRY_NAME - ||' Region: ' - || COUNTRY_RECORD.REGION_ID); -END; - --Q2: -DECLARE - TYPE HELPER IS - TABLE OF DEPARTMENTS.DEPARTMENT_NAME % TYPE INDEX BY PLS_INTEGER; - ANS HELPER; - I NUMBER := 10; -BEGIN - LOOP - SELECT - DEPARTMENT_NAME INTO ANS(I) - FROM - DEPARTMENTS - WHERE - DEPARTMENT_ID = I; - DBMS_OUTPUT.PUT_LINE(ANS(I)); - I:= I+ 10; - EXIT WHEN I > 50; - END LOOP; +--Q1: +DECLARE + COUNTRY_RECORD COUNTRIES%ROWTYPE; + COUNTRYID COUNTRIES.COUNTRY_ID%TYPE := 'CA'; +BEGIN + SELECT + * INTO COUNTRY_RECORD + FROM + COUNTRIES + WHERE + COUNTRY_ID = COUNTRYID; + DBMS_OUTPUT.PUT_LINE('country Id: ' + || COUNTRY_RECORD.COUNTRY_ID + || ' Country Name: ' + || COUNTRY_RECORD.COUNTRY_NAME + ||' Region: ' + || COUNTRY_RECORD.REGION_ID); +END; + --Q2: +DECLARE + TYPE HELPER IS + TABLE OF DEPARTMENTS.DEPARTMENT_NAME % TYPE INDEX BY PLS_INTEGER; + ANS HELPER; + I NUMBER := 10; +BEGIN + LOOP + SELECT + DEPARTMENT_NAME INTO ANS(I) + FROM + DEPARTMENTS + WHERE + DEPARTMENT_ID = I; + DBMS_OUTPUT.PUT_LINE(ANS(I)); + I:= I+ 10; + EXIT WHEN I > 50; + END LOOP; END; \ No newline at end of file diff --git a/PLSQL/Fundamentals/Sec7.sql b/PLSQL/Fundamentals/Sec7.sql index aa10425..7668434 100644 --- a/PLSQL/Fundamentals/Sec7.sql +++ b/PLSQL/Fundamentals/Sec7.sql @@ -1,45 +1,45 @@ -CREATE OR REPLACE PACKAGE PK IS - X NUMBER; - - PROCEDURE PROC; - - FUNCTION FUN( - X NUMBER - ) RETURN BOOLEAN; -END; -CREATE OR REPLACE PACKAGE BODY PK IS - - PROCEDURE PROC IS - CURSOR CUR IS ( - SELECT - FIRST_NAME, - LAST_NAME - FROM - EMPLOYEES - WHERE - SALARY > 10000 - ); - BEGIN - FOR REC IN CUR LOOP - DBMS_OUTPUT.PUT_LINE(REC.FIRST_NAME - || ' ' - || REC.LAST_NAME); - END LOOP; - END; - - FUNCTION FUN ( - X NUMBER - ) RETURN BOOLEAN IS - BEGIN - RETURN (X MOD 2 = 0); - END; -END; -BEGIN - PK.PROC; - IF PK.FUN(4) THEN - DBMS_OUTPUT.PUT_LINE('true'); - ELSE - DBMS_OUTPUT.PUT_LINE('false'); - END IF; -END; +CREATE OR REPLACE PACKAGE PK IS + X NUMBER; + + PROCEDURE PROC; + + FUNCTION FUN( + X NUMBER + ) RETURN BOOLEAN; +END; +CREATE OR REPLACE PACKAGE BODY PK IS + + PROCEDURE PROC IS + CURSOR CUR IS ( + SELECT + FIRST_NAME, + LAST_NAME + FROM + EMPLOYEES + WHERE + SALARY > 10000 + ); + BEGIN + FOR REC IN CUR LOOP + DBMS_OUTPUT.PUT_LINE(REC.FIRST_NAME + || ' ' + || REC.LAST_NAME); + END LOOP; + END; + + FUNCTION FUN ( + X NUMBER + ) RETURN BOOLEAN IS + BEGIN + RETURN (X MOD 2 = 0); + END; +END; +BEGIN + PK.PROC; + IF PK.FUN(4) THEN + DBMS_OUTPUT.PUT_LINE('true'); + ELSE + DBMS_OUTPUT.PUT_LINE('false'); + END IF; +END; / \ No newline at end of file diff --git a/PLSQL/Fundamentals/hrSchema.sql b/PLSQL/Fundamentals/hrSchema.sql index 8a92f19..153268e 100644 --- a/PLSQL/Fundamentals/hrSchema.sql +++ b/PLSQL/Fundamentals/hrSchema.sql @@ -1,1126 +1,1126 @@ -/* -02 Create Tables -This script creates the tables needed for the HR schema. -Run this script after script 01, and while you are logged in as the newly-created HR user. -*/ - -DROP TABLE job_history CASCADE CONSTRAINTS; -DROP TABLE departments CASCADE CONSTRAINTS; -DROP TABLE employees CASCADE CONSTRAINTS; -DROP TABLE jobs CASCADE CONSTRAINTS; -DROP TABLE locations CASCADE CONSTRAINTS; -DROP TABLE countries CASCADE CONSTRAINTS; -DROP TABLE regions CASCADE CONSTRAINTS; -DROP SEQUENCE locations_seq; -DROP SEQUENCE departments_seq; -DROP SEQUENCE employees_seq; - - -ALTER SESSION SET NLS_LANGUAGE=American; -ALTER SESSION SET NLS_TERRITORY=America; - -/* Regions */ - -CREATE TABLE regions ( - region_id NUMBER CONSTRAINT regions_id_nn NOT NULL, - region_name VARCHAR2(25) -); - -CREATE UNIQUE INDEX reg_id_pk -ON regions (region_id); - -ALTER TABLE regions -ADD CONSTRAINT reg_id_pk -PRIMARY KEY (region_id); - -/* Countries */ - -CREATE TABLE countries ( - country_id CHAR(2) CONSTRAINT country_id_nn NOT NULL, - country_name VARCHAR2(40), - region_id NUMBER, - CONSTRAINT country_c_id_pk PRIMARY KEY (country_id) -) -ORGANIZATION INDEX; - -ALTER TABLE countries -ADD CONSTRAINT countr_reg_fk -FOREIGN KEY (region_id) -REFERENCES regions(region_id); - -/* Locations */ - -CREATE TABLE locations ( - location_id NUMBER(4), - street_address VARCHAR2(40), - postal_code VARCHAR2(12), - city VARCHAR2(30) CONSTRAINT loc_city_nn NOT NULL, - state_province VARCHAR2(25), - country_id CHAR(2) -); - -CREATE UNIQUE INDEX loc_id_pk -ON locations (location_id); - -ALTER TABLE locations -ADD ( - CONSTRAINT loc_id_pk PRIMARY KEY (location_id), - CONSTRAINT loc_c_id_fk FOREIGN KEY (country_id) REFERENCES countries(country_id) -); - -CREATE SEQUENCE locations_seq - START WITH 3300 - INCREMENT BY 100 - MAXVALUE 9900 - NOCACHE - NOCYCLE; - -/* Departments */ - - -CREATE TABLE departments ( - department_id NUMBER(4), - department_name VARCHAR2(30) CONSTRAINT dept_name_nn NOT NULL, - manager_id NUMBER(6), - location_id NUMBER(4) -); - -CREATE UNIQUE INDEX dept_id_pk -ON departments (department_id) ; - -ALTER TABLE departments -ADD ( - CONSTRAINT dept_id_pk PRIMARY KEY (department_id), - CONSTRAINT dept_loc_fk FOREIGN KEY (location_id) REFERENCES locations (location_id) -); - -CREATE SEQUENCE departments_seq - START WITH 280 - INCREMENT BY 10 - MAXVALUE 9990 - NOCACHE - NOCYCLE; - -/* Jobs */ - -CREATE TABLE jobs ( - job_id VARCHAR2(10), - job_title VARCHAR2(35) CONSTRAINT job_title_nn NOT NULL, - min_salary NUMBER(6), - max_salary NUMBER(6) -); - -CREATE UNIQUE INDEX job_id_pk -ON jobs (job_id) ; - -ALTER TABLE jobs -ADD ( - CONSTRAINT job_id_pk PRIMARY KEY(job_id) -); - - -/* Employees */ - -CREATE TABLE employees ( - employee_id NUMBER(6), - first_name VARCHAR2(20), - last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL, - email VARCHAR2(25) CONSTRAINT emp_email_nn NOT NULL, - phone_number VARCHAR2(20), - hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, - job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, - salary NUMBER(8,2), - commission_pct NUMBER(2,2), - manager_id NUMBER(6), - department_id NUMBER(4), - CONSTRAINT emp_salary_min CHECK (salary > 0), - CONSTRAINT emp_email_uk UNIQUE (email) -); - -CREATE UNIQUE INDEX emp_emp_id_pk -ON employees (employee_id); - - -ALTER TABLE employees -ADD ( - CONSTRAINT emp_emp_id_pk - PRIMARY KEY (employee_id), - CONSTRAINT emp_dept_fk - FOREIGN KEY (department_id) REFERENCES departments, - CONSTRAINT emp_job_fk - FOREIGN KEY (job_id) REFERENCES jobs (job_id), - CONSTRAINT emp_manager_fk - FOREIGN KEY (manager_id) REFERENCES employees (employee_id) -); - -/* Alter Tables */ - -ALTER TABLE departments -ADD ( - CONSTRAINT dept_mgr_fk - FOREIGN KEY (manager_id) - REFERENCES employees (employee_id) -); - -CREATE SEQUENCE employees_seq - START WITH 207 - INCREMENT BY 1 - NOCACHE - NOCYCLE; - - -/* Job History */ -CREATE TABLE job_history ( - employee_id NUMBER(6) CONSTRAINT jhist_employee_nn NOT NULL, - start_date DATE CONSTRAINT jhist_start_date_nn NOT NULL, - end_date DATE CONSTRAINT jhist_end_date_nn NOT NULL, - job_id VARCHAR2(10) CONSTRAINT jhist_job_nn NOT NULL, - department_id NUMBER(4), - CONSTRAINT jhist_date_interval CHECK (end_date > start_date) -); - -CREATE UNIQUE INDEX jhist_emp_id_st_date_pk -ON job_history (employee_id, start_date); - -ALTER TABLE job_history -ADD ( - CONSTRAINT jhist_emp_id_st_date_pk - PRIMARY KEY (employee_id, start_date), - CONSTRAINT jhist_job_fk - FOREIGN KEY (job_id) REFERENCES jobs, - CONSTRAINT jhist_emp_fk - FOREIGN KEY (employee_id) REFERENCES employees, - CONSTRAINT jhist_dept_fk - FOREIGN KEY (department_id) REFERENCES departments -); - - - -CREATE OR REPLACE VIEW emp_details_view - (employee_id, - job_id, - manager_id, - department_id, - location_id, - country_id, - first_name, - last_name, - salary, - commission_pct, - department_name, - job_title, - city, - state_province, - country_name, - region_name) -AS -SELECT - e.employee_id, - e.job_id, - e.manager_id, - e.department_id, - d.location_id, - l.country_id, - e.first_name, - e.last_name, - e.salary, - e.commission_pct, - d.department_name, - j.job_title, - l.city, - l.state_province, - c.country_name, - r.region_name -FROM - employees e - INNER JOIN departments d ON e.department_id = d.department_id - INNER JOIN jobs j ON j.job_id = e.job_id - INNER JOIN locations l ON d.location_id = l.location_id - INNER JOIN countries c ON l.country_id = c.country_id - INNER JOIN regions r ON c.region_id = r.region_id -WITH READ ONLY; - -COMMIT; - -/* -03 Populate Tables -This script populates the tables that were created in the previous script. -*/ - -ALTER SESSION SET NLS_LANGUAGE=American; - -INSERT INTO regions (region_id, region_name) VALUES (1, 'Europe'); -INSERT INTO regions (region_id, region_name) VALUES (2, 'Americas'); -INSERT INTO regions (region_id, region_name) VALUES (3, 'Asia'); -INSERT INTO regions (region_id, region_name) VALUES (4, 'Middle East and Africa'); - - -INSERT INTO countries (country_id, country_name, region_id) VALUES ('IT', 'Italy', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('JP', 'Japan', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('US', 'United States of America', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('CA', 'Canada', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('CN', 'China', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('IN', 'India', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('AU', 'Australia', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZW', 'Zimbabwe', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('SG', 'Singapore', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('UK', 'United Kingdom', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('FR', 'France', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('DE', 'Germany', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZM', 'Zambia', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('EG', 'Egypt', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('BR', 'Brazil', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('CH', 'Switzerland', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('NL', 'Netherlands', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('MX', 'Mexico', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('KW', 'Kuwait', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('IL', 'Israel', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('DK', 'Denmark', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('ML', 'Malaysia', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('NG', 'Nigeria', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('AR', 'Argentina', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('BE', 'Belgium', 1); - - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1000 , '1297 Via Cola di Rie', '00989', 'Roma', NULL, 'IT'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1100, '93091 Calle della Testa', '10934', 'Venice', NULL, 'IT'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1200, '2017 Shinjuku-ku', '1689', 'Tokyo', 'Tokyo Prefecture', 'JP'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1300, '9450 Kamiya-cho', '6823', 'Hiroshima', NULL, 'JP'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1400, '2014 Jabberwocky Rd', '26192', 'Southlake', 'Texas', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1500, '2011 Interiors Blvd', '99236', 'South San Francisco', 'California', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1600, '2007 Zagora St', '50090', 'South Brunswick', 'New Jersey', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1700, '2004 Charade Rd', '98199', 'Seattle', 'Washington', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1800, '147 Spadina Ave', 'M5V 2L7', 'Toronto', 'Ontario', 'CA'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1900, '6092 Boxwood St', 'YSW 9T2', 'Whitehorse', 'Yukon', 'CA'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2000, '40-5-12 Laogianggen', '190518', 'Beijing', NULL, 'CN'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2100, '1298 Vileparle (E)', '490231', 'Bombay', 'Maharashtra', 'IN'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2200, '12-98 Victoria Street', '2901', 'Sydney', 'New South Wales', 'AU'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2300, '198 Clementi North', '540198', 'Singapore', NULL, 'SG'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2400, '8204 Arthur St', NULL, 'London', NULL, 'UK'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2500, 'Magdalen Centre, The Oxford Science Park', 'OX9 9ZB', 'Oxford', 'Oxford', 'UK'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2600, '9702 Chester Road', '09629850293', 'Stretford', 'Manchester', 'UK'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2700, 'Schwanthalerstr. 7031', '80925', 'Munich', 'Bavaria', 'DE'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2800, 'Rua Frei Caneca 1360 ', '01307-002', 'Sao Paulo', 'Sao Paulo', 'BR'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2900, '20 Rue des Corps-Saints', '1730', 'Geneva', 'Geneve', 'CH'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 3000, 'Murtenstrasse 921', '3095', 'Bern', 'BE', 'CH'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 3100, 'Pieter Breughelstraat 837', '3029SK', 'Utrecht', 'Utrecht', 'NL'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 3200, 'Mariano Escobedo 9991', '11932', 'Mexico City', 'Distrito Federal,', 'MX'); - - - -ALTER TABLE departments DISABLE CONSTRAINT dept_mgr_fk; - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 10, 'Administration', 200, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 20, 'Marketing', 201, 1800); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 30, 'Purchasing', 114, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 40, 'Human Resources', 203, 2400); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 50, 'Shipping', 121, 1500); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 60, 'IT', 103, 1400); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 70, 'Public Relations', 204, 2700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 80, 'Sales', 145, 2500); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 90, 'Executive', 100, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 100, 'Finance', 108, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 110, 'Accounting', 205, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 120, 'Treasury', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 130, 'Corporate Tax', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 140, 'Control And Credit', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 150, 'Shareholder Services', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 160, 'Benefits', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 170, 'Manufacturing', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 180, 'Construction', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 190, 'Contracting', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 200, 'Operations', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 210, 'IT Support', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 220, 'NOC', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 230, 'IT Helpdesk', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 240, 'Government Sales', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 250, 'Retail Sales', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 260, 'Recruiting', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 270, 'Payroll', NULL, 1700); - - - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AD_PRES', 'President', 20080, 40000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AD_VP', 'Administration Vice President', 15000, 30000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AD_ASST', 'Administration Assistant', 3000, 6000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'FI_MGR', 'Finance Manager', 8200, 16000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'FI_ACCOUNT', 'Accountant', 4200, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AC_MGR', 'Accounting Manager', 8200, 16000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AC_ACCOUNT', 'Public Accountant', 4200, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'SA_MAN', 'Sales Manager', 10000, 20080); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'SA_REP', 'Sales Representative', 6000, 12008); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'PU_MAN', 'Purchasing Manager', 8000, 15000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'PU_CLERK', 'Purchasing Clerk', 2500, 5500); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'ST_MAN', 'Stock Manager', 5500, 8500); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'ST_CLERK', 'Stock Clerk', 2008, 5000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'SH_CLERK', 'Shipping Clerk', 2500, 5500); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'IT_PROG', 'Programmer', 4000, 10000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'MK_MAN', 'Marketing Manager', 9000, 15000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'MK_REP', 'Marketing Representative', 4000, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'HR_REP', 'Human Resources Representative', 4000, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'PR_REP', 'Public Relations Representative', 4500, 10500); - - - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 100, 'Steven', 'King', 'SKING', '515.123.4567', TO_DATE('17-06-2003', 'dd-MM-yyyy'), 'AD_PRES', 24000, NULL, NULL, 90); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 101, 'Neena', 'Kochhar', 'NKOCHHAR', '515.123.4568', TO_DATE('21-09-2005', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 102, 'Lex', 'De Haan', 'LDEHAAN', '515.123.4569', TO_DATE('13-01-2001', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 103, 'Alexander', 'Hunold', 'AHUNOLD', '590.423.4567', TO_DATE('03-01-2006', 'dd-MM-yyyy'), 'IT_PROG', 9000, NULL, 102, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 104, 'Bruce', 'Ernst', 'BERNST', '590.423.4568', TO_DATE('21-05-2007', 'dd-MM-yyyy'), 'IT_PROG', 6000, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 105, 'David', 'Austin', 'DAUSTIN', '590.423.4569', TO_DATE('25-06-2005', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 106, 'Valli', 'Pataballa', 'VPATABAL', '590.423.4560', TO_DATE('05-02-2006', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 107, 'Diana', 'Lorentz', 'DLORENTZ', '590.423.5567', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'IT_PROG', 4200, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 108, 'Nancy', 'Greenberg', 'NGREENBE', '515.124.4569', TO_DATE('17-08-2002', 'dd-MM-yyyy'), 'FI_MGR', 12008, NULL, 101, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 109, 'Daniel', 'Faviet', 'DFAVIET', '515.124.4169', TO_DATE('16-08-2002', 'dd-MM-yyyy'), 'FI_ACCOUNT', 9000, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 110, 'John', 'Chen', 'JCHEN', '515.124.4269', TO_DATE('28-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 8200, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 111, 'Ismael', 'Sciarra', 'ISCIARRA', '515.124.4369', TO_DATE('30-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7700, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 112, 'Jose Manuel', 'Urman', 'JMURMAN', '515.124.4469', TO_DATE('07-03-2006', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7800, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 113, 'Luis', 'Popp', 'LPOPP', '515.124.4567', TO_DATE('07-12-2007', 'dd-MM-yyyy'), 'FI_ACCOUNT', 6900, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 114, 'Den', 'Raphaely', 'DRAPHEAL', '515.127.4561', TO_DATE('07-12-2002', 'dd-MM-yyyy'), 'PU_MAN', 11000, NULL, 100, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 115, 'Alexander', 'Khoo', 'AKHOO', '515.127.4562', TO_DATE('18-05-2003', 'dd-MM-yyyy'), 'PU_CLERK', 3100, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 116, 'Shelli', 'Baida', 'SBAIDA', '515.127.4563', TO_DATE('24-12-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2900, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 117, 'Sigal', 'Tobias', 'STOBIAS', '515.127.4564', TO_DATE('24-07-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2800, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 118, 'Guy', 'Himuro', 'GHIMURO', '515.127.4565', TO_DATE('15-11-2006', 'dd-MM-yyyy'), 'PU_CLERK', 2600, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 119, 'Karen', 'Colmenares', 'KCOLMENA', '515.127.4566', TO_DATE('10-08-2007', 'dd-MM-yyyy'), 'PU_CLERK', 2500, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 120, 'Matthew', 'Weiss', 'MWEISS', '650.123.1234', TO_DATE('18-07-2004', 'dd-MM-yyyy'), 'ST_MAN', 8000, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 121, 'Adam', 'Fripp', 'AFRIPP', '650.123.2234', TO_DATE('10-04-2005', 'dd-MM-yyyy'), 'ST_MAN', 8200, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 122, 'Payam', 'Kaufling', 'PKAUFLIN', '650.123.3234', TO_DATE('01-05-2003', 'dd-MM-yyyy'), 'ST_MAN', 7900, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 123, 'Shanta', 'Vollman', 'SVOLLMAN', '650.123.4234', TO_DATE('10-10-2005', 'dd-MM-yyyy'), 'ST_MAN', 6500, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 124, 'Kevin', 'Mourgos', 'KMOURGOS', '650.123.5234', TO_DATE('16-11-2007', 'dd-MM-yyyy'), 'ST_MAN', 5800, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 125, 'Julia', 'Nayer', 'JNAYER', '650.124.1214', TO_DATE('16-07-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 126, 'Irene', 'Mikkilineni', 'IMIKKILI', '650.124.1224', TO_DATE('28-09-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 127, 'James', 'Landry', 'JLANDRY', '650.124.1334', TO_DATE('14-01-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 128, 'Steven', 'Markle', 'SMARKLE', '650.124.1434', TO_DATE('08-03-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 129, 'Laura', 'Bissot', 'LBISSOT', '650.124.5234', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 130, 'Mozhe', 'Atkinson', 'MATKINSO', '650.124.6234', TO_DATE('30-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2800, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 131, 'James', 'Marlow', 'JAMRLOW', '650.124.7234', TO_DATE('16-02-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 132, 'TJ', 'Olson', 'TJOLSON', '650.124.8234', TO_DATE('10-04-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2100, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 133, 'Jason', 'Mallin', 'JMALLIN', '650.127.1934', TO_DATE('14-06-2004', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 134, 'Michael', 'Rogers', 'MROGERS', '650.127.1834', TO_DATE('26-08-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2900, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 135, 'Ki', 'Gee', 'KGEE', '650.127.1734', TO_DATE('12-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 136, 'Hazel', 'Philtanker', 'HPHILTAN', '650.127.1634', TO_DATE('06-02-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 137, 'Renske', 'Ladwig', 'RLADWIG', '650.121.1234', TO_DATE('14-07-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3600, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 138, 'Stephen', 'Stiles', 'SSTILES', '650.121.2034', TO_DATE('26-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 139, 'John', 'Seo', 'JSEO', '650.121.2019', TO_DATE('12-02-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 140, 'Joshua', 'Patel', 'JPATEL', '650.121.1834', TO_DATE('06-04-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 141, 'Trenna', 'Rajs', 'TRAJS', '650.121.8009', TO_DATE('17-10-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3500, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 142, 'Curtis', 'Davies', 'CDAVIES', '650.121.2994', TO_DATE('29-01-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3100, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 143, 'Randall', 'Matos', 'RMATOS', '650.121.2874', TO_DATE('15-03-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2600, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 144, 'Peter', 'Vargas', 'PVARGAS', '650.121.2004', TO_DATE('09-07-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 145, 'John', 'Russell', 'JRUSSEL', '011.44.1344.429268', TO_DATE('01-10-2004', 'dd-MM-yyyy'), 'SA_MAN', 14000, .4, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 146, 'Karen', 'Partners', 'KPARTNER', '011.44.1344.467268', TO_DATE('05-01-2005', 'dd-MM-yyyy'), 'SA_MAN', 13500, .3, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 147, 'Alberto', 'Errazuriz', 'AERRAZUR', '011.44.1344.429278', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_MAN', 12000, .3, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 148, 'Gerald', 'Cambrault', 'GCAMBRAU', '011.44.1344.619268', TO_DATE('15-10-2007', 'dd-MM-yyyy'), 'SA_MAN', 11000, .3, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 149, 'Eleni', 'Zlotkey', 'EZLOTKEY', '011.44.1344.429018', TO_DATE('29-01-2008', 'dd-MM-yyyy'), 'SA_MAN', 10500, .2, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 150, 'Peter', 'Tucker', 'PTUCKER', '011.44.1344.129268', TO_DATE('30-01-2005', 'dd-MM-yyyy'), 'SA_REP', 10000, .3, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 151, 'David', 'Bernstein', 'DBERNSTE', '011.44.1344.345268', TO_DATE('24-03-2005', 'dd-MM-yyyy'), 'SA_REP', 9500, .25, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 152, 'Peter', 'Hall', 'PHALL', '011.44.1344.478968', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'SA_REP', 9000, .25, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 153, 'Christopher', 'Olsen', 'COLSEN', '011.44.1344.498718', TO_DATE('30-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8000, .2, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 154, 'Nanette', 'Cambrault', 'NCAMBRAU', '011.44.1344.987668', TO_DATE('09-12-2006', 'dd-MM-yyyy'), 'SA_REP', 7500, .2, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 155, 'Oliver', 'Tuvault', 'OTUVAULT', '011.44.1344.486508', TO_DATE('23-11-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 156, 'Janette', 'King', 'JKING', '011.44.1345.429268', TO_DATE('30-01-2004', 'dd-MM-yyyy'), 'SA_REP', 10000, .35, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 157, 'Patrick', 'Sully', 'PSULLY', '011.44.1345.929268', TO_DATE('04-03-2004', 'dd-MM-yyyy'), 'SA_REP', 9500, .35, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 158, 'Allan', 'McEwen', 'AMCEWEN', '011.44.1345.829268', TO_DATE('01-08-2004', 'dd-MM-yyyy'), 'SA_REP', 9000, .35, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 159, 'Lindsey', 'Smith', 'LSMITH', '011.44.1345.729268', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8000, .3, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 160, 'Louise', 'Doran', 'LDORAN', '011.44.1345.629268', TO_DATE('15-12-2005', 'dd-MM-yyyy'), 'SA_REP', 7500, .3, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 161, 'Sarath', 'Sewall', 'SSEWALL', '011.44.1345.529268', TO_DATE('03-11-2006', 'dd-MM-yyyy'), 'SA_REP', 7000, .25, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 162, 'Clara', 'Vishney', 'CVISHNEY', '011.44.1346.129268', TO_DATE('11-11-2005', 'dd-MM-yyyy'), 'SA_REP', 10500, .25, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 163, 'Danielle', 'Greene', 'DGREENE', '011.44.1346.229268', TO_DATE('19-03-2007', 'dd-MM-yyyy'), 'SA_REP', 9500, .15, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 164, 'Mattea', 'Marvins', 'MMARVINS', '011.44.1346.329268', TO_DATE('24-01-2008', 'dd-MM-yyyy'), 'SA_REP', 7200, .10, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 165, 'David', 'Lee', 'DLEE', '011.44.1346.529268', TO_DATE('23-02-2008', 'dd-MM-yyyy'), 'SA_REP', 6800, .1, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 166, 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', TO_DATE('24-03-2008', 'dd-MM-yyyy'), 'SA_REP', 6400, .10, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 167, 'Amit', 'Banda', 'ABANDA', '011.44.1346.729268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 168, 'Lisa', 'Ozer', 'LOZER', '011.44.1343.929268', TO_DATE('11-03-2005', 'dd-MM-yyyy'), 'SA_REP', 11500, .25, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 169, 'Harrison', 'Bloom', 'HBLOOM', '011.44.1343.829268', TO_DATE('23-03-2006', 'dd-MM-yyyy'), 'SA_REP', 10000, .20, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 170, 'Tayler', 'Fox', 'TFOX', '011.44.1343.729268', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SA_REP', 9600, .20, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 171, 'William', 'Smith', 'WSMITH', '011.44.1343.629268', TO_DATE('23-02-2007', 'dd-MM-yyyy'), 'SA_REP', 7400, .15, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 172, 'Elizabeth', 'Bates', 'EBATES', '011.44.1343.529268', TO_DATE('24-03-2007', 'dd-MM-yyyy'), 'SA_REP', 7300, .15, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 173, 'Sundita', 'Kumar', 'SKUMAR', '011.44.1343.329268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6100, .10, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 174, 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', TO_DATE('11-05-2004', 'dd-MM-yyyy'), 'SA_REP', 11000, .30, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 175, 'Alyssa', 'Hutton', 'AHUTTON', '011.44.1644.429266', TO_DATE('19-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8800, .25, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 176, 'Jonathon', 'Taylor', 'JTAYLOR', '011.44.1644.429265', TO_DATE('24-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8600, .20, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 177, 'Jack', 'Livingston', 'JLIVINGS', '011.44.1644.429264', TO_DATE('23-04-2006', 'dd-MM-yyyy'), 'SA_REP', 8400, .20, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 178, 'Kimberely', 'Grant', 'KGRANT', '011.44.1644.429263', TO_DATE('24-05-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 149, NULL); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 179, 'Charles', 'Johnson', 'CJOHNSON', '011.44.1644.429262', TO_DATE('04-01-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 180, 'Winston', 'Taylor', 'WTAYLOR', '650.507.9876', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 181, 'Jean', 'Fleaur', 'JFLEAUR', '650.507.9877', TO_DATE('23-02-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 182, 'Martha', 'Sullivan', 'MSULLIVA', '650.507.9878', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 183, 'Girard', 'Geoni', 'GGEONI', '650.507.9879', TO_DATE('03-02-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 184, 'Nandita', 'Sarchand', 'NSARCHAN', '650.509.1876', TO_DATE('27-01-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4200, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 185, 'Alexis', 'Bull', 'ABULL', '650.509.2876', TO_DATE('20-02-2005', 'dd-MM-yyyy'), 'SH_CLERK', 4100, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 186, 'Julia', 'Dellinger', 'JDELLING', '650.509.3876', TO_DATE('24-06-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3400, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 187, 'Anthony', 'Cabrio', 'ACABRIO', '650.509.4876', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 188, 'Kelly', 'Chung', 'KCHUNG', '650.505.1876', TO_DATE('14-06-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3800, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 189, 'Jennifer', 'Dilly', 'JDILLY', '650.505.2876', TO_DATE('13-08-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3600, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 190, 'Timothy', 'Gates', 'TGATES', '650.505.3876', TO_DATE('11-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 2900, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 191, 'Randall', 'Perkins', 'RPERKINS', '650.505.4876', TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 192, 'Sarah', 'Bell', 'SBELL', '650.501.1876', TO_DATE('04-02-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4000, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 193, 'Britney', 'Everett', 'BEVERETT', '650.501.2876', TO_DATE('03-03-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3900, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 194, 'Samuel', 'McCain', 'SMCCAIN', '650.501.3876', TO_DATE('01-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 195, 'Vance', 'Jones', 'VJONES', '650.501.4876', TO_DATE('17-03-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 196, 'Alana', 'Walsh', 'AWALSH', '650.507.9811', TO_DATE('24-04-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 197, 'Kevin', 'Feeney', 'KFEENEY', '650.507.9822', TO_DATE('23-05-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 198, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 199, 'Douglas', 'Grant', 'DGRANT', '650.507.9844', TO_DATE('13-01-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 200, 'Jennifer', 'Whalen', 'JWHALEN', '515.123.4444', TO_DATE('17-09-2003', 'dd-MM-yyyy'), 'AD_ASST', 4400, NULL, 101, 10); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 201, 'Michael', 'Hartstein', 'MHARTSTE', '515.123.5555', TO_DATE('17-02-2004', 'dd-MM-yyyy'), 'MK_MAN', 13000, NULL, 100, 20); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 202, 'Pat', 'Fay', 'PFAY', '603.123.6666', TO_DATE('17-08-2005', 'dd-MM-yyyy'), 'MK_REP', 6000, NULL, 201, 20); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 203, 'Susan', 'Mavris', 'SMAVRIS', '515.123.7777', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'HR_REP', 6500, NULL, 101, 40); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 204, 'Hermann', 'Baer', 'HBAER', '515.123.8888', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'PR_REP', 10000, NULL, 101, 70); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 205, 'Shelley', 'Higgins', 'SHIGGINS', '515.123.8080', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_MGR', 12008, NULL, 101, 110); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 206, 'William', 'Gietz', 'WGIETZ', '515.123.8181', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_ACCOUNT', 8300, NULL, 205, 110); - - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (102, TO_DATE('13-01-2001', 'dd-MM-yyyy'), TO_DATE('24-07-2006', 'dd-MM-yyyy'), 'IT_PROG', 60); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (101, TO_DATE('21-09-1997', 'dd-MM-yyyy'), TO_DATE('27-10-2001', 'dd-MM-yyyy'), 'AC_ACCOUNT', 110); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (101, TO_DATE('28-10-2001', 'dd-MM-yyyy'), TO_DATE('15-03-2005', 'dd-MM-yyyy'), 'AC_MGR', 110); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (201, TO_DATE('17-02-2004', 'dd-MM-yyyy'), TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'MK_REP', 20); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (114, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (122, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (200, TO_DATE('17-09-1995', 'dd-MM-yyyy'), TO_DATE('17-06-2001', 'dd-MM-yyyy'), 'AD_ASST', 90); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (176, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'SA_REP', 80); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (176, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'SA_MAN', 80); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (200, TO_DATE('01-07-2002', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'AC_ACCOUNT', 90); - - -ALTER TABLE departments ENABLE CONSTRAINT dept_mgr_fk; - -COMMIT; - -/* -04 Others -Perform other steps after populating data, such as indexes and comments -*/ - - - -CREATE INDEX emp_department_ix -ON employees (department_id); - -CREATE INDEX emp_job_ix -ON employees (job_id); - -CREATE INDEX emp_manager_ix -ON employees (manager_id); - -CREATE INDEX emp_name_ix -ON employees (last_name, first_name); - -CREATE INDEX dept_location_ix -ON departments (location_id); - -CREATE INDEX jhist_job_ix -ON job_history (job_id); - -CREATE INDEX jhist_employee_ix -ON job_history (employee_id); - -CREATE INDEX jhist_department_ix -ON job_history (department_id); - -CREATE INDEX loc_city_ix -ON locations (city); - -CREATE INDEX loc_state_province_ix -ON locations (state_province); - -CREATE INDEX loc_country_ix -ON locations (country_id); - -COMMIT; - - - - -/* -procedure and statement trigger to allow dmls during business hours: -*/ - -CREATE OR REPLACE PROCEDURE secure_dml -IS -BEGIN - IF TO_CHAR (SYSDATE, 'HH24:MI') NOT BETWEEN '08:00' AND '18:00' - OR TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN') THEN - RAISE_APPLICATION_ERROR (-20205, - 'You may only make changes during normal office hours'); - END IF; -END secure_dml; -/ - -CREATE OR REPLACE TRIGGER secure_employees - BEFORE INSERT OR UPDATE OR DELETE ON employees -BEGIN - secure_dml; -END secure_employees; -/ - -ALTER TRIGGER secure_employees DISABLE; - - -/* -procedure to add a row to the JOB_HISTORY table and row trigger -to call the procedure when data is updated in the job_id or -department_id columns in the EMPLOYEES table: -*/ - -CREATE OR REPLACE PROCEDURE add_job_history - ( p_emp_id job_history.employee_id%type - , p_start_date job_history.start_date%type - , p_end_date job_history.end_date%type - , p_job_id job_history.job_id%type - , p_department_id job_history.department_id%type - ) -IS -BEGIN - INSERT INTO job_history (employee_id, start_date, end_date, - job_id, department_id) - VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id); -END add_job_history; -/ - -CREATE OR REPLACE TRIGGER update_job_history - AFTER UPDATE OF job_id, department_id ON employees - FOR EACH ROW -BEGIN - add_job_history(:old.employee_id, :old.hire_date, sysdate, - :old.job_id, :old.department_id); -END; -/ - -COMMIT; - -/* -Add comments to tables and columns -*/ - -COMMENT ON TABLE regions -IS 'Regions table that contains region numbers and names. Contains 4 rows; references with the Countries table.'; - -COMMENT ON COLUMN regions.region_id -IS 'Primary key of regions table.'; - -COMMENT ON COLUMN regions.region_name -IS 'Names of regions. Locations are in the countries of these regions.'; - -COMMENT ON TABLE locations -IS 'Locations table that contains specific address of a specific office, -warehouse, and/or production site of a company. Does not store addresses / -locations of customers. Contains 23 rows; references with the -departments and countries tables. '; - -COMMENT ON COLUMN locations.location_id -IS 'Primary key of locations table'; - -COMMENT ON COLUMN locations.street_address -IS 'Street address of an office, warehouse, or production site of a company. -Contains building number and street name'; - -COMMENT ON COLUMN locations.postal_code -IS 'Postal code of the location of an office, warehouse, or production site -of a company. '; - -COMMENT ON COLUMN locations.city -IS 'A not null column that shows city where an office, warehouse, or -production site of a company is located. '; - -COMMENT ON COLUMN locations.state_province -IS 'State or Province where an office, warehouse, or production site of a -company is located.'; - -COMMENT ON COLUMN locations.country_id -IS 'Country where an office, warehouse, or production site of a company is -located. Foreign key to country_id column of the countries table.'; - - -COMMENT ON TABLE departments -IS 'Departments table that shows details of departments where employees -work. Contains 27 rows; references with locations, employees, and job_history tables.'; - -COMMENT ON COLUMN departments.department_id -IS 'Primary key column of departments table.'; - -COMMENT ON COLUMN departments.department_name -IS 'A not null column that shows name of a department. Administration, -Marketing, Purchasing, Human Resources, Shipping, IT, Executive, Public -Relations, Sales, Finance, and Accounting. '; - -COMMENT ON COLUMN departments.manager_id -IS 'Manager_id of a department. Foreign key to employee_id column of employees table. The manager_id column of the employee table references this column.'; - -COMMENT ON COLUMN departments.location_id -IS 'Location id where a department is located. Foreign key to location_id column of locations table.'; - - -COMMENT ON TABLE job_history -IS 'Table that stores job history of the employees. If an employee -changes departments within the job or changes jobs within the department, -new rows get inserted into this table with old job information of the -employee. Contains a complex primary key: employee_id+start_date. -Contains 25 rows. References with jobs, employees, and departments tables.'; - -COMMENT ON COLUMN job_history.employee_id -IS 'A not null column in the complex primary key employee_id+start_date. -Foreign key to employee_id column of the employee table'; - -COMMENT ON COLUMN job_history.start_date -IS 'A not null column in the complex primary key employee_id+start_date. -Must be less than the end_date of the job_history table. (enforced by -constraint jhist_date_interval)'; - -COMMENT ON COLUMN job_history.end_date -IS 'Last day of the employee in this job role. A not null column. Must be -greater than the start_date of the job_history table. -(enforced by constraint jhist_date_interval)'; - -COMMENT ON COLUMN job_history.job_id -IS 'Job role in which the employee worked in the past; foreign key to -job_id column in the jobs table. A not null column.'; - -COMMENT ON COLUMN job_history.department_id -IS 'Department id in which the employee worked in the past; foreign key to deparment_id column in the departments table'; - - - -COMMENT ON TABLE countries -IS 'country table. Contains 25 rows. References with locations table.'; - -COMMENT ON COLUMN countries.country_id -IS 'Primary key of countries table.'; - -COMMENT ON COLUMN countries.country_name -IS 'Country name'; - -COMMENT ON COLUMN countries.region_id -IS 'Region ID for the country. Foreign key to region_id column in the departments table.'; - - - -COMMENT ON TABLE jobs -IS 'jobs table with job titles and salary ranges. Contains 19 rows. -References with employees and job_history table.'; - -COMMENT ON COLUMN jobs.job_id -IS 'Primary key of jobs table.'; - -COMMENT ON COLUMN jobs.job_title -IS 'A not null column that shows job title, e.g. AD_VP, FI_ACCOUNTANT'; - -COMMENT ON COLUMN jobs.min_salary -IS 'Minimum salary for a job title.'; - -COMMENT ON COLUMN jobs.max_salary -IS 'Maximum salary for a job title'; - - - -COMMENT ON TABLE employees -IS 'employees table. Contains 107 rows. References with departments, -jobs, job_history tables. Contains a self reference.'; - -COMMENT ON COLUMN employees.employee_id -IS 'Primary key of employees table.'; - -COMMENT ON COLUMN employees.first_name -IS 'First name of the employee. A not null column.'; - -COMMENT ON COLUMN employees.last_name -IS 'Last name of the employee. A not null column.'; - -COMMENT ON COLUMN employees.email -IS 'Email id of the employee'; - -COMMENT ON COLUMN employees.phone_number -IS 'Phone number of the employee; includes country code and area code'; - -COMMENT ON COLUMN employees.hire_date -IS 'Date when the employee started on this job. A not null column.'; - -COMMENT ON COLUMN employees.job_id -IS 'Current job of the employee; foreign key to job_id column of the -jobs table. A not null column.'; - -COMMENT ON COLUMN employees.salary -IS 'Monthly salary of the employee. Must be greater -than zero (enforced by constraint emp_salary_min)'; - -COMMENT ON COLUMN employees.commission_pct -IS 'Commission percentage of the employee; Only employees in sales -department elgible for commission percentage'; - -COMMENT ON COLUMN employees.manager_id -IS 'Manager id of the employee; has same domain as manager_id in -departments table. Foreign key to employee_id column of employees table. -(useful for reflexive joins and CONNECT BY query)'; - -COMMENT ON COLUMN employees.department_id -IS 'Department id where employee works; foreign key to department_id -column of the departments table'; - +/* +02 Create Tables +This script creates the tables needed for the HR schema. +Run this script after script 01, and while you are logged in as the newly-created HR user. +*/ + +DROP TABLE job_history CASCADE CONSTRAINTS; +DROP TABLE departments CASCADE CONSTRAINTS; +DROP TABLE employees CASCADE CONSTRAINTS; +DROP TABLE jobs CASCADE CONSTRAINTS; +DROP TABLE locations CASCADE CONSTRAINTS; +DROP TABLE countries CASCADE CONSTRAINTS; +DROP TABLE regions CASCADE CONSTRAINTS; +DROP SEQUENCE locations_seq; +DROP SEQUENCE departments_seq; +DROP SEQUENCE employees_seq; + + +ALTER SESSION SET NLS_LANGUAGE=American; +ALTER SESSION SET NLS_TERRITORY=America; + +/* Regions */ + +CREATE TABLE regions ( + region_id NUMBER CONSTRAINT regions_id_nn NOT NULL, + region_name VARCHAR2(25) +); + +CREATE UNIQUE INDEX reg_id_pk +ON regions (region_id); + +ALTER TABLE regions +ADD CONSTRAINT reg_id_pk +PRIMARY KEY (region_id); + +/* Countries */ + +CREATE TABLE countries ( + country_id CHAR(2) CONSTRAINT country_id_nn NOT NULL, + country_name VARCHAR2(40), + region_id NUMBER, + CONSTRAINT country_c_id_pk PRIMARY KEY (country_id) +) +ORGANIZATION INDEX; + +ALTER TABLE countries +ADD CONSTRAINT countr_reg_fk +FOREIGN KEY (region_id) +REFERENCES regions(region_id); + +/* Locations */ + +CREATE TABLE locations ( + location_id NUMBER(4), + street_address VARCHAR2(40), + postal_code VARCHAR2(12), + city VARCHAR2(30) CONSTRAINT loc_city_nn NOT NULL, + state_province VARCHAR2(25), + country_id CHAR(2) +); + +CREATE UNIQUE INDEX loc_id_pk +ON locations (location_id); + +ALTER TABLE locations +ADD ( + CONSTRAINT loc_id_pk PRIMARY KEY (location_id), + CONSTRAINT loc_c_id_fk FOREIGN KEY (country_id) REFERENCES countries(country_id) +); + +CREATE SEQUENCE locations_seq + START WITH 3300 + INCREMENT BY 100 + MAXVALUE 9900 + NOCACHE + NOCYCLE; + +/* Departments */ + + +CREATE TABLE departments ( + department_id NUMBER(4), + department_name VARCHAR2(30) CONSTRAINT dept_name_nn NOT NULL, + manager_id NUMBER(6), + location_id NUMBER(4) +); + +CREATE UNIQUE INDEX dept_id_pk +ON departments (department_id) ; + +ALTER TABLE departments +ADD ( + CONSTRAINT dept_id_pk PRIMARY KEY (department_id), + CONSTRAINT dept_loc_fk FOREIGN KEY (location_id) REFERENCES locations (location_id) +); + +CREATE SEQUENCE departments_seq + START WITH 280 + INCREMENT BY 10 + MAXVALUE 9990 + NOCACHE + NOCYCLE; + +/* Jobs */ + +CREATE TABLE jobs ( + job_id VARCHAR2(10), + job_title VARCHAR2(35) CONSTRAINT job_title_nn NOT NULL, + min_salary NUMBER(6), + max_salary NUMBER(6) +); + +CREATE UNIQUE INDEX job_id_pk +ON jobs (job_id) ; + +ALTER TABLE jobs +ADD ( + CONSTRAINT job_id_pk PRIMARY KEY(job_id) +); + + +/* Employees */ + +CREATE TABLE employees ( + employee_id NUMBER(6), + first_name VARCHAR2(20), + last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL, + email VARCHAR2(25) CONSTRAINT emp_email_nn NOT NULL, + phone_number VARCHAR2(20), + hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, + job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, + salary NUMBER(8,2), + commission_pct NUMBER(2,2), + manager_id NUMBER(6), + department_id NUMBER(4), + CONSTRAINT emp_salary_min CHECK (salary > 0), + CONSTRAINT emp_email_uk UNIQUE (email) +); + +CREATE UNIQUE INDEX emp_emp_id_pk +ON employees (employee_id); + + +ALTER TABLE employees +ADD ( + CONSTRAINT emp_emp_id_pk + PRIMARY KEY (employee_id), + CONSTRAINT emp_dept_fk + FOREIGN KEY (department_id) REFERENCES departments, + CONSTRAINT emp_job_fk + FOREIGN KEY (job_id) REFERENCES jobs (job_id), + CONSTRAINT emp_manager_fk + FOREIGN KEY (manager_id) REFERENCES employees (employee_id) +); + +/* Alter Tables */ + +ALTER TABLE departments +ADD ( + CONSTRAINT dept_mgr_fk + FOREIGN KEY (manager_id) + REFERENCES employees (employee_id) +); + +CREATE SEQUENCE employees_seq + START WITH 207 + INCREMENT BY 1 + NOCACHE + NOCYCLE; + + +/* Job History */ +CREATE TABLE job_history ( + employee_id NUMBER(6) CONSTRAINT jhist_employee_nn NOT NULL, + start_date DATE CONSTRAINT jhist_start_date_nn NOT NULL, + end_date DATE CONSTRAINT jhist_end_date_nn NOT NULL, + job_id VARCHAR2(10) CONSTRAINT jhist_job_nn NOT NULL, + department_id NUMBER(4), + CONSTRAINT jhist_date_interval CHECK (end_date > start_date) +); + +CREATE UNIQUE INDEX jhist_emp_id_st_date_pk +ON job_history (employee_id, start_date); + +ALTER TABLE job_history +ADD ( + CONSTRAINT jhist_emp_id_st_date_pk + PRIMARY KEY (employee_id, start_date), + CONSTRAINT jhist_job_fk + FOREIGN KEY (job_id) REFERENCES jobs, + CONSTRAINT jhist_emp_fk + FOREIGN KEY (employee_id) REFERENCES employees, + CONSTRAINT jhist_dept_fk + FOREIGN KEY (department_id) REFERENCES departments +); + + + +CREATE OR REPLACE VIEW emp_details_view + (employee_id, + job_id, + manager_id, + department_id, + location_id, + country_id, + first_name, + last_name, + salary, + commission_pct, + department_name, + job_title, + city, + state_province, + country_name, + region_name) +AS +SELECT + e.employee_id, + e.job_id, + e.manager_id, + e.department_id, + d.location_id, + l.country_id, + e.first_name, + e.last_name, + e.salary, + e.commission_pct, + d.department_name, + j.job_title, + l.city, + l.state_province, + c.country_name, + r.region_name +FROM + employees e + INNER JOIN departments d ON e.department_id = d.department_id + INNER JOIN jobs j ON j.job_id = e.job_id + INNER JOIN locations l ON d.location_id = l.location_id + INNER JOIN countries c ON l.country_id = c.country_id + INNER JOIN regions r ON c.region_id = r.region_id +WITH READ ONLY; + +COMMIT; + +/* +03 Populate Tables +This script populates the tables that were created in the previous script. +*/ + +ALTER SESSION SET NLS_LANGUAGE=American; + +INSERT INTO regions (region_id, region_name) VALUES (1, 'Europe'); +INSERT INTO regions (region_id, region_name) VALUES (2, 'Americas'); +INSERT INTO regions (region_id, region_name) VALUES (3, 'Asia'); +INSERT INTO regions (region_id, region_name) VALUES (4, 'Middle East and Africa'); + + +INSERT INTO countries (country_id, country_name, region_id) VALUES ('IT', 'Italy', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('JP', 'Japan', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('US', 'United States of America', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('CA', 'Canada', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('CN', 'China', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('IN', 'India', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('AU', 'Australia', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZW', 'Zimbabwe', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('SG', 'Singapore', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('UK', 'United Kingdom', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('FR', 'France', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('DE', 'Germany', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZM', 'Zambia', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('EG', 'Egypt', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('BR', 'Brazil', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('CH', 'Switzerland', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('NL', 'Netherlands', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('MX', 'Mexico', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('KW', 'Kuwait', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('IL', 'Israel', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('DK', 'Denmark', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('ML', 'Malaysia', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('NG', 'Nigeria', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('AR', 'Argentina', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('BE', 'Belgium', 1); + + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1000 , '1297 Via Cola di Rie', '00989', 'Roma', NULL, 'IT'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1100, '93091 Calle della Testa', '10934', 'Venice', NULL, 'IT'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1200, '2017 Shinjuku-ku', '1689', 'Tokyo', 'Tokyo Prefecture', 'JP'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1300, '9450 Kamiya-cho', '6823', 'Hiroshima', NULL, 'JP'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1400, '2014 Jabberwocky Rd', '26192', 'Southlake', 'Texas', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1500, '2011 Interiors Blvd', '99236', 'South San Francisco', 'California', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1600, '2007 Zagora St', '50090', 'South Brunswick', 'New Jersey', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1700, '2004 Charade Rd', '98199', 'Seattle', 'Washington', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1800, '147 Spadina Ave', 'M5V 2L7', 'Toronto', 'Ontario', 'CA'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1900, '6092 Boxwood St', 'YSW 9T2', 'Whitehorse', 'Yukon', 'CA'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2000, '40-5-12 Laogianggen', '190518', 'Beijing', NULL, 'CN'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2100, '1298 Vileparle (E)', '490231', 'Bombay', 'Maharashtra', 'IN'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2200, '12-98 Victoria Street', '2901', 'Sydney', 'New South Wales', 'AU'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2300, '198 Clementi North', '540198', 'Singapore', NULL, 'SG'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2400, '8204 Arthur St', NULL, 'London', NULL, 'UK'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2500, 'Magdalen Centre, The Oxford Science Park', 'OX9 9ZB', 'Oxford', 'Oxford', 'UK'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2600, '9702 Chester Road', '09629850293', 'Stretford', 'Manchester', 'UK'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2700, 'Schwanthalerstr. 7031', '80925', 'Munich', 'Bavaria', 'DE'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2800, 'Rua Frei Caneca 1360 ', '01307-002', 'Sao Paulo', 'Sao Paulo', 'BR'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2900, '20 Rue des Corps-Saints', '1730', 'Geneva', 'Geneve', 'CH'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 3000, 'Murtenstrasse 921', '3095', 'Bern', 'BE', 'CH'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 3100, 'Pieter Breughelstraat 837', '3029SK', 'Utrecht', 'Utrecht', 'NL'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 3200, 'Mariano Escobedo 9991', '11932', 'Mexico City', 'Distrito Federal,', 'MX'); + + + +ALTER TABLE departments DISABLE CONSTRAINT dept_mgr_fk; + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 10, 'Administration', 200, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 20, 'Marketing', 201, 1800); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 30, 'Purchasing', 114, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 40, 'Human Resources', 203, 2400); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 50, 'Shipping', 121, 1500); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 60, 'IT', 103, 1400); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 70, 'Public Relations', 204, 2700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 80, 'Sales', 145, 2500); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 90, 'Executive', 100, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 100, 'Finance', 108, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 110, 'Accounting', 205, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 120, 'Treasury', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 130, 'Corporate Tax', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 140, 'Control And Credit', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 150, 'Shareholder Services', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 160, 'Benefits', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 170, 'Manufacturing', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 180, 'Construction', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 190, 'Contracting', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 200, 'Operations', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 210, 'IT Support', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 220, 'NOC', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 230, 'IT Helpdesk', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 240, 'Government Sales', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 250, 'Retail Sales', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 260, 'Recruiting', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 270, 'Payroll', NULL, 1700); + + + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AD_PRES', 'President', 20080, 40000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AD_VP', 'Administration Vice President', 15000, 30000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AD_ASST', 'Administration Assistant', 3000, 6000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'FI_MGR', 'Finance Manager', 8200, 16000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'FI_ACCOUNT', 'Accountant', 4200, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AC_MGR', 'Accounting Manager', 8200, 16000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AC_ACCOUNT', 'Public Accountant', 4200, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'SA_MAN', 'Sales Manager', 10000, 20080); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'SA_REP', 'Sales Representative', 6000, 12008); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'PU_MAN', 'Purchasing Manager', 8000, 15000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'PU_CLERK', 'Purchasing Clerk', 2500, 5500); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'ST_MAN', 'Stock Manager', 5500, 8500); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'ST_CLERK', 'Stock Clerk', 2008, 5000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'SH_CLERK', 'Shipping Clerk', 2500, 5500); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'IT_PROG', 'Programmer', 4000, 10000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'MK_MAN', 'Marketing Manager', 9000, 15000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'MK_REP', 'Marketing Representative', 4000, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'HR_REP', 'Human Resources Representative', 4000, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'PR_REP', 'Public Relations Representative', 4500, 10500); + + + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 100, 'Steven', 'King', 'SKING', '515.123.4567', TO_DATE('17-06-2003', 'dd-MM-yyyy'), 'AD_PRES', 24000, NULL, NULL, 90); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 101, 'Neena', 'Kochhar', 'NKOCHHAR', '515.123.4568', TO_DATE('21-09-2005', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 102, 'Lex', 'De Haan', 'LDEHAAN', '515.123.4569', TO_DATE('13-01-2001', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 103, 'Alexander', 'Hunold', 'AHUNOLD', '590.423.4567', TO_DATE('03-01-2006', 'dd-MM-yyyy'), 'IT_PROG', 9000, NULL, 102, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 104, 'Bruce', 'Ernst', 'BERNST', '590.423.4568', TO_DATE('21-05-2007', 'dd-MM-yyyy'), 'IT_PROG', 6000, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 105, 'David', 'Austin', 'DAUSTIN', '590.423.4569', TO_DATE('25-06-2005', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 106, 'Valli', 'Pataballa', 'VPATABAL', '590.423.4560', TO_DATE('05-02-2006', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 107, 'Diana', 'Lorentz', 'DLORENTZ', '590.423.5567', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'IT_PROG', 4200, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 108, 'Nancy', 'Greenberg', 'NGREENBE', '515.124.4569', TO_DATE('17-08-2002', 'dd-MM-yyyy'), 'FI_MGR', 12008, NULL, 101, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 109, 'Daniel', 'Faviet', 'DFAVIET', '515.124.4169', TO_DATE('16-08-2002', 'dd-MM-yyyy'), 'FI_ACCOUNT', 9000, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 110, 'John', 'Chen', 'JCHEN', '515.124.4269', TO_DATE('28-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 8200, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 111, 'Ismael', 'Sciarra', 'ISCIARRA', '515.124.4369', TO_DATE('30-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7700, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 112, 'Jose Manuel', 'Urman', 'JMURMAN', '515.124.4469', TO_DATE('07-03-2006', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7800, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 113, 'Luis', 'Popp', 'LPOPP', '515.124.4567', TO_DATE('07-12-2007', 'dd-MM-yyyy'), 'FI_ACCOUNT', 6900, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 114, 'Den', 'Raphaely', 'DRAPHEAL', '515.127.4561', TO_DATE('07-12-2002', 'dd-MM-yyyy'), 'PU_MAN', 11000, NULL, 100, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 115, 'Alexander', 'Khoo', 'AKHOO', '515.127.4562', TO_DATE('18-05-2003', 'dd-MM-yyyy'), 'PU_CLERK', 3100, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 116, 'Shelli', 'Baida', 'SBAIDA', '515.127.4563', TO_DATE('24-12-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2900, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 117, 'Sigal', 'Tobias', 'STOBIAS', '515.127.4564', TO_DATE('24-07-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2800, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 118, 'Guy', 'Himuro', 'GHIMURO', '515.127.4565', TO_DATE('15-11-2006', 'dd-MM-yyyy'), 'PU_CLERK', 2600, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 119, 'Karen', 'Colmenares', 'KCOLMENA', '515.127.4566', TO_DATE('10-08-2007', 'dd-MM-yyyy'), 'PU_CLERK', 2500, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 120, 'Matthew', 'Weiss', 'MWEISS', '650.123.1234', TO_DATE('18-07-2004', 'dd-MM-yyyy'), 'ST_MAN', 8000, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 121, 'Adam', 'Fripp', 'AFRIPP', '650.123.2234', TO_DATE('10-04-2005', 'dd-MM-yyyy'), 'ST_MAN', 8200, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 122, 'Payam', 'Kaufling', 'PKAUFLIN', '650.123.3234', TO_DATE('01-05-2003', 'dd-MM-yyyy'), 'ST_MAN', 7900, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 123, 'Shanta', 'Vollman', 'SVOLLMAN', '650.123.4234', TO_DATE('10-10-2005', 'dd-MM-yyyy'), 'ST_MAN', 6500, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 124, 'Kevin', 'Mourgos', 'KMOURGOS', '650.123.5234', TO_DATE('16-11-2007', 'dd-MM-yyyy'), 'ST_MAN', 5800, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 125, 'Julia', 'Nayer', 'JNAYER', '650.124.1214', TO_DATE('16-07-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 126, 'Irene', 'Mikkilineni', 'IMIKKILI', '650.124.1224', TO_DATE('28-09-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 127, 'James', 'Landry', 'JLANDRY', '650.124.1334', TO_DATE('14-01-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 128, 'Steven', 'Markle', 'SMARKLE', '650.124.1434', TO_DATE('08-03-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 129, 'Laura', 'Bissot', 'LBISSOT', '650.124.5234', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 130, 'Mozhe', 'Atkinson', 'MATKINSO', '650.124.6234', TO_DATE('30-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2800, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 131, 'James', 'Marlow', 'JAMRLOW', '650.124.7234', TO_DATE('16-02-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 132, 'TJ', 'Olson', 'TJOLSON', '650.124.8234', TO_DATE('10-04-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2100, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 133, 'Jason', 'Mallin', 'JMALLIN', '650.127.1934', TO_DATE('14-06-2004', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 134, 'Michael', 'Rogers', 'MROGERS', '650.127.1834', TO_DATE('26-08-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2900, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 135, 'Ki', 'Gee', 'KGEE', '650.127.1734', TO_DATE('12-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 136, 'Hazel', 'Philtanker', 'HPHILTAN', '650.127.1634', TO_DATE('06-02-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 137, 'Renske', 'Ladwig', 'RLADWIG', '650.121.1234', TO_DATE('14-07-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3600, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 138, 'Stephen', 'Stiles', 'SSTILES', '650.121.2034', TO_DATE('26-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 139, 'John', 'Seo', 'JSEO', '650.121.2019', TO_DATE('12-02-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 140, 'Joshua', 'Patel', 'JPATEL', '650.121.1834', TO_DATE('06-04-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 141, 'Trenna', 'Rajs', 'TRAJS', '650.121.8009', TO_DATE('17-10-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3500, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 142, 'Curtis', 'Davies', 'CDAVIES', '650.121.2994', TO_DATE('29-01-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3100, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 143, 'Randall', 'Matos', 'RMATOS', '650.121.2874', TO_DATE('15-03-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2600, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 144, 'Peter', 'Vargas', 'PVARGAS', '650.121.2004', TO_DATE('09-07-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 145, 'John', 'Russell', 'JRUSSEL', '011.44.1344.429268', TO_DATE('01-10-2004', 'dd-MM-yyyy'), 'SA_MAN', 14000, .4, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 146, 'Karen', 'Partners', 'KPARTNER', '011.44.1344.467268', TO_DATE('05-01-2005', 'dd-MM-yyyy'), 'SA_MAN', 13500, .3, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 147, 'Alberto', 'Errazuriz', 'AERRAZUR', '011.44.1344.429278', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_MAN', 12000, .3, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 148, 'Gerald', 'Cambrault', 'GCAMBRAU', '011.44.1344.619268', TO_DATE('15-10-2007', 'dd-MM-yyyy'), 'SA_MAN', 11000, .3, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 149, 'Eleni', 'Zlotkey', 'EZLOTKEY', '011.44.1344.429018', TO_DATE('29-01-2008', 'dd-MM-yyyy'), 'SA_MAN', 10500, .2, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 150, 'Peter', 'Tucker', 'PTUCKER', '011.44.1344.129268', TO_DATE('30-01-2005', 'dd-MM-yyyy'), 'SA_REP', 10000, .3, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 151, 'David', 'Bernstein', 'DBERNSTE', '011.44.1344.345268', TO_DATE('24-03-2005', 'dd-MM-yyyy'), 'SA_REP', 9500, .25, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 152, 'Peter', 'Hall', 'PHALL', '011.44.1344.478968', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'SA_REP', 9000, .25, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 153, 'Christopher', 'Olsen', 'COLSEN', '011.44.1344.498718', TO_DATE('30-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8000, .2, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 154, 'Nanette', 'Cambrault', 'NCAMBRAU', '011.44.1344.987668', TO_DATE('09-12-2006', 'dd-MM-yyyy'), 'SA_REP', 7500, .2, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 155, 'Oliver', 'Tuvault', 'OTUVAULT', '011.44.1344.486508', TO_DATE('23-11-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 156, 'Janette', 'King', 'JKING', '011.44.1345.429268', TO_DATE('30-01-2004', 'dd-MM-yyyy'), 'SA_REP', 10000, .35, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 157, 'Patrick', 'Sully', 'PSULLY', '011.44.1345.929268', TO_DATE('04-03-2004', 'dd-MM-yyyy'), 'SA_REP', 9500, .35, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 158, 'Allan', 'McEwen', 'AMCEWEN', '011.44.1345.829268', TO_DATE('01-08-2004', 'dd-MM-yyyy'), 'SA_REP', 9000, .35, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 159, 'Lindsey', 'Smith', 'LSMITH', '011.44.1345.729268', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8000, .3, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 160, 'Louise', 'Doran', 'LDORAN', '011.44.1345.629268', TO_DATE('15-12-2005', 'dd-MM-yyyy'), 'SA_REP', 7500, .3, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 161, 'Sarath', 'Sewall', 'SSEWALL', '011.44.1345.529268', TO_DATE('03-11-2006', 'dd-MM-yyyy'), 'SA_REP', 7000, .25, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 162, 'Clara', 'Vishney', 'CVISHNEY', '011.44.1346.129268', TO_DATE('11-11-2005', 'dd-MM-yyyy'), 'SA_REP', 10500, .25, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 163, 'Danielle', 'Greene', 'DGREENE', '011.44.1346.229268', TO_DATE('19-03-2007', 'dd-MM-yyyy'), 'SA_REP', 9500, .15, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 164, 'Mattea', 'Marvins', 'MMARVINS', '011.44.1346.329268', TO_DATE('24-01-2008', 'dd-MM-yyyy'), 'SA_REP', 7200, .10, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 165, 'David', 'Lee', 'DLEE', '011.44.1346.529268', TO_DATE('23-02-2008', 'dd-MM-yyyy'), 'SA_REP', 6800, .1, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 166, 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', TO_DATE('24-03-2008', 'dd-MM-yyyy'), 'SA_REP', 6400, .10, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 167, 'Amit', 'Banda', 'ABANDA', '011.44.1346.729268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 168, 'Lisa', 'Ozer', 'LOZER', '011.44.1343.929268', TO_DATE('11-03-2005', 'dd-MM-yyyy'), 'SA_REP', 11500, .25, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 169, 'Harrison', 'Bloom', 'HBLOOM', '011.44.1343.829268', TO_DATE('23-03-2006', 'dd-MM-yyyy'), 'SA_REP', 10000, .20, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 170, 'Tayler', 'Fox', 'TFOX', '011.44.1343.729268', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SA_REP', 9600, .20, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 171, 'William', 'Smith', 'WSMITH', '011.44.1343.629268', TO_DATE('23-02-2007', 'dd-MM-yyyy'), 'SA_REP', 7400, .15, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 172, 'Elizabeth', 'Bates', 'EBATES', '011.44.1343.529268', TO_DATE('24-03-2007', 'dd-MM-yyyy'), 'SA_REP', 7300, .15, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 173, 'Sundita', 'Kumar', 'SKUMAR', '011.44.1343.329268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6100, .10, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 174, 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', TO_DATE('11-05-2004', 'dd-MM-yyyy'), 'SA_REP', 11000, .30, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 175, 'Alyssa', 'Hutton', 'AHUTTON', '011.44.1644.429266', TO_DATE('19-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8800, .25, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 176, 'Jonathon', 'Taylor', 'JTAYLOR', '011.44.1644.429265', TO_DATE('24-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8600, .20, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 177, 'Jack', 'Livingston', 'JLIVINGS', '011.44.1644.429264', TO_DATE('23-04-2006', 'dd-MM-yyyy'), 'SA_REP', 8400, .20, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 178, 'Kimberely', 'Grant', 'KGRANT', '011.44.1644.429263', TO_DATE('24-05-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 149, NULL); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 179, 'Charles', 'Johnson', 'CJOHNSON', '011.44.1644.429262', TO_DATE('04-01-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 180, 'Winston', 'Taylor', 'WTAYLOR', '650.507.9876', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 181, 'Jean', 'Fleaur', 'JFLEAUR', '650.507.9877', TO_DATE('23-02-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 182, 'Martha', 'Sullivan', 'MSULLIVA', '650.507.9878', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 183, 'Girard', 'Geoni', 'GGEONI', '650.507.9879', TO_DATE('03-02-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 184, 'Nandita', 'Sarchand', 'NSARCHAN', '650.509.1876', TO_DATE('27-01-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4200, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 185, 'Alexis', 'Bull', 'ABULL', '650.509.2876', TO_DATE('20-02-2005', 'dd-MM-yyyy'), 'SH_CLERK', 4100, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 186, 'Julia', 'Dellinger', 'JDELLING', '650.509.3876', TO_DATE('24-06-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3400, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 187, 'Anthony', 'Cabrio', 'ACABRIO', '650.509.4876', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 188, 'Kelly', 'Chung', 'KCHUNG', '650.505.1876', TO_DATE('14-06-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3800, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 189, 'Jennifer', 'Dilly', 'JDILLY', '650.505.2876', TO_DATE('13-08-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3600, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 190, 'Timothy', 'Gates', 'TGATES', '650.505.3876', TO_DATE('11-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 2900, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 191, 'Randall', 'Perkins', 'RPERKINS', '650.505.4876', TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 192, 'Sarah', 'Bell', 'SBELL', '650.501.1876', TO_DATE('04-02-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4000, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 193, 'Britney', 'Everett', 'BEVERETT', '650.501.2876', TO_DATE('03-03-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3900, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 194, 'Samuel', 'McCain', 'SMCCAIN', '650.501.3876', TO_DATE('01-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 195, 'Vance', 'Jones', 'VJONES', '650.501.4876', TO_DATE('17-03-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 196, 'Alana', 'Walsh', 'AWALSH', '650.507.9811', TO_DATE('24-04-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 197, 'Kevin', 'Feeney', 'KFEENEY', '650.507.9822', TO_DATE('23-05-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 198, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 199, 'Douglas', 'Grant', 'DGRANT', '650.507.9844', TO_DATE('13-01-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 200, 'Jennifer', 'Whalen', 'JWHALEN', '515.123.4444', TO_DATE('17-09-2003', 'dd-MM-yyyy'), 'AD_ASST', 4400, NULL, 101, 10); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 201, 'Michael', 'Hartstein', 'MHARTSTE', '515.123.5555', TO_DATE('17-02-2004', 'dd-MM-yyyy'), 'MK_MAN', 13000, NULL, 100, 20); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 202, 'Pat', 'Fay', 'PFAY', '603.123.6666', TO_DATE('17-08-2005', 'dd-MM-yyyy'), 'MK_REP', 6000, NULL, 201, 20); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 203, 'Susan', 'Mavris', 'SMAVRIS', '515.123.7777', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'HR_REP', 6500, NULL, 101, 40); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 204, 'Hermann', 'Baer', 'HBAER', '515.123.8888', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'PR_REP', 10000, NULL, 101, 70); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 205, 'Shelley', 'Higgins', 'SHIGGINS', '515.123.8080', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_MGR', 12008, NULL, 101, 110); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 206, 'William', 'Gietz', 'WGIETZ', '515.123.8181', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_ACCOUNT', 8300, NULL, 205, 110); + + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (102, TO_DATE('13-01-2001', 'dd-MM-yyyy'), TO_DATE('24-07-2006', 'dd-MM-yyyy'), 'IT_PROG', 60); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (101, TO_DATE('21-09-1997', 'dd-MM-yyyy'), TO_DATE('27-10-2001', 'dd-MM-yyyy'), 'AC_ACCOUNT', 110); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (101, TO_DATE('28-10-2001', 'dd-MM-yyyy'), TO_DATE('15-03-2005', 'dd-MM-yyyy'), 'AC_MGR', 110); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (201, TO_DATE('17-02-2004', 'dd-MM-yyyy'), TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'MK_REP', 20); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (114, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (122, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (200, TO_DATE('17-09-1995', 'dd-MM-yyyy'), TO_DATE('17-06-2001', 'dd-MM-yyyy'), 'AD_ASST', 90); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (176, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'SA_REP', 80); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (176, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'SA_MAN', 80); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (200, TO_DATE('01-07-2002', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'AC_ACCOUNT', 90); + + +ALTER TABLE departments ENABLE CONSTRAINT dept_mgr_fk; + +COMMIT; + +/* +04 Others +Perform other steps after populating data, such as indexes and comments +*/ + + + +CREATE INDEX emp_department_ix +ON employees (department_id); + +CREATE INDEX emp_job_ix +ON employees (job_id); + +CREATE INDEX emp_manager_ix +ON employees (manager_id); + +CREATE INDEX emp_name_ix +ON employees (last_name, first_name); + +CREATE INDEX dept_location_ix +ON departments (location_id); + +CREATE INDEX jhist_job_ix +ON job_history (job_id); + +CREATE INDEX jhist_employee_ix +ON job_history (employee_id); + +CREATE INDEX jhist_department_ix +ON job_history (department_id); + +CREATE INDEX loc_city_ix +ON locations (city); + +CREATE INDEX loc_state_province_ix +ON locations (state_province); + +CREATE INDEX loc_country_ix +ON locations (country_id); + +COMMIT; + + + + +/* +procedure and statement trigger to allow dmls during business hours: +*/ + +CREATE OR REPLACE PROCEDURE secure_dml +IS +BEGIN + IF TO_CHAR (SYSDATE, 'HH24:MI') NOT BETWEEN '08:00' AND '18:00' + OR TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN') THEN + RAISE_APPLICATION_ERROR (-20205, + 'You may only make changes during normal office hours'); + END IF; +END secure_dml; +/ + +CREATE OR REPLACE TRIGGER secure_employees + BEFORE INSERT OR UPDATE OR DELETE ON employees +BEGIN + secure_dml; +END secure_employees; +/ + +ALTER TRIGGER secure_employees DISABLE; + + +/* +procedure to add a row to the JOB_HISTORY table and row trigger +to call the procedure when data is updated in the job_id or +department_id columns in the EMPLOYEES table: +*/ + +CREATE OR REPLACE PROCEDURE add_job_history + ( p_emp_id job_history.employee_id%type + , p_start_date job_history.start_date%type + , p_end_date job_history.end_date%type + , p_job_id job_history.job_id%type + , p_department_id job_history.department_id%type + ) +IS +BEGIN + INSERT INTO job_history (employee_id, start_date, end_date, + job_id, department_id) + VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id); +END add_job_history; +/ + +CREATE OR REPLACE TRIGGER update_job_history + AFTER UPDATE OF job_id, department_id ON employees + FOR EACH ROW +BEGIN + add_job_history(:old.employee_id, :old.hire_date, sysdate, + :old.job_id, :old.department_id); +END; +/ + +COMMIT; + +/* +Add comments to tables and columns +*/ + +COMMENT ON TABLE regions +IS 'Regions table that contains region numbers and names. Contains 4 rows; references with the Countries table.'; + +COMMENT ON COLUMN regions.region_id +IS 'Primary key of regions table.'; + +COMMENT ON COLUMN regions.region_name +IS 'Names of regions. Locations are in the countries of these regions.'; + +COMMENT ON TABLE locations +IS 'Locations table that contains specific address of a specific office, +warehouse, and/or production site of a company. Does not store addresses / +locations of customers. Contains 23 rows; references with the +departments and countries tables. '; + +COMMENT ON COLUMN locations.location_id +IS 'Primary key of locations table'; + +COMMENT ON COLUMN locations.street_address +IS 'Street address of an office, warehouse, or production site of a company. +Contains building number and street name'; + +COMMENT ON COLUMN locations.postal_code +IS 'Postal code of the location of an office, warehouse, or production site +of a company. '; + +COMMENT ON COLUMN locations.city +IS 'A not null column that shows city where an office, warehouse, or +production site of a company is located. '; + +COMMENT ON COLUMN locations.state_province +IS 'State or Province where an office, warehouse, or production site of a +company is located.'; + +COMMENT ON COLUMN locations.country_id +IS 'Country where an office, warehouse, or production site of a company is +located. Foreign key to country_id column of the countries table.'; + + +COMMENT ON TABLE departments +IS 'Departments table that shows details of departments where employees +work. Contains 27 rows; references with locations, employees, and job_history tables.'; + +COMMENT ON COLUMN departments.department_id +IS 'Primary key column of departments table.'; + +COMMENT ON COLUMN departments.department_name +IS 'A not null column that shows name of a department. Administration, +Marketing, Purchasing, Human Resources, Shipping, IT, Executive, Public +Relations, Sales, Finance, and Accounting. '; + +COMMENT ON COLUMN departments.manager_id +IS 'Manager_id of a department. Foreign key to employee_id column of employees table. The manager_id column of the employee table references this column.'; + +COMMENT ON COLUMN departments.location_id +IS 'Location id where a department is located. Foreign key to location_id column of locations table.'; + + +COMMENT ON TABLE job_history +IS 'Table that stores job history of the employees. If an employee +changes departments within the job or changes jobs within the department, +new rows get inserted into this table with old job information of the +employee. Contains a complex primary key: employee_id+start_date. +Contains 25 rows. References with jobs, employees, and departments tables.'; + +COMMENT ON COLUMN job_history.employee_id +IS 'A not null column in the complex primary key employee_id+start_date. +Foreign key to employee_id column of the employee table'; + +COMMENT ON COLUMN job_history.start_date +IS 'A not null column in the complex primary key employee_id+start_date. +Must be less than the end_date of the job_history table. (enforced by +constraint jhist_date_interval)'; + +COMMENT ON COLUMN job_history.end_date +IS 'Last day of the employee in this job role. A not null column. Must be +greater than the start_date of the job_history table. +(enforced by constraint jhist_date_interval)'; + +COMMENT ON COLUMN job_history.job_id +IS 'Job role in which the employee worked in the past; foreign key to +job_id column in the jobs table. A not null column.'; + +COMMENT ON COLUMN job_history.department_id +IS 'Department id in which the employee worked in the past; foreign key to deparment_id column in the departments table'; + + + +COMMENT ON TABLE countries +IS 'country table. Contains 25 rows. References with locations table.'; + +COMMENT ON COLUMN countries.country_id +IS 'Primary key of countries table.'; + +COMMENT ON COLUMN countries.country_name +IS 'Country name'; + +COMMENT ON COLUMN countries.region_id +IS 'Region ID for the country. Foreign key to region_id column in the departments table.'; + + + +COMMENT ON TABLE jobs +IS 'jobs table with job titles and salary ranges. Contains 19 rows. +References with employees and job_history table.'; + +COMMENT ON COLUMN jobs.job_id +IS 'Primary key of jobs table.'; + +COMMENT ON COLUMN jobs.job_title +IS 'A not null column that shows job title, e.g. AD_VP, FI_ACCOUNTANT'; + +COMMENT ON COLUMN jobs.min_salary +IS 'Minimum salary for a job title.'; + +COMMENT ON COLUMN jobs.max_salary +IS 'Maximum salary for a job title'; + + + +COMMENT ON TABLE employees +IS 'employees table. Contains 107 rows. References with departments, +jobs, job_history tables. Contains a self reference.'; + +COMMENT ON COLUMN employees.employee_id +IS 'Primary key of employees table.'; + +COMMENT ON COLUMN employees.first_name +IS 'First name of the employee. A not null column.'; + +COMMENT ON COLUMN employees.last_name +IS 'Last name of the employee. A not null column.'; + +COMMENT ON COLUMN employees.email +IS 'Email id of the employee'; + +COMMENT ON COLUMN employees.phone_number +IS 'Phone number of the employee; includes country code and area code'; + +COMMENT ON COLUMN employees.hire_date +IS 'Date when the employee started on this job. A not null column.'; + +COMMENT ON COLUMN employees.job_id +IS 'Current job of the employee; foreign key to job_id column of the +jobs table. A not null column.'; + +COMMENT ON COLUMN employees.salary +IS 'Monthly salary of the employee. Must be greater +than zero (enforced by constraint emp_salary_min)'; + +COMMENT ON COLUMN employees.commission_pct +IS 'Commission percentage of the employee; Only employees in sales +department elgible for commission percentage'; + +COMMENT ON COLUMN employees.manager_id +IS 'Manager id of the employee; has same domain as manager_id in +departments table. Foreign key to employee_id column of employees table. +(useful for reflexive joins and CONNECT BY query)'; + +COMMENT ON COLUMN employees.department_id +IS 'Department id where employee works; foreign key to department_id +column of the departments table'; + COMMIT; \ No newline at end of file diff --git a/PLSQL/Hotel Task/Hatfield_Hotel_Table_and_Data_RD.sql b/PLSQL/Hotel Task/Hatfield_Hotel_Table_and_Data_RD.sql index 265bc1a..2958736 100644 --- a/PLSQL/Hotel Task/Hatfield_Hotel_Table_and_Data_RD.sql +++ b/PLSQL/Hotel Task/Hatfield_Hotel_Table_and_Data_RD.sql @@ -1,1643 +1,1643 @@ -SET SERVEROUTPUT ON; - -DECLARE - R_CNT NUMBER := 0; - TYPE T_NAMES IS - VARRAY(9) OF VARCHAR2(20); - TABLE_LIST T_NAMES; -BEGIN - TABLE_LIST := T_NAMES('A2_ROOM_TYPE', 'A2_ROOM', 'A2_GUEST', 'A2_BOOKING', 'A2_RESERVATION', 'A2_EXTRA', 'A2_PRICE_LIST', 'A2_FIXED_EXTRA', 'A2_ADDITIONAL_EXTRA'); - DBMS_OUTPUT.PUT_LINE('Dropping Tables ...'); - FOR ELEMENT IN 1 .. TABLE_LIST.COUNT LOOP - SELECT - COUNT (*) INTO R_CNT - FROM - ALL_TABLES - WHERE - TABLE_NAME = TABLE_LIST(ELEMENT) - AND OWNER = ( - SELECT - SYS_CONTEXT ('userenv', 'current_schema') - FROM - DUAL - ); - IF (R_CNT > 0) THEN - EXECUTE IMMEDIATE 'DROP TABLE ' - || TABLE_LIST(ELEMENT) - || ' CASCADE CONSTRAINTS'; - DBMS_OUTPUT.PUT_LINE(' ... ' - || TABLE_LIST(ELEMENT)); - END IF; - END LOOP; - - DBMS_OUTPUT.PUT_LINE('Create Tables ...'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Room_Type - ( Room_Type VARCHAR2(6) PRIMARY KEY - CHECK ( Room_Type IN ( ''Single'', ''Double'', ''Twin'', ''Family'' )), - Sleeps NUMBER(1,0) NOT NULL, - Description VARCHAR2(1000))'; - DBMS_OUTPUT.PUT_LINE(' ... A2_ROOM_TYPE'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Room - ( Room_Number VARCHAR2(4) PRIMARY KEY, - Room_Type VARCHAR2(6) NOT NULL - CHECK ( Room_Type IN ( ''Single'', - ''Double'', - ''Twin'', - ''Family'' )) - REFERENCES A2_Room_Type (Room_Type), - Shower VARCHAR2(1) NOT NULL - CHECK ( Shower IN ( ''Y'', ''N'' )), - Bath VARCHAR2(1) NOT NULL - CHECK ( Bath IN ( ''Y'', ''N'' )), - Balcony VARCHAR2(1) NOT NULL - CHECK ( Balcony IN ( ''Y'', ''N'' )) )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_ROOM'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Guest - ( Guest_ID VARCHAR2(6) PRIMARY KEY, - Family_Name VARCHAR2(40) NOT NULL, - Given_Name VARCHAR2(40) NOT NULL, - Date_of_Birth DATE NOT NULL, - Address VARCHAR2(200) NOT NULL )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_GUEST'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Booking - ( Booking_Number VARCHAR2(10) PRIMARY KEY, - Guest VARCHAR2(6) NOT NULL - REFERENCES A2_Guest (Guest_ID), - Date_Made DATE NOT NULL, - Reason VARCHAR2(8) NOT NULL - CHECK ( Reason IN ( ''Business'', - ''Leisure'' )))'; - DBMS_OUTPUT.PUT_LINE(' ... A2_BOOKING'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Reservation - ( Booking_Number VARCHAR2(10) NOT NULL - REFERENCES A2_Booking (Booking_Number), - Room_Number VARCHAR2(4) NOT NULL - REFERENCES A2_Room (Room_Number), - Date_Reserved DATE NOT NULL, - PRIMARY KEY (Booking_Number, Room_Number, Date_Reserved) )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_SHOWING'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Extra - ( Extra_ID VARCHAR2(6) PRIMARY KEY, - Object_Name VARCHAR2(30) NOT NULL - CHECK ( Object_Name IN ( ''Kettle'', - ''Baby Highchair'', - ''Iron and Board'', - ''Cot'', - ''Newspaper'', - ''Trouser Press'', - ''Wifi'' )), - Object_Description VARCHAR2(400) NOT NULL, - Object_Price NUMBER(5,2) NOT NULL )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_EXTRA'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Price_List - ( Room_Number VARCHAR2(4) NOT NULL - REFERENCES A2_Room (Room_Number), - Season VARCHAR2(4) NOT NULL, - Weekday CHAR(3) NOT NULL, - Price NUMBER(6,2) NOT NULL, - PRIMARY KEY (Room_Number, Season, Weekday) )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_PRICE_LIST'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Fixed_Extra - ( Room_Number VARCHAR2(4) NOT NULL - REFERENCES A2_Room (Room_Number), - Extra_ID VARCHAR2(6) NOT NULL - REFERENCES A2_Extra (Extra_ID), - PRIMARY KEY (Room_Number, Extra_ID))'; - DBMS_OUTPUT.PUT_LINE(' ... A2_FIXED_EXTRA'); - EXECUTE IMMEDIATE 'CREATE TABLE A2_Additional_Extra - ( Booking_Number VARCHAR2(10) NOT NULL, - Room_Number VARCHAR2(4) NOT NULL, - Date_Reserved DATE NOT NULL, - Extra_ID VARCHAR2(6) NOT NULL - REFERENCES A2_Extra (Extra_ID), - FOREIGN KEY (Booking_Number, Room_Number, Date_Reserved) - REFERENCES A2_Reservation (Booking_Number, Room_Number, Date_Reserved), - PRIMARY KEY (Booking_Number, Room_Number, Date_Reserved, Extra_ID))'; - DBMS_OUTPUT.PUT_LINE(' ... A2_ADDITIONAL_EXTRA'); - DBMS_OUTPUT.PUT_LINE(' '); - DBMS_OUTPUT.PUT_LINE('All tables created.'); - DBMS_OUTPUT.PUT_LINE(''); - DBMS_OUTPUT.PUT_LINE('Populate Tables ...'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''933458'', ''Robbins'', ''Martha'', TO_DATE( ''16/04/1992'', ''DD/MM/YYYY'' ), ''74b, Sandley Towers, Sandley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''226725'', ''Silver'', ''Richard '', TO_DATE( ''09/09/1965'', ''DD/MM/YYYY'' ), ''298, Christchurch Lane, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''632134'', ''Lance'', ''Abe'', TO_DATE( ''27/02/1959'', ''DD/MM/YYYY'' ), ''81, Templemead, Sharpenley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''038464'', ''Martins'', ''Rebecca'', TO_DATE( ''13/09/1986'', ''DD/MM/YYYY'' ), ''34, Mount Drive, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''826367'', ''Grace'', ''Thomas'', TO_DATE( ''16/11/2000'', ''DD/MM/YYYY'' ), ''23, High Street, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''628222'', ''Legion'', ''Craig'', TO_DATE( ''15/01/1996'', ''DD/MM/YYYY'' ), ''8, Mandela Walk, Southlands'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''082164'', ''Marvin'', ''Leon'', TO_DATE( ''08/02/1989'', ''DD/MM/YYYY'' ), ''The Marches, Teal Avenue, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''624801'', ''Kumar'', ''Satir'', TO_DATE( ''31/10/1998'', ''DD/MM/YYYY'' ), ''1, Sun Terrace, Tramley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''776734'', ''Maru'', ''Callum'', TO_DATE( ''24/04/1979'', ''DD/MM/YYYY'' ), ''45, Margan Drive, Southlands'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''193445'', ''Strettle'', ''George'', TO_DATE( ''01/01/1984'', ''DD/MM/YYYY'' ), ''Rose Cottage, Mount Drive, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''838384'', ''Grace'', ''Terence'', TO_DATE( ''30/05/1961'', ''DD/MM/YYYY'' ), ''23, High Street, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''611874'', ''Holmsworthy'', ''Claire'', TO_DATE( ''05/03/2001'', ''DD/MM/YYYY'' ), ''11, Brookfield, Tramley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''485639'', ''Kline'', ''Kevin'', TO_DATE( ''07/06/1991'', ''DD/MM/YYYY'' ), ''43, Sandpit Drive, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''772839'', ''Tuttle'', ''Ruth'', TO_DATE( ''23/08/1993'', ''DD/MM/YYYY'' ), ''7, Clearways, Cosset'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''900239'', ''Singh'', ''Vital'', TO_DATE( ''09/07/1997'', ''DD/MM/YYYY'' ), ''11, Brentway, Sandley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''802346'', ''Neo'', ''Rebecca'', TO_DATE( ''16/12/2000'', ''DD/MM/YYYY'' ), ''2a, Carnfield, Masterton'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''529809'', ''Leibermann'', ''Samuel'', TO_DATE( ''02/05/1996'', ''DD/MM/YYYY'' ), ''The Manor, Sandley Lane, Southlands'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''190911'', ''Fellows'', ''John'', TO_DATE( ''18/12/1999'', ''DD/MM/YYYY'' ), ''18, Whooper Way, Cosset'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''835123'', ''Oslovski'', ''Boris'', TO_DATE( ''13/10/1987'', ''DD/MM/YYYY'' ), ''108, High Street, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''874902'', ''Wilson'', ''Claire'', TO_DATE( ''16/06/1997'', ''DD/MM/YYYY'' ), ''54, The Greenway, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''519392'', ''Zimmerman'', ''Able'', TO_DATE( ''24/11/2001'', ''DD/MM/YYYY'' ), ''Flat 4, Helm House, Sharpenley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''599222'', ''Genoa'', ''Carrie'', TO_DATE( ''16/12/1976'', ''DD/MM/YYYY'' ), ''106, Ridgeway, Sharpenley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''200101'', ''Fellows'', ''Aaron'', TO_DATE( ''14/12/1968'', ''DD/MM/YYYY'' ), ''12, Abbey Road, Southlands'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''319899'', ''Slater'', ''Martin'', TO_DATE( ''09/03/1980'', ''DD/MM/YYYY'' ), ''1, Upper Lane, Lyndham'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''109738'', ''Mannock'', ''Harry '', TO_DATE( ''02/01/2000'', ''DD/MM/YYYY'' ), ''79, The Beeches, Masterton'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''180558'', ''Leeman'', ''Terence'', TO_DATE( ''17/05/1995'', ''DD/MM/YYYY'' ), ''3, Meadow View, Lindon'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''293764'', ''Simmonds'', ''Michael'', TO_DATE( ''12/04/1992'', ''DD/MM/YYYY'' ), ''28, Highridge Way, Layburn'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''463523'', ''Majors'', ''Louisa'', TO_DATE( ''06/06/1979'', ''DD/MM/YYYY'' ), ''82c, Crowsfoot Road, Layburn'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''859231'', ''Amman'', ''Said'', TO_DATE( ''26/07/1983'', ''DD/MM/YYYY'' ), ''29, The Roost, Cosset'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''342346'', ''Rivers'', ''Jill'', TO_DATE( ''20/10/1990'', ''DD/MM/YYYY'' ), ''4, Coningsby Close, Southlands'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''546264'', ''Gaye'', ''Anthony'', TO_DATE( ''17/07/1976'', ''DD/MM/YYYY'' ), ''31, Priory Walk, Lyndham'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''219987'', ''Southern'', ''Reece'', TO_DATE( ''21/03/1979'', ''DD/MM/YYYY'' ), ''16, Vicarage Road, Sandlin'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''591498'', ''Parraman'', ''Junior'', TO_DATE( ''08/03/1983'', ''DD/MM/YYYY'' ), ''57, Harper''''s Court, Louthham'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''984574'', ''Dixon'', ''Mel'', TO_DATE( ''04/04/1960'', ''DD/MM/YYYY'' ), ''41, Highridge Way, Layburn'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''254547'', ''Leeman'', ''Grace'', TO_DATE( ''08/12/1978'', ''DD/MM/YYYY'' ), ''96, Nightingale Avenue, Layburn'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''440937'', ''Malik'', ''Sunil'', TO_DATE( ''16/07/2001'', ''DD/MM/YYYY'' ), ''7, Pickard''''s Rise, Tramley'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''060401'', ''Mcfadden'', ''Garth'', TO_DATE( ''22/08/1979'', ''DD/MM/YYYY'' ), ''17, Windmill Drive, Bycester'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''090909'', ''Notmade'', ''Book'', TO_DATE( ''01/01/2000'', ''DD/MM/YYYY'' ), ''1, The Gardens, Masterton'' )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Guest'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040134'', ''463523'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040135'', ''463523'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040136'', ''519392'', TO_DATE( ''17/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040137'', ''632134'', TO_DATE( ''17/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040138'', ''180558'', TO_DATE( ''17/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040139'', ''219987'', TO_DATE( ''18/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040140'', ''802346'', TO_DATE( ''20/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040141'', ''060401'', TO_DATE( ''20/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040142'', ''529809'', TO_DATE( ''21/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040143'', ''835123'', TO_DATE( ''21/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040144'', ''200101'', TO_DATE( ''21/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040145'', ''772839'', TO_DATE( ''24/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040146'', ''193445'', TO_DATE( ''26/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040147'', ''082164'', TO_DATE( ''26/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040148'', ''226725'', TO_DATE( ''26/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040149'', ''293764'', TO_DATE( ''27/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040150'', ''546264'', TO_DATE( ''27/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040151'', ''776734'', TO_DATE( ''29/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040152'', ''826367'', TO_DATE( ''29/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040153'', ''190911'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040154'', ''193445'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040155'', ''900239'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040156'', ''342346'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040157'', ''874902'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040158'', ''082164'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040159'', ''038464'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040160'', ''859231'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040161'', ''546264'', TO_DATE( ''01/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040162'', ''835123'', TO_DATE( ''01/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040163'', ''319899'', TO_DATE( ''03/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040164'', ''984574'', TO_DATE( ''03/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040165'', ''591498'', TO_DATE( ''04/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040166'', ''190911'', TO_DATE( ''04/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040167'', ''293764'', TO_DATE( ''06/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040168'', ''440937'', TO_DATE( ''06/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040169'', ''599222'', TO_DATE( ''06/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040170'', ''109738'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040171'', ''826367'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040172'', ''802346'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040173'', ''082164'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040174'', ''342346'', TO_DATE( ''08/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040175'', ''319899'', TO_DATE( ''08/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040176'', ''933458'', TO_DATE( ''09/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040177'', ''826367'', TO_DATE( ''11/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040178'', ''546264'', TO_DATE( ''13/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040179'', ''200101'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040180'', ''835123'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040181'', ''082164'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040182'', ''109738'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040183'', ''599222'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040184'', ''776734'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040185'', ''190911'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040186'', ''519392'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040187'', ''193445'', TO_DATE( ''16/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040188'', ''342346'', TO_DATE( ''18/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040189'', ''319899'', TO_DATE( ''19/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040190'', ''226725'', TO_DATE( ''19/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Booking'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Single'', ''1'', ''One 140cm wide single bed'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Double'', ''2'', ''One 180cm wide double bed'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Twin'', ''2'', ''Two 140cm wide single beds'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Family'', ''4'', ''One 180cm wide double bed and two 140cm wide single beds'' )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Room_Type'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''001'', ''Family'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''002'', ''Family'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''003'', ''Single'', ''N'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''004'', ''Single'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''005'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''101'', ''Double'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''102'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''103'', ''Double'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''104'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''105'', ''Family'', ''Y'', ''Y'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''106'', ''Twin'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''107'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''108'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''109'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''110'', ''Twin'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''111'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''112'', ''Single'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''113'', ''Double'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''114'', ''Double'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''115'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''116'', ''Family'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''117'', ''Double'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''118'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''119'', ''Single'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''120'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''201'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''202'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''203'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''204'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''205'', ''Single'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''206'', ''Single'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''207'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''208'', ''Double'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''209'', ''Double'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''210'', ''Double'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''211'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''212'', ''Family'', ''Y'', ''Y'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''213'', ''Family'', ''Y'', ''Y'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''214'', ''Single'', ''N'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''215'', ''Single'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''216'', ''Single'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''217'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''218'', ''Double'', ''Y'', ''N'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''219'', ''Double'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''220'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''221'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''222'', ''Twin'', ''Y'', ''N'', ''N'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''223'', ''Double'', ''Y'', ''Y'', ''Y'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''224'', ''Double'', ''Y'', ''N'', ''N'' )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Room'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040134'', ''224'', TO_DATE( ''19/04/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040134'', ''224'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''224'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''224'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''202'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''202'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''28/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''29/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''30/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''28/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''29/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''30/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040137'', ''211'', TO_DATE( ''08/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040137'', ''211'', TO_DATE( ''09/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''113'', TO_DATE( ''17/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''113'', TO_DATE( ''18/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''113'', TO_DATE( ''19/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''005'', TO_DATE( ''17/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''005'', TO_DATE( ''18/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''005'', TO_DATE( ''19/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040139'', ''210'', TO_DATE( ''09/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040140'', ''223'', TO_DATE( ''19/04/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040140'', ''223'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040141'', ''202'', TO_DATE( ''19/04/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040141'', ''202'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''15/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''17/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''19/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''113'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''115'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040143'', ''204'', TO_DATE( ''25/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040143'', ''204'', TO_DATE( ''26/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040143'', ''204'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''112'', TO_DATE( ''13/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''119'', TO_DATE( ''13/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''216'', TO_DATE( ''13/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''112'', TO_DATE( ''14/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''119'', TO_DATE( ''14/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''216'', TO_DATE( ''14/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''26/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''27/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''30/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''01/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040146'', ''201'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''201'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''202'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''208'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''209'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040148'', ''218'', TO_DATE( ''05/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040149'', ''114'', TO_DATE( ''03/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040149'', ''114'', TO_DATE( ''04/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040151'', ''108'', TO_DATE( ''05/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040151'', ''108'', TO_DATE( ''06/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040151'', ''108'', TO_DATE( ''07/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040152'', ''002'', TO_DATE( ''01/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040152'', ''002'', TO_DATE( ''02/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040152'', ''002'', TO_DATE( ''03/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040153'', ''120'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040153'', ''204'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040154'', ''218'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040155'', ''207'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040155'', ''208'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040155'', ''211'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040156'', ''115'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040156'', ''115'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''19/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''20/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''21/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040158'', ''113'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040159'', ''113'', TO_DATE( ''08/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040160'', ''101'', TO_DATE( ''06/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040160'', ''101'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040161'', ''103'', TO_DATE( ''06/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040161'', ''103'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''105'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''106'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''103'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''113'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''114'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''115'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''219'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''220'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040163'', ''108'', TO_DATE( ''01/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040163'', ''109'', TO_DATE( ''01/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040164'', ''114'', TO_DATE( ''21/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040165'', ''116'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040166'', ''224'', TO_DATE( ''27/06/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040167'', ''106'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040167'', ''107'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040168'', ''113'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040169'', ''101'', TO_DATE( ''02/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''102'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''104'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''105'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''106'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''108'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''111'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''116'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''117'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''118'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040171'', ''117'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040172'', ''211'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040173'', ''218'', TO_DATE( ''30/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040173'', ''218'', TO_DATE( ''31/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040174'', ''119'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040174'', ''119'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040174'', ''119'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040175'', ''203'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040176'', ''201'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040176'', ''202'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040176'', ''203'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040177'', ''203'', TO_DATE( ''09/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040178'', ''219'', TO_DATE( ''09/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040179'', ''205'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040180'', ''201'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040180'', ''201'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040180'', ''201'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040181'', ''218'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040181'', ''218'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040182'', ''224'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040182'', ''224'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040182'', ''224'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''08/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''09/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''10/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''11/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''06/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''07/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''08/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''09/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040185'', ''107'', TO_DATE( ''30/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''201'', TO_DATE( ''19/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''201'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''202'', TO_DATE( ''19/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''202'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040187'', ''115'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''105'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''105'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''105'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''116'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''116'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''116'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''212'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''212'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''212'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040189'', ''218'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040189'', ''218'', TO_DATE( ''28/07/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''102'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''103'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''105'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''106'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''111'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''113'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''114'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''118'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''211'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''212'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Reservation'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Fri'',112)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Fri'',113)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Fri'',203)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Fri'',205)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Fri'',206)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Fri'',209)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Fri'',211)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Fri'',212)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Fri'',215)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Fri'',217)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Fri'',218)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Fri'',221)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Fri'',110)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Fri'',223)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Sun'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Mon'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Tue'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Wed'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Thu'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Fri'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Sat'',150)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Sun'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Mon'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Tue'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Wed'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Thu'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Fri'',224)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Sat'',120)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Sun'',100)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Mon'',75.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Tue'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Wed'',69.5)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Thu'',80)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Fri'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Sat'',90)'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Sun'',80)'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Price_List'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01251'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01252'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01253'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01254'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01255'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01256'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01257'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01258'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01259'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01260'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01271'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01272'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01273'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01274'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01275'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01276'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01277'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01278'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01279'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01280'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01281'', ''Kettle'', ''Fast boil kettle with 2 cup capacity'', 3.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01282'', ''Kettle'', ''Fast boil kettle with 2 cup capacity'', 3.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01283'', ''Kettle'', ''Fast boil kettle with 2 cup capacity'', 3.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01284'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01285'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01286'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01287'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01288'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01289'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01290'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01291'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01261'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01262'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01263'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01264'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01292'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01293'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01294'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01295'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01296'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01297'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01298'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01299'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01300'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01301'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01302'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01303'', ''Kettle'', ''Silent boil kettle with 6 cup capacity'', 3.75 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01304'', ''Kettle'', ''Silent boil kettle with 6 cup capacity'', 3.75 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01305'', ''Baby Highchair'', ''Wooden with easy-clean tray'', 4.75 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01306'', ''Baby Highchair'', ''Wooden with easy-clean tray'', 4.75 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01307'', ''Baby Highchair'', ''Wooden with easy-clean tray'', 4.75 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01308'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01309'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01310'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01311'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01312'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01313'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01314'', ''Cot'', ''Collapsable cot 1.20m long'', 4.50 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01315'', ''Cot'', ''1.2m long pine wood, lowers one sides'', 4.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01316'', ''Cot'', ''1.2m long pine wood, lowers one sides'', 4.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01317'', ''Cot'', ''1.2m long pine wood, lowers one sides'', 4.25 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01318'', ''Cot'', ''1.4m long pine wood, lowers one sides'', 5.45 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01319'', ''Iron and Board'', ''Steam Iron with extra length board'', 4.00 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01320'', ''Iron and Board'', ''Steam Iron with extra length board'', 4.00 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01321'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01322'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01323'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01324'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01325'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01326'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01327'', ''Trouser Press'', ''Foldable'', 2.80 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01328'', ''Trouser Press'', ''Foldable'', 2.80 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01329'', ''Trouser Press'', ''Foldable'', 2.80 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01330'', ''Trouser Press'', ''Foldable'', 2.80 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01331'', ''Trouser Press'', ''Foldable'', 2.80 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01332'', ''Newspaper'', ''Daily Bugle'', 0.90 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01333'', ''Newspaper'', ''Daily Bugle'', 0.90 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01334'', ''Newspaper'', ''Daily Bugle'', 0.90 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01335'', ''Newspaper'', ''Daily Reflection'', 0.80 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01336'', ''Newspaper'', ''The Light'', 0.75 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01337'', ''Newspaper'', ''Sunday Bugle'', 1.60 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01338'', ''Newspaper'', ''Sunday Bugle'', 1.60 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01339'', ''Newspaper'', ''Sunday Bugle'', 2.00 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01340'', ''Newspaper'', ''Sunday Bugle'', 2.00 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01341'', ''Newspaper'', ''Sunday Legend'', 1.90 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01342'', ''Newspaper'', ''Sunday Legend'', 1.90 )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01343'', ''Newspaper'', ''Sunday Legend'', 0.90 )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Extra'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''101'', ''E01284'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''102'', ''E01285'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''103'', ''E01286'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''104'', ''E01287'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''106'', ''E01281'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''107'', ''E01288'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''108'', ''E01289'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''113'', ''E01290'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''114'', ''E01291'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''117'', ''E01261'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''118'', ''E01262'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''120'', ''E01296'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''201'', ''E01271'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''202'', ''E01272'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''203'', ''E01273'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''208'', ''E01295'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''209'', ''E01274'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''210'', ''E01275'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''211'', ''E01276'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''217'', ''E01277'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''218'', ''E01278'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''219'', ''E01279'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''222'', ''E01283'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''223'', ''E01282'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''224'', ''E01280'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''005'', ''E01327'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''114'', ''E01328'' )'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''218'', ''E01329'' )'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Fixed_Extra'); - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040134'', ''224'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ), ''E01322'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040135'', ''224'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ), ''E01322'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040136'', ''105'', TO_DATE( ''28/05/2022'', ''DD/MM/YYYY'' ), ''E01303'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040136'', ''105'', TO_DATE( ''29/05/2022'', ''DD/MM/YYYY'' ), ''E01303'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040139'', ''210'', TO_DATE( ''09/06/2022'', ''DD/MM/YYYY'' ), ''E01303'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040142'', ''114'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ), ''E01321'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040143'', ''204'', TO_DATE( ''26/05/2022'', ''DD/MM/YYYY'' ), ''E01264'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040143'', ''204'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ), ''E01264'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040147'', ''202'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ), ''E01320'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040147'', ''208'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ), ''E01342'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040148'', ''218'', TO_DATE( ''05/07/2022'', ''DD/MM/YYYY'' ), ''E01333'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040150'', ''206'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ), ''E01337'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040151'', ''108'', TO_DATE( ''05/06/2022'', ''DD/MM/YYYY'' ), ''E01338'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040152'', ''002'', TO_DATE( ''01/07/2022'', ''DD/MM/YYYY'' ), ''E01315'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040152'', ''002'', TO_DATE( ''02/07/2022'', ''DD/MM/YYYY'' ), ''E01315'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040152'', ''002'', TO_DATE( ''03/07/2022'', ''DD/MM/YYYY'' ), ''E01315'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040156'', ''115'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ), ''E01334'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040156'', ''115'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ), ''E01259'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040161'', ''103'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ), ''E01322'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040162'', ''219'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ), ''E01340'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040162'', ''114'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ), ''E01339'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040163'', ''109'', TO_DATE( ''01/06/2022'', ''DD/MM/YYYY'' ), ''E01256'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040167'', ''107'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ), ''E01341'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''105'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01317'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''111'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01310'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''118'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01313'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''118'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01306'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040172'', ''211'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ), ''E01335'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040173'', ''218'', TO_DATE( ''30/07/2022'', ''DD/MM/YYYY'' ), ''E01343'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040181'', ''218'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ), ''E01336'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040182'', ''224'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ), ''E01316'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040182'', ''224'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ), ''E01316'')'; - EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040182'', ''224'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ), ''E01316'')'; - DBMS_OUTPUT.PUT_LINE(' ... A2_Additional_Extra'); - DBMS_OUTPUT.PUT_LINE(''); - DBMS_OUTPUT.PUT_LINE('All tables populated.'); -END; -/ - +SET SERVEROUTPUT ON; + +DECLARE + R_CNT NUMBER := 0; + TYPE T_NAMES IS + VARRAY(9) OF VARCHAR2(20); + TABLE_LIST T_NAMES; +BEGIN + TABLE_LIST := T_NAMES('A2_ROOM_TYPE', 'A2_ROOM', 'A2_GUEST', 'A2_BOOKING', 'A2_RESERVATION', 'A2_EXTRA', 'A2_PRICE_LIST', 'A2_FIXED_EXTRA', 'A2_ADDITIONAL_EXTRA'); + DBMS_OUTPUT.PUT_LINE('Dropping Tables ...'); + FOR ELEMENT IN 1 .. TABLE_LIST.COUNT LOOP + SELECT + COUNT (*) INTO R_CNT + FROM + ALL_TABLES + WHERE + TABLE_NAME = TABLE_LIST(ELEMENT) + AND OWNER = ( + SELECT + SYS_CONTEXT ('userenv', 'current_schema') + FROM + DUAL + ); + IF (R_CNT > 0) THEN + EXECUTE IMMEDIATE 'DROP TABLE ' + || TABLE_LIST(ELEMENT) + || ' CASCADE CONSTRAINTS'; + DBMS_OUTPUT.PUT_LINE(' ... ' + || TABLE_LIST(ELEMENT)); + END IF; + END LOOP; + + DBMS_OUTPUT.PUT_LINE('Create Tables ...'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Room_Type + ( Room_Type VARCHAR2(6) PRIMARY KEY + CHECK ( Room_Type IN ( ''Single'', ''Double'', ''Twin'', ''Family'' )), + Sleeps NUMBER(1,0) NOT NULL, + Description VARCHAR2(1000))'; + DBMS_OUTPUT.PUT_LINE(' ... A2_ROOM_TYPE'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Room + ( Room_Number VARCHAR2(4) PRIMARY KEY, + Room_Type VARCHAR2(6) NOT NULL + CHECK ( Room_Type IN ( ''Single'', + ''Double'', + ''Twin'', + ''Family'' )) + REFERENCES A2_Room_Type (Room_Type), + Shower VARCHAR2(1) NOT NULL + CHECK ( Shower IN ( ''Y'', ''N'' )), + Bath VARCHAR2(1) NOT NULL + CHECK ( Bath IN ( ''Y'', ''N'' )), + Balcony VARCHAR2(1) NOT NULL + CHECK ( Balcony IN ( ''Y'', ''N'' )) )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_ROOM'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Guest + ( Guest_ID VARCHAR2(6) PRIMARY KEY, + Family_Name VARCHAR2(40) NOT NULL, + Given_Name VARCHAR2(40) NOT NULL, + Date_of_Birth DATE NOT NULL, + Address VARCHAR2(200) NOT NULL )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_GUEST'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Booking + ( Booking_Number VARCHAR2(10) PRIMARY KEY, + Guest VARCHAR2(6) NOT NULL + REFERENCES A2_Guest (Guest_ID), + Date_Made DATE NOT NULL, + Reason VARCHAR2(8) NOT NULL + CHECK ( Reason IN ( ''Business'', + ''Leisure'' )))'; + DBMS_OUTPUT.PUT_LINE(' ... A2_BOOKING'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Reservation + ( Booking_Number VARCHAR2(10) NOT NULL + REFERENCES A2_Booking (Booking_Number), + Room_Number VARCHAR2(4) NOT NULL + REFERENCES A2_Room (Room_Number), + Date_Reserved DATE NOT NULL, + PRIMARY KEY (Booking_Number, Room_Number, Date_Reserved) )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_SHOWING'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Extra + ( Extra_ID VARCHAR2(6) PRIMARY KEY, + Object_Name VARCHAR2(30) NOT NULL + CHECK ( Object_Name IN ( ''Kettle'', + ''Baby Highchair'', + ''Iron and Board'', + ''Cot'', + ''Newspaper'', + ''Trouser Press'', + ''Wifi'' )), + Object_Description VARCHAR2(400) NOT NULL, + Object_Price NUMBER(5,2) NOT NULL )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_EXTRA'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Price_List + ( Room_Number VARCHAR2(4) NOT NULL + REFERENCES A2_Room (Room_Number), + Season VARCHAR2(4) NOT NULL, + Weekday CHAR(3) NOT NULL, + Price NUMBER(6,2) NOT NULL, + PRIMARY KEY (Room_Number, Season, Weekday) )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_PRICE_LIST'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Fixed_Extra + ( Room_Number VARCHAR2(4) NOT NULL + REFERENCES A2_Room (Room_Number), + Extra_ID VARCHAR2(6) NOT NULL + REFERENCES A2_Extra (Extra_ID), + PRIMARY KEY (Room_Number, Extra_ID))'; + DBMS_OUTPUT.PUT_LINE(' ... A2_FIXED_EXTRA'); + EXECUTE IMMEDIATE 'CREATE TABLE A2_Additional_Extra + ( Booking_Number VARCHAR2(10) NOT NULL, + Room_Number VARCHAR2(4) NOT NULL, + Date_Reserved DATE NOT NULL, + Extra_ID VARCHAR2(6) NOT NULL + REFERENCES A2_Extra (Extra_ID), + FOREIGN KEY (Booking_Number, Room_Number, Date_Reserved) + REFERENCES A2_Reservation (Booking_Number, Room_Number, Date_Reserved), + PRIMARY KEY (Booking_Number, Room_Number, Date_Reserved, Extra_ID))'; + DBMS_OUTPUT.PUT_LINE(' ... A2_ADDITIONAL_EXTRA'); + DBMS_OUTPUT.PUT_LINE(' '); + DBMS_OUTPUT.PUT_LINE('All tables created.'); + DBMS_OUTPUT.PUT_LINE(''); + DBMS_OUTPUT.PUT_LINE('Populate Tables ...'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''933458'', ''Robbins'', ''Martha'', TO_DATE( ''16/04/1992'', ''DD/MM/YYYY'' ), ''74b, Sandley Towers, Sandley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''226725'', ''Silver'', ''Richard '', TO_DATE( ''09/09/1965'', ''DD/MM/YYYY'' ), ''298, Christchurch Lane, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''632134'', ''Lance'', ''Abe'', TO_DATE( ''27/02/1959'', ''DD/MM/YYYY'' ), ''81, Templemead, Sharpenley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''038464'', ''Martins'', ''Rebecca'', TO_DATE( ''13/09/1986'', ''DD/MM/YYYY'' ), ''34, Mount Drive, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''826367'', ''Grace'', ''Thomas'', TO_DATE( ''16/11/2000'', ''DD/MM/YYYY'' ), ''23, High Street, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''628222'', ''Legion'', ''Craig'', TO_DATE( ''15/01/1996'', ''DD/MM/YYYY'' ), ''8, Mandela Walk, Southlands'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''082164'', ''Marvin'', ''Leon'', TO_DATE( ''08/02/1989'', ''DD/MM/YYYY'' ), ''The Marches, Teal Avenue, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''624801'', ''Kumar'', ''Satir'', TO_DATE( ''31/10/1998'', ''DD/MM/YYYY'' ), ''1, Sun Terrace, Tramley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''776734'', ''Maru'', ''Callum'', TO_DATE( ''24/04/1979'', ''DD/MM/YYYY'' ), ''45, Margan Drive, Southlands'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''193445'', ''Strettle'', ''George'', TO_DATE( ''01/01/1984'', ''DD/MM/YYYY'' ), ''Rose Cottage, Mount Drive, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''838384'', ''Grace'', ''Terence'', TO_DATE( ''30/05/1961'', ''DD/MM/YYYY'' ), ''23, High Street, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''611874'', ''Holmsworthy'', ''Claire'', TO_DATE( ''05/03/2001'', ''DD/MM/YYYY'' ), ''11, Brookfield, Tramley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''485639'', ''Kline'', ''Kevin'', TO_DATE( ''07/06/1991'', ''DD/MM/YYYY'' ), ''43, Sandpit Drive, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''772839'', ''Tuttle'', ''Ruth'', TO_DATE( ''23/08/1993'', ''DD/MM/YYYY'' ), ''7, Clearways, Cosset'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''900239'', ''Singh'', ''Vital'', TO_DATE( ''09/07/1997'', ''DD/MM/YYYY'' ), ''11, Brentway, Sandley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''802346'', ''Neo'', ''Rebecca'', TO_DATE( ''16/12/2000'', ''DD/MM/YYYY'' ), ''2a, Carnfield, Masterton'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''529809'', ''Leibermann'', ''Samuel'', TO_DATE( ''02/05/1996'', ''DD/MM/YYYY'' ), ''The Manor, Sandley Lane, Southlands'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''190911'', ''Fellows'', ''John'', TO_DATE( ''18/12/1999'', ''DD/MM/YYYY'' ), ''18, Whooper Way, Cosset'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''835123'', ''Oslovski'', ''Boris'', TO_DATE( ''13/10/1987'', ''DD/MM/YYYY'' ), ''108, High Street, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''874902'', ''Wilson'', ''Claire'', TO_DATE( ''16/06/1997'', ''DD/MM/YYYY'' ), ''54, The Greenway, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''519392'', ''Zimmerman'', ''Able'', TO_DATE( ''24/11/2001'', ''DD/MM/YYYY'' ), ''Flat 4, Helm House, Sharpenley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''599222'', ''Genoa'', ''Carrie'', TO_DATE( ''16/12/1976'', ''DD/MM/YYYY'' ), ''106, Ridgeway, Sharpenley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''200101'', ''Fellows'', ''Aaron'', TO_DATE( ''14/12/1968'', ''DD/MM/YYYY'' ), ''12, Abbey Road, Southlands'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''319899'', ''Slater'', ''Martin'', TO_DATE( ''09/03/1980'', ''DD/MM/YYYY'' ), ''1, Upper Lane, Lyndham'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''109738'', ''Mannock'', ''Harry '', TO_DATE( ''02/01/2000'', ''DD/MM/YYYY'' ), ''79, The Beeches, Masterton'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''180558'', ''Leeman'', ''Terence'', TO_DATE( ''17/05/1995'', ''DD/MM/YYYY'' ), ''3, Meadow View, Lindon'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''293764'', ''Simmonds'', ''Michael'', TO_DATE( ''12/04/1992'', ''DD/MM/YYYY'' ), ''28, Highridge Way, Layburn'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''463523'', ''Majors'', ''Louisa'', TO_DATE( ''06/06/1979'', ''DD/MM/YYYY'' ), ''82c, Crowsfoot Road, Layburn'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''859231'', ''Amman'', ''Said'', TO_DATE( ''26/07/1983'', ''DD/MM/YYYY'' ), ''29, The Roost, Cosset'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''342346'', ''Rivers'', ''Jill'', TO_DATE( ''20/10/1990'', ''DD/MM/YYYY'' ), ''4, Coningsby Close, Southlands'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''546264'', ''Gaye'', ''Anthony'', TO_DATE( ''17/07/1976'', ''DD/MM/YYYY'' ), ''31, Priory Walk, Lyndham'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''219987'', ''Southern'', ''Reece'', TO_DATE( ''21/03/1979'', ''DD/MM/YYYY'' ), ''16, Vicarage Road, Sandlin'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''591498'', ''Parraman'', ''Junior'', TO_DATE( ''08/03/1983'', ''DD/MM/YYYY'' ), ''57, Harper''''s Court, Louthham'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''984574'', ''Dixon'', ''Mel'', TO_DATE( ''04/04/1960'', ''DD/MM/YYYY'' ), ''41, Highridge Way, Layburn'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''254547'', ''Leeman'', ''Grace'', TO_DATE( ''08/12/1978'', ''DD/MM/YYYY'' ), ''96, Nightingale Avenue, Layburn'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''440937'', ''Malik'', ''Sunil'', TO_DATE( ''16/07/2001'', ''DD/MM/YYYY'' ), ''7, Pickard''''s Rise, Tramley'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''060401'', ''Mcfadden'', ''Garth'', TO_DATE( ''22/08/1979'', ''DD/MM/YYYY'' ), ''17, Windmill Drive, Bycester'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Guest VALUES ( ''090909'', ''Notmade'', ''Book'', TO_DATE( ''01/01/2000'', ''DD/MM/YYYY'' ), ''1, The Gardens, Masterton'' )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Guest'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040134'', ''463523'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040135'', ''463523'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040136'', ''519392'', TO_DATE( ''17/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040137'', ''632134'', TO_DATE( ''17/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040138'', ''180558'', TO_DATE( ''17/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040139'', ''219987'', TO_DATE( ''18/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040140'', ''802346'', TO_DATE( ''20/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040141'', ''060401'', TO_DATE( ''20/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040142'', ''529809'', TO_DATE( ''21/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040143'', ''835123'', TO_DATE( ''21/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040144'', ''200101'', TO_DATE( ''21/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040145'', ''772839'', TO_DATE( ''24/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040146'', ''193445'', TO_DATE( ''26/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040147'', ''082164'', TO_DATE( ''26/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040148'', ''226725'', TO_DATE( ''26/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040149'', ''293764'', TO_DATE( ''27/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040150'', ''546264'', TO_DATE( ''27/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040151'', ''776734'', TO_DATE( ''29/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040152'', ''826367'', TO_DATE( ''29/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040153'', ''190911'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040154'', ''193445'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040155'', ''900239'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040156'', ''342346'', TO_DATE( ''30/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040157'', ''874902'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040158'', ''082164'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040159'', ''038464'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040160'', ''859231'', TO_DATE( ''31/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040161'', ''546264'', TO_DATE( ''01/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040162'', ''835123'', TO_DATE( ''01/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040163'', ''319899'', TO_DATE( ''03/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040164'', ''984574'', TO_DATE( ''03/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040165'', ''591498'', TO_DATE( ''04/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040166'', ''190911'', TO_DATE( ''04/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040167'', ''293764'', TO_DATE( ''06/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040168'', ''440937'', TO_DATE( ''06/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040169'', ''599222'', TO_DATE( ''06/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040170'', ''109738'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040171'', ''826367'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040172'', ''802346'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040173'', ''082164'', TO_DATE( ''07/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040174'', ''342346'', TO_DATE( ''08/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040175'', ''319899'', TO_DATE( ''08/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040176'', ''933458'', TO_DATE( ''09/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040177'', ''826367'', TO_DATE( ''11/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040178'', ''546264'', TO_DATE( ''13/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040179'', ''200101'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040180'', ''835123'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040181'', ''082164'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040182'', ''109738'', TO_DATE( ''14/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040183'', ''599222'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040184'', ''776734'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040185'', ''190911'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040186'', ''519392'', TO_DATE( ''15/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040187'', ''193445'', TO_DATE( ''16/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040188'', ''342346'', TO_DATE( ''18/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040189'', ''319899'', TO_DATE( ''19/03/2022'', ''DD/MM/YYYY'' ), ''Business'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Booking VALUES ( ''HH00040190'', ''226725'', TO_DATE( ''19/03/2022'', ''DD/MM/YYYY'' ), ''Leisure'' )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Booking'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Single'', ''1'', ''One 140cm wide single bed'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Double'', ''2'', ''One 180cm wide double bed'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Twin'', ''2'', ''Two 140cm wide single beds'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room_Type VALUES ( ''Family'', ''4'', ''One 180cm wide double bed and two 140cm wide single beds'' )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Room_Type'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''001'', ''Family'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''002'', ''Family'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''003'', ''Single'', ''N'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''004'', ''Single'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''005'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''101'', ''Double'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''102'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''103'', ''Double'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''104'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''105'', ''Family'', ''Y'', ''Y'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''106'', ''Twin'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''107'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''108'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''109'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''110'', ''Twin'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''111'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''112'', ''Single'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''113'', ''Double'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''114'', ''Double'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''115'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''116'', ''Family'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''117'', ''Double'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''118'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''119'', ''Single'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''120'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''201'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''202'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''203'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''204'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''205'', ''Single'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''206'', ''Single'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''207'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''208'', ''Double'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''209'', ''Double'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''210'', ''Double'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''211'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''212'', ''Family'', ''Y'', ''Y'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''213'', ''Family'', ''Y'', ''Y'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''214'', ''Single'', ''N'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''215'', ''Single'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''216'', ''Single'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''217'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''218'', ''Double'', ''Y'', ''N'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''219'', ''Double'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''220'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''221'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''222'', ''Twin'', ''Y'', ''N'', ''N'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''223'', ''Double'', ''Y'', ''Y'', ''Y'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Room VALUES ( ''224'', ''Double'', ''Y'', ''N'', ''N'' )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Room'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040134'', ''224'', TO_DATE( ''19/04/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040134'', ''224'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''224'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''224'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''202'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040135'', ''202'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''28/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''29/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''105'', TO_DATE( ''30/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''28/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''29/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040136'', ''112'', TO_DATE( ''30/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040137'', ''211'', TO_DATE( ''08/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040137'', ''211'', TO_DATE( ''09/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''113'', TO_DATE( ''17/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''113'', TO_DATE( ''18/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''113'', TO_DATE( ''19/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''005'', TO_DATE( ''17/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''005'', TO_DATE( ''18/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040138'', ''005'', TO_DATE( ''19/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040139'', ''210'', TO_DATE( ''09/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040140'', ''223'', TO_DATE( ''19/04/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040140'', ''223'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040141'', ''202'', TO_DATE( ''19/04/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040141'', ''202'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''15/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''17/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''114'', TO_DATE( ''19/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''113'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040142'', ''115'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040143'', ''204'', TO_DATE( ''25/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040143'', ''204'', TO_DATE( ''26/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040143'', ''204'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''112'', TO_DATE( ''13/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''119'', TO_DATE( ''13/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''216'', TO_DATE( ''13/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''112'', TO_DATE( ''14/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''119'', TO_DATE( ''14/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040144'', ''216'', TO_DATE( ''14/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''26/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''27/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''30/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040145'', ''211'', TO_DATE( ''01/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040146'', ''201'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''201'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''202'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''208'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040147'', ''209'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040148'', ''218'', TO_DATE( ''05/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040149'', ''114'', TO_DATE( ''03/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040149'', ''114'', TO_DATE( ''04/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''004'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''112'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040150'', ''206'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040151'', ''108'', TO_DATE( ''05/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040151'', ''108'', TO_DATE( ''06/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040151'', ''108'', TO_DATE( ''07/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040152'', ''002'', TO_DATE( ''01/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040152'', ''002'', TO_DATE( ''02/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040152'', ''002'', TO_DATE( ''03/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040153'', ''120'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040153'', ''204'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040154'', ''218'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040155'', ''207'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040155'', ''208'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040155'', ''211'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040156'', ''115'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040156'', ''115'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''19/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''20/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''21/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040157'', ''116'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040158'', ''113'', TO_DATE( ''16/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040159'', ''113'', TO_DATE( ''08/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040160'', ''101'', TO_DATE( ''06/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040160'', ''101'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040161'', ''103'', TO_DATE( ''06/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040161'', ''103'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''105'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''106'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''103'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''113'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''114'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''115'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''219'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040162'', ''220'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040163'', ''108'', TO_DATE( ''01/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040163'', ''109'', TO_DATE( ''01/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040164'', ''114'', TO_DATE( ''21/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040165'', ''116'', TO_DATE( ''28/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040166'', ''224'', TO_DATE( ''27/06/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040167'', ''106'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040167'', ''107'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040168'', ''113'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040169'', ''101'', TO_DATE( ''02/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''102'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''104'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''105'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''106'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''108'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''111'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''116'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''117'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040170'', ''118'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040171'', ''117'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040172'', ''211'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040173'', ''218'', TO_DATE( ''30/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040173'', ''218'', TO_DATE( ''31/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040174'', ''119'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040174'', ''119'', TO_DATE( ''14/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040174'', ''119'', TO_DATE( ''15/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040175'', ''203'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040176'', ''201'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040176'', ''202'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040176'', ''203'', TO_DATE( ''22/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040177'', ''203'', TO_DATE( ''09/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040178'', ''219'', TO_DATE( ''09/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040179'', ''205'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040180'', ''201'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040180'', ''201'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040180'', ''201'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040181'', ''218'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040181'', ''218'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040182'', ''224'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040182'', ''224'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040182'', ''224'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''08/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''09/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''10/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''11/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040183'', ''219'', TO_DATE( ''12/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''06/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''07/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''08/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''09/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040184'', ''213'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040185'', ''107'', TO_DATE( ''30/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''201'', TO_DATE( ''19/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''201'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''202'', TO_DATE( ''19/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040186'', ''202'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040187'', ''115'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''105'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''105'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''105'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''116'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''116'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''116'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''212'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''212'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040188'', ''212'', TO_DATE( ''13/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040189'', ''218'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040189'', ''218'', TO_DATE( ''28/07/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''102'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''103'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''105'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''106'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''111'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''113'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''114'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''118'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''211'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Reservation VALUES ( ''HH00040190'', ''212'', TO_DATE( ''05/08/2022'', ''DD/MM/YYYY'' ) )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Reservation'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''001'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''002'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''003'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''004'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''005'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''101'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''102'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''103'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''104'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''105'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''106'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''107'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''108'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''109'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''110'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''111'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Fri'',112)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''112'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Fri'',113)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''113'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''114'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''115'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''116'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''117'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''118'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''119'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''120'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''201'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''202'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Fri'',203)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''203'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''204'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Fri'',205)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''205'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Fri'',206)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''206'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''207'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''208'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Fri'',209)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''209'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''210'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Fri'',211)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''211'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Fri'',212)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''212'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''213'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''214'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Fri'',215)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''215'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''216'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Fri'',217)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''217'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Fri'',218)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''218'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''219'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''220'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Fri'',221)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''221'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Fri'',110)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''222'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Fri'',223)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''223'',''Low'',''Sun'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Mon'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Tue'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Wed'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Thu'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Fri'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Sat'',150)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''High'',''Sun'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Mon'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Tue'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Wed'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Thu'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Fri'',224)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Sat'',120)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Mid'',''Sun'',100)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Mon'',75.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Tue'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Wed'',69.5)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Thu'',80)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Fri'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Sat'',90)'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Price_List VALUES (''224'',''Low'',''Sun'',80)'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Price_List'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01251'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01252'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01253'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01254'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01255'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01256'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01257'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01258'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01259'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01260'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01271'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01272'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01273'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01274'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01275'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01276'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01277'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01278'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01279'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01280'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01281'', ''Kettle'', ''Fast boil kettle with 2 cup capacity'', 3.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01282'', ''Kettle'', ''Fast boil kettle with 2 cup capacity'', 3.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01283'', ''Kettle'', ''Fast boil kettle with 2 cup capacity'', 3.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01284'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01285'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01286'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01287'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01288'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01289'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01290'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01291'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01261'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01262'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01263'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01264'', ''Kettle'', ''Fast boil kettle with 6 cup capacity'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01292'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01293'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01294'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01295'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01296'', ''Kettle'', ''Fast boil kettle with 8 cup capacity'', 5.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01297'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01298'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01299'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01300'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01301'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01302'', ''Kettle'', ''Silent boil kettle with 4 cup capacity'', 2.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01303'', ''Kettle'', ''Silent boil kettle with 6 cup capacity'', 3.75 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01304'', ''Kettle'', ''Silent boil kettle with 6 cup capacity'', 3.75 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01305'', ''Baby Highchair'', ''Wooden with easy-clean tray'', 4.75 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01306'', ''Baby Highchair'', ''Wooden with easy-clean tray'', 4.75 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01307'', ''Baby Highchair'', ''Wooden with easy-clean tray'', 4.75 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01308'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01309'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01310'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01311'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01312'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01313'', ''Cot'', ''1.25m long white laquered wood, lowers both sides'', 5.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01314'', ''Cot'', ''Collapsable cot 1.20m long'', 4.50 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01315'', ''Cot'', ''1.2m long pine wood, lowers one sides'', 4.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01316'', ''Cot'', ''1.2m long pine wood, lowers one sides'', 4.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01317'', ''Cot'', ''1.2m long pine wood, lowers one sides'', 4.25 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01318'', ''Cot'', ''1.4m long pine wood, lowers one sides'', 5.45 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01319'', ''Iron and Board'', ''Steam Iron with extra length board'', 4.00 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01320'', ''Iron and Board'', ''Steam Iron with extra length board'', 4.00 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01321'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01322'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01323'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01324'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01325'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01326'', ''Iron and Board'', ''Steam Iron with standard board'', 3.30 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01327'', ''Trouser Press'', ''Foldable'', 2.80 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01328'', ''Trouser Press'', ''Foldable'', 2.80 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01329'', ''Trouser Press'', ''Foldable'', 2.80 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01330'', ''Trouser Press'', ''Foldable'', 2.80 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01331'', ''Trouser Press'', ''Foldable'', 2.80 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01332'', ''Newspaper'', ''Daily Bugle'', 0.90 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01333'', ''Newspaper'', ''Daily Bugle'', 0.90 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01334'', ''Newspaper'', ''Daily Bugle'', 0.90 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01335'', ''Newspaper'', ''Daily Reflection'', 0.80 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01336'', ''Newspaper'', ''The Light'', 0.75 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01337'', ''Newspaper'', ''Sunday Bugle'', 1.60 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01338'', ''Newspaper'', ''Sunday Bugle'', 1.60 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01339'', ''Newspaper'', ''Sunday Bugle'', 2.00 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01340'', ''Newspaper'', ''Sunday Bugle'', 2.00 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01341'', ''Newspaper'', ''Sunday Legend'', 1.90 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01342'', ''Newspaper'', ''Sunday Legend'', 1.90 )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Extra VALUES ( ''E01343'', ''Newspaper'', ''Sunday Legend'', 0.90 )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Extra'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''101'', ''E01284'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''102'', ''E01285'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''103'', ''E01286'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''104'', ''E01287'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''106'', ''E01281'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''107'', ''E01288'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''108'', ''E01289'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''113'', ''E01290'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''114'', ''E01291'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''117'', ''E01261'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''118'', ''E01262'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''120'', ''E01296'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''201'', ''E01271'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''202'', ''E01272'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''203'', ''E01273'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''208'', ''E01295'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''209'', ''E01274'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''210'', ''E01275'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''211'', ''E01276'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''217'', ''E01277'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''218'', ''E01278'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''219'', ''E01279'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''222'', ''E01283'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''223'', ''E01282'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''224'', ''E01280'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''005'', ''E01327'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''114'', ''E01328'' )'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Fixed_Extra VALUES ( ''218'', ''E01329'' )'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Fixed_Extra'); + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040134'', ''224'', TO_DATE( ''20/04/2022'', ''DD/MM/YYYY'' ), ''E01322'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040135'', ''224'', TO_DATE( ''29/06/2022'', ''DD/MM/YYYY'' ), ''E01322'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040136'', ''105'', TO_DATE( ''28/05/2022'', ''DD/MM/YYYY'' ), ''E01303'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040136'', ''105'', TO_DATE( ''29/05/2022'', ''DD/MM/YYYY'' ), ''E01303'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040139'', ''210'', TO_DATE( ''09/06/2022'', ''DD/MM/YYYY'' ), ''E01303'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040142'', ''114'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ), ''E01321'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040143'', ''204'', TO_DATE( ''26/05/2022'', ''DD/MM/YYYY'' ), ''E01264'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040143'', ''204'', TO_DATE( ''27/05/2022'', ''DD/MM/YYYY'' ), ''E01264'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040147'', ''202'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ), ''E01320'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040147'', ''208'', TO_DATE( ''18/06/2022'', ''DD/MM/YYYY'' ), ''E01342'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040148'', ''218'', TO_DATE( ''05/07/2022'', ''DD/MM/YYYY'' ), ''E01333'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040150'', ''206'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ), ''E01337'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040151'', ''108'', TO_DATE( ''05/06/2022'', ''DD/MM/YYYY'' ), ''E01338'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040152'', ''002'', TO_DATE( ''01/07/2022'', ''DD/MM/YYYY'' ), ''E01315'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040152'', ''002'', TO_DATE( ''02/07/2022'', ''DD/MM/YYYY'' ), ''E01315'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040152'', ''002'', TO_DATE( ''03/07/2022'', ''DD/MM/YYYY'' ), ''E01315'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040156'', ''115'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ), ''E01334'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040156'', ''115'', TO_DATE( ''13/07/2022'', ''DD/MM/YYYY'' ), ''E01259'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040161'', ''103'', TO_DATE( ''07/07/2022'', ''DD/MM/YYYY'' ), ''E01322'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040162'', ''219'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ), ''E01340'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040162'', ''114'', TO_DATE( ''25/06/2022'', ''DD/MM/YYYY'' ), ''E01339'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040163'', ''109'', TO_DATE( ''01/06/2022'', ''DD/MM/YYYY'' ), ''E01256'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040167'', ''107'', TO_DATE( ''16/07/2022'', ''DD/MM/YYYY'' ), ''E01341'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''105'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01317'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''111'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01310'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''118'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01313'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040170'', ''118'', TO_DATE( ''20/08/2022'', ''DD/MM/YYYY'' ), ''E01306'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040172'', ''211'', TO_DATE( ''27/07/2022'', ''DD/MM/YYYY'' ), ''E01335'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040173'', ''218'', TO_DATE( ''30/07/2022'', ''DD/MM/YYYY'' ), ''E01343'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040181'', ''218'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ), ''E01336'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040182'', ''224'', TO_DATE( ''10/08/2022'', ''DD/MM/YYYY'' ), ''E01316'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040182'', ''224'', TO_DATE( ''11/08/2022'', ''DD/MM/YYYY'' ), ''E01316'')'; + EXECUTE IMMEDIATE 'INSERT INTO A2_Additional_Extra VALUES ( ''HH00040182'', ''224'', TO_DATE( ''12/08/2022'', ''DD/MM/YYYY'' ), ''E01316'')'; + DBMS_OUTPUT.PUT_LINE(' ... A2_Additional_Extra'); + DBMS_OUTPUT.PUT_LINE(''); + DBMS_OUTPUT.PUT_LINE('All tables populated.'); +END; +/ + SET SERVEROUTPUT OFF \ No newline at end of file diff --git a/PLSQL/Hotel Task/PLSQL Task Ans.sql b/PLSQL/Hotel Task/PLSQL Task Ans.sql index 42481c6..ad6218f 100644 --- a/PLSQL/Hotel Task/PLSQL Task Ans.sql +++ b/PLSQL/Hotel Task/PLSQL Task Ans.sql @@ -1,609 +1,609 @@ --- START OF FILE --- ================================================================================ --- --- ============================== --- --- HATFIELD HOTEL -- ASSIGNMENT REF DEF --- --- ============================== --- - --- TASK TWO - Advance SQL ( 15 in total ) --- --- PLESE READ THIS DOCUMENT CAREFULLY. --- ----------------------------------- --- --- BEFORE YOU START you must check you have completed the following: --- --- 0 Download Hatfield_Hotel_Table_and_Data.sql from CANVAS. --- It is available from the assignment specification description. --- --- 0 Open the file Hatfield_Hotel_Table_and_Data.sql in SQL Developer and --- use the Run Script icon (icon with page and small green triangle) or --- accelerator F5 to run the script. --- Output may show old versions of tables being removed if run multiple --- times, before creating clean tables and populating with supplied data. --- First time through the output should be as follows: --- --- Dropping Tables ... --- Create Tables ... --- ... A2_ROOM_TYPE --- ... A2_ROOM --- ... A2_GUEST --- ... A2_BOOKING --- ... A2_SHOWING --- ... A2_EXTRA --- ... A2_PRICE_LIST --- ... A2_FIXED_EXTRA --- ... A2_ADDITIONAL_EXTRA --- --- All tables created. --- --- Populate Tables ... --- ... A2_Guest --- ... A2_Booking --- ... A2_Room_Type --- ... A2_Room --- ... A2_Reservation --- ... A2_Price_List --- ... A2_Extra --- ... A2_Fixed_Extra --- ... A2_Additional_Extra --- --- All tables re-created and populated. --- --- --- PL/SQL procedure successfully completed. --- --- --- 0 Confirm that 9 new tables exist all starting A2_ --- ( A2_Guest, A2_Booking, A2_Room_Type, A2_Room_Type, A2_Reservation --- A2_Price_List, A2_Extra, A2_Fixed_Extra, A2_Additional_Extra ) --- --- 0 Check each table contains data records in each as follows: --- SELECT COUNT(*) FROM ; --- --- A2_Guest 37 --- A2_Guide 57 --- A2_Room_Type 4 --- A2_Room 49 --- A2_Reservation 183 --- A2_Price_list 1029 --- A2_Extra 87 --- A2_Fixed_Extra 28 --- A2_Additional_Extra 33 --- --- --- 0 Only once you are happy with the tables and data, then progress to the two --- tasks: - - --- QUESTION 1 - Simple view --- Create a simple VIEW called viewGuest which display all data from A2_GUEST --- Write your SQL here - --- Sol: -CREATE OR REPLACE VIEW VIEWGUEST AS - SELECT - * - FROM - A2_GUEST; - --- Test: -SELECT - * -FROM - VIEWGUEST; - --- Solution TEST --- run script select * from viewGuest --- Output will be --- GUEST_ID FAMILY_NAME GIVEN_NAME DATE_OF_BIRTH ADDRESS --- 933458 Robbins Martha 16-APR-92 74b, Sandley Towers, Sandley --- 226725 Silver Richard 09-SEP-65 298, Christchurch Lane, Lindon --- 632134 Lance Abe 27-FEB-59 81, Templemead, Sharpenley --- 038464 Martins Rebecca 13-SEP-86 34, Mount Drive, Lindon --- 826367 Grace Thomas 16-NOV-00 23, High Street, Lindon --- .... so on -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- QUESTION 2 View with Aliases --- Create a simple view called viewGuestName which displays all guest from A2_GUEST. --- Your view should display full name, date of birth and address of all guests, order by guests full name. --- Write your SQL here - --- Sol: -CREATE OR REPLACE VIEW VIEWGUESTNAME AS - SELECT - FAMILY_NAME - ||' ' - ||GIVEN_NAME AS FULL_NAME, - DATE_OF_BIRTH, - ADDRESS - FROM - A2_GUEST - ORDER BY - 1; - --- Test: -SELECT - * -FROM - VIEWGUESTNAME; - --- OUTPUT --- View VIEWGUESTNAME created. --- Solution TEST --- RUN SCRIPT --- select * from viewGuestName --- Output will be --- FULL_NAME DATE_OF_BIRTH ADDRESS --- Amman Said 26-JUL-83 29, The Roost, Cosset --- Dixon Mel 04-APR-60 41, Highridge Way, Layburn --- Fellows Aaron 14-DEC-68 12, Abbey Road, Southlands --- Fellows John 18-DEC-99 18, Whooper Way, Cosset --- Gaye Anthony 17-JUL-76 31, Priory Walk, Lyndham --- Genoa Carrie 16-DEC-76 106, Ridgeway, Sharpenley --- Grace Terence 30-MAY-61 23, High Street, Lindon --- ... so on -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ---QUESTON 3 VIEW WITH CONDITION --- create view named viewGuestFromLindon which displays all guests from LINDON. --- Write your SQL here - --- Sol: -CREATE OR REPLACE VIEW VIEWGUESTFROMLINDON AS - SELECT - * - FROM - A2_GUEST - WHERE - INSTR(LOWER(ADDRESS), 'lindon') > 0; - --- Test: -SELECT - * -FROM - VIEWGUESTFROMLINDON; - --- Solution TEST --- run script select * from viewGuestFromLindon --- Output will be --- GUEST_ID FAMILY_NAME GIVEN_NAME DATE_OF_BIRTH ADDRESS --- 226725 Silver Richard 09-SEP-65 298, Christchurch Lane, Lindon --- 038464 Martins Rebecca 13-SEP-86 34, Mount Drive, Lindon --- 826367 Grace Thomas 16-NOV-00 23, High Street, Lindon --- 082164 Marvin Leon 08-FEB-89 The Marches, Teal Avenue, Lindon --- 193445 Strettle George 01-JAN-84 Rose Cottage, Mount Drive, Lindon --- 838384 Grace Terence 30-MAY-61 23, High Street, Lindon --- 485639 Kline Kevin 07-JUN-91 43, Sandpit Drive, Lindon --- 835123 Oslovski Boris 13-OCT-87 108, High Street, Lindon --- 874902 Wilson Claire 16-JUN-97 54, The Greenway, Lindon --- 180558 Leeman Terence 17-MAY-95 3, Meadow View, Lindon -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ---QUESTION 4 view from Joint --- The view should display family name and given name of all guests and the total number of booking they placed, --- order by family name and given name. --- Order in alphabetic order of family name followed by given name --- WRITE YOUR SQL HERE - --- Sol: -CREATE OR REPLACE VIEW VIEWBOOKINGCOUNT AS - SELECT - FAMILY_NAME, - GIVEN_NAME, - COUNT(GUEST) AS BOOKING - FROM - A2_GUEST - LEFT OUTER JOIN A2_BOOKING - ON(GUEST = GUEST_ID) - GROUP BY - FAMILY_NAME, - GIVEN_NAME - ORDER BY - 1, - 2; - --- Test: -SELECT - * -FROM - VIEWBOOKINGCOUNT; - --- OUTPUT --- View VIEWBOOKINGCOUNT created. ---------------------------------------------------------- --- Solution TEST --- RUN SCRIPT --- select * from viewBookingCount --- OUTPUT will be --- FAMILY_NAME GIVEN_NAME BOOKING ------------------------------------------- --- Amman Said 1 --- Dixon Mel 1 --- Fellows Aaron 2 --- Fellows John 3 --- Gaye Anthony 3 --- Genoa Carrie 2 --- Grace Terence 0 --- Grace Thomas 3 --- Holmsworthy Claire 0 --- Kline Kevin 0 --- so on... -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- QUESTION 5 READ ONLY VIEW --- Create Read only view viewRoomOnly which display all records from A2_ROOM. --- Write your SQL here - --- Sol: - -CREATE OR REPLACE VIEW VIEWROOMONLY AS - SELECT - * - FROM - A2_ROOM WITH READ ONLY; - --- Test: -INSERT INTO VIEWROOMONLY VALUES ( - 504, - 'Single', - 'Y', - 'N', - 'N' -); - ---OUTPUT --- View VIEWROOMONLY created. --- Solution TEST --- RUN SCRIPT --- insert into viewRoomOnly values (504,'Single','Y','N','N') --- You will get error --- Error report - --- SQL Error: ORA-42399: cannot perform a DML operation on a read-only view --- 42399.0000 - "cannot perform a DML operation on a read-only view" -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ---QUESTION 6 PL/SQL BLOCK WITH CURSOR --- Write a PL/SQL block that uses a cursor to list all guests and their addresses who live in High Street. --- Guest name should have family name and given name. --- WRITE YOUR PL/SQL block HERE -set SERVEROUTPUT on; - --- Sol: -DECLARE - CURSOR CUR IS ( - SELECT - * - FROM - A2_GUEST - WHERE - INSTR(LOWER(ADDRESS), 'high street')>0 - ); -BEGIN - FOR REC IN CUR LOOP - DBMS_OUTPUT.PUT_LINE(REC.FAMILY_NAME - ||' ' - ||REC.GIVEN_NAME - ||' ' - ||REC.ADDRESS); - END LOOP; -END; -/ - --- OUTPUT --- PL/SQL procedure successfully completed. --- Dbms Output --- Guest Name :Grace Thomas ADDRESS: 23, High Street, Lindon --- Guest Name :Grace Terence ADDRESS: 23, High Street, Lindon --- Guest Name :Oslovski Boris ADDRESS: 108, High Street, Lindon --- Guest Name :Oslovski Boris ADDRESS: 108, High Street, Lindon (Redundant Repeatition?) --- PL/SQL procedure successfully completed. -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- QUESTION 7 PL/SQL FUNCTION [simple function] --- Write a PL/SQL function named 'getDiscountPrice' which takes original price and percentage discount as argument and return the discounted price --- Note: discounted price = original Price * (1-perDiscount) --- WRITE YOUR PL/SQL block HERE - --- Sol: -CREATE OR REPLACE FUNCTION GETDISCOUNTPRICE( - PRICE NUMBER, - DISCOUNT NUMBER -) RETURN NUMBER AS -BEGIN - RETURN PRICE *(1-DISCOUNT); -END; -/ - --- Test: -SELECT - GETDISCOUNTPRICE(120, 0.55) AS DISCOUNTPRICE -FROM - DUAL; - --- OUTPUT --- Function GETDISCOUNTPRICE compiled -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- QUESTION 8 Calling function from SQL Clause --- call the function 'getDiscountPrice()' defined in question 7 to find the discounted price of the item whose original price was 120 . --- 55% discount is applied in the item. --- Hint: use dual for calling function --- Write your SQL here --- OUTPUT --- DISCOUNTPRICE --- 54 -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- QUESTION 9 Calling the function inside SQL Clause --- Write a query that displays the original price and discounted Price of all items from A2_PRICE_List --- Your query should display ROOM_NUMBER, SEASON, weekday, original price as �oldPrice� and discounted price as �new Price�. --- Write your SQL here - --- Sol: -SELECT - DISTINCT ROOM_NUMBER, - SEASON, - WEEKDAY, - PRICE AS "OldPrice", - GETDISCOUNTPRICE(PRICE, 0.2) AS "newPrice" -- discout = 1 - (oldPrice / newPrice)). -FROM - A2_PRICE_LIST -WHERE - SEASON = 'Low' - AND WEEKDAY = 'Mon'; - --- OUTPUT --- ROOM_NUMBER SEASON WEEKDAY OldPrice newPrice --- 001 Low Mon 75.5 60.4 --- 002 Low Mon 75.5 60.4 --- 003 Low Mon 75.5 60.4 --- 004 Low Mon 75.5 60.4 --- 005 Low Mon 75.5 60.4 --- 101 Low Mon 75.5 60.4 --- ... so on -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- Question 10 PL/SQL FUNCTION [simple function] --- Create a simple PL/SQL function 'getTotalGuest' that returns total number of guests. --- Hint: Total Number is guest is the count of items in A2_GUEST --- WRITE YOUR PL/SQL block HERE - --- Sol: -CREATE OR REPLACE FUNCTION GETTOTALGUEST RETURN NUMBER AS - TOTAL NUMBER; -BEGIN - SELECT - COUNT(*) INTO TOTAL - FROM - A2_GUEST; - RETURN TOTAL; -END; -/ - --- OUTPUT --- Function GETTOTALGUEST compiled -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- Question 11 Calling PL/SQL function as normal function --- Write a PL/SQL block that call the function 'getTotalGuest()' as a normal function --- Your PL/SQL block should display the total number of guest in the Dbms Output --- Note: --- use DBMS_OUTPUT.put_line for display --- !! call the function getTotalGuest() inside PL/SQL block not in SQL clause !! --- WRITE YOUR PL/SQL block HERE - --- Sol: -BEGIN - DBMS_OUTPUT.PUT_LINE('Total Guest :' - ||GETTOTALGUEST()); -END; -/ - --- OUTPUT --- PL/SQL procedure successfully completed. --- Dbms Output --- Total Guest :38 -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --- QUESTION 12 Simple Tigger --- Create a trigger named 'displayPriceChange' that displays old price, new price and price difference in Dbms Output whenever price of room (item from A2_PRICE_List) is updated. --- WRITE YOUR PL/SQL block HERE - --- Sol: -CREATE OR REPLACE TRIGGER DISPLAYPRICECHANGE BEFORE - UPDATE OF PRICE ON A2_PRICE_LIST FOR EACH ROW -BEGIN - DBMS_OUTPUT.PUT_LINE('Old Price: ' - ||:OLD.PRICE); - DBMS_OUTPUT.PUT_LINE('New Price: ' - ||:NEW.PRICE); - DBMS_OUTPUT.PUT_LINE('Price difference: ' - ||(:NEW.PRICE - :OLD.PRICE)); -END; -/ - --- Test: - --- OUTPUT --- Trigger DISPLAYPRICECHANGE compiled --- Dbms Output will be --- Old Price: 100 --- New Price: 120 --- Price difference: 20 -------------------------------------------------------------------------------------------------- -DROP TRIGGER DISPLAYPRICECHANGE; - -------------------------------------------------------------------------------------------------- --- QUESTION 13 CONDITIONAL TIGGER --- Write a trigger that overwrite the change in room price if new price is less than previous price --- Your tigger must displays 'Business ERROR !! you can not decrease room price !!' and alter the change if user tried to decrease room price --- Write your SQL here - --- Sol: -CREATE OR REPLACE TRIGGER STOPRECESSION BEFORE - UPDATE OF PRICE ON A2_PRICE_LIST FOR EACH ROW -DECLARE - BUSINESS EXCEPTION; -BEGIN - IF(:OLD.PRICE > :NEW.PRICE)THEN - RAISE_APPLICATION_ERROR(-20202, 'Business ERROR !! you can not decrease room price !!'); - END IF; -END; -/ - --- Test: -UPDATE A2_PRICE_LIST -SET - PRICE = PRICE - 10 -WHERE - ROOM_NUMBER = '001' - AND SEASON = 'High' - AND WEEKDAY = 'Mon'; - --- OUTPUT --- Trigger STOPRECESSION compiled --- Solution Test --- After the tigger is complied RUN the SQL script below --- update A2_PRICE_LIST set price = price - 10 where ROOM_NUMBER = '001' and SEASON ='High' and WEEKDAY = 'Mon' --- Dbms Output --- Business ERROR !! you can not decrease room price !! -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ---QUESTION 14 PL/SQL EXCEPTION [ type 1 ] -DECLARE - VROOMTYPE A2_ROOM_TYPE%ROWTYPE; -BEGIN - SELECT - * INTO VROOMTYPE - FROM - A2_ROOM_TYPE - WHERE - A2_ROOM_TYPE.ROOM_TYPE='Duplex'; - DBMS_OUTPUT.PUT_LINE('Number of Sleeps is :' - ||VROOMTYPE.SLEEPS); -END; -/ - --- PLSQL block above throws error as: --- Error report - --- ORA-01403: no data found --- ORA-06512: at line 4 --- 01403. 00000 - "no data found" --- *Cause: No data was found from the objects. --- *Action: There was no data from the objects which may be due to end of fetch. --- List the Name of the error --- Answer: NO_DATA_FOUND. --- Identify the type of the error, and rewrite the PL/SQL block such that the error is traped. --- Answer: Predefined Oracle Server Error. --- Display appropriate error message for the error --- WRITE YOUR PL/SQL block HERE - --- Sol: -DECLARE - VROOMTYPE A2_ROOM_TYPE%ROWTYPE; - EX EXCEPTION; - CT NUMBER := 0; -BEGIN - SELECT - COUNT(*) INTO CT - FROM - A2_ROOM_TYPE - WHERE - A2_ROOM_TYPE.ROOM_TYPE='Duplex'; - IF CT = 0 THEN - RAISE EX; - END IF; - - SELECT - * INTO VROOMTYPE - FROM - A2_ROOM_TYPE - WHERE - A2_ROOM_TYPE.ROOM_TYPE='Duplex'; - DBMS_OUTPUT.PUT_LINE('Number of Sleeps is :' - ||VROOMTYPE.SLEEPS); -EXCEPTION - WHEN EX THEN - DBMS_OUTPUT.PUT_LINE('Did Not Find Data.'); -END; -/ - --- OUTPUT --- PL/SQL procedure successfully completed. --- Dbms Output --- << Error message>> - - --- Write your SQL here (????) -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ---QUESTION 15 PL/SQL EXCEPTION [type 2] --- Write your SQL here - -DECLARE - VROOM A2_ROOM%ROWTYPE; -BEGIN - SELECT - * INTO VROOM - FROM - A2_ROOM - WHERE - A2_ROOM.ROOM_TYPE='Family'; - DBMS_OUTPUT.PUT_LINE('ROOM_NUMBER :' - ||VROOM.ROOM_NUMBER); -END; -/ - --- PL/SQL block above throw the error: --- Error report - --- ORA-01422: exact fetch returns more than requested number of rows --- ORA-06512: at line 4 --- 01422. 00000 - "exact fetch returns more than requested number of rows" --- *Cause: The number specified in exact fetch is less than the rows returned. --- *Action: Rewrite the query or change number of rows requested - --- Identify the type of the error, and rewrite the PL/SQL block such that the exception is traped. --- Answer: Predefined Oracle Server Error. --- Display appropriate error message --- WRITE YOUR PL/SQL block HERE - -DECLARE - VROOM A2_ROOM%ROWTYPE; - EX EXCEPTION; - CT NUMBER; -BEGIN - SELECT - COUNT(*) INTO CT - FROM - A2_ROOM - WHERE - A2_ROOM.ROOM_TYPE='Family'; - IF CT > 1 THEN - RAISE EX; - END IF; - - SELECT - * INTO VROOM - FROM - A2_ROOM - WHERE - A2_ROOM.ROOM_TYPE='Family'; - DBMS_OUTPUT.PUT_LINE('ROOM_NUMBER :' - ||VROOM.ROOM_NUMBER); -EXCEPTION - WHEN EX THEN - DBMS_OUTPUT.PUT_LINE('Too many rows fetched, try using a cursor.'); -END; -/ - --- OUTPUT --- PL/SQL procedure successfully completed. --- Dbms Output --- << Error message>> -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ---END +-- START OF FILE +-- ================================================================================ +-- +-- ============================== +-- +-- HATFIELD HOTEL -- ASSIGNMENT REF DEF +-- +-- ============================== +-- + +-- TASK TWO - Advance SQL ( 15 in total ) +-- +-- PLESE READ THIS DOCUMENT CAREFULLY. +-- ----------------------------------- +-- +-- BEFORE YOU START you must check you have completed the following: +-- +-- 0 Download Hatfield_Hotel_Table_and_Data.sql from CANVAS. +-- It is available from the assignment specification description. +-- +-- 0 Open the file Hatfield_Hotel_Table_and_Data.sql in SQL Developer and +-- use the Run Script icon (icon with page and small green triangle) or +-- accelerator F5 to run the script. +-- Output may show old versions of tables being removed if run multiple +-- times, before creating clean tables and populating with supplied data. +-- First time through the output should be as follows: +-- +-- Dropping Tables ... +-- Create Tables ... +-- ... A2_ROOM_TYPE +-- ... A2_ROOM +-- ... A2_GUEST +-- ... A2_BOOKING +-- ... A2_SHOWING +-- ... A2_EXTRA +-- ... A2_PRICE_LIST +-- ... A2_FIXED_EXTRA +-- ... A2_ADDITIONAL_EXTRA +-- +-- All tables created. +-- +-- Populate Tables ... +-- ... A2_Guest +-- ... A2_Booking +-- ... A2_Room_Type +-- ... A2_Room +-- ... A2_Reservation +-- ... A2_Price_List +-- ... A2_Extra +-- ... A2_Fixed_Extra +-- ... A2_Additional_Extra +-- +-- All tables re-created and populated. +-- +-- +-- PL/SQL procedure successfully completed. +-- +-- +-- 0 Confirm that 9 new tables exist all starting A2_ +-- ( A2_Guest, A2_Booking, A2_Room_Type, A2_Room_Type, A2_Reservation +-- A2_Price_List, A2_Extra, A2_Fixed_Extra, A2_Additional_Extra ) +-- +-- 0 Check each table contains data records in each as follows: +-- SELECT COUNT(*) FROM
; +-- +-- A2_Guest 37 +-- A2_Guide 57 +-- A2_Room_Type 4 +-- A2_Room 49 +-- A2_Reservation 183 +-- A2_Price_list 1029 +-- A2_Extra 87 +-- A2_Fixed_Extra 28 +-- A2_Additional_Extra 33 +-- +-- +-- 0 Only once you are happy with the tables and data, then progress to the two +-- tasks: + + +-- QUESTION 1 - Simple view +-- Create a simple VIEW called viewGuest which display all data from A2_GUEST +-- Write your SQL here + +-- Sol: +CREATE OR REPLACE VIEW VIEWGUEST AS + SELECT + * + FROM + A2_GUEST; + +-- Test: +SELECT + * +FROM + VIEWGUEST; + +-- Solution TEST +-- run script select * from viewGuest +-- Output will be +-- GUEST_ID FAMILY_NAME GIVEN_NAME DATE_OF_BIRTH ADDRESS +-- 933458 Robbins Martha 16-APR-92 74b, Sandley Towers, Sandley +-- 226725 Silver Richard 09-SEP-65 298, Christchurch Lane, Lindon +-- 632134 Lance Abe 27-FEB-59 81, Templemead, Sharpenley +-- 038464 Martins Rebecca 13-SEP-86 34, Mount Drive, Lindon +-- 826367 Grace Thomas 16-NOV-00 23, High Street, Lindon +-- .... so on +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- QUESTION 2 View with Aliases +-- Create a simple view called viewGuestName which displays all guest from A2_GUEST. +-- Your view should display full name, date of birth and address of all guests, order by guests full name. +-- Write your SQL here + +-- Sol: +CREATE OR REPLACE VIEW VIEWGUESTNAME AS + SELECT + FAMILY_NAME + ||' ' + ||GIVEN_NAME AS FULL_NAME, + DATE_OF_BIRTH, + ADDRESS + FROM + A2_GUEST + ORDER BY + 1; + +-- Test: +SELECT + * +FROM + VIEWGUESTNAME; + +-- OUTPUT +-- View VIEWGUESTNAME created. +-- Solution TEST +-- RUN SCRIPT +-- select * from viewGuestName +-- Output will be +-- FULL_NAME DATE_OF_BIRTH ADDRESS +-- Amman Said 26-JUL-83 29, The Roost, Cosset +-- Dixon Mel 04-APR-60 41, Highridge Way, Layburn +-- Fellows Aaron 14-DEC-68 12, Abbey Road, Southlands +-- Fellows John 18-DEC-99 18, Whooper Way, Cosset +-- Gaye Anthony 17-JUL-76 31, Priory Walk, Lyndham +-- Genoa Carrie 16-DEC-76 106, Ridgeway, Sharpenley +-- Grace Terence 30-MAY-61 23, High Street, Lindon +-- ... so on +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +--QUESTON 3 VIEW WITH CONDITION +-- create view named viewGuestFromLindon which displays all guests from LINDON. +-- Write your SQL here + +-- Sol: +CREATE OR REPLACE VIEW VIEWGUESTFROMLINDON AS + SELECT + * + FROM + A2_GUEST + WHERE + INSTR(LOWER(ADDRESS), 'lindon') > 0; + +-- Test: +SELECT + * +FROM + VIEWGUESTFROMLINDON; + +-- Solution TEST +-- run script select * from viewGuestFromLindon +-- Output will be +-- GUEST_ID FAMILY_NAME GIVEN_NAME DATE_OF_BIRTH ADDRESS +-- 226725 Silver Richard 09-SEP-65 298, Christchurch Lane, Lindon +-- 038464 Martins Rebecca 13-SEP-86 34, Mount Drive, Lindon +-- 826367 Grace Thomas 16-NOV-00 23, High Street, Lindon +-- 082164 Marvin Leon 08-FEB-89 The Marches, Teal Avenue, Lindon +-- 193445 Strettle George 01-JAN-84 Rose Cottage, Mount Drive, Lindon +-- 838384 Grace Terence 30-MAY-61 23, High Street, Lindon +-- 485639 Kline Kevin 07-JUN-91 43, Sandpit Drive, Lindon +-- 835123 Oslovski Boris 13-OCT-87 108, High Street, Lindon +-- 874902 Wilson Claire 16-JUN-97 54, The Greenway, Lindon +-- 180558 Leeman Terence 17-MAY-95 3, Meadow View, Lindon +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +--QUESTION 4 view from Joint +-- The view should display family name and given name of all guests and the total number of booking they placed, +-- order by family name and given name. +-- Order in alphabetic order of family name followed by given name +-- WRITE YOUR SQL HERE + +-- Sol: +CREATE OR REPLACE VIEW VIEWBOOKINGCOUNT AS + SELECT + FAMILY_NAME, + GIVEN_NAME, + COUNT(GUEST) AS BOOKING + FROM + A2_GUEST + LEFT OUTER JOIN A2_BOOKING + ON(GUEST = GUEST_ID) + GROUP BY + FAMILY_NAME, + GIVEN_NAME + ORDER BY + 1, + 2; + +-- Test: +SELECT + * +FROM + VIEWBOOKINGCOUNT; + +-- OUTPUT +-- View VIEWBOOKINGCOUNT created. +--------------------------------------------------------- +-- Solution TEST +-- RUN SCRIPT +-- select * from viewBookingCount +-- OUTPUT will be +-- FAMILY_NAME GIVEN_NAME BOOKING +------------------------------------------ +-- Amman Said 1 +-- Dixon Mel 1 +-- Fellows Aaron 2 +-- Fellows John 3 +-- Gaye Anthony 3 +-- Genoa Carrie 2 +-- Grace Terence 0 +-- Grace Thomas 3 +-- Holmsworthy Claire 0 +-- Kline Kevin 0 +-- so on... +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- QUESTION 5 READ ONLY VIEW +-- Create Read only view viewRoomOnly which display all records from A2_ROOM. +-- Write your SQL here + +-- Sol: + +CREATE OR REPLACE VIEW VIEWROOMONLY AS + SELECT + * + FROM + A2_ROOM WITH READ ONLY; + +-- Test: +INSERT INTO VIEWROOMONLY VALUES ( + 504, + 'Single', + 'Y', + 'N', + 'N' +); + +--OUTPUT +-- View VIEWROOMONLY created. +-- Solution TEST +-- RUN SCRIPT +-- insert into viewRoomOnly values (504,'Single','Y','N','N') +-- You will get error +-- Error report - +-- SQL Error: ORA-42399: cannot perform a DML operation on a read-only view +-- 42399.0000 - "cannot perform a DML operation on a read-only view" +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +--QUESTION 6 PL/SQL BLOCK WITH CURSOR +-- Write a PL/SQL block that uses a cursor to list all guests and their addresses who live in High Street. +-- Guest name should have family name and given name. +-- WRITE YOUR PL/SQL block HERE +set SERVEROUTPUT on; + +-- Sol: +DECLARE + CURSOR CUR IS ( + SELECT + * + FROM + A2_GUEST + WHERE + INSTR(LOWER(ADDRESS), 'high street')>0 + ); +BEGIN + FOR REC IN CUR LOOP + DBMS_OUTPUT.PUT_LINE(REC.FAMILY_NAME + ||' ' + ||REC.GIVEN_NAME + ||' ' + ||REC.ADDRESS); + END LOOP; +END; +/ + +-- OUTPUT +-- PL/SQL procedure successfully completed. +-- Dbms Output +-- Guest Name :Grace Thomas ADDRESS: 23, High Street, Lindon +-- Guest Name :Grace Terence ADDRESS: 23, High Street, Lindon +-- Guest Name :Oslovski Boris ADDRESS: 108, High Street, Lindon +-- Guest Name :Oslovski Boris ADDRESS: 108, High Street, Lindon (Redundant Repeatition?) +-- PL/SQL procedure successfully completed. +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- QUESTION 7 PL/SQL FUNCTION [simple function] +-- Write a PL/SQL function named 'getDiscountPrice' which takes original price and percentage discount as argument and return the discounted price +-- Note: discounted price = original Price * (1-perDiscount) +-- WRITE YOUR PL/SQL block HERE + +-- Sol: +CREATE OR REPLACE FUNCTION GETDISCOUNTPRICE( + PRICE NUMBER, + DISCOUNT NUMBER +) RETURN NUMBER AS +BEGIN + RETURN PRICE *(1-DISCOUNT); +END; +/ + +-- Test: +SELECT + GETDISCOUNTPRICE(120, 0.55) AS DISCOUNTPRICE +FROM + DUAL; + +-- OUTPUT +-- Function GETDISCOUNTPRICE compiled +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- QUESTION 8 Calling function from SQL Clause +-- call the function 'getDiscountPrice()' defined in question 7 to find the discounted price of the item whose original price was 120 . +-- 55% discount is applied in the item. +-- Hint: use dual for calling function +-- Write your SQL here +-- OUTPUT +-- DISCOUNTPRICE +-- 54 +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- QUESTION 9 Calling the function inside SQL Clause +-- Write a query that displays the original price and discounted Price of all items from A2_PRICE_List +-- Your query should display ROOM_NUMBER, SEASON, weekday, original price as �oldPrice� and discounted price as �new Price�. +-- Write your SQL here + +-- Sol: +SELECT + DISTINCT ROOM_NUMBER, + SEASON, + WEEKDAY, + PRICE AS "OldPrice", + GETDISCOUNTPRICE(PRICE, 0.2) AS "newPrice" -- discout = 1 - (oldPrice / newPrice)). +FROM + A2_PRICE_LIST +WHERE + SEASON = 'Low' + AND WEEKDAY = 'Mon'; + +-- OUTPUT +-- ROOM_NUMBER SEASON WEEKDAY OldPrice newPrice +-- 001 Low Mon 75.5 60.4 +-- 002 Low Mon 75.5 60.4 +-- 003 Low Mon 75.5 60.4 +-- 004 Low Mon 75.5 60.4 +-- 005 Low Mon 75.5 60.4 +-- 101 Low Mon 75.5 60.4 +-- ... so on +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- Question 10 PL/SQL FUNCTION [simple function] +-- Create a simple PL/SQL function 'getTotalGuest' that returns total number of guests. +-- Hint: Total Number is guest is the count of items in A2_GUEST +-- WRITE YOUR PL/SQL block HERE + +-- Sol: +CREATE OR REPLACE FUNCTION GETTOTALGUEST RETURN NUMBER AS + TOTAL NUMBER; +BEGIN + SELECT + COUNT(*) INTO TOTAL + FROM + A2_GUEST; + RETURN TOTAL; +END; +/ + +-- OUTPUT +-- Function GETTOTALGUEST compiled +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- Question 11 Calling PL/SQL function as normal function +-- Write a PL/SQL block that call the function 'getTotalGuest()' as a normal function +-- Your PL/SQL block should display the total number of guest in the Dbms Output +-- Note: +-- use DBMS_OUTPUT.put_line for display +-- !! call the function getTotalGuest() inside PL/SQL block not in SQL clause !! +-- WRITE YOUR PL/SQL block HERE + +-- Sol: +BEGIN + DBMS_OUTPUT.PUT_LINE('Total Guest :' + ||GETTOTALGUEST()); +END; +/ + +-- OUTPUT +-- PL/SQL procedure successfully completed. +-- Dbms Output +-- Total Guest :38 +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +-- QUESTION 12 Simple Tigger +-- Create a trigger named 'displayPriceChange' that displays old price, new price and price difference in Dbms Output whenever price of room (item from A2_PRICE_List) is updated. +-- WRITE YOUR PL/SQL block HERE + +-- Sol: +CREATE OR REPLACE TRIGGER DISPLAYPRICECHANGE BEFORE + UPDATE OF PRICE ON A2_PRICE_LIST FOR EACH ROW +BEGIN + DBMS_OUTPUT.PUT_LINE('Old Price: ' + ||:OLD.PRICE); + DBMS_OUTPUT.PUT_LINE('New Price: ' + ||:NEW.PRICE); + DBMS_OUTPUT.PUT_LINE('Price difference: ' + ||(:NEW.PRICE - :OLD.PRICE)); +END; +/ + +-- Test: + +-- OUTPUT +-- Trigger DISPLAYPRICECHANGE compiled +-- Dbms Output will be +-- Old Price: 100 +-- New Price: 120 +-- Price difference: 20 +------------------------------------------------------------------------------------------------- +DROP TRIGGER DISPLAYPRICECHANGE; + +------------------------------------------------------------------------------------------------- +-- QUESTION 13 CONDITIONAL TIGGER +-- Write a trigger that overwrite the change in room price if new price is less than previous price +-- Your tigger must displays 'Business ERROR !! you can not decrease room price !!' and alter the change if user tried to decrease room price +-- Write your SQL here + +-- Sol: +CREATE OR REPLACE TRIGGER STOPRECESSION BEFORE + UPDATE OF PRICE ON A2_PRICE_LIST FOR EACH ROW +DECLARE + BUSINESS EXCEPTION; +BEGIN + IF(:OLD.PRICE > :NEW.PRICE)THEN + RAISE_APPLICATION_ERROR(-20202, 'Business ERROR !! you can not decrease room price !!'); + END IF; +END; +/ + +-- Test: +UPDATE A2_PRICE_LIST +SET + PRICE = PRICE - 10 +WHERE + ROOM_NUMBER = '001' + AND SEASON = 'High' + AND WEEKDAY = 'Mon'; + +-- OUTPUT +-- Trigger STOPRECESSION compiled +-- Solution Test +-- After the tigger is complied RUN the SQL script below +-- update A2_PRICE_LIST set price = price - 10 where ROOM_NUMBER = '001' and SEASON ='High' and WEEKDAY = 'Mon' +-- Dbms Output +-- Business ERROR !! you can not decrease room price !! +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +--QUESTION 14 PL/SQL EXCEPTION [ type 1 ] +DECLARE + VROOMTYPE A2_ROOM_TYPE%ROWTYPE; +BEGIN + SELECT + * INTO VROOMTYPE + FROM + A2_ROOM_TYPE + WHERE + A2_ROOM_TYPE.ROOM_TYPE='Duplex'; + DBMS_OUTPUT.PUT_LINE('Number of Sleeps is :' + ||VROOMTYPE.SLEEPS); +END; +/ + +-- PLSQL block above throws error as: +-- Error report - +-- ORA-01403: no data found +-- ORA-06512: at line 4 +-- 01403. 00000 - "no data found" +-- *Cause: No data was found from the objects. +-- *Action: There was no data from the objects which may be due to end of fetch. +-- List the Name of the error +-- Answer: NO_DATA_FOUND. +-- Identify the type of the error, and rewrite the PL/SQL block such that the error is traped. +-- Answer: Predefined Oracle Server Error. +-- Display appropriate error message for the error +-- WRITE YOUR PL/SQL block HERE + +-- Sol: +DECLARE + VROOMTYPE A2_ROOM_TYPE%ROWTYPE; + EX EXCEPTION; + CT NUMBER := 0; +BEGIN + SELECT + COUNT(*) INTO CT + FROM + A2_ROOM_TYPE + WHERE + A2_ROOM_TYPE.ROOM_TYPE='Duplex'; + IF CT = 0 THEN + RAISE EX; + END IF; + + SELECT + * INTO VROOMTYPE + FROM + A2_ROOM_TYPE + WHERE + A2_ROOM_TYPE.ROOM_TYPE='Duplex'; + DBMS_OUTPUT.PUT_LINE('Number of Sleeps is :' + ||VROOMTYPE.SLEEPS); +EXCEPTION + WHEN EX THEN + DBMS_OUTPUT.PUT_LINE('Did Not Find Data.'); +END; +/ + +-- OUTPUT +-- PL/SQL procedure successfully completed. +-- Dbms Output +-- << Error message>> + + +-- Write your SQL here (????) +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +--QUESTION 15 PL/SQL EXCEPTION [type 2] +-- Write your SQL here + +DECLARE + VROOM A2_ROOM%ROWTYPE; +BEGIN + SELECT + * INTO VROOM + FROM + A2_ROOM + WHERE + A2_ROOM.ROOM_TYPE='Family'; + DBMS_OUTPUT.PUT_LINE('ROOM_NUMBER :' + ||VROOM.ROOM_NUMBER); +END; +/ + +-- PL/SQL block above throw the error: +-- Error report - +-- ORA-01422: exact fetch returns more than requested number of rows +-- ORA-06512: at line 4 +-- 01422. 00000 - "exact fetch returns more than requested number of rows" +-- *Cause: The number specified in exact fetch is less than the rows returned. +-- *Action: Rewrite the query or change number of rows requested + +-- Identify the type of the error, and rewrite the PL/SQL block such that the exception is traped. +-- Answer: Predefined Oracle Server Error. +-- Display appropriate error message +-- WRITE YOUR PL/SQL block HERE + +DECLARE + VROOM A2_ROOM%ROWTYPE; + EX EXCEPTION; + CT NUMBER; +BEGIN + SELECT + COUNT(*) INTO CT + FROM + A2_ROOM + WHERE + A2_ROOM.ROOM_TYPE='Family'; + IF CT > 1 THEN + RAISE EX; + END IF; + + SELECT + * INTO VROOM + FROM + A2_ROOM + WHERE + A2_ROOM.ROOM_TYPE='Family'; + DBMS_OUTPUT.PUT_LINE('ROOM_NUMBER :' + ||VROOM.ROOM_NUMBER); +EXCEPTION + WHEN EX THEN + DBMS_OUTPUT.PUT_LINE('Too many rows fetched, try using a cursor.'); +END; +/ + +-- OUTPUT +-- PL/SQL procedure successfully completed. +-- Dbms Output +-- << Error message>> +------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------- +--END diff --git a/Template/.gitignore b/Template/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/Template/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Template/.idea/.gitignore b/Template/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/Template/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/Template/.idea/inspectionProfiles/Project_Default.xml b/Template/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..21bc619 --- /dev/null +++ b/Template/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/Template/.idea/jpa.xml b/Template/.idea/jpa.xml new file mode 100644 index 0000000..9b46c6f --- /dev/null +++ b/Template/.idea/jpa.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Template/.idea/misc.xml b/Template/.idea/misc.xml new file mode 100644 index 0000000..b8f50fe --- /dev/null +++ b/Template/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/Template/.idea/sqldialects.xml b/Template/.idea/sqldialects.xml new file mode 100644 index 0000000..e2f3fb7 --- /dev/null +++ b/Template/.idea/sqldialects.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Template/.idea/uiDesigner.xml b/Template/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/Template/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Template/.idea/vcs.xml b/Template/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/Template/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Template/ERD.png b/Template/ERD.png new file mode 100644 index 0000000000000000000000000000000000000000..99a4276508d1d89dbe983995f709fcdd48b8c9a0 GIT binary patch literal 157782 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%0D8AYmhwSj&*fArI^m1T)8z%~Hmx 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

5V5#^=Z)ooIqJ01?;S}-jZHPEh?VzRm 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 TCob@_dvrS246c@I*oOQc-E&Pd literal 0 HcmV?d00001 diff --git a/Template/pom.xml b/Template/pom.xml new file mode 100644 index 0000000..cd32e73 --- /dev/null +++ b/Template/pom.xml @@ -0,0 +1,71 @@ + + + 4.0.0 + + com.sci + Template + 1.0.0 + + + 23 + 23 + + + + + + + org.projectlombok + lombok + 1.18.36 + provided + + + + + com.oracle.database.jdbc + ojdbc8 + 23.7.0.25.01 + + + + + org.hibernate.orm + hibernate-core + 6.6.11.Final + + + + + org.hibernate.orm + hibernate-jcache + 6.6.11.Final + + + + + org.ehcache + ehcache + 3.9.11 + + + + + org.slf4j + slf4j-api + 2.0.17 + + + + + ch.qos.logback + logback-classic + 1.5.18 + compile + + + + + \ No newline at end of file diff --git a/Template/src/main/java/com/sci/TesterApp.java b/Template/src/main/java/com/sci/TesterApp.java new file mode 100644 index 0000000..6ea455a --- /dev/null +++ b/Template/src/main/java/com/sci/TesterApp.java @@ -0,0 +1,17 @@ +package com.sci; + +import com.sci.dao.DBConfig; +import com.sci.dao.DBReservation; +import com.sci.models.*; +import java.util.List; + +public class TesterApp { + public static void main(String[] args) { +// DBReservation roomType = new DBReservation(); +// List rooms = roomType.get(); +// for (Reservation room : rooms) { +// System.out.println(room); +// } + DBConfig.shutdown(); + } +} diff --git a/Template/src/main/java/com/sci/criteria/FilterQuery.java b/Template/src/main/java/com/sci/criteria/FilterQuery.java new file mode 100644 index 0000000..c0e9875 --- /dev/null +++ b/Template/src/main/java/com/sci/criteria/FilterQuery.java @@ -0,0 +1,16 @@ +package com.sci.criteria; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FilterQuery { + + private String attributeName; + private Object attributeValue; + private Operator op; +// private String type;// int double boolean +} diff --git a/Template/src/main/java/com/sci/criteria/Operator.java b/Template/src/main/java/com/sci/criteria/Operator.java new file mode 100644 index 0000000..f3e2749 --- /dev/null +++ b/Template/src/main/java/com/sci/criteria/Operator.java @@ -0,0 +1,6 @@ +package com.sci.criteria; + +public enum Operator { + Equal, NotEqual, GreaterThan, Between, LessThan, + GreaterThanOrEqual, LessThanOrEqual, In, Like, IsNull +} diff --git a/Template/src/main/java/com/sci/dao/DBBooking.java b/Template/src/main/java/com/sci/dao/DBBooking.java new file mode 100644 index 0000000..fc6e6f5 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBBooking.java @@ -0,0 +1,214 @@ +package com.sci.dao; + + +import com.sci.criteria.FilterQuery; +import com.sci.models.Booking; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; + +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings({"unchecked", "rawtypes"}) +public class DBBooking { + public List getByFilter(List filterQueries) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + // To be edited in other relations CRUD OPs: + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(Booking.class); + Root root = cr.from(Booking.class); + + Predicate[] predicates = new Predicate[filterQueries.size()]; + for (int i = 0; i < filterQueries.size(); i++) { + switch (filterQueries.get(i).getOp()) { + case Equal: + predicates[i] = + cb.equal(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i).getAttributeValue()); + break; + case GreaterThan: + predicates[i] = + cb.greaterThan(root.get(filterQueries. + get(i).getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThan: + predicates[i] = + cb.lessThan(root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case NotEqual: + predicates[i] = + cb.notEqual(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i). + getAttributeValue()); + break; + case IsNull: + predicates[i] = + cb.isNull(root.get(filterQueries.get(i). + getAttributeName()) + ); + break; + case GreaterThanOrEqual: + predicates[i] = + cb.greaterThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThanOrEqual: + predicates[i] = + cb.lessThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case Like: + /* <===> Where attribute like '%string%', can be customized. */ + predicates[i] = + cb.like(root.get(filterQueries.get(i). + getAttributeName()), + "%" + (filterQueries.get(i). + getAttributeValue()) + "%"); + break; + case Between: + List values = + (List) filterQueries.get(i). + getAttributeValue(); + predicates[i] = + cb.between(root.get(filterQueries.get(i). + getAttributeName()), + values.get(0), values.get(1)); + break; + case In: + List inQuery = (List) + filterQueries.get(i).getAttributeValue(); + predicates[i] = + root.get(filterQueries.get(i).getAttributeName()). + in(inQuery); + break; + default: + break; + } + } + + //This is their default, We need a more complex query + cr.select(root).where(predicates); + + Query query = session.createQuery(cr); + return query.getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return new ArrayList<>(); + } + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM Booking").getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public Booking read(String bookingNumber) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(Booking.class, bookingNumber); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public String create(Booking booking) { + + Transaction transaction = null; + String bookingNumber = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + bookingNumber = (String) session.save(booking); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return bookingNumber; + } + + public void update(Booking booking) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(booking); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(String bookingNumber) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + Booking booking = read(bookingNumber); + + session.delete(booking); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/dao/DBConfig.java b/Template/src/main/java/com/sci/dao/DBConfig.java new file mode 100644 index 0000000..8b87167 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBConfig.java @@ -0,0 +1,17 @@ +package com.sci.dao; + +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; + +public class DBConfig { + + public static final SessionFactory SESSION_FACTORY = new Configuration() + .configure() + .buildSessionFactory(); + + public static void shutdown() { + if (SESSION_FACTORY.isOpen()) { + SESSION_FACTORY.close(); + } + } +} diff --git a/Template/src/main/java/com/sci/dao/DBEmployee.java b/Template/src/main/java/com/sci/dao/DBEmployee.java new file mode 100644 index 0000000..8618472 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBEmployee.java @@ -0,0 +1,214 @@ +package com.sci.dao; + + +import com.sci.criteria.FilterQuery; +import com.sci.models.Employee; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; + +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings({"unchecked", "rawtypes"}) +public class DBEmployee { + public List getByFilter(List filterQueries) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + // To be edited in other relations CRUD OPs: + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(Employee.class); + Root root = cr.from(Employee.class); + + Predicate[] predicates = new Predicate[filterQueries.size()]; + for (int i = 0; i < filterQueries.size(); i++) { + switch (filterQueries.get(i).getOp()) { + case Equal: + predicates[i] = + cb.equal(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i).getAttributeValue()); + break; + case GreaterThan: + predicates[i] = + cb.greaterThan(root.get(filterQueries. + get(i).getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThan: + predicates[i] = + cb.lessThan(root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case NotEqual: + predicates[i] = + cb.notEqual(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i). + getAttributeValue()); + break; + case IsNull: + predicates[i] = + cb.isNull(root.get(filterQueries.get(i). + getAttributeName()) + ); + break; + case GreaterThanOrEqual: + predicates[i] = + cb.greaterThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThanOrEqual: + predicates[i] = + cb.lessThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case Like: + /* <===> Where attribute like '%string%', can be customized. */ + predicates[i] = + cb.like(root.get(filterQueries.get(i). + getAttributeName()), + "%" + (filterQueries.get(i). + getAttributeValue()) + "%"); + break; + case Between: + List values = + (List) filterQueries.get(i). + getAttributeValue(); + predicates[i] = + cb.between(root.get(filterQueries.get(i). + getAttributeName()), + values.get(0), values.get(1)); + break; + case In: + List inQuery = (List) + filterQueries.get(i).getAttributeValue(); + predicates[i] = + root.get(filterQueries.get(i).getAttributeName()). + in(inQuery); + break; + default: + break; + } + } + + //This is their default, We need a more complex query + cr.select(root).where(predicates); + + Query query = session.createQuery(cr); + return query.getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return new ArrayList<>(); + } + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM Employee").list(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public Employee read(Integer employeeId) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(Employee.class, employeeId); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public Integer create(Employee employee) { + + Transaction transaction = null; + int employeeId = 0; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + employeeId = (Integer) session.save(employee); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return employeeId; + } + + public void update(Employee employee) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(employee); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(Integer employeeId) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + Employee employee = read(employeeId); + + session.delete(employee); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/dao/DBGuest.java b/Template/src/main/java/com/sci/dao/DBGuest.java new file mode 100644 index 0000000..dd659b8 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBGuest.java @@ -0,0 +1,214 @@ +package com.sci.dao; + + +import com.sci.criteria.FilterQuery; +import com.sci.models.Guest; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; + +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings({"unchecked", "rawtypes"}) +public class DBGuest { + public List getByFilter(List filterQueries) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + // To be edited in other relations CRUD OPs: + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(Guest.class); + Root root = cr.from(Guest.class); + + Predicate[] predicates = new Predicate[filterQueries.size()]; + for (int i = 0; i < filterQueries.size(); i++) { + switch (filterQueries.get(i).getOp()) { + case Equal: + predicates[i] = + cb.equal(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i).getAttributeValue()); + break; + case GreaterThan: + predicates[i] = + cb.greaterThan(root.get(filterQueries. + get(i).getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThan: + predicates[i] = + cb.lessThan(root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case NotEqual: + predicates[i] = + cb.notEqual(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i). + getAttributeValue()); + break; + case IsNull: + predicates[i] = + cb.isNull(root.get(filterQueries.get(i). + getAttributeName()) + ); + break; + case GreaterThanOrEqual: + predicates[i] = + cb.greaterThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThanOrEqual: + predicates[i] = + cb.lessThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case Like: + /* <===> Where attribute like '%string%', can be customized. */ + predicates[i] = + cb.like(root.get(filterQueries.get(i). + getAttributeName()), + "%" + (filterQueries.get(i). + getAttributeValue()) + "%"); + break; + case Between: + List values = + (List) filterQueries.get(i). + getAttributeValue(); + predicates[i] = + cb.between(root.get(filterQueries.get(i). + getAttributeName()), + values.get(0), values.get(1)); + break; + case In: + List inQuery = (List) + filterQueries.get(i).getAttributeValue(); + predicates[i] = + root.get(filterQueries.get(i).getAttributeName()). + in(inQuery); + break; + default: + break; + } + } + + //This is their default, We need a more complex query + cr.select(root).where(predicates); + + Query query = session.createQuery(cr); + return query.getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return new ArrayList<>(); + } + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM Guest ").list(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public Guest read(String guestId) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(Guest.class, guestId); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public String create(Guest guest) { + + Transaction transaction = null; + String guestId = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + guestId = (String) session.save(guest); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return guestId; + } + + public void update(Guest guest) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(guest); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(String guestId) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + Guest guest = read(guestId); + + session.delete(guest); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/dao/DBJobHistory.java b/Template/src/main/java/com/sci/dao/DBJobHistory.java new file mode 100644 index 0000000..1554782 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBJobHistory.java @@ -0,0 +1,107 @@ +package com.sci.dao; + +import com.sci.models.JobHistory; +import com.sci.models.JobHistoryCompositeKey; +import org.hibernate.Session; +import org.hibernate.Transaction; + +import java.sql.Date; +import java.util.List; + +public class DBJobHistory { + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM JobHistory").list(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public JobHistory read(Integer employeeId, Date startDate) { + JobHistoryCompositeKey key = new JobHistoryCompositeKey(employeeId, startDate); + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(JobHistory.class, key); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public JobHistoryCompositeKey create(JobHistory jobHistory) { + + Transaction transaction = null; + JobHistoryCompositeKey key = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + key = (JobHistoryCompositeKey) session.save(jobHistory); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return key; + } + + public void update(JobHistory jobHistory) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(jobHistory); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(Integer employeeId, Date date) { + JobHistoryCompositeKey key = new JobHistoryCompositeKey(employeeId, date); + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + JobHistory jobHistory = read(employeeId, date); + + session.delete(jobHistory); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/dao/DBPrice.java b/Template/src/main/java/com/sci/dao/DBPrice.java new file mode 100644 index 0000000..0cd669b --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBPrice.java @@ -0,0 +1,216 @@ +package com.sci.dao; + + +import com.sci.criteria.FilterQuery; +import com.sci.models.Price; +import com.sci.models.PriceCompositeKey; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; + +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings({"unchecked", "rawtypes"}) +public class DBPrice { + public List getByFilter(List filterQueries) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + // To be edited in other relations CRUD OPs: + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(Price.class); + Root root = cr.from(Price.class); + + Predicate[] predicates = new Predicate[filterQueries.size()]; + for (int i = 0; i < filterQueries.size(); i++) { + switch (filterQueries.get(i).getOp()) { + case Equal: + predicates[i] = + cb.equal(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i).getAttributeValue()); + break; + case GreaterThan: + predicates[i] = + cb.greaterThan(root.get(filterQueries. + get(i).getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThan: + predicates[i] = + cb.lessThan(root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case NotEqual: + predicates[i] = + cb.notEqual(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i). + getAttributeValue()); + break; + case IsNull: + predicates[i] = + cb.isNull(root.get(filterQueries.get(i). + getAttributeName()) + ); + break; + case GreaterThanOrEqual: + predicates[i] = + cb.greaterThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThanOrEqual: + predicates[i] = + cb.lessThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case Like: + /* <===> Where attribute like '%string%', can be customized. */ + predicates[i] = + cb.like(root.get(filterQueries.get(i). + getAttributeName()), + "%" + (filterQueries.get(i). + getAttributeValue()) + "%"); + break; + case Between: + List values = + (List) filterQueries.get(i). + getAttributeValue(); + predicates[i] = + cb.between(root.get(filterQueries.get(i). + getAttributeName()), + values.get(0), values.get(1)); + break; + case In: + List inQuery = (List) + filterQueries.get(i).getAttributeValue(); + predicates[i] = + root.get(filterQueries.get(i).getAttributeName()). + in(inQuery); + break; + default: + break; + } + } + + //This is their default, We need a more complex query + cr.select(root).where(predicates); + + Query query = session.createQuery(cr); + return query.getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return new ArrayList<>(); + } + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM Price ").list(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public Price read(String roomNumber, String season, String weekday) { + PriceCompositeKey key = new PriceCompositeKey(roomNumber, season, weekday); + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(Price.class, key); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public PriceCompositeKey create(Price price) { + + Transaction transaction = null; + PriceCompositeKey key = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + key = (PriceCompositeKey) session.save(price); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return key; + } + + public void update(Price price) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(price); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(String roomNumber, String season, String weekday) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + Price price = read(roomNumber, season, weekday); + + session.delete(price); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/dao/DBRegion.java b/Template/src/main/java/com/sci/dao/DBRegion.java new file mode 100644 index 0000000..a75ecc8 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBRegion.java @@ -0,0 +1,104 @@ +package com.sci.dao; + +import com.sci.models.Region; +import org.hibernate.Session; +import org.hibernate.Transaction; + +import java.util.List; + +public class DBRegion { + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM Region").list(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public Region read(Integer regionId) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(Region.class, regionId); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public Integer create(Region region) { + + Transaction transaction = null; + int regionId = 0; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + regionId = (Integer) session.save(region); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return regionId; + } + + public void update(Region region) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(region); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(Integer regionId) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + Region region = read(regionId); + + session.delete(region); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/dao/DBReservation.java b/Template/src/main/java/com/sci/dao/DBReservation.java new file mode 100644 index 0000000..028bd1e --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBReservation.java @@ -0,0 +1,217 @@ +package com.sci.dao; + + +import com.sci.criteria.FilterQuery; +import com.sci.models.Reservation; +import com.sci.models.ReservationCompositeKey; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; + +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import java.sql.Date; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings({"unchecked", "rawtypes"}) +public class DBReservation { + public List getByFilter(List filterQueries) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + // To be edited in other relations CRUD OPs: + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(Reservation.class); + Root root = cr.from(Reservation.class); + + Predicate[] predicates = new Predicate[filterQueries.size()]; + for (int i = 0; i < filterQueries.size(); i++) { + switch (filterQueries.get(i).getOp()) { + case Equal: + predicates[i] = + cb.equal(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i).getAttributeValue()); + break; + case GreaterThan: + predicates[i] = + cb.greaterThan(root.get(filterQueries. + get(i).getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThan: + predicates[i] = + cb.lessThan(root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case NotEqual: + predicates[i] = + cb.notEqual(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i). + getAttributeValue()); + break; + case IsNull: + predicates[i] = + cb.isNull(root.get(filterQueries.get(i). + getAttributeName()) + ); + break; + case GreaterThanOrEqual: + predicates[i] = + cb.greaterThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThanOrEqual: + predicates[i] = + cb.lessThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case Like: + /* <===> Where attribute like '%string%', can be customized. */ + predicates[i] = + cb.like(root.get(filterQueries.get(i). + getAttributeName()), + "%" + (filterQueries.get(i). + getAttributeValue()) + "%"); + break; + case Between: + List values = + (List) filterQueries.get(i). + getAttributeValue(); + predicates[i] = + cb.between(root.get(filterQueries.get(i). + getAttributeName()), + values.get(0), values.get(1)); + break; + case In: + List inQuery = (List) + filterQueries.get(i).getAttributeValue(); + predicates[i] = + root.get(filterQueries.get(i).getAttributeName()). + in(inQuery); + break; + default: + break; + } + } + + //This is their default, We need a more complex query + cr.select(root).where(predicates); + + Query query = session.createQuery(cr); + return query.getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return new ArrayList<>(); + } + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM Reservation", Reservation.class).getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public Reservation read(String bookingNumber, String roomNumber, Date dateReserved) { + ReservationCompositeKey key = new ReservationCompositeKey(bookingNumber, roomNumber, dateReserved); + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(Reservation.class, key); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public ReservationCompositeKey create(Reservation reservation) { + + Transaction transaction = null; + ReservationCompositeKey key = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + key = (ReservationCompositeKey) session.save(reservation); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return key; + } + + public void update(Reservation reservation) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(reservation); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(String bookingNumber, String roomNumber, Date dateReserved) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + Reservation reservation = read(bookingNumber, roomNumber, dateReserved); + + session.delete(reservation); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/dao/DBRoom.java b/Template/src/main/java/com/sci/dao/DBRoom.java new file mode 100644 index 0000000..b831071 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBRoom.java @@ -0,0 +1,214 @@ +package com.sci.dao; + + +import com.sci.criteria.FilterQuery; +import com.sci.models.Room; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; + +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings({"unchecked", "rawtypes"}) +public class DBRoom { + public List getByFilter(List filterQueries) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + // To be edited in other relations CRUD OPs: + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(Room.class); + Root root = cr.from(Room.class); + + Predicate[] predicates = new Predicate[filterQueries.size()]; + for (int i = 0; i < filterQueries.size(); i++) { + switch (filterQueries.get(i).getOp()) { + case Equal: + predicates[i] = + cb.equal(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i).getAttributeValue()); + break; + case GreaterThan: + predicates[i] = + cb.greaterThan(root.get(filterQueries. + get(i).getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThan: + predicates[i] = + cb.lessThan(root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case NotEqual: + predicates[i] = + cb.notEqual(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i). + getAttributeValue()); + break; + case IsNull: + predicates[i] = + cb.isNull(root.get(filterQueries.get(i). + getAttributeName()) + ); + break; + case GreaterThanOrEqual: + predicates[i] = + cb.greaterThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThanOrEqual: + predicates[i] = + cb.lessThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case Like: + /* <===> Where attribute like '%string%', can be customized. */ + predicates[i] = + cb.like(root.get(filterQueries.get(i). + getAttributeName()), + "%" + (filterQueries.get(i). + getAttributeValue()) + "%"); + break; + case Between: + List values = + (List) filterQueries.get(i). + getAttributeValue(); + predicates[i] = + cb.between(root.get(filterQueries.get(i). + getAttributeName()), + values.get(0), values.get(1)); + break; + case In: + List inQuery = (List) + filterQueries.get(i).getAttributeValue(); + predicates[i] = + root.get(filterQueries.get(i).getAttributeName()). + in(inQuery); + break; + default: + break; + } + } + + //This is their default, We need a more complex query + cr.select(root).where(predicates); + + Query query = session.createQuery(cr); + return query.getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return new ArrayList<>(); + } + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM Room ").list(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public Room read(String roomNumber) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(Room.class, roomNumber); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public String create(Room room) { + + Transaction transaction = null; + String roomNumber = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + roomNumber = (String) session.save(room); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return roomNumber; + } + + public void update(Room room) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(room); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(String roomNumber) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + Room room = read(roomNumber); + + session.delete(room); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/dao/DBRoomType.java b/Template/src/main/java/com/sci/dao/DBRoomType.java new file mode 100644 index 0000000..1f33ca4 --- /dev/null +++ b/Template/src/main/java/com/sci/dao/DBRoomType.java @@ -0,0 +1,214 @@ +package com.sci.dao; + + +import com.sci.criteria.FilterQuery; +import com.sci.models.RoomType; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; + +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings({"unchecked", "rawtypes"}) +public class DBRoomType { + public List getByFilter(List filterQueries) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + // To be edited in other relations CRUD OPs: + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery cr = cb.createQuery(RoomType.class); + Root root = cr.from(RoomType.class); + + Predicate[] predicates = new Predicate[filterQueries.size()]; + for (int i = 0; i < filterQueries.size(); i++) { + switch (filterQueries.get(i).getOp()) { + case Equal: + predicates[i] = + cb.equal(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i).getAttributeValue()); + break; + case GreaterThan: + predicates[i] = + cb.greaterThan(root.get(filterQueries. + get(i).getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThan: + predicates[i] = + cb.lessThan(root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case NotEqual: + predicates[i] = + cb.notEqual(root.get(filterQueries.get(i). + getAttributeName()), + filterQueries.get(i). + getAttributeValue()); + break; + case IsNull: + predicates[i] = + cb.isNull(root.get(filterQueries.get(i). + getAttributeName()) + ); + break; + case GreaterThanOrEqual: + predicates[i] = + cb.greaterThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case LessThanOrEqual: + predicates[i] = + cb.lessThanOrEqualTo( + root.get(filterQueries.get(i). + getAttributeName()), + (Comparable) filterQueries.get(i). + getAttributeValue()); + break; + case Like: + /* <===> Where attribute like '%string%', can be customized. */ + predicates[i] = + cb.like(root.get(filterQueries.get(i). + getAttributeName()), + "%" + (filterQueries.get(i). + getAttributeValue()) + "%"); + break; + case Between: + List values = + (List) filterQueries.get(i). + getAttributeValue(); + predicates[i] = + cb.between(root.get(filterQueries.get(i). + getAttributeName()), + values.get(0), values.get(1)); + break; + case In: + List inQuery = (List) + filterQueries.get(i).getAttributeValue(); + predicates[i] = + root.get(filterQueries.get(i).getAttributeName()). + in(inQuery); + break; + default: + break; + } + } + + //This is their default, We need a more complex query + cr.select(root).where(predicates); + + Query query = session.createQuery(cr); + return query.getResultList(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return new ArrayList<>(); + } + + public List get() { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + //noinspection unchecked + return session.createQuery("FROM RoomType ").list(); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + public RoomType read(String roomTypeId) { + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + return session.get(RoomType.class, roomTypeId); + + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + return null; + } + + + public String create(RoomType roomType) { + + Transaction transaction = null; + String roomTypeId = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + roomTypeId = (String) session.save(roomType); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + + return roomTypeId; + } + + public void update(RoomType roomType) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + session.update(roomType); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + + public void delete(String roomTypeId) { + + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + + transaction = session.beginTransaction(); + + RoomType roomType = read(roomTypeId); + + session.delete(roomType); + + transaction.commit(); + + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + System.err.println(ex.getMessage()); + } + } + +} diff --git a/Template/src/main/java/com/sci/models/Booking.java b/Template/src/main/java/com/sci/models/Booking.java new file mode 100644 index 0000000..213a9e2 --- /dev/null +++ b/Template/src/main/java/com/sci/models/Booking.java @@ -0,0 +1,37 @@ +package com.sci.models; + +import java.io.Serializable; +import java.sql.Date; +import java.util.List; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "A2_BOOKING") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Booking implements Serializable { + + @Id + @Column(name = "BOOKING_NUMBER") + private String bookingNumber; + @Column(name = "GUEST") + private String guest; + @Column(name = "DATE_MADE") + private Date dateMade; + @Column(name = "REASON") + private String reason; + + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "BOOKING_NUMBER", insertable = false, updatable = false) + private List reservations; +} diff --git a/Template/src/main/java/com/sci/models/Employee.java b/Template/src/main/java/com/sci/models/Employee.java new file mode 100644 index 0000000..8b603e6 --- /dev/null +++ b/Template/src/main/java/com/sci/models/Employee.java @@ -0,0 +1,66 @@ +//Employees Sequenced, Self-Join, ManyToMany Relationship. +//JobHistory CompositeKey Solution. + +package com.sci.models; + +import java.io.Serializable; +import java.sql.Date; +import java.util.List; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "employees") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +//Sequencing: +@SequenceGenerator(name = "employees_gen", sequenceName = "employees_seq", allocationSize = 1) +public class Employee implements Serializable { + + private static final long serialVersionUID = -915428707036605461L; + + @Id //Sequence strategy: + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employees_gen") + @Column(name = "employee_id") + private Integer employeeId; + @Column(name = "first_name") + private String firstName; + @Column(name = "last_name") + private String lastName; + @Column(name = "email") + private String email; + @Column(name = "phone_number") + private String phoneNumber; + @Column(name = "hire_date") + private Date hireDate; + @Column(name = "job_id") + private String jobId; + @Column(name = "salary") + private Integer salary; + @Column(name = "commission_pct") + private Double commissionPct; + @Column(name = "manager_id") + private Integer managerId; + @Column(name = "department_id") + private Integer departmentId; + + + //Each employee has a manager: + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "MANAGER_ID", insertable = false, updatable = false) + private Employee manager; + + //Each employee (Manager) manages many employees: + //This is a self-referencing relationship: + @OneToMany(mappedBy = "manager") + private List managedEmployees; +} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/Guest.java b/Template/src/main/java/com/sci/models/Guest.java new file mode 100644 index 0000000..cf90f2c --- /dev/null +++ b/Template/src/main/java/com/sci/models/Guest.java @@ -0,0 +1,40 @@ +package com.sci.models; + +import java.io.Serializable; +import java.sql.Date; +import java.util.List; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "A2_GUEST") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Guest implements Serializable { + private static final long serialVersionUID = 3L; + + @Id + @Column(name = "GUEST_ID") + private String guestId; + @Column(name = "FAMILY_NAME") + private String familyName; + @Column(name = "GIVEN_NAME") + private String givenName; + @Column(name = "DATE_OF_BIRTH") + private Date dateOfBirth; + @Column(name = "ADDRESS") + private String address; + + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "GUEST", insertable = false, updatable = false) + private List bookings; +} diff --git a/Template/src/main/java/com/sci/models/JobHistory.java b/Template/src/main/java/com/sci/models/JobHistory.java new file mode 100644 index 0000000..cf84910 --- /dev/null +++ b/Template/src/main/java/com/sci/models/JobHistory.java @@ -0,0 +1,35 @@ +package com.sci.models; + +import java.io.Serializable; +import java.sql.Date; +import jakarta.persistence.*; + +import lombok.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "Job_History") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor +@IdClass(JobHistoryCompositeKey.class) //Composite key. +public class JobHistory implements Serializable { + + private static final long serialVersionUID = 6572714351961244926L; + @Id //Key part1. + @Column(name = "EMPLOYEE_ID") + private Integer employeeId; + @Id //Key part2. + @Column(name = "START_DATE") + private Date startDate; + @Column(name = "END_DATE") + private Date endDate; + @Column(name = "JOB_ID") + private String jobId; + @Column(name = "DEPARTMENT_ID") + private Integer departmentId; + +} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java b/Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java new file mode 100644 index 0000000..4e3319e --- /dev/null +++ b/Template/src/main/java/com/sci/models/JobHistoryCompositeKey.java @@ -0,0 +1,19 @@ +package com.sci.models; + +import lombok.*; + +import java.io.Serializable; +import java.sql.Date; +//Composite key class: +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@ToString +@EqualsAndHashCode +public class JobHistoryCompositeKey implements Serializable { + private static final long serialVersionUID = -7519983781399232210L; + + private Integer employeeId; + private Date startDate; +} diff --git a/Template/src/main/java/com/sci/models/Price.java b/Template/src/main/java/com/sci/models/Price.java new file mode 100644 index 0000000..5a8c511 --- /dev/null +++ b/Template/src/main/java/com/sci/models/Price.java @@ -0,0 +1,33 @@ +package com.sci.models; + +import java.io.Serializable; +import jakarta.persistence.*; + +import lombok.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "A2_PRICE_LIST") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor +@IdClass(PriceCompositeKey.class) //Composite key. +public class Price implements Serializable { + private static final long serialVersionUID = 6L; + + @Id + @Column(name = "ROOM_NUMBER") + private String roomNumber; + @Id + @Column(name = "SEASON") + private String season; + @Id + @Column(name = "WEEKDAY") + private String weekday; + @Column(name = "PRICE") + private Integer price; + +} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/PriceCompositeKey.java b/Template/src/main/java/com/sci/models/PriceCompositeKey.java new file mode 100644 index 0000000..27d5807 --- /dev/null +++ b/Template/src/main/java/com/sci/models/PriceCompositeKey.java @@ -0,0 +1,21 @@ +package com.sci.models; + +import lombok.*; + +import java.io.Serializable; + +//Composite key class: +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@ToString +@EqualsAndHashCode +public class PriceCompositeKey implements Serializable { + private static final long serialVersionUID = 5L; + + private String roomNumber; + private String season; + private String weekday; + +} diff --git a/Template/src/main/java/com/sci/models/Region.java b/Template/src/main/java/com/sci/models/Region.java new file mode 100644 index 0000000..9a8bfd9 --- /dev/null +++ b/Template/src/main/java/com/sci/models/Region.java @@ -0,0 +1,29 @@ +package com.sci.models; + +import java.io.Serializable; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "Regions") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Region implements Serializable { + + private static final long serialVersionUID = 6596828837219242458L; + + @Id + @Column(name = "REGION_ID") + private Integer regionId; + @Column(name = "REGION_NAME") + private String regionName; + +} diff --git a/Template/src/main/java/com/sci/models/Reservation.java b/Template/src/main/java/com/sci/models/Reservation.java new file mode 100644 index 0000000..f99f4e4 --- /dev/null +++ b/Template/src/main/java/com/sci/models/Reservation.java @@ -0,0 +1,33 @@ +package com.sci.models; + +import java.io.Serializable; +import java.sql.Date; +import jakarta.persistence.*; + +import lombok.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "A2_RESERVATION") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor +@IdClass(ReservationCompositeKey.class) //Composite key. + +public class Reservation implements Serializable { + private static final long serialVersionUID = 8L; + + @Id + @Column(name = "BOOKING_NUMBER") + private String bookingNumber; + @Id + @Column(name = "ROOM_NUMBER") + private String roomNumber; + @Id + @Column(name = "DATE_RESERVED") + private Date dateReserved; + +} \ No newline at end of file diff --git a/Template/src/main/java/com/sci/models/ReservationCompositeKey.java b/Template/src/main/java/com/sci/models/ReservationCompositeKey.java new file mode 100644 index 0000000..efde55a --- /dev/null +++ b/Template/src/main/java/com/sci/models/ReservationCompositeKey.java @@ -0,0 +1,22 @@ +package com.sci.models; + +import lombok.*; + +import java.io.Serializable; +import java.sql.Date; + +//Composite key class: +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@ToString +@EqualsAndHashCode +public class ReservationCompositeKey implements Serializable { + private static final long serialVersionUID = 7L; + + private String bookingNumber; + private String roomNumber; + private Date dateReserved; + +} diff --git a/Template/src/main/java/com/sci/models/Room.java b/Template/src/main/java/com/sci/models/Room.java new file mode 100644 index 0000000..4144c14 --- /dev/null +++ b/Template/src/main/java/com/sci/models/Room.java @@ -0,0 +1,43 @@ +package com.sci.models; + +import java.io.Serializable; +import java.util.List; +import jakarta.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "A2_ROOM") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class Room implements Serializable { + private static final long serialVersionUID = 2L; + + @Id + @Column(name = "ROOM_NUMBER") + private String roomNumber; + @Column(name = "ROOM_TYPE") + private String roomTypeId; + @Column(name = "SHOWER") + private String shower; + @Column(name = "BATH") + private String bath; + @Column(name = "BALCONY") + private String balcony; + + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "ROOM_NUMBER", insertable = false, updatable = false) + private List prices; + + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "ROOM_NUMBER", insertable = false, updatable = false) + private List reservations; +} diff --git a/Template/src/main/java/com/sci/models/RoomType.java b/Template/src/main/java/com/sci/models/RoomType.java new file mode 100644 index 0000000..e531622 --- /dev/null +++ b/Template/src/main/java/com/sci/models/RoomType.java @@ -0,0 +1,37 @@ +package com.sci.models; + +import java.io.Serializable; +import java.util.List; + +import jakarta.persistence.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "A2_ROOM_TYPE") +@Data +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +@NoArgsConstructor +@AllArgsConstructor + +public class RoomType implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "ROOM_TYPE") + private String roomTypeId; + @Column(name = "SLEEPS") + private Integer sleeps; + @Column(name = "DESCRIPTION") + private String description; + + @OneToMany(fetch = FetchType.LAZY) + @JoinColumn(name = "ROOM_TYPE", insertable = false, updatable = false) + private List rooms; + +} diff --git a/Template/src/main/resources/hibernate.cfg.xml b/Template/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..5af8fec --- /dev/null +++ b/Template/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,28 @@ + + + + jdbc:oracle:thin:@//localhost:1521/freepdb1 + test + test + oracle.jdbc.driver.OracleDriver + update + true + + org.hibernate.cache.jcache.JCacheRegionFactory + org.ehcache.jsr107.EhcacheCachingProvider + true + true + create + + + + + + + + + + + + + \ No newline at end of file diff --git a/Template/src/main/resources/logback.xml b/Template/src/main/resources/logback.xml new file mode 100644 index 0000000..d6a7398 --- /dev/null +++ b/Template/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + \ No newline at end of file diff --git a/hrSchema.sql b/hrSchema.sql index 8a92f19..153268e 100644 --- a/hrSchema.sql +++ b/hrSchema.sql @@ -1,1126 +1,1126 @@ -/* -02 Create Tables -This script creates the tables needed for the HR schema. -Run this script after script 01, and while you are logged in as the newly-created HR user. -*/ - -DROP TABLE job_history CASCADE CONSTRAINTS; -DROP TABLE departments CASCADE CONSTRAINTS; -DROP TABLE employees CASCADE CONSTRAINTS; -DROP TABLE jobs CASCADE CONSTRAINTS; -DROP TABLE locations CASCADE CONSTRAINTS; -DROP TABLE countries CASCADE CONSTRAINTS; -DROP TABLE regions CASCADE CONSTRAINTS; -DROP SEQUENCE locations_seq; -DROP SEQUENCE departments_seq; -DROP SEQUENCE employees_seq; - - -ALTER SESSION SET NLS_LANGUAGE=American; -ALTER SESSION SET NLS_TERRITORY=America; - -/* Regions */ - -CREATE TABLE regions ( - region_id NUMBER CONSTRAINT regions_id_nn NOT NULL, - region_name VARCHAR2(25) -); - -CREATE UNIQUE INDEX reg_id_pk -ON regions (region_id); - -ALTER TABLE regions -ADD CONSTRAINT reg_id_pk -PRIMARY KEY (region_id); - -/* Countries */ - -CREATE TABLE countries ( - country_id CHAR(2) CONSTRAINT country_id_nn NOT NULL, - country_name VARCHAR2(40), - region_id NUMBER, - CONSTRAINT country_c_id_pk PRIMARY KEY (country_id) -) -ORGANIZATION INDEX; - -ALTER TABLE countries -ADD CONSTRAINT countr_reg_fk -FOREIGN KEY (region_id) -REFERENCES regions(region_id); - -/* Locations */ - -CREATE TABLE locations ( - location_id NUMBER(4), - street_address VARCHAR2(40), - postal_code VARCHAR2(12), - city VARCHAR2(30) CONSTRAINT loc_city_nn NOT NULL, - state_province VARCHAR2(25), - country_id CHAR(2) -); - -CREATE UNIQUE INDEX loc_id_pk -ON locations (location_id); - -ALTER TABLE locations -ADD ( - CONSTRAINT loc_id_pk PRIMARY KEY (location_id), - CONSTRAINT loc_c_id_fk FOREIGN KEY (country_id) REFERENCES countries(country_id) -); - -CREATE SEQUENCE locations_seq - START WITH 3300 - INCREMENT BY 100 - MAXVALUE 9900 - NOCACHE - NOCYCLE; - -/* Departments */ - - -CREATE TABLE departments ( - department_id NUMBER(4), - department_name VARCHAR2(30) CONSTRAINT dept_name_nn NOT NULL, - manager_id NUMBER(6), - location_id NUMBER(4) -); - -CREATE UNIQUE INDEX dept_id_pk -ON departments (department_id) ; - -ALTER TABLE departments -ADD ( - CONSTRAINT dept_id_pk PRIMARY KEY (department_id), - CONSTRAINT dept_loc_fk FOREIGN KEY (location_id) REFERENCES locations (location_id) -); - -CREATE SEQUENCE departments_seq - START WITH 280 - INCREMENT BY 10 - MAXVALUE 9990 - NOCACHE - NOCYCLE; - -/* Jobs */ - -CREATE TABLE jobs ( - job_id VARCHAR2(10), - job_title VARCHAR2(35) CONSTRAINT job_title_nn NOT NULL, - min_salary NUMBER(6), - max_salary NUMBER(6) -); - -CREATE UNIQUE INDEX job_id_pk -ON jobs (job_id) ; - -ALTER TABLE jobs -ADD ( - CONSTRAINT job_id_pk PRIMARY KEY(job_id) -); - - -/* Employees */ - -CREATE TABLE employees ( - employee_id NUMBER(6), - first_name VARCHAR2(20), - last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL, - email VARCHAR2(25) CONSTRAINT emp_email_nn NOT NULL, - phone_number VARCHAR2(20), - hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, - job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, - salary NUMBER(8,2), - commission_pct NUMBER(2,2), - manager_id NUMBER(6), - department_id NUMBER(4), - CONSTRAINT emp_salary_min CHECK (salary > 0), - CONSTRAINT emp_email_uk UNIQUE (email) -); - -CREATE UNIQUE INDEX emp_emp_id_pk -ON employees (employee_id); - - -ALTER TABLE employees -ADD ( - CONSTRAINT emp_emp_id_pk - PRIMARY KEY (employee_id), - CONSTRAINT emp_dept_fk - FOREIGN KEY (department_id) REFERENCES departments, - CONSTRAINT emp_job_fk - FOREIGN KEY (job_id) REFERENCES jobs (job_id), - CONSTRAINT emp_manager_fk - FOREIGN KEY (manager_id) REFERENCES employees (employee_id) -); - -/* Alter Tables */ - -ALTER TABLE departments -ADD ( - CONSTRAINT dept_mgr_fk - FOREIGN KEY (manager_id) - REFERENCES employees (employee_id) -); - -CREATE SEQUENCE employees_seq - START WITH 207 - INCREMENT BY 1 - NOCACHE - NOCYCLE; - - -/* Job History */ -CREATE TABLE job_history ( - employee_id NUMBER(6) CONSTRAINT jhist_employee_nn NOT NULL, - start_date DATE CONSTRAINT jhist_start_date_nn NOT NULL, - end_date DATE CONSTRAINT jhist_end_date_nn NOT NULL, - job_id VARCHAR2(10) CONSTRAINT jhist_job_nn NOT NULL, - department_id NUMBER(4), - CONSTRAINT jhist_date_interval CHECK (end_date > start_date) -); - -CREATE UNIQUE INDEX jhist_emp_id_st_date_pk -ON job_history (employee_id, start_date); - -ALTER TABLE job_history -ADD ( - CONSTRAINT jhist_emp_id_st_date_pk - PRIMARY KEY (employee_id, start_date), - CONSTRAINT jhist_job_fk - FOREIGN KEY (job_id) REFERENCES jobs, - CONSTRAINT jhist_emp_fk - FOREIGN KEY (employee_id) REFERENCES employees, - CONSTRAINT jhist_dept_fk - FOREIGN KEY (department_id) REFERENCES departments -); - - - -CREATE OR REPLACE VIEW emp_details_view - (employee_id, - job_id, - manager_id, - department_id, - location_id, - country_id, - first_name, - last_name, - salary, - commission_pct, - department_name, - job_title, - city, - state_province, - country_name, - region_name) -AS -SELECT - e.employee_id, - e.job_id, - e.manager_id, - e.department_id, - d.location_id, - l.country_id, - e.first_name, - e.last_name, - e.salary, - e.commission_pct, - d.department_name, - j.job_title, - l.city, - l.state_province, - c.country_name, - r.region_name -FROM - employees e - INNER JOIN departments d ON e.department_id = d.department_id - INNER JOIN jobs j ON j.job_id = e.job_id - INNER JOIN locations l ON d.location_id = l.location_id - INNER JOIN countries c ON l.country_id = c.country_id - INNER JOIN regions r ON c.region_id = r.region_id -WITH READ ONLY; - -COMMIT; - -/* -03 Populate Tables -This script populates the tables that were created in the previous script. -*/ - -ALTER SESSION SET NLS_LANGUAGE=American; - -INSERT INTO regions (region_id, region_name) VALUES (1, 'Europe'); -INSERT INTO regions (region_id, region_name) VALUES (2, 'Americas'); -INSERT INTO regions (region_id, region_name) VALUES (3, 'Asia'); -INSERT INTO regions (region_id, region_name) VALUES (4, 'Middle East and Africa'); - - -INSERT INTO countries (country_id, country_name, region_id) VALUES ('IT', 'Italy', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('JP', 'Japan', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('US', 'United States of America', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('CA', 'Canada', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('CN', 'China', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('IN', 'India', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('AU', 'Australia', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZW', 'Zimbabwe', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('SG', 'Singapore', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('UK', 'United Kingdom', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('FR', 'France', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('DE', 'Germany', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZM', 'Zambia', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('EG', 'Egypt', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('BR', 'Brazil', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('CH', 'Switzerland', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('NL', 'Netherlands', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('MX', 'Mexico', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('KW', 'Kuwait', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('IL', 'Israel', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('DK', 'Denmark', 1); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('ML', 'Malaysia', 3); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('NG', 'Nigeria', 4); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('AR', 'Argentina', 2); -INSERT INTO countries (country_id, country_name, region_id) VALUES ('BE', 'Belgium', 1); - - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1000 , '1297 Via Cola di Rie', '00989', 'Roma', NULL, 'IT'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1100, '93091 Calle della Testa', '10934', 'Venice', NULL, 'IT'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1200, '2017 Shinjuku-ku', '1689', 'Tokyo', 'Tokyo Prefecture', 'JP'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1300, '9450 Kamiya-cho', '6823', 'Hiroshima', NULL, 'JP'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -(1400, '2014 Jabberwocky Rd', '26192', 'Southlake', 'Texas', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1500, '2011 Interiors Blvd', '99236', 'South San Francisco', 'California', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1600, '2007 Zagora St', '50090', 'South Brunswick', 'New Jersey', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1700, '2004 Charade Rd', '98199', 'Seattle', 'Washington', 'US'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1800, '147 Spadina Ave', 'M5V 2L7', 'Toronto', 'Ontario', 'CA'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 1900, '6092 Boxwood St', 'YSW 9T2', 'Whitehorse', 'Yukon', 'CA'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2000, '40-5-12 Laogianggen', '190518', 'Beijing', NULL, 'CN'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2100, '1298 Vileparle (E)', '490231', 'Bombay', 'Maharashtra', 'IN'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2200, '12-98 Victoria Street', '2901', 'Sydney', 'New South Wales', 'AU'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2300, '198 Clementi North', '540198', 'Singapore', NULL, 'SG'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2400, '8204 Arthur St', NULL, 'London', NULL, 'UK'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2500, 'Magdalen Centre, The Oxford Science Park', 'OX9 9ZB', 'Oxford', 'Oxford', 'UK'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2600, '9702 Chester Road', '09629850293', 'Stretford', 'Manchester', 'UK'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2700, 'Schwanthalerstr. 7031', '80925', 'Munich', 'Bavaria', 'DE'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2800, 'Rua Frei Caneca 1360 ', '01307-002', 'Sao Paulo', 'Sao Paulo', 'BR'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 2900, '20 Rue des Corps-Saints', '1730', 'Geneva', 'Geneve', 'CH'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 3000, 'Murtenstrasse 921', '3095', 'Bern', 'BE', 'CH'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 3100, 'Pieter Breughelstraat 837', '3029SK', 'Utrecht', 'Utrecht', 'NL'); - -INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES -( 3200, 'Mariano Escobedo 9991', '11932', 'Mexico City', 'Distrito Federal,', 'MX'); - - - -ALTER TABLE departments DISABLE CONSTRAINT dept_mgr_fk; - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 10, 'Administration', 200, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 20, 'Marketing', 201, 1800); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 30, 'Purchasing', 114, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 40, 'Human Resources', 203, 2400); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 50, 'Shipping', 121, 1500); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 60, 'IT', 103, 1400); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 70, 'Public Relations', 204, 2700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 80, 'Sales', 145, 2500); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 90, 'Executive', 100, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 100, 'Finance', 108, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 110, 'Accounting', 205, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 120, 'Treasury', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 130, 'Corporate Tax', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 140, 'Control And Credit', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 150, 'Shareholder Services', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 160, 'Benefits', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 170, 'Manufacturing', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 180, 'Construction', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 190, 'Contracting', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 200, 'Operations', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 210, 'IT Support', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 220, 'NOC', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 230, 'IT Helpdesk', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 240, 'Government Sales', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 250, 'Retail Sales', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 260, 'Recruiting', NULL, 1700); - -INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES -( 270, 'Payroll', NULL, 1700); - - - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AD_PRES', 'President', 20080, 40000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AD_VP', 'Administration Vice President', 15000, 30000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AD_ASST', 'Administration Assistant', 3000, 6000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'FI_MGR', 'Finance Manager', 8200, 16000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'FI_ACCOUNT', 'Accountant', 4200, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AC_MGR', 'Accounting Manager', 8200, 16000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'AC_ACCOUNT', 'Public Accountant', 4200, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'SA_MAN', 'Sales Manager', 10000, 20080); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'SA_REP', 'Sales Representative', 6000, 12008); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'PU_MAN', 'Purchasing Manager', 8000, 15000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'PU_CLERK', 'Purchasing Clerk', 2500, 5500); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'ST_MAN', 'Stock Manager', 5500, 8500); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'ST_CLERK', 'Stock Clerk', 2008, 5000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'SH_CLERK', 'Shipping Clerk', 2500, 5500); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'IT_PROG', 'Programmer', 4000, 10000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'MK_MAN', 'Marketing Manager', 9000, 15000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'MK_REP', 'Marketing Representative', 4000, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'HR_REP', 'Human Resources Representative', 4000, 9000); - -INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES -( 'PR_REP', 'Public Relations Representative', 4500, 10500); - - - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 100, 'Steven', 'King', 'SKING', '515.123.4567', TO_DATE('17-06-2003', 'dd-MM-yyyy'), 'AD_PRES', 24000, NULL, NULL, 90); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 101, 'Neena', 'Kochhar', 'NKOCHHAR', '515.123.4568', TO_DATE('21-09-2005', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 102, 'Lex', 'De Haan', 'LDEHAAN', '515.123.4569', TO_DATE('13-01-2001', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 103, 'Alexander', 'Hunold', 'AHUNOLD', '590.423.4567', TO_DATE('03-01-2006', 'dd-MM-yyyy'), 'IT_PROG', 9000, NULL, 102, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 104, 'Bruce', 'Ernst', 'BERNST', '590.423.4568', TO_DATE('21-05-2007', 'dd-MM-yyyy'), 'IT_PROG', 6000, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 105, 'David', 'Austin', 'DAUSTIN', '590.423.4569', TO_DATE('25-06-2005', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 106, 'Valli', 'Pataballa', 'VPATABAL', '590.423.4560', TO_DATE('05-02-2006', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 107, 'Diana', 'Lorentz', 'DLORENTZ', '590.423.5567', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'IT_PROG', 4200, NULL, 103, 60); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 108, 'Nancy', 'Greenberg', 'NGREENBE', '515.124.4569', TO_DATE('17-08-2002', 'dd-MM-yyyy'), 'FI_MGR', 12008, NULL, 101, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 109, 'Daniel', 'Faviet', 'DFAVIET', '515.124.4169', TO_DATE('16-08-2002', 'dd-MM-yyyy'), 'FI_ACCOUNT', 9000, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 110, 'John', 'Chen', 'JCHEN', '515.124.4269', TO_DATE('28-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 8200, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 111, 'Ismael', 'Sciarra', 'ISCIARRA', '515.124.4369', TO_DATE('30-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7700, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 112, 'Jose Manuel', 'Urman', 'JMURMAN', '515.124.4469', TO_DATE('07-03-2006', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7800, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 113, 'Luis', 'Popp', 'LPOPP', '515.124.4567', TO_DATE('07-12-2007', 'dd-MM-yyyy'), 'FI_ACCOUNT', 6900, NULL, 108, 100); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 114, 'Den', 'Raphaely', 'DRAPHEAL', '515.127.4561', TO_DATE('07-12-2002', 'dd-MM-yyyy'), 'PU_MAN', 11000, NULL, 100, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 115, 'Alexander', 'Khoo', 'AKHOO', '515.127.4562', TO_DATE('18-05-2003', 'dd-MM-yyyy'), 'PU_CLERK', 3100, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 116, 'Shelli', 'Baida', 'SBAIDA', '515.127.4563', TO_DATE('24-12-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2900, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 117, 'Sigal', 'Tobias', 'STOBIAS', '515.127.4564', TO_DATE('24-07-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2800, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 118, 'Guy', 'Himuro', 'GHIMURO', '515.127.4565', TO_DATE('15-11-2006', 'dd-MM-yyyy'), 'PU_CLERK', 2600, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 119, 'Karen', 'Colmenares', 'KCOLMENA', '515.127.4566', TO_DATE('10-08-2007', 'dd-MM-yyyy'), 'PU_CLERK', 2500, NULL, 114, 30); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 120, 'Matthew', 'Weiss', 'MWEISS', '650.123.1234', TO_DATE('18-07-2004', 'dd-MM-yyyy'), 'ST_MAN', 8000, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 121, 'Adam', 'Fripp', 'AFRIPP', '650.123.2234', TO_DATE('10-04-2005', 'dd-MM-yyyy'), 'ST_MAN', 8200, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 122, 'Payam', 'Kaufling', 'PKAUFLIN', '650.123.3234', TO_DATE('01-05-2003', 'dd-MM-yyyy'), 'ST_MAN', 7900, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 123, 'Shanta', 'Vollman', 'SVOLLMAN', '650.123.4234', TO_DATE('10-10-2005', 'dd-MM-yyyy'), 'ST_MAN', 6500, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 124, 'Kevin', 'Mourgos', 'KMOURGOS', '650.123.5234', TO_DATE('16-11-2007', 'dd-MM-yyyy'), 'ST_MAN', 5800, NULL, 100, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 125, 'Julia', 'Nayer', 'JNAYER', '650.124.1214', TO_DATE('16-07-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 126, 'Irene', 'Mikkilineni', 'IMIKKILI', '650.124.1224', TO_DATE('28-09-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 127, 'James', 'Landry', 'JLANDRY', '650.124.1334', TO_DATE('14-01-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 128, 'Steven', 'Markle', 'SMARKLE', '650.124.1434', TO_DATE('08-03-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 129, 'Laura', 'Bissot', 'LBISSOT', '650.124.5234', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 130, 'Mozhe', 'Atkinson', 'MATKINSO', '650.124.6234', TO_DATE('30-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2800, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 131, 'James', 'Marlow', 'JAMRLOW', '650.124.7234', TO_DATE('16-02-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 132, 'TJ', 'Olson', 'TJOLSON', '650.124.8234', TO_DATE('10-04-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2100, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 133, 'Jason', 'Mallin', 'JMALLIN', '650.127.1934', TO_DATE('14-06-2004', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 134, 'Michael', 'Rogers', 'MROGERS', '650.127.1834', TO_DATE('26-08-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2900, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 135, 'Ki', 'Gee', 'KGEE', '650.127.1734', TO_DATE('12-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 136, 'Hazel', 'Philtanker', 'HPHILTAN', '650.127.1634', TO_DATE('06-02-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 137, 'Renske', 'Ladwig', 'RLADWIG', '650.121.1234', TO_DATE('14-07-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3600, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 138, 'Stephen', 'Stiles', 'SSTILES', '650.121.2034', TO_DATE('26-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 139, 'John', 'Seo', 'JSEO', '650.121.2019', TO_DATE('12-02-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 140, 'Joshua', 'Patel', 'JPATEL', '650.121.1834', TO_DATE('06-04-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 141, 'Trenna', 'Rajs', 'TRAJS', '650.121.8009', TO_DATE('17-10-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3500, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 142, 'Curtis', 'Davies', 'CDAVIES', '650.121.2994', TO_DATE('29-01-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3100, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 143, 'Randall', 'Matos', 'RMATOS', '650.121.2874', TO_DATE('15-03-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2600, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 144, 'Peter', 'Vargas', 'PVARGAS', '650.121.2004', TO_DATE('09-07-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 145, 'John', 'Russell', 'JRUSSEL', '011.44.1344.429268', TO_DATE('01-10-2004', 'dd-MM-yyyy'), 'SA_MAN', 14000, .4, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 146, 'Karen', 'Partners', 'KPARTNER', '011.44.1344.467268', TO_DATE('05-01-2005', 'dd-MM-yyyy'), 'SA_MAN', 13500, .3, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 147, 'Alberto', 'Errazuriz', 'AERRAZUR', '011.44.1344.429278', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_MAN', 12000, .3, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 148, 'Gerald', 'Cambrault', 'GCAMBRAU', '011.44.1344.619268', TO_DATE('15-10-2007', 'dd-MM-yyyy'), 'SA_MAN', 11000, .3, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 149, 'Eleni', 'Zlotkey', 'EZLOTKEY', '011.44.1344.429018', TO_DATE('29-01-2008', 'dd-MM-yyyy'), 'SA_MAN', 10500, .2, 100, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 150, 'Peter', 'Tucker', 'PTUCKER', '011.44.1344.129268', TO_DATE('30-01-2005', 'dd-MM-yyyy'), 'SA_REP', 10000, .3, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 151, 'David', 'Bernstein', 'DBERNSTE', '011.44.1344.345268', TO_DATE('24-03-2005', 'dd-MM-yyyy'), 'SA_REP', 9500, .25, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 152, 'Peter', 'Hall', 'PHALL', '011.44.1344.478968', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'SA_REP', 9000, .25, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 153, 'Christopher', 'Olsen', 'COLSEN', '011.44.1344.498718', TO_DATE('30-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8000, .2, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 154, 'Nanette', 'Cambrault', 'NCAMBRAU', '011.44.1344.987668', TO_DATE('09-12-2006', 'dd-MM-yyyy'), 'SA_REP', 7500, .2, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 155, 'Oliver', 'Tuvault', 'OTUVAULT', '011.44.1344.486508', TO_DATE('23-11-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 145, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 156, 'Janette', 'King', 'JKING', '011.44.1345.429268', TO_DATE('30-01-2004', 'dd-MM-yyyy'), 'SA_REP', 10000, .35, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 157, 'Patrick', 'Sully', 'PSULLY', '011.44.1345.929268', TO_DATE('04-03-2004', 'dd-MM-yyyy'), 'SA_REP', 9500, .35, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 158, 'Allan', 'McEwen', 'AMCEWEN', '011.44.1345.829268', TO_DATE('01-08-2004', 'dd-MM-yyyy'), 'SA_REP', 9000, .35, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 159, 'Lindsey', 'Smith', 'LSMITH', '011.44.1345.729268', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8000, .3, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 160, 'Louise', 'Doran', 'LDORAN', '011.44.1345.629268', TO_DATE('15-12-2005', 'dd-MM-yyyy'), 'SA_REP', 7500, .3, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 161, 'Sarath', 'Sewall', 'SSEWALL', '011.44.1345.529268', TO_DATE('03-11-2006', 'dd-MM-yyyy'), 'SA_REP', 7000, .25, 146, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 162, 'Clara', 'Vishney', 'CVISHNEY', '011.44.1346.129268', TO_DATE('11-11-2005', 'dd-MM-yyyy'), 'SA_REP', 10500, .25, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 163, 'Danielle', 'Greene', 'DGREENE', '011.44.1346.229268', TO_DATE('19-03-2007', 'dd-MM-yyyy'), 'SA_REP', 9500, .15, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 164, 'Mattea', 'Marvins', 'MMARVINS', '011.44.1346.329268', TO_DATE('24-01-2008', 'dd-MM-yyyy'), 'SA_REP', 7200, .10, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 165, 'David', 'Lee', 'DLEE', '011.44.1346.529268', TO_DATE('23-02-2008', 'dd-MM-yyyy'), 'SA_REP', 6800, .1, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 166, 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', TO_DATE('24-03-2008', 'dd-MM-yyyy'), 'SA_REP', 6400, .10, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 167, 'Amit', 'Banda', 'ABANDA', '011.44.1346.729268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 147, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 168, 'Lisa', 'Ozer', 'LOZER', '011.44.1343.929268', TO_DATE('11-03-2005', 'dd-MM-yyyy'), 'SA_REP', 11500, .25, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 169, 'Harrison', 'Bloom', 'HBLOOM', '011.44.1343.829268', TO_DATE('23-03-2006', 'dd-MM-yyyy'), 'SA_REP', 10000, .20, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 170, 'Tayler', 'Fox', 'TFOX', '011.44.1343.729268', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SA_REP', 9600, .20, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 171, 'William', 'Smith', 'WSMITH', '011.44.1343.629268', TO_DATE('23-02-2007', 'dd-MM-yyyy'), 'SA_REP', 7400, .15, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 172, 'Elizabeth', 'Bates', 'EBATES', '011.44.1343.529268', TO_DATE('24-03-2007', 'dd-MM-yyyy'), 'SA_REP', 7300, .15, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 173, 'Sundita', 'Kumar', 'SKUMAR', '011.44.1343.329268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6100, .10, 148, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 174, 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', TO_DATE('11-05-2004', 'dd-MM-yyyy'), 'SA_REP', 11000, .30, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 175, 'Alyssa', 'Hutton', 'AHUTTON', '011.44.1644.429266', TO_DATE('19-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8800, .25, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 176, 'Jonathon', 'Taylor', 'JTAYLOR', '011.44.1644.429265', TO_DATE('24-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8600, .20, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 177, 'Jack', 'Livingston', 'JLIVINGS', '011.44.1644.429264', TO_DATE('23-04-2006', 'dd-MM-yyyy'), 'SA_REP', 8400, .20, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 178, 'Kimberely', 'Grant', 'KGRANT', '011.44.1644.429263', TO_DATE('24-05-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 149, NULL); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 179, 'Charles', 'Johnson', 'CJOHNSON', '011.44.1644.429262', TO_DATE('04-01-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 149, 80); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 180, 'Winston', 'Taylor', 'WTAYLOR', '650.507.9876', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 181, 'Jean', 'Fleaur', 'JFLEAUR', '650.507.9877', TO_DATE('23-02-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 182, 'Martha', 'Sullivan', 'MSULLIVA', '650.507.9878', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 183, 'Girard', 'Geoni', 'GGEONI', '650.507.9879', TO_DATE('03-02-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 120, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 184, 'Nandita', 'Sarchand', 'NSARCHAN', '650.509.1876', TO_DATE('27-01-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4200, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 185, 'Alexis', 'Bull', 'ABULL', '650.509.2876', TO_DATE('20-02-2005', 'dd-MM-yyyy'), 'SH_CLERK', 4100, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 186, 'Julia', 'Dellinger', 'JDELLING', '650.509.3876', TO_DATE('24-06-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3400, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 187, 'Anthony', 'Cabrio', 'ACABRIO', '650.509.4876', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 121, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 188, 'Kelly', 'Chung', 'KCHUNG', '650.505.1876', TO_DATE('14-06-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3800, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 189, 'Jennifer', 'Dilly', 'JDILLY', '650.505.2876', TO_DATE('13-08-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3600, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 190, 'Timothy', 'Gates', 'TGATES', '650.505.3876', TO_DATE('11-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 2900, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 191, 'Randall', 'Perkins', 'RPERKINS', '650.505.4876', TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 122, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 192, 'Sarah', 'Bell', 'SBELL', '650.501.1876', TO_DATE('04-02-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4000, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 193, 'Britney', 'Everett', 'BEVERETT', '650.501.2876', TO_DATE('03-03-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3900, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 194, 'Samuel', 'McCain', 'SMCCAIN', '650.501.3876', TO_DATE('01-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 195, 'Vance', 'Jones', 'VJONES', '650.501.4876', TO_DATE('17-03-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 123, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 196, 'Alana', 'Walsh', 'AWALSH', '650.507.9811', TO_DATE('24-04-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 197, 'Kevin', 'Feeney', 'KFEENEY', '650.507.9822', TO_DATE('23-05-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 198, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 199, 'Douglas', 'Grant', 'DGRANT', '650.507.9844', TO_DATE('13-01-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 200, 'Jennifer', 'Whalen', 'JWHALEN', '515.123.4444', TO_DATE('17-09-2003', 'dd-MM-yyyy'), 'AD_ASST', 4400, NULL, 101, 10); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 201, 'Michael', 'Hartstein', 'MHARTSTE', '515.123.5555', TO_DATE('17-02-2004', 'dd-MM-yyyy'), 'MK_MAN', 13000, NULL, 100, 20); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 202, 'Pat', 'Fay', 'PFAY', '603.123.6666', TO_DATE('17-08-2005', 'dd-MM-yyyy'), 'MK_REP', 6000, NULL, 201, 20); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 203, 'Susan', 'Mavris', 'SMAVRIS', '515.123.7777', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'HR_REP', 6500, NULL, 101, 40); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 204, 'Hermann', 'Baer', 'HBAER', '515.123.8888', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'PR_REP', 10000, NULL, 101, 70); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 205, 'Shelley', 'Higgins', 'SHIGGINS', '515.123.8080', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_MGR', 12008, NULL, 101, 110); - -INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES -( 206, 'William', 'Gietz', 'WGIETZ', '515.123.8181', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_ACCOUNT', 8300, NULL, 205, 110); - - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (102, TO_DATE('13-01-2001', 'dd-MM-yyyy'), TO_DATE('24-07-2006', 'dd-MM-yyyy'), 'IT_PROG', 60); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (101, TO_DATE('21-09-1997', 'dd-MM-yyyy'), TO_DATE('27-10-2001', 'dd-MM-yyyy'), 'AC_ACCOUNT', 110); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (101, TO_DATE('28-10-2001', 'dd-MM-yyyy'), TO_DATE('15-03-2005', 'dd-MM-yyyy'), 'AC_MGR', 110); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (201, TO_DATE('17-02-2004', 'dd-MM-yyyy'), TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'MK_REP', 20); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (114, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (122, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (200, TO_DATE('17-09-1995', 'dd-MM-yyyy'), TO_DATE('17-06-2001', 'dd-MM-yyyy'), 'AD_ASST', 90); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (176, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'SA_REP', 80); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (176, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'SA_MAN', 80); - -INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) -VALUES (200, TO_DATE('01-07-2002', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'AC_ACCOUNT', 90); - - -ALTER TABLE departments ENABLE CONSTRAINT dept_mgr_fk; - -COMMIT; - -/* -04 Others -Perform other steps after populating data, such as indexes and comments -*/ - - - -CREATE INDEX emp_department_ix -ON employees (department_id); - -CREATE INDEX emp_job_ix -ON employees (job_id); - -CREATE INDEX emp_manager_ix -ON employees (manager_id); - -CREATE INDEX emp_name_ix -ON employees (last_name, first_name); - -CREATE INDEX dept_location_ix -ON departments (location_id); - -CREATE INDEX jhist_job_ix -ON job_history (job_id); - -CREATE INDEX jhist_employee_ix -ON job_history (employee_id); - -CREATE INDEX jhist_department_ix -ON job_history (department_id); - -CREATE INDEX loc_city_ix -ON locations (city); - -CREATE INDEX loc_state_province_ix -ON locations (state_province); - -CREATE INDEX loc_country_ix -ON locations (country_id); - -COMMIT; - - - - -/* -procedure and statement trigger to allow dmls during business hours: -*/ - -CREATE OR REPLACE PROCEDURE secure_dml -IS -BEGIN - IF TO_CHAR (SYSDATE, 'HH24:MI') NOT BETWEEN '08:00' AND '18:00' - OR TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN') THEN - RAISE_APPLICATION_ERROR (-20205, - 'You may only make changes during normal office hours'); - END IF; -END secure_dml; -/ - -CREATE OR REPLACE TRIGGER secure_employees - BEFORE INSERT OR UPDATE OR DELETE ON employees -BEGIN - secure_dml; -END secure_employees; -/ - -ALTER TRIGGER secure_employees DISABLE; - - -/* -procedure to add a row to the JOB_HISTORY table and row trigger -to call the procedure when data is updated in the job_id or -department_id columns in the EMPLOYEES table: -*/ - -CREATE OR REPLACE PROCEDURE add_job_history - ( p_emp_id job_history.employee_id%type - , p_start_date job_history.start_date%type - , p_end_date job_history.end_date%type - , p_job_id job_history.job_id%type - , p_department_id job_history.department_id%type - ) -IS -BEGIN - INSERT INTO job_history (employee_id, start_date, end_date, - job_id, department_id) - VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id); -END add_job_history; -/ - -CREATE OR REPLACE TRIGGER update_job_history - AFTER UPDATE OF job_id, department_id ON employees - FOR EACH ROW -BEGIN - add_job_history(:old.employee_id, :old.hire_date, sysdate, - :old.job_id, :old.department_id); -END; -/ - -COMMIT; - -/* -Add comments to tables and columns -*/ - -COMMENT ON TABLE regions -IS 'Regions table that contains region numbers and names. Contains 4 rows; references with the Countries table.'; - -COMMENT ON COLUMN regions.region_id -IS 'Primary key of regions table.'; - -COMMENT ON COLUMN regions.region_name -IS 'Names of regions. Locations are in the countries of these regions.'; - -COMMENT ON TABLE locations -IS 'Locations table that contains specific address of a specific office, -warehouse, and/or production site of a company. Does not store addresses / -locations of customers. Contains 23 rows; references with the -departments and countries tables. '; - -COMMENT ON COLUMN locations.location_id -IS 'Primary key of locations table'; - -COMMENT ON COLUMN locations.street_address -IS 'Street address of an office, warehouse, or production site of a company. -Contains building number and street name'; - -COMMENT ON COLUMN locations.postal_code -IS 'Postal code of the location of an office, warehouse, or production site -of a company. '; - -COMMENT ON COLUMN locations.city -IS 'A not null column that shows city where an office, warehouse, or -production site of a company is located. '; - -COMMENT ON COLUMN locations.state_province -IS 'State or Province where an office, warehouse, or production site of a -company is located.'; - -COMMENT ON COLUMN locations.country_id -IS 'Country where an office, warehouse, or production site of a company is -located. Foreign key to country_id column of the countries table.'; - - -COMMENT ON TABLE departments -IS 'Departments table that shows details of departments where employees -work. Contains 27 rows; references with locations, employees, and job_history tables.'; - -COMMENT ON COLUMN departments.department_id -IS 'Primary key column of departments table.'; - -COMMENT ON COLUMN departments.department_name -IS 'A not null column that shows name of a department. Administration, -Marketing, Purchasing, Human Resources, Shipping, IT, Executive, Public -Relations, Sales, Finance, and Accounting. '; - -COMMENT ON COLUMN departments.manager_id -IS 'Manager_id of a department. Foreign key to employee_id column of employees table. The manager_id column of the employee table references this column.'; - -COMMENT ON COLUMN departments.location_id -IS 'Location id where a department is located. Foreign key to location_id column of locations table.'; - - -COMMENT ON TABLE job_history -IS 'Table that stores job history of the employees. If an employee -changes departments within the job or changes jobs within the department, -new rows get inserted into this table with old job information of the -employee. Contains a complex primary key: employee_id+start_date. -Contains 25 rows. References with jobs, employees, and departments tables.'; - -COMMENT ON COLUMN job_history.employee_id -IS 'A not null column in the complex primary key employee_id+start_date. -Foreign key to employee_id column of the employee table'; - -COMMENT ON COLUMN job_history.start_date -IS 'A not null column in the complex primary key employee_id+start_date. -Must be less than the end_date of the job_history table. (enforced by -constraint jhist_date_interval)'; - -COMMENT ON COLUMN job_history.end_date -IS 'Last day of the employee in this job role. A not null column. Must be -greater than the start_date of the job_history table. -(enforced by constraint jhist_date_interval)'; - -COMMENT ON COLUMN job_history.job_id -IS 'Job role in which the employee worked in the past; foreign key to -job_id column in the jobs table. A not null column.'; - -COMMENT ON COLUMN job_history.department_id -IS 'Department id in which the employee worked in the past; foreign key to deparment_id column in the departments table'; - - - -COMMENT ON TABLE countries -IS 'country table. Contains 25 rows. References with locations table.'; - -COMMENT ON COLUMN countries.country_id -IS 'Primary key of countries table.'; - -COMMENT ON COLUMN countries.country_name -IS 'Country name'; - -COMMENT ON COLUMN countries.region_id -IS 'Region ID for the country. Foreign key to region_id column in the departments table.'; - - - -COMMENT ON TABLE jobs -IS 'jobs table with job titles and salary ranges. Contains 19 rows. -References with employees and job_history table.'; - -COMMENT ON COLUMN jobs.job_id -IS 'Primary key of jobs table.'; - -COMMENT ON COLUMN jobs.job_title -IS 'A not null column that shows job title, e.g. AD_VP, FI_ACCOUNTANT'; - -COMMENT ON COLUMN jobs.min_salary -IS 'Minimum salary for a job title.'; - -COMMENT ON COLUMN jobs.max_salary -IS 'Maximum salary for a job title'; - - - -COMMENT ON TABLE employees -IS 'employees table. Contains 107 rows. References with departments, -jobs, job_history tables. Contains a self reference.'; - -COMMENT ON COLUMN employees.employee_id -IS 'Primary key of employees table.'; - -COMMENT ON COLUMN employees.first_name -IS 'First name of the employee. A not null column.'; - -COMMENT ON COLUMN employees.last_name -IS 'Last name of the employee. A not null column.'; - -COMMENT ON COLUMN employees.email -IS 'Email id of the employee'; - -COMMENT ON COLUMN employees.phone_number -IS 'Phone number of the employee; includes country code and area code'; - -COMMENT ON COLUMN employees.hire_date -IS 'Date when the employee started on this job. A not null column.'; - -COMMENT ON COLUMN employees.job_id -IS 'Current job of the employee; foreign key to job_id column of the -jobs table. A not null column.'; - -COMMENT ON COLUMN employees.salary -IS 'Monthly salary of the employee. Must be greater -than zero (enforced by constraint emp_salary_min)'; - -COMMENT ON COLUMN employees.commission_pct -IS 'Commission percentage of the employee; Only employees in sales -department elgible for commission percentage'; - -COMMENT ON COLUMN employees.manager_id -IS 'Manager id of the employee; has same domain as manager_id in -departments table. Foreign key to employee_id column of employees table. -(useful for reflexive joins and CONNECT BY query)'; - -COMMENT ON COLUMN employees.department_id -IS 'Department id where employee works; foreign key to department_id -column of the departments table'; - +/* +02 Create Tables +This script creates the tables needed for the HR schema. +Run this script after script 01, and while you are logged in as the newly-created HR user. +*/ + +DROP TABLE job_history CASCADE CONSTRAINTS; +DROP TABLE departments CASCADE CONSTRAINTS; +DROP TABLE employees CASCADE CONSTRAINTS; +DROP TABLE jobs CASCADE CONSTRAINTS; +DROP TABLE locations CASCADE CONSTRAINTS; +DROP TABLE countries CASCADE CONSTRAINTS; +DROP TABLE regions CASCADE CONSTRAINTS; +DROP SEQUENCE locations_seq; +DROP SEQUENCE departments_seq; +DROP SEQUENCE employees_seq; + + +ALTER SESSION SET NLS_LANGUAGE=American; +ALTER SESSION SET NLS_TERRITORY=America; + +/* Regions */ + +CREATE TABLE regions ( + region_id NUMBER CONSTRAINT regions_id_nn NOT NULL, + region_name VARCHAR2(25) +); + +CREATE UNIQUE INDEX reg_id_pk +ON regions (region_id); + +ALTER TABLE regions +ADD CONSTRAINT reg_id_pk +PRIMARY KEY (region_id); + +/* Countries */ + +CREATE TABLE countries ( + country_id CHAR(2) CONSTRAINT country_id_nn NOT NULL, + country_name VARCHAR2(40), + region_id NUMBER, + CONSTRAINT country_c_id_pk PRIMARY KEY (country_id) +) +ORGANIZATION INDEX; + +ALTER TABLE countries +ADD CONSTRAINT countr_reg_fk +FOREIGN KEY (region_id) +REFERENCES regions(region_id); + +/* Locations */ + +CREATE TABLE locations ( + location_id NUMBER(4), + street_address VARCHAR2(40), + postal_code VARCHAR2(12), + city VARCHAR2(30) CONSTRAINT loc_city_nn NOT NULL, + state_province VARCHAR2(25), + country_id CHAR(2) +); + +CREATE UNIQUE INDEX loc_id_pk +ON locations (location_id); + +ALTER TABLE locations +ADD ( + CONSTRAINT loc_id_pk PRIMARY KEY (location_id), + CONSTRAINT loc_c_id_fk FOREIGN KEY (country_id) REFERENCES countries(country_id) +); + +CREATE SEQUENCE locations_seq + START WITH 3300 + INCREMENT BY 100 + MAXVALUE 9900 + NOCACHE + NOCYCLE; + +/* Departments */ + + +CREATE TABLE departments ( + department_id NUMBER(4), + department_name VARCHAR2(30) CONSTRAINT dept_name_nn NOT NULL, + manager_id NUMBER(6), + location_id NUMBER(4) +); + +CREATE UNIQUE INDEX dept_id_pk +ON departments (department_id) ; + +ALTER TABLE departments +ADD ( + CONSTRAINT dept_id_pk PRIMARY KEY (department_id), + CONSTRAINT dept_loc_fk FOREIGN KEY (location_id) REFERENCES locations (location_id) +); + +CREATE SEQUENCE departments_seq + START WITH 280 + INCREMENT BY 10 + MAXVALUE 9990 + NOCACHE + NOCYCLE; + +/* Jobs */ + +CREATE TABLE jobs ( + job_id VARCHAR2(10), + job_title VARCHAR2(35) CONSTRAINT job_title_nn NOT NULL, + min_salary NUMBER(6), + max_salary NUMBER(6) +); + +CREATE UNIQUE INDEX job_id_pk +ON jobs (job_id) ; + +ALTER TABLE jobs +ADD ( + CONSTRAINT job_id_pk PRIMARY KEY(job_id) +); + + +/* Employees */ + +CREATE TABLE employees ( + employee_id NUMBER(6), + first_name VARCHAR2(20), + last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL, + email VARCHAR2(25) CONSTRAINT emp_email_nn NOT NULL, + phone_number VARCHAR2(20), + hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, + job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, + salary NUMBER(8,2), + commission_pct NUMBER(2,2), + manager_id NUMBER(6), + department_id NUMBER(4), + CONSTRAINT emp_salary_min CHECK (salary > 0), + CONSTRAINT emp_email_uk UNIQUE (email) +); + +CREATE UNIQUE INDEX emp_emp_id_pk +ON employees (employee_id); + + +ALTER TABLE employees +ADD ( + CONSTRAINT emp_emp_id_pk + PRIMARY KEY (employee_id), + CONSTRAINT emp_dept_fk + FOREIGN KEY (department_id) REFERENCES departments, + CONSTRAINT emp_job_fk + FOREIGN KEY (job_id) REFERENCES jobs (job_id), + CONSTRAINT emp_manager_fk + FOREIGN KEY (manager_id) REFERENCES employees (employee_id) +); + +/* Alter Tables */ + +ALTER TABLE departments +ADD ( + CONSTRAINT dept_mgr_fk + FOREIGN KEY (manager_id) + REFERENCES employees (employee_id) +); + +CREATE SEQUENCE employees_seq + START WITH 207 + INCREMENT BY 1 + NOCACHE + NOCYCLE; + + +/* Job History */ +CREATE TABLE job_history ( + employee_id NUMBER(6) CONSTRAINT jhist_employee_nn NOT NULL, + start_date DATE CONSTRAINT jhist_start_date_nn NOT NULL, + end_date DATE CONSTRAINT jhist_end_date_nn NOT NULL, + job_id VARCHAR2(10) CONSTRAINT jhist_job_nn NOT NULL, + department_id NUMBER(4), + CONSTRAINT jhist_date_interval CHECK (end_date > start_date) +); + +CREATE UNIQUE INDEX jhist_emp_id_st_date_pk +ON job_history (employee_id, start_date); + +ALTER TABLE job_history +ADD ( + CONSTRAINT jhist_emp_id_st_date_pk + PRIMARY KEY (employee_id, start_date), + CONSTRAINT jhist_job_fk + FOREIGN KEY (job_id) REFERENCES jobs, + CONSTRAINT jhist_emp_fk + FOREIGN KEY (employee_id) REFERENCES employees, + CONSTRAINT jhist_dept_fk + FOREIGN KEY (department_id) REFERENCES departments +); + + + +CREATE OR REPLACE VIEW emp_details_view + (employee_id, + job_id, + manager_id, + department_id, + location_id, + country_id, + first_name, + last_name, + salary, + commission_pct, + department_name, + job_title, + city, + state_province, + country_name, + region_name) +AS +SELECT + e.employee_id, + e.job_id, + e.manager_id, + e.department_id, + d.location_id, + l.country_id, + e.first_name, + e.last_name, + e.salary, + e.commission_pct, + d.department_name, + j.job_title, + l.city, + l.state_province, + c.country_name, + r.region_name +FROM + employees e + INNER JOIN departments d ON e.department_id = d.department_id + INNER JOIN jobs j ON j.job_id = e.job_id + INNER JOIN locations l ON d.location_id = l.location_id + INNER JOIN countries c ON l.country_id = c.country_id + INNER JOIN regions r ON c.region_id = r.region_id +WITH READ ONLY; + +COMMIT; + +/* +03 Populate Tables +This script populates the tables that were created in the previous script. +*/ + +ALTER SESSION SET NLS_LANGUAGE=American; + +INSERT INTO regions (region_id, region_name) VALUES (1, 'Europe'); +INSERT INTO regions (region_id, region_name) VALUES (2, 'Americas'); +INSERT INTO regions (region_id, region_name) VALUES (3, 'Asia'); +INSERT INTO regions (region_id, region_name) VALUES (4, 'Middle East and Africa'); + + +INSERT INTO countries (country_id, country_name, region_id) VALUES ('IT', 'Italy', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('JP', 'Japan', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('US', 'United States of America', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('CA', 'Canada', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('CN', 'China', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('IN', 'India', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('AU', 'Australia', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZW', 'Zimbabwe', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('SG', 'Singapore', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('UK', 'United Kingdom', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('FR', 'France', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('DE', 'Germany', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('ZM', 'Zambia', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('EG', 'Egypt', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('BR', 'Brazil', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('CH', 'Switzerland', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('NL', 'Netherlands', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('MX', 'Mexico', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('KW', 'Kuwait', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('IL', 'Israel', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('DK', 'Denmark', 1); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('ML', 'Malaysia', 3); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('NG', 'Nigeria', 4); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('AR', 'Argentina', 2); +INSERT INTO countries (country_id, country_name, region_id) VALUES ('BE', 'Belgium', 1); + + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1000 , '1297 Via Cola di Rie', '00989', 'Roma', NULL, 'IT'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1100, '93091 Calle della Testa', '10934', 'Venice', NULL, 'IT'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1200, '2017 Shinjuku-ku', '1689', 'Tokyo', 'Tokyo Prefecture', 'JP'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1300, '9450 Kamiya-cho', '6823', 'Hiroshima', NULL, 'JP'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +(1400, '2014 Jabberwocky Rd', '26192', 'Southlake', 'Texas', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1500, '2011 Interiors Blvd', '99236', 'South San Francisco', 'California', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1600, '2007 Zagora St', '50090', 'South Brunswick', 'New Jersey', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1700, '2004 Charade Rd', '98199', 'Seattle', 'Washington', 'US'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1800, '147 Spadina Ave', 'M5V 2L7', 'Toronto', 'Ontario', 'CA'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 1900, '6092 Boxwood St', 'YSW 9T2', 'Whitehorse', 'Yukon', 'CA'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2000, '40-5-12 Laogianggen', '190518', 'Beijing', NULL, 'CN'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2100, '1298 Vileparle (E)', '490231', 'Bombay', 'Maharashtra', 'IN'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2200, '12-98 Victoria Street', '2901', 'Sydney', 'New South Wales', 'AU'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2300, '198 Clementi North', '540198', 'Singapore', NULL, 'SG'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2400, '8204 Arthur St', NULL, 'London', NULL, 'UK'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2500, 'Magdalen Centre, The Oxford Science Park', 'OX9 9ZB', 'Oxford', 'Oxford', 'UK'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2600, '9702 Chester Road', '09629850293', 'Stretford', 'Manchester', 'UK'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2700, 'Schwanthalerstr. 7031', '80925', 'Munich', 'Bavaria', 'DE'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2800, 'Rua Frei Caneca 1360 ', '01307-002', 'Sao Paulo', 'Sao Paulo', 'BR'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 2900, '20 Rue des Corps-Saints', '1730', 'Geneva', 'Geneve', 'CH'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 3000, 'Murtenstrasse 921', '3095', 'Bern', 'BE', 'CH'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 3100, 'Pieter Breughelstraat 837', '3029SK', 'Utrecht', 'Utrecht', 'NL'); + +INSERT INTO locations (location_id, street_address, postal_code, city, state_province, country_id) VALUES +( 3200, 'Mariano Escobedo 9991', '11932', 'Mexico City', 'Distrito Federal,', 'MX'); + + + +ALTER TABLE departments DISABLE CONSTRAINT dept_mgr_fk; + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 10, 'Administration', 200, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 20, 'Marketing', 201, 1800); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 30, 'Purchasing', 114, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 40, 'Human Resources', 203, 2400); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 50, 'Shipping', 121, 1500); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 60, 'IT', 103, 1400); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 70, 'Public Relations', 204, 2700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 80, 'Sales', 145, 2500); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 90, 'Executive', 100, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 100, 'Finance', 108, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 110, 'Accounting', 205, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 120, 'Treasury', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 130, 'Corporate Tax', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 140, 'Control And Credit', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 150, 'Shareholder Services', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 160, 'Benefits', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 170, 'Manufacturing', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 180, 'Construction', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 190, 'Contracting', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 200, 'Operations', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 210, 'IT Support', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 220, 'NOC', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 230, 'IT Helpdesk', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 240, 'Government Sales', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 250, 'Retail Sales', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 260, 'Recruiting', NULL, 1700); + +INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES +( 270, 'Payroll', NULL, 1700); + + + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AD_PRES', 'President', 20080, 40000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AD_VP', 'Administration Vice President', 15000, 30000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AD_ASST', 'Administration Assistant', 3000, 6000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'FI_MGR', 'Finance Manager', 8200, 16000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'FI_ACCOUNT', 'Accountant', 4200, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AC_MGR', 'Accounting Manager', 8200, 16000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'AC_ACCOUNT', 'Public Accountant', 4200, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'SA_MAN', 'Sales Manager', 10000, 20080); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'SA_REP', 'Sales Representative', 6000, 12008); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'PU_MAN', 'Purchasing Manager', 8000, 15000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'PU_CLERK', 'Purchasing Clerk', 2500, 5500); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'ST_MAN', 'Stock Manager', 5500, 8500); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'ST_CLERK', 'Stock Clerk', 2008, 5000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'SH_CLERK', 'Shipping Clerk', 2500, 5500); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'IT_PROG', 'Programmer', 4000, 10000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'MK_MAN', 'Marketing Manager', 9000, 15000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'MK_REP', 'Marketing Representative', 4000, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'HR_REP', 'Human Resources Representative', 4000, 9000); + +INSERT INTO jobs (job_id, job_title, min_salary, max_salary) VALUES +( 'PR_REP', 'Public Relations Representative', 4500, 10500); + + + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 100, 'Steven', 'King', 'SKING', '515.123.4567', TO_DATE('17-06-2003', 'dd-MM-yyyy'), 'AD_PRES', 24000, NULL, NULL, 90); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 101, 'Neena', 'Kochhar', 'NKOCHHAR', '515.123.4568', TO_DATE('21-09-2005', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 102, 'Lex', 'De Haan', 'LDEHAAN', '515.123.4569', TO_DATE('13-01-2001', 'dd-MM-yyyy'), 'AD_VP', 17000, NULL, 100, 90); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 103, 'Alexander', 'Hunold', 'AHUNOLD', '590.423.4567', TO_DATE('03-01-2006', 'dd-MM-yyyy'), 'IT_PROG', 9000, NULL, 102, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 104, 'Bruce', 'Ernst', 'BERNST', '590.423.4568', TO_DATE('21-05-2007', 'dd-MM-yyyy'), 'IT_PROG', 6000, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 105, 'David', 'Austin', 'DAUSTIN', '590.423.4569', TO_DATE('25-06-2005', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 106, 'Valli', 'Pataballa', 'VPATABAL', '590.423.4560', TO_DATE('05-02-2006', 'dd-MM-yyyy'), 'IT_PROG', 4800, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 107, 'Diana', 'Lorentz', 'DLORENTZ', '590.423.5567', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'IT_PROG', 4200, NULL, 103, 60); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 108, 'Nancy', 'Greenberg', 'NGREENBE', '515.124.4569', TO_DATE('17-08-2002', 'dd-MM-yyyy'), 'FI_MGR', 12008, NULL, 101, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 109, 'Daniel', 'Faviet', 'DFAVIET', '515.124.4169', TO_DATE('16-08-2002', 'dd-MM-yyyy'), 'FI_ACCOUNT', 9000, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 110, 'John', 'Chen', 'JCHEN', '515.124.4269', TO_DATE('28-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 8200, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 111, 'Ismael', 'Sciarra', 'ISCIARRA', '515.124.4369', TO_DATE('30-09-2005', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7700, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 112, 'Jose Manuel', 'Urman', 'JMURMAN', '515.124.4469', TO_DATE('07-03-2006', 'dd-MM-yyyy'), 'FI_ACCOUNT', 7800, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 113, 'Luis', 'Popp', 'LPOPP', '515.124.4567', TO_DATE('07-12-2007', 'dd-MM-yyyy'), 'FI_ACCOUNT', 6900, NULL, 108, 100); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 114, 'Den', 'Raphaely', 'DRAPHEAL', '515.127.4561', TO_DATE('07-12-2002', 'dd-MM-yyyy'), 'PU_MAN', 11000, NULL, 100, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 115, 'Alexander', 'Khoo', 'AKHOO', '515.127.4562', TO_DATE('18-05-2003', 'dd-MM-yyyy'), 'PU_CLERK', 3100, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 116, 'Shelli', 'Baida', 'SBAIDA', '515.127.4563', TO_DATE('24-12-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2900, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 117, 'Sigal', 'Tobias', 'STOBIAS', '515.127.4564', TO_DATE('24-07-2005', 'dd-MM-yyyy'), 'PU_CLERK', 2800, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 118, 'Guy', 'Himuro', 'GHIMURO', '515.127.4565', TO_DATE('15-11-2006', 'dd-MM-yyyy'), 'PU_CLERK', 2600, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 119, 'Karen', 'Colmenares', 'KCOLMENA', '515.127.4566', TO_DATE('10-08-2007', 'dd-MM-yyyy'), 'PU_CLERK', 2500, NULL, 114, 30); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 120, 'Matthew', 'Weiss', 'MWEISS', '650.123.1234', TO_DATE('18-07-2004', 'dd-MM-yyyy'), 'ST_MAN', 8000, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 121, 'Adam', 'Fripp', 'AFRIPP', '650.123.2234', TO_DATE('10-04-2005', 'dd-MM-yyyy'), 'ST_MAN', 8200, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 122, 'Payam', 'Kaufling', 'PKAUFLIN', '650.123.3234', TO_DATE('01-05-2003', 'dd-MM-yyyy'), 'ST_MAN', 7900, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 123, 'Shanta', 'Vollman', 'SVOLLMAN', '650.123.4234', TO_DATE('10-10-2005', 'dd-MM-yyyy'), 'ST_MAN', 6500, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 124, 'Kevin', 'Mourgos', 'KMOURGOS', '650.123.5234', TO_DATE('16-11-2007', 'dd-MM-yyyy'), 'ST_MAN', 5800, NULL, 100, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 125, 'Julia', 'Nayer', 'JNAYER', '650.124.1214', TO_DATE('16-07-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 126, 'Irene', 'Mikkilineni', 'IMIKKILI', '650.124.1224', TO_DATE('28-09-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 127, 'James', 'Landry', 'JLANDRY', '650.124.1334', TO_DATE('14-01-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 128, 'Steven', 'Markle', 'SMARKLE', '650.124.1434', TO_DATE('08-03-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 129, 'Laura', 'Bissot', 'LBISSOT', '650.124.5234', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 130, 'Mozhe', 'Atkinson', 'MATKINSO', '650.124.6234', TO_DATE('30-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2800, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 131, 'James', 'Marlow', 'JAMRLOW', '650.124.7234', TO_DATE('16-02-2005', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 132, 'TJ', 'Olson', 'TJOLSON', '650.124.8234', TO_DATE('10-04-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2100, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 133, 'Jason', 'Mallin', 'JMALLIN', '650.127.1934', TO_DATE('14-06-2004', 'dd-MM-yyyy'), 'ST_CLERK', 3300, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 134, 'Michael', 'Rogers', 'MROGERS', '650.127.1834', TO_DATE('26-08-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2900, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 135, 'Ki', 'Gee', 'KGEE', '650.127.1734', TO_DATE('12-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 2400, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 136, 'Hazel', 'Philtanker', 'HPHILTAN', '650.127.1634', TO_DATE('06-02-2008', 'dd-MM-yyyy'), 'ST_CLERK', 2200, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 137, 'Renske', 'Ladwig', 'RLADWIG', '650.121.1234', TO_DATE('14-07-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3600, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 138, 'Stephen', 'Stiles', 'SSTILES', '650.121.2034', TO_DATE('26-10-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3200, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 139, 'John', 'Seo', 'JSEO', '650.121.2019', TO_DATE('12-02-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2700, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 140, 'Joshua', 'Patel', 'JPATEL', '650.121.1834', TO_DATE('06-04-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 141, 'Trenna', 'Rajs', 'TRAJS', '650.121.8009', TO_DATE('17-10-2003', 'dd-MM-yyyy'), 'ST_CLERK', 3500, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 142, 'Curtis', 'Davies', 'CDAVIES', '650.121.2994', TO_DATE('29-01-2005', 'dd-MM-yyyy'), 'ST_CLERK', 3100, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 143, 'Randall', 'Matos', 'RMATOS', '650.121.2874', TO_DATE('15-03-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2600, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 144, 'Peter', 'Vargas', 'PVARGAS', '650.121.2004', TO_DATE('09-07-2006', 'dd-MM-yyyy'), 'ST_CLERK', 2500, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 145, 'John', 'Russell', 'JRUSSEL', '011.44.1344.429268', TO_DATE('01-10-2004', 'dd-MM-yyyy'), 'SA_MAN', 14000, .4, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 146, 'Karen', 'Partners', 'KPARTNER', '011.44.1344.467268', TO_DATE('05-01-2005', 'dd-MM-yyyy'), 'SA_MAN', 13500, .3, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 147, 'Alberto', 'Errazuriz', 'AERRAZUR', '011.44.1344.429278', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_MAN', 12000, .3, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 148, 'Gerald', 'Cambrault', 'GCAMBRAU', '011.44.1344.619268', TO_DATE('15-10-2007', 'dd-MM-yyyy'), 'SA_MAN', 11000, .3, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 149, 'Eleni', 'Zlotkey', 'EZLOTKEY', '011.44.1344.429018', TO_DATE('29-01-2008', 'dd-MM-yyyy'), 'SA_MAN', 10500, .2, 100, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 150, 'Peter', 'Tucker', 'PTUCKER', '011.44.1344.129268', TO_DATE('30-01-2005', 'dd-MM-yyyy'), 'SA_REP', 10000, .3, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 151, 'David', 'Bernstein', 'DBERNSTE', '011.44.1344.345268', TO_DATE('24-03-2005', 'dd-MM-yyyy'), 'SA_REP', 9500, .25, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 152, 'Peter', 'Hall', 'PHALL', '011.44.1344.478968', TO_DATE('20-08-2005', 'dd-MM-yyyy'), 'SA_REP', 9000, .25, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 153, 'Christopher', 'Olsen', 'COLSEN', '011.44.1344.498718', TO_DATE('30-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8000, .2, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 154, 'Nanette', 'Cambrault', 'NCAMBRAU', '011.44.1344.987668', TO_DATE('09-12-2006', 'dd-MM-yyyy'), 'SA_REP', 7500, .2, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 155, 'Oliver', 'Tuvault', 'OTUVAULT', '011.44.1344.486508', TO_DATE('23-11-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 145, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 156, 'Janette', 'King', 'JKING', '011.44.1345.429268', TO_DATE('30-01-2004', 'dd-MM-yyyy'), 'SA_REP', 10000, .35, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 157, 'Patrick', 'Sully', 'PSULLY', '011.44.1345.929268', TO_DATE('04-03-2004', 'dd-MM-yyyy'), 'SA_REP', 9500, .35, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 158, 'Allan', 'McEwen', 'AMCEWEN', '011.44.1345.829268', TO_DATE('01-08-2004', 'dd-MM-yyyy'), 'SA_REP', 9000, .35, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 159, 'Lindsey', 'Smith', 'LSMITH', '011.44.1345.729268', TO_DATE('10-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8000, .3, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 160, 'Louise', 'Doran', 'LDORAN', '011.44.1345.629268', TO_DATE('15-12-2005', 'dd-MM-yyyy'), 'SA_REP', 7500, .3, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 161, 'Sarath', 'Sewall', 'SSEWALL', '011.44.1345.529268', TO_DATE('03-11-2006', 'dd-MM-yyyy'), 'SA_REP', 7000, .25, 146, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 162, 'Clara', 'Vishney', 'CVISHNEY', '011.44.1346.129268', TO_DATE('11-11-2005', 'dd-MM-yyyy'), 'SA_REP', 10500, .25, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 163, 'Danielle', 'Greene', 'DGREENE', '011.44.1346.229268', TO_DATE('19-03-2007', 'dd-MM-yyyy'), 'SA_REP', 9500, .15, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 164, 'Mattea', 'Marvins', 'MMARVINS', '011.44.1346.329268', TO_DATE('24-01-2008', 'dd-MM-yyyy'), 'SA_REP', 7200, .10, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 165, 'David', 'Lee', 'DLEE', '011.44.1346.529268', TO_DATE('23-02-2008', 'dd-MM-yyyy'), 'SA_REP', 6800, .1, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 166, 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', TO_DATE('24-03-2008', 'dd-MM-yyyy'), 'SA_REP', 6400, .10, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 167, 'Amit', 'Banda', 'ABANDA', '011.44.1346.729268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 147, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 168, 'Lisa', 'Ozer', 'LOZER', '011.44.1343.929268', TO_DATE('11-03-2005', 'dd-MM-yyyy'), 'SA_REP', 11500, .25, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 169, 'Harrison', 'Bloom', 'HBLOOM', '011.44.1343.829268', TO_DATE('23-03-2006', 'dd-MM-yyyy'), 'SA_REP', 10000, .20, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 170, 'Tayler', 'Fox', 'TFOX', '011.44.1343.729268', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SA_REP', 9600, .20, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 171, 'William', 'Smith', 'WSMITH', '011.44.1343.629268', TO_DATE('23-02-2007', 'dd-MM-yyyy'), 'SA_REP', 7400, .15, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 172, 'Elizabeth', 'Bates', 'EBATES', '011.44.1343.529268', TO_DATE('24-03-2007', 'dd-MM-yyyy'), 'SA_REP', 7300, .15, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 173, 'Sundita', 'Kumar', 'SKUMAR', '011.44.1343.329268', TO_DATE('21-04-2008', 'dd-MM-yyyy'), 'SA_REP', 6100, .10, 148, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 174, 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', TO_DATE('11-05-2004', 'dd-MM-yyyy'), 'SA_REP', 11000, .30, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 175, 'Alyssa', 'Hutton', 'AHUTTON', '011.44.1644.429266', TO_DATE('19-03-2005', 'dd-MM-yyyy'), 'SA_REP', 8800, .25, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 176, 'Jonathon', 'Taylor', 'JTAYLOR', '011.44.1644.429265', TO_DATE('24-03-2006', 'dd-MM-yyyy'), 'SA_REP', 8600, .20, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 177, 'Jack', 'Livingston', 'JLIVINGS', '011.44.1644.429264', TO_DATE('23-04-2006', 'dd-MM-yyyy'), 'SA_REP', 8400, .20, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 178, 'Kimberely', 'Grant', 'KGRANT', '011.44.1644.429263', TO_DATE('24-05-2007', 'dd-MM-yyyy'), 'SA_REP', 7000, .15, 149, NULL); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 179, 'Charles', 'Johnson', 'CJOHNSON', '011.44.1644.429262', TO_DATE('04-01-2008', 'dd-MM-yyyy'), 'SA_REP', 6200, .10, 149, 80); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 180, 'Winston', 'Taylor', 'WTAYLOR', '650.507.9876', TO_DATE('24-01-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 181, 'Jean', 'Fleaur', 'JFLEAUR', '650.507.9877', TO_DATE('23-02-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 182, 'Martha', 'Sullivan', 'MSULLIVA', '650.507.9878', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 183, 'Girard', 'Geoni', 'GGEONI', '650.507.9879', TO_DATE('03-02-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 120, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 184, 'Nandita', 'Sarchand', 'NSARCHAN', '650.509.1876', TO_DATE('27-01-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4200, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 185, 'Alexis', 'Bull', 'ABULL', '650.509.2876', TO_DATE('20-02-2005', 'dd-MM-yyyy'), 'SH_CLERK', 4100, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 186, 'Julia', 'Dellinger', 'JDELLING', '650.509.3876', TO_DATE('24-06-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3400, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 187, 'Anthony', 'Cabrio', 'ACABRIO', '650.509.4876', TO_DATE('07-02-2007', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 121, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 188, 'Kelly', 'Chung', 'KCHUNG', '650.505.1876', TO_DATE('14-06-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3800, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 189, 'Jennifer', 'Dilly', 'JDILLY', '650.505.2876', TO_DATE('13-08-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3600, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 190, 'Timothy', 'Gates', 'TGATES', '650.505.3876', TO_DATE('11-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 2900, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 191, 'Randall', 'Perkins', 'RPERKINS', '650.505.4876', TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2500, NULL, 122, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 192, 'Sarah', 'Bell', 'SBELL', '650.501.1876', TO_DATE('04-02-2004', 'dd-MM-yyyy'), 'SH_CLERK', 4000, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 193, 'Britney', 'Everett', 'BEVERETT', '650.501.2876', TO_DATE('03-03-2005', 'dd-MM-yyyy'), 'SH_CLERK', 3900, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 194, 'Samuel', 'McCain', 'SMCCAIN', '650.501.3876', TO_DATE('01-07-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3200, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 195, 'Vance', 'Jones', 'VJONES', '650.501.4876', TO_DATE('17-03-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2800, NULL, 123, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 196, 'Alana', 'Walsh', 'AWALSH', '650.507.9811', TO_DATE('24-04-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3100, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 197, 'Kevin', 'Feeney', 'KFEENEY', '650.507.9822', TO_DATE('23-05-2006', 'dd-MM-yyyy'), 'SH_CLERK', 3000, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 198, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', TO_DATE('21-06-2007', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 199, 'Douglas', 'Grant', 'DGRANT', '650.507.9844', TO_DATE('13-01-2008', 'dd-MM-yyyy'), 'SH_CLERK', 2600, NULL, 124, 50); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 200, 'Jennifer', 'Whalen', 'JWHALEN', '515.123.4444', TO_DATE('17-09-2003', 'dd-MM-yyyy'), 'AD_ASST', 4400, NULL, 101, 10); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 201, 'Michael', 'Hartstein', 'MHARTSTE', '515.123.5555', TO_DATE('17-02-2004', 'dd-MM-yyyy'), 'MK_MAN', 13000, NULL, 100, 20); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 202, 'Pat', 'Fay', 'PFAY', '603.123.6666', TO_DATE('17-08-2005', 'dd-MM-yyyy'), 'MK_REP', 6000, NULL, 201, 20); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 203, 'Susan', 'Mavris', 'SMAVRIS', '515.123.7777', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'HR_REP', 6500, NULL, 101, 40); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 204, 'Hermann', 'Baer', 'HBAER', '515.123.8888', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'PR_REP', 10000, NULL, 101, 70); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 205, 'Shelley', 'Higgins', 'SHIGGINS', '515.123.8080', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_MGR', 12008, NULL, 101, 110); + +INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES +( 206, 'William', 'Gietz', 'WGIETZ', '515.123.8181', TO_DATE('07-06-2002', 'dd-MM-yyyy'), 'AC_ACCOUNT', 8300, NULL, 205, 110); + + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (102, TO_DATE('13-01-2001', 'dd-MM-yyyy'), TO_DATE('24-07-2006', 'dd-MM-yyyy'), 'IT_PROG', 60); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (101, TO_DATE('21-09-1997', 'dd-MM-yyyy'), TO_DATE('27-10-2001', 'dd-MM-yyyy'), 'AC_ACCOUNT', 110); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (101, TO_DATE('28-10-2001', 'dd-MM-yyyy'), TO_DATE('15-03-2005', 'dd-MM-yyyy'), 'AC_MGR', 110); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (201, TO_DATE('17-02-2004', 'dd-MM-yyyy'), TO_DATE('19-12-2007', 'dd-MM-yyyy'), 'MK_REP', 20); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (114, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (122, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'ST_CLERK', 50); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (200, TO_DATE('17-09-1995', 'dd-MM-yyyy'), TO_DATE('17-06-2001', 'dd-MM-yyyy'), 'AD_ASST', 90); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (176, TO_DATE('24-03-2006', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'SA_REP', 80); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (176, TO_DATE('01-01-2007', 'dd-MM-yyyy'), TO_DATE('31-12-2007', 'dd-MM-yyyy'), 'SA_MAN', 80); + +INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) +VALUES (200, TO_DATE('01-07-2002', 'dd-MM-yyyy'), TO_DATE('31-12-2006', 'dd-MM-yyyy'), 'AC_ACCOUNT', 90); + + +ALTER TABLE departments ENABLE CONSTRAINT dept_mgr_fk; + +COMMIT; + +/* +04 Others +Perform other steps after populating data, such as indexes and comments +*/ + + + +CREATE INDEX emp_department_ix +ON employees (department_id); + +CREATE INDEX emp_job_ix +ON employees (job_id); + +CREATE INDEX emp_manager_ix +ON employees (manager_id); + +CREATE INDEX emp_name_ix +ON employees (last_name, first_name); + +CREATE INDEX dept_location_ix +ON departments (location_id); + +CREATE INDEX jhist_job_ix +ON job_history (job_id); + +CREATE INDEX jhist_employee_ix +ON job_history (employee_id); + +CREATE INDEX jhist_department_ix +ON job_history (department_id); + +CREATE INDEX loc_city_ix +ON locations (city); + +CREATE INDEX loc_state_province_ix +ON locations (state_province); + +CREATE INDEX loc_country_ix +ON locations (country_id); + +COMMIT; + + + + +/* +procedure and statement trigger to allow dmls during business hours: +*/ + +CREATE OR REPLACE PROCEDURE secure_dml +IS +BEGIN + IF TO_CHAR (SYSDATE, 'HH24:MI') NOT BETWEEN '08:00' AND '18:00' + OR TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN') THEN + RAISE_APPLICATION_ERROR (-20205, + 'You may only make changes during normal office hours'); + END IF; +END secure_dml; +/ + +CREATE OR REPLACE TRIGGER secure_employees + BEFORE INSERT OR UPDATE OR DELETE ON employees +BEGIN + secure_dml; +END secure_employees; +/ + +ALTER TRIGGER secure_employees DISABLE; + + +/* +procedure to add a row to the JOB_HISTORY table and row trigger +to call the procedure when data is updated in the job_id or +department_id columns in the EMPLOYEES table: +*/ + +CREATE OR REPLACE PROCEDURE add_job_history + ( p_emp_id job_history.employee_id%type + , p_start_date job_history.start_date%type + , p_end_date job_history.end_date%type + , p_job_id job_history.job_id%type + , p_department_id job_history.department_id%type + ) +IS +BEGIN + INSERT INTO job_history (employee_id, start_date, end_date, + job_id, department_id) + VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id); +END add_job_history; +/ + +CREATE OR REPLACE TRIGGER update_job_history + AFTER UPDATE OF job_id, department_id ON employees + FOR EACH ROW +BEGIN + add_job_history(:old.employee_id, :old.hire_date, sysdate, + :old.job_id, :old.department_id); +END; +/ + +COMMIT; + +/* +Add comments to tables and columns +*/ + +COMMENT ON TABLE regions +IS 'Regions table that contains region numbers and names. Contains 4 rows; references with the Countries table.'; + +COMMENT ON COLUMN regions.region_id +IS 'Primary key of regions table.'; + +COMMENT ON COLUMN regions.region_name +IS 'Names of regions. Locations are in the countries of these regions.'; + +COMMENT ON TABLE locations +IS 'Locations table that contains specific address of a specific office, +warehouse, and/or production site of a company. Does not store addresses / +locations of customers. Contains 23 rows; references with the +departments and countries tables. '; + +COMMENT ON COLUMN locations.location_id +IS 'Primary key of locations table'; + +COMMENT ON COLUMN locations.street_address +IS 'Street address of an office, warehouse, or production site of a company. +Contains building number and street name'; + +COMMENT ON COLUMN locations.postal_code +IS 'Postal code of the location of an office, warehouse, or production site +of a company. '; + +COMMENT ON COLUMN locations.city +IS 'A not null column that shows city where an office, warehouse, or +production site of a company is located. '; + +COMMENT ON COLUMN locations.state_province +IS 'State or Province where an office, warehouse, or production site of a +company is located.'; + +COMMENT ON COLUMN locations.country_id +IS 'Country where an office, warehouse, or production site of a company is +located. Foreign key to country_id column of the countries table.'; + + +COMMENT ON TABLE departments +IS 'Departments table that shows details of departments where employees +work. Contains 27 rows; references with locations, employees, and job_history tables.'; + +COMMENT ON COLUMN departments.department_id +IS 'Primary key column of departments table.'; + +COMMENT ON COLUMN departments.department_name +IS 'A not null column that shows name of a department. Administration, +Marketing, Purchasing, Human Resources, Shipping, IT, Executive, Public +Relations, Sales, Finance, and Accounting. '; + +COMMENT ON COLUMN departments.manager_id +IS 'Manager_id of a department. Foreign key to employee_id column of employees table. The manager_id column of the employee table references this column.'; + +COMMENT ON COLUMN departments.location_id +IS 'Location id where a department is located. Foreign key to location_id column of locations table.'; + + +COMMENT ON TABLE job_history +IS 'Table that stores job history of the employees. If an employee +changes departments within the job or changes jobs within the department, +new rows get inserted into this table with old job information of the +employee. Contains a complex primary key: employee_id+start_date. +Contains 25 rows. References with jobs, employees, and departments tables.'; + +COMMENT ON COLUMN job_history.employee_id +IS 'A not null column in the complex primary key employee_id+start_date. +Foreign key to employee_id column of the employee table'; + +COMMENT ON COLUMN job_history.start_date +IS 'A not null column in the complex primary key employee_id+start_date. +Must be less than the end_date of the job_history table. (enforced by +constraint jhist_date_interval)'; + +COMMENT ON COLUMN job_history.end_date +IS 'Last day of the employee in this job role. A not null column. Must be +greater than the start_date of the job_history table. +(enforced by constraint jhist_date_interval)'; + +COMMENT ON COLUMN job_history.job_id +IS 'Job role in which the employee worked in the past; foreign key to +job_id column in the jobs table. A not null column.'; + +COMMENT ON COLUMN job_history.department_id +IS 'Department id in which the employee worked in the past; foreign key to deparment_id column in the departments table'; + + + +COMMENT ON TABLE countries +IS 'country table. Contains 25 rows. References with locations table.'; + +COMMENT ON COLUMN countries.country_id +IS 'Primary key of countries table.'; + +COMMENT ON COLUMN countries.country_name +IS 'Country name'; + +COMMENT ON COLUMN countries.region_id +IS 'Region ID for the country. Foreign key to region_id column in the departments table.'; + + + +COMMENT ON TABLE jobs +IS 'jobs table with job titles and salary ranges. Contains 19 rows. +References with employees and job_history table.'; + +COMMENT ON COLUMN jobs.job_id +IS 'Primary key of jobs table.'; + +COMMENT ON COLUMN jobs.job_title +IS 'A not null column that shows job title, e.g. AD_VP, FI_ACCOUNTANT'; + +COMMENT ON COLUMN jobs.min_salary +IS 'Minimum salary for a job title.'; + +COMMENT ON COLUMN jobs.max_salary +IS 'Maximum salary for a job title'; + + + +COMMENT ON TABLE employees +IS 'employees table. Contains 107 rows. References with departments, +jobs, job_history tables. Contains a self reference.'; + +COMMENT ON COLUMN employees.employee_id +IS 'Primary key of employees table.'; + +COMMENT ON COLUMN employees.first_name +IS 'First name of the employee. A not null column.'; + +COMMENT ON COLUMN employees.last_name +IS 'Last name of the employee. A not null column.'; + +COMMENT ON COLUMN employees.email +IS 'Email id of the employee'; + +COMMENT ON COLUMN employees.phone_number +IS 'Phone number of the employee; includes country code and area code'; + +COMMENT ON COLUMN employees.hire_date +IS 'Date when the employee started on this job. A not null column.'; + +COMMENT ON COLUMN employees.job_id +IS 'Current job of the employee; foreign key to job_id column of the +jobs table. A not null column.'; + +COMMENT ON COLUMN employees.salary +IS 'Monthly salary of the employee. Must be greater +than zero (enforced by constraint emp_salary_min)'; + +COMMENT ON COLUMN employees.commission_pct +IS 'Commission percentage of the employee; Only employees in sales +department elgible for commission percentage'; + +COMMENT ON COLUMN employees.manager_id +IS 'Manager id of the employee; has same domain as manager_id in +departments table. Foreign key to employee_id column of employees table. +(useful for reflexive joins and CONNECT BY query)'; + +COMMENT ON COLUMN employees.department_id +IS 'Department id where employee works; foreign key to department_id +column of the departments table'; + COMMIT; \ No newline at end of file From a4b2eeaacd47e54a8ff0002f427d76a7476a1486 Mon Sep 17 00:00:00 2001 From: MohammedRagab00 Date: Sun, 23 Mar 2025 12:43:28 +0200 Subject: [PATCH 3/4] =?UTF-8?q?Ensured=20compatibility=20with=20Hibernate?= =?UTF-8?q?=206.0=20by=20replacing=20deprecated=20methods=20(e.g.,=20`dele?= =?UTF-8?q?te`=20=E2=86=92=20`remove`,=20`update`=20=E2=86=92=20`merge`)?= =?UTF-8?q?=20and=20updating=20configurations.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Template/src/main/java/com/sci/TesterApp.java | 17 ++++++++++------- .../main/java/com/sci/criteria/FilterQuery.java | 1 - .../src/main/java/com/sci/dao/DBBooking.java | 10 +++++----- .../src/main/java/com/sci/dao/DBEmployee.java | 12 ++++++------ Template/src/main/java/com/sci/dao/DBGuest.java | 10 +++++----- .../src/main/java/com/sci/dao/DBJobHistory.java | 12 ++++++------ Template/src/main/java/com/sci/dao/DBPrice.java | 10 +++++----- .../src/main/java/com/sci/dao/DBRegion.java | 10 +++++----- .../main/java/com/sci/dao/DBReservation.java | 8 ++++---- Template/src/main/java/com/sci/dao/DBRoom.java | 10 +++++----- .../src/main/java/com/sci/dao/DBRoomType.java | 11 +++++------ Template/src/main/resources/hibernate.cfg.xml | 2 +- 12 files changed, 57 insertions(+), 56 deletions(-) diff --git a/Template/src/main/java/com/sci/TesterApp.java b/Template/src/main/java/com/sci/TesterApp.java index 6ea455a..cfc4972 100644 --- a/Template/src/main/java/com/sci/TesterApp.java +++ b/Template/src/main/java/com/sci/TesterApp.java @@ -1,17 +1,20 @@ package com.sci; -import com.sci.dao.DBConfig; -import com.sci.dao.DBReservation; +import com.sci.dao.*; import com.sci.models.*; import java.util.List; public class TesterApp { public static void main(String[] args) { -// DBReservation roomType = new DBReservation(); -// List rooms = roomType.get(); -// for (Reservation room : rooms) { -// System.out.println(room); -// } + DBEmployee dbEmployee = new DBEmployee(); + List employees = dbEmployee.get(); +/* + for (Employee employee : employees) { + System.out.println(employee); + } +*/ + employees.forEach(System.out::println); + DBConfig.shutdown(); } } diff --git a/Template/src/main/java/com/sci/criteria/FilterQuery.java b/Template/src/main/java/com/sci/criteria/FilterQuery.java index c0e9875..83b4991 100644 --- a/Template/src/main/java/com/sci/criteria/FilterQuery.java +++ b/Template/src/main/java/com/sci/criteria/FilterQuery.java @@ -12,5 +12,4 @@ public class FilterQuery { private String attributeName; private Object attributeValue; private Operator op; -// private String type;// int double boolean } diff --git a/Template/src/main/java/com/sci/dao/DBBooking.java b/Template/src/main/java/com/sci/dao/DBBooking.java index fc6e6f5..ca4a46d 100644 --- a/Template/src/main/java/com/sci/dao/DBBooking.java +++ b/Template/src/main/java/com/sci/dao/DBBooking.java @@ -122,8 +122,7 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM Booking").getResultList(); + return session.createQuery("FROM Booking", Booking.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -155,7 +154,8 @@ public String create(Booking booking) { transaction = session.beginTransaction(); - bookingNumber = (String) session.save(booking); + session.persist(booking); + bookingNumber = booking.getBookingNumber(); transaction.commit(); @@ -177,7 +177,7 @@ public void update(Booking booking) { transaction = session.beginTransaction(); - session.update(booking); + session.merge(booking); transaction.commit(); @@ -199,7 +199,7 @@ public void delete(String bookingNumber) { Booking booking = read(bookingNumber); - session.delete(booking); + session.remove(booking); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBEmployee.java b/Template/src/main/java/com/sci/dao/DBEmployee.java index 8618472..848e418 100644 --- a/Template/src/main/java/com/sci/dao/DBEmployee.java +++ b/Template/src/main/java/com/sci/dao/DBEmployee.java @@ -122,8 +122,7 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM Employee").list(); + return session.createQuery("FROM Employee", Employee.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -146,7 +145,7 @@ public Employee read(Integer employeeId) { } - public Integer create(Employee employee) { + public int create(Employee employee) { Transaction transaction = null; int employeeId = 0; @@ -155,7 +154,8 @@ public Integer create(Employee employee) { transaction = session.beginTransaction(); - employeeId = (Integer) session.save(employee); + session.persist(employee); + employeeId = employee.getEmployeeId(); transaction.commit(); @@ -177,7 +177,7 @@ public void update(Employee employee) { transaction = session.beginTransaction(); - session.update(employee); + session.merge(employee); transaction.commit(); @@ -199,7 +199,7 @@ public void delete(Integer employeeId) { Employee employee = read(employeeId); - session.delete(employee); + session.remove(employee); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBGuest.java b/Template/src/main/java/com/sci/dao/DBGuest.java index dd659b8..45301de 100644 --- a/Template/src/main/java/com/sci/dao/DBGuest.java +++ b/Template/src/main/java/com/sci/dao/DBGuest.java @@ -122,8 +122,7 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM Guest ").list(); + return session.createQuery("FROM Guest", Guest.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -155,7 +154,8 @@ public String create(Guest guest) { transaction = session.beginTransaction(); - guestId = (String) session.save(guest); + session.persist(guest); + guestId = guest.getGuestId(); transaction.commit(); @@ -177,7 +177,7 @@ public void update(Guest guest) { transaction = session.beginTransaction(); - session.update(guest); + session.merge(guest); transaction.commit(); @@ -199,7 +199,7 @@ public void delete(String guestId) { Guest guest = read(guestId); - session.delete(guest); + session.remove(guest); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBJobHistory.java b/Template/src/main/java/com/sci/dao/DBJobHistory.java index 1554782..a127d94 100644 --- a/Template/src/main/java/com/sci/dao/DBJobHistory.java +++ b/Template/src/main/java/com/sci/dao/DBJobHistory.java @@ -8,14 +8,13 @@ import java.sql.Date; import java.util.List; -public class DBJobHistory { +public class DBJobHistory { public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM JobHistory").list(); + return session.createQuery("FROM JobHistory", JobHistory.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -48,7 +47,8 @@ public JobHistoryCompositeKey create(JobHistory jobHistory) { transaction = session.beginTransaction(); - key = (JobHistoryCompositeKey) session.save(jobHistory); + session.persist(jobHistory); + key = new JobHistoryCompositeKey(jobHistory.getEmployeeId(), jobHistory.getStartDate()); transaction.commit(); @@ -70,7 +70,7 @@ public void update(JobHistory jobHistory) { transaction = session.beginTransaction(); - session.update(jobHistory); + session.merge(jobHistory); transaction.commit(); @@ -92,7 +92,7 @@ public void delete(Integer employeeId, Date date) { JobHistory jobHistory = read(employeeId, date); - session.delete(jobHistory); + session.remove(jobHistory); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBPrice.java b/Template/src/main/java/com/sci/dao/DBPrice.java index 0cd669b..6cbfc3f 100644 --- a/Template/src/main/java/com/sci/dao/DBPrice.java +++ b/Template/src/main/java/com/sci/dao/DBPrice.java @@ -123,8 +123,7 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM Price ").list(); + return session.createQuery("FROM Price", Price.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -157,7 +156,8 @@ public PriceCompositeKey create(Price price) { transaction = session.beginTransaction(); - key = (PriceCompositeKey) session.save(price); + session.persist(price); + key = new PriceCompositeKey(price.getRoomNumber(), price.getSeason(), price.getWeekday()); transaction.commit(); @@ -179,7 +179,7 @@ public void update(Price price) { transaction = session.beginTransaction(); - session.update(price); + session.merge(price); transaction.commit(); @@ -201,7 +201,7 @@ public void delete(String roomNumber, String season, String weekday) { Price price = read(roomNumber, season, weekday); - session.delete(price); + session.remove(price); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBRegion.java b/Template/src/main/java/com/sci/dao/DBRegion.java index a75ecc8..373327e 100644 --- a/Template/src/main/java/com/sci/dao/DBRegion.java +++ b/Template/src/main/java/com/sci/dao/DBRegion.java @@ -12,8 +12,7 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM Region").list(); + return session.createQuery("FROM Region", Region.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -45,7 +44,8 @@ public Integer create(Region region) { transaction = session.beginTransaction(); - regionId = (Integer) session.save(region); + session.persist(region); + regionId = region.getRegionId(); transaction.commit(); @@ -67,7 +67,7 @@ public void update(Region region) { transaction = session.beginTransaction(); - session.update(region); + session.merge(region); transaction.commit(); @@ -89,7 +89,7 @@ public void delete(Integer regionId) { Region region = read(regionId); - session.delete(region); + session.remove(region); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBReservation.java b/Template/src/main/java/com/sci/dao/DBReservation.java index 028bd1e..272b3f5 100644 --- a/Template/src/main/java/com/sci/dao/DBReservation.java +++ b/Template/src/main/java/com/sci/dao/DBReservation.java @@ -124,7 +124,6 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked return session.createQuery("FROM Reservation", Reservation.class).getResultList(); } catch (Exception ex) { @@ -158,7 +157,8 @@ public ReservationCompositeKey create(Reservation reservation) { transaction = session.beginTransaction(); - key = (ReservationCompositeKey) session.save(reservation); + session.persist(reservation); + key = new ReservationCompositeKey(reservation.getBookingNumber(), reservation.getRoomNumber(), reservation.getDateReserved()); transaction.commit(); @@ -180,7 +180,7 @@ public void update(Reservation reservation) { transaction = session.beginTransaction(); - session.update(reservation); + session.merge(reservation); transaction.commit(); @@ -202,7 +202,7 @@ public void delete(String bookingNumber, String roomNumber, Date dateReserved) { Reservation reservation = read(bookingNumber, roomNumber, dateReserved); - session.delete(reservation); + session.remove(reservation); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBRoom.java b/Template/src/main/java/com/sci/dao/DBRoom.java index b831071..20e89c0 100644 --- a/Template/src/main/java/com/sci/dao/DBRoom.java +++ b/Template/src/main/java/com/sci/dao/DBRoom.java @@ -122,8 +122,7 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM Room ").list(); + return session.createQuery("FROM Room", Room.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -155,7 +154,8 @@ public String create(Room room) { transaction = session.beginTransaction(); - roomNumber = (String) session.save(room); + session.persist(room); + roomNumber = room.getRoomNumber(); transaction.commit(); @@ -177,7 +177,7 @@ public void update(Room room) { transaction = session.beginTransaction(); - session.update(room); + session.merge(room); transaction.commit(); @@ -199,7 +199,7 @@ public void delete(String roomNumber) { Room room = read(roomNumber); - session.delete(room); + session.remove(room); transaction.commit(); diff --git a/Template/src/main/java/com/sci/dao/DBRoomType.java b/Template/src/main/java/com/sci/dao/DBRoomType.java index 1f33ca4..8cb7885 100644 --- a/Template/src/main/java/com/sci/dao/DBRoomType.java +++ b/Template/src/main/java/com/sci/dao/DBRoomType.java @@ -122,8 +122,7 @@ public List get() { try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - //noinspection unchecked - return session.createQuery("FROM RoomType ").list(); + return session.createQuery("FROM RoomType", RoomType.class).getResultList(); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -155,7 +154,8 @@ public String create(RoomType roomType) { transaction = session.beginTransaction(); - roomTypeId = (String) session.save(roomType); + session.persist(roomType); + roomTypeId = roomType.getRoomTypeId(); transaction.commit(); @@ -177,7 +177,7 @@ public void update(RoomType roomType) { transaction = session.beginTransaction(); - session.update(roomType); + session.merge(roomType); transaction.commit(); @@ -199,7 +199,7 @@ public void delete(String roomTypeId) { RoomType roomType = read(roomTypeId); - session.delete(roomType); + session.remove(roomType); transaction.commit(); @@ -210,5 +210,4 @@ public void delete(String roomTypeId) { System.err.println(ex.getMessage()); } } - } diff --git a/Template/src/main/resources/hibernate.cfg.xml b/Template/src/main/resources/hibernate.cfg.xml index 5af8fec..1c7cff7 100644 --- a/Template/src/main/resources/hibernate.cfg.xml +++ b/Template/src/main/resources/hibernate.cfg.xml @@ -1,10 +1,10 @@ + oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@//localhost:1521/freepdb1 test test - oracle.jdbc.driver.OracleDriver update true From 1e1f930915fde0040cb516dabc9ce701c9260636 Mon Sep 17 00:00:00 2001 From: MohammedRagab00 Date: Sun, 23 Mar 2025 17:12:20 +0200 Subject: [PATCH 4/4] Refactor DAO implementation in Hibernate_CS308: - Made DAO generic to improve reusability and maintainability. - Added logging for enhanced debugging and monitoring. --- Hibernate_CS308/.gitignore | 38 + Hibernate_CS308/.idea/compiler.xml | 14 - Hibernate_CS308/.idea/jarRepositories.xml | 20 - Hibernate_CS308/.idea/modules.xml | 8 - .../CS308Spring2022.iml | 12 - Hibernate_CS308/CS308Spring2022.iml | 14 - Hibernate_CS308/pom.xml | 115 +- .../src/main/java/com/sci/TesterApp.java | 41 +- .../src/main/java/com/sci/dao/DBConfig.java | 13 +- .../main/java/com/sci/dao/DBManagement.java | 1005 ----------------- .../src/main/java/com/sci/dao/GenericDAO.java | 180 +++ .../src/main/java/com/sci/models/Car.java | 3 +- .../src/main/java/com/sci/models/Country.java | 5 +- .../main/java/com/sci/models/Department.java | 17 +- .../main/java/com/sci/models/Employee.java | 3 +- .../src/main/java/com/sci/models/Job.java | 3 +- .../main/java/com/sci/models/JobHistory.java | 5 +- .../sci/models/JobHistoryCompositeKey.java | 7 +- .../main/java/com/sci/models/Location.java | 18 +- .../src/main/java/com/sci/models/Person.java | 3 +- .../src/main/java/com/sci/models/Region.java | 3 +- .../src/main/resources/hibernate.cfg.xml | 30 +- .../src/main/resources/logback.xml | 20 + .../target/classes/ClosureFinder.class | Bin 1721 -> 0 bytes .../target/classes/FunctionalDependency.class | Bin 935 -> 0 bytes .../FunctionalDependencyCoverage.class | Bin 1767 -> 0 bytes .../target/classes/KeyFinder.class | Bin 1359 -> 0 bytes .../target/classes/MinimalCoverFinder.class | Bin 1972 -> 0 bytes .../target/classes/NormalizeAlgo.class | Bin 2045 -> 0 bytes .../target/classes/com/sci/TesterApp.class | Bin 2355 -> 0 bytes .../com/sci/criteria/FilterQuery.class | Bin 2677 -> 0 bytes .../classes/com/sci/criteria/Operator.class | Bin 1452 -> 0 bytes .../target/classes/com/sci/dao/DBConfig.class | Bin 734 -> 0 bytes .../classes/com/sci/dao/DBManagement$1.class | Bin 1083 -> 0 bytes .../com/sci/dao/DBManagement$DBCar.class | Bin 3585 -> 0 bytes .../com/sci/dao/DBManagement$DBCountry.class | Bin 3535 -> 0 bytes .../sci/dao/DBManagement$DBDepartment.class | Bin 3671 -> 0 bytes .../com/sci/dao/DBManagement$DBEmployee.class | Bin 8462 -> 0 bytes .../com/sci/dao/DBManagement$DBJob.class | Bin 3488 -> 0 bytes .../sci/dao/DBManagement$DBJobHistory.class | Bin 3927 -> 0 bytes .../com/sci/dao/DBManagement$DBLocation.class | Bin 3647 -> 0 bytes .../com/sci/dao/DBManagement$DBPerson.class | Bin 3618 -> 0 bytes .../com/sci/dao/DBManagement$DBRegion.class | Bin 3623 -> 0 bytes .../classes/com/sci/dao/DBManagement.class | Bin 884 -> 0 bytes .../target/classes/com/sci/models/Car.class | Bin 3666 -> 0 bytes .../classes/com/sci/models/Country.class | Bin 4796 -> 0 bytes .../classes/com/sci/models/Department.class | Bin 6746 -> 0 bytes .../classes/com/sci/models/Employee.class | Bin 12165 -> 0 bytes .../target/classes/com/sci/models/Job.class | Bin 5459 -> 0 bytes .../classes/com/sci/models/JobHistory.class | Bin 6111 -> 0 bytes .../sci/models/JobHistoryCompositeKey.class | Bin 1063 -> 0 bytes .../classes/com/sci/models/Location.class | Bin 6728 -> 0 bytes .../classes/com/sci/models/Person.class | Bin 3465 -> 0 bytes .../classes/com/sci/models/Region.class | Bin 3622 -> 0 bytes .../target/classes/hibernate.cfg.xml | 30 - .../inspectionProfiles/Project_Default.xml | 3 + .../src/main/java/com/sci/models/Booking.java | 1 + .../main/java/com/sci/models/Employee.java | 1 + .../src/main/java/com/sci/models/Guest.java | 1 + .../main/java/com/sci/models/JobHistory.java | 1 + .../src/main/java/com/sci/models/Price.java | 1 + .../src/main/java/com/sci/models/Region.java | 1 + .../main/java/com/sci/models/Reservation.java | 1 + .../src/main/java/com/sci/models/Room.java | 1 + .../main/java/com/sci/models/RoomType.java | 1 + Template/src/main/resources/hibernate.cfg.xml | 2 +- 66 files changed, 408 insertions(+), 1213 deletions(-) create mode 100644 Hibernate_CS308/.gitignore delete mode 100644 Hibernate_CS308/.idea/compiler.xml delete mode 100644 Hibernate_CS308/.idea/jarRepositories.xml delete mode 100644 Hibernate_CS308/.idea/modules.xml delete mode 100644 Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml delete mode 100644 Hibernate_CS308/CS308Spring2022.iml delete mode 100644 Hibernate_CS308/src/main/java/com/sci/dao/DBManagement.java create mode 100644 Hibernate_CS308/src/main/java/com/sci/dao/GenericDAO.java create mode 100644 Hibernate_CS308/src/main/resources/logback.xml delete mode 100644 Hibernate_CS308/target/classes/ClosureFinder.class delete mode 100644 Hibernate_CS308/target/classes/FunctionalDependency.class delete mode 100644 Hibernate_CS308/target/classes/FunctionalDependencyCoverage.class delete mode 100644 Hibernate_CS308/target/classes/KeyFinder.class delete mode 100644 Hibernate_CS308/target/classes/MinimalCoverFinder.class delete mode 100644 Hibernate_CS308/target/classes/NormalizeAlgo.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/TesterApp.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/criteria/FilterQuery.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/criteria/Operator.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBConfig.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$1.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBCar.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBCountry.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBDepartment.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBEmployee.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBJob.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBJobHistory.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBLocation.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBPerson.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBRegion.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/dao/DBManagement.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Car.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Country.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Department.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Employee.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Job.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/JobHistory.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/JobHistoryCompositeKey.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Location.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Person.class delete mode 100644 Hibernate_CS308/target/classes/com/sci/models/Region.class delete mode 100644 Hibernate_CS308/target/classes/hibernate.cfg.xml diff --git a/Hibernate_CS308/.gitignore b/Hibernate_CS308/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/Hibernate_CS308/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Hibernate_CS308/.idea/compiler.xml b/Hibernate_CS308/.idea/compiler.xml deleted file mode 100644 index c409301..0000000 --- a/Hibernate_CS308/.idea/compiler.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Hibernate_CS308/.idea/jarRepositories.xml b/Hibernate_CS308/.idea/jarRepositories.xml deleted file mode 100644 index 712ab9d..0000000 --- a/Hibernate_CS308/.idea/jarRepositories.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Hibernate_CS308/.idea/modules.xml b/Hibernate_CS308/.idea/modules.xml deleted file mode 100644 index a679cec..0000000 --- a/Hibernate_CS308/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml b/Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml deleted file mode 100644 index 6709504..0000000 --- a/Hibernate_CS308/CS308Spring2022-master/CS308Spring2022.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/Hibernate_CS308/CS308Spring2022.iml b/Hibernate_CS308/CS308Spring2022.iml deleted file mode 100644 index 7beefe8..0000000 --- a/Hibernate_CS308/CS308Spring2022.iml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Hibernate_CS308/pom.xml b/Hibernate_CS308/pom.xml index 7effd55..a229dda 100644 --- a/Hibernate_CS308/pom.xml +++ b/Hibernate_CS308/pom.xml @@ -1,51 +1,72 @@ - 4.0.0 - - com.sci - CS308Spring2022 - 1.0.0 - - - 8 - 8 - - - - - - org.projectlombok - lombok - 1.18.22 - - - - com.oracle.database.jdbc - ojdbc8 - 21.5.0.0 - - - - org.hibernate - hibernate-core - 5.6.7.Final - - - - net.sf.ehcache - ehcache - 2.10.9.2 - - - - org.hibernate - hibernate-ehcache - 5.6.8.Final - - - - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + com.sci + Hibernate_CS308 + 1.0.0 + + + 8 + 8 + + + + + + + org.projectlombok + lombok + 1.18.36 + provided + + + + + com.oracle.database.jdbc + ojdbc8 + 23.7.0.25.01 + + + + + org.hibernate.orm + hibernate-core + 6.6.11.Final + + + + + org.hibernate.orm + hibernate-jcache + 6.6.11.Final + + + + + org.ehcache + ehcache + 3.9.11 + + + + + org.slf4j + slf4j-api + 2.0.17 + + + + + ch.qos.logback + logback-classic + 1.5.18 + compile + + + + \ No newline at end of file diff --git a/Hibernate_CS308/src/main/java/com/sci/TesterApp.java b/Hibernate_CS308/src/main/java/com/sci/TesterApp.java index 291802e..f2c7200 100644 --- a/Hibernate_CS308/src/main/java/com/sci/TesterApp.java +++ b/Hibernate_CS308/src/main/java/com/sci/TesterApp.java @@ -3,7 +3,7 @@ import com.sci.criteria.FilterQuery; import com.sci.criteria.Operator; import com.sci.dao.DBConfig; -import com.sci.dao.DBManagement; +import com.sci.dao.GenericDAO; import com.sci.models.*; import java.util.ArrayList; @@ -12,7 +12,11 @@ public class TesterApp { public static void main(String[] args) { - DBManagement.DBEmployee emp = new DBManagement.DBEmployee(); + // Create a generic DAO for Employee entity + GenericDAO employeeDAO = new GenericDAO<>(Employee.class); + + //* Use the findByFilter method from GenericDAO +/* List filters = new ArrayList<>(); // Q13, Les02 Oracle SQL Slides: @@ -20,12 +24,37 @@ public static void main(String[] args) { Operator.In)); filters.add(new FilterQuery("salary", Arrays.asList(2500, 3500, 7000), Operator.In)); - List emps = emp.getByFilter(filters); - System.out.println("LastName, JobId, Salary"); + + List emps = employeeDAO.findByFilter(filters, false); +*/ + //* Use the findByFilter method from GenericDAO + List emps = employeeDAO.findWithCustomPredicate((cb, root) -> + cb.and( + root.get("jobId").in(Arrays.asList("SA_REP", "ST_CLERK")), + cb.or( + cb.equal(root.get("salary"), 2500), + cb.equal(root.get("salary"), 3500), + cb.equal(root.get("salary"), 7000) + ) +/* + cb.in(root.get("salary")) + .value(2500) + .value(3500) + .value(7000) +*/ + + ) + ); + + + System.out.printf("%-15s %-10s %-10s%n", "LastName", "JobId", "Salary"); for (Employee employee : emps) { - System.out.println(employee.getLastName() + " " + employee.getJobId() + " " - + employee.getSalary()); + System.out.printf("%-15s %-10s %-10d%n", + employee.getLastName(), + employee.getJobId(), + employee.getSalary()); } + DBConfig.shutdown(); } } diff --git a/Hibernate_CS308/src/main/java/com/sci/dao/DBConfig.java b/Hibernate_CS308/src/main/java/com/sci/dao/DBConfig.java index 6df3bbb..8b87167 100644 --- a/Hibernate_CS308/src/main/java/com/sci/dao/DBConfig.java +++ b/Hibernate_CS308/src/main/java/com/sci/dao/DBConfig.java @@ -5,12 +5,13 @@ public class DBConfig { - public static final SessionFactory SESSION_FACTORY = new Configuration().configure() - .buildSessionFactory(); + public static final SessionFactory SESSION_FACTORY = new Configuration() + .configure() + .buildSessionFactory(); - public static void shutdown() { - if (SESSION_FACTORY != null) { - SESSION_FACTORY.close(); + public static void shutdown() { + if (SESSION_FACTORY.isOpen()) { + SESSION_FACTORY.close(); + } } - } } diff --git a/Hibernate_CS308/src/main/java/com/sci/dao/DBManagement.java b/Hibernate_CS308/src/main/java/com/sci/dao/DBManagement.java deleted file mode 100644 index 6b5d741..0000000 --- a/Hibernate_CS308/src/main/java/com/sci/dao/DBManagement.java +++ /dev/null @@ -1,1005 +0,0 @@ -package com.sci.dao; - -import com.sci.criteria.FilterQuery; -import com.sci.models.*; - -import java.sql.Date; -import java.util.ArrayList; -import java.util.List; - -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.query.Query; - -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - -@SuppressWarnings("ALL") -public class DBManagement { - public static class DBCar { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Car ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Car read(Integer Id) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Car.class, Id); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Car car) { - - Transaction transaction = null; - int Id = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Id = (Integer) session.save(car); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return Id; - } - - public void update(Car car) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(car); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer Id) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Car car = read(Id); - - session.delete(car); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBPerson { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Person ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Person read(Integer Id) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Person.class, Id); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Person person) { - - Transaction transaction = null; - int Id = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Id = (Integer) session.save(person); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return Id; - } - - public void update(Person person) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(person); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer Id) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Person person = read(Id); - - session.delete(person); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBEmployee { - public List getByFilter(List filterQueries) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - // To be edited in other relations CRUD OPs: - CriteriaBuilder cb = session.getCriteriaBuilder(); - CriteriaQuery cr = cb.createQuery(Employee.class); - Root root = cr.from(Employee.class); - - Predicate[] predicates = new Predicate[filterQueries.size()]; - for (int i = 0; i < filterQueries.size(); i++) { - switch (filterQueries.get(i).getOp()) { - case Equal: - predicates[i] = - cb.equal(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i).getAttributeValue()); - break; - case GreaterThan: - predicates[i] = - cb.greaterThan(root.get(filterQueries. - get(i).getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThan: - predicates[i] = - cb.lessThan(root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case NotEqual: - predicates[i] = - cb.notEqual(root.get(filterQueries.get(i). - getAttributeName()), - filterQueries.get(i). - getAttributeValue()); - break; - case IsNull: - predicates[i] = - cb.isNull(root.get(filterQueries.get(i). - getAttributeName()) - ); - break; - case GreaterThanOrEqual: - predicates[i] = - cb.greaterThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case LessThanOrEqual: - predicates[i] = - cb.lessThanOrEqualTo( - root.get(filterQueries.get(i). - getAttributeName()), - (Comparable) filterQueries.get(i). - getAttributeValue()); - break; - case Like: - /* <===> Where attribute like '%string%', can be cutomized. */ - predicates[i] = - cb.like(root.get(filterQueries.get(i). - getAttributeName()), - "%" + (String) (filterQueries.get(i). - getAttributeValue()) + "%"); - break; - case Between: - List values = - (List) filterQueries.get(i). - getAttributeValue(); - predicates[i] = - cb.between(root.get(filterQueries.get(i). - getAttributeName()), - values.get(0), values.get(1)); - break; - case In: - List inQuery = (List) - filterQueries.get(i).getAttributeValue(); - predicates[i] = - root.get(filterQueries.get(i).getAttributeName()). - in(inQuery); - break; - default: - break; - } - } - - //Sorting by something: [use desc instead of asc for order if needed]: -// cr.orderBy(cb.asc(root.get("salary"))); - - //By Default takes thier conjuction, this is union: -// cr.select(root).where(cb.or(predicates)); - - //This is their default, We need a more complex query -// cr.select(root).where(predicates); - - //What the question needs is a more complex query: - Predicate pred = cb.and(predicates[0], predicates[1].not()); - cr.select(root).where(pred); - - Query query = session.createQuery(cr); - return query.getResultList(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return new ArrayList<>(); - } - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Employee").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Employee read(Integer employeeId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Employee.class, employeeId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Employee employee) { - - Transaction transaction = null; - int employeeId = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - employeeId = (Integer) session.save(employee); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return employeeId; - } - - public void update(Employee employee) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(employee); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer employeeId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Employee employee = read(employeeId); - - session.delete(employee); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBRegion { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Region").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Region read(Integer regionId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Region.class, regionId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Region region) { - - Transaction transaction = null; - int regionId = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - regionId = (Integer) session.save(region); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return regionId; - } - - public void update(Region region) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(region); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer regionId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Region region = read(regionId); - - session.delete(region); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBJobHistory { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM JobHistory").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public JobHistory read(Integer employeeId, Date startDate) { - JobHistoryCompositeKey key = new JobHistoryCompositeKey(employeeId, startDate); - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(JobHistory.class, key); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public JobHistoryCompositeKey create(JobHistory jobHistory) { - - Transaction transaction = null; - JobHistoryCompositeKey key = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - key = (JobHistoryCompositeKey) session.save(jobHistory); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return key; - } - - public void update(JobHistory jobHistory) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(jobHistory); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer employeeId, Date date) { - JobHistoryCompositeKey key = new JobHistoryCompositeKey(employeeId, date); - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - JobHistory jobHistory = read(employeeId, date); - - session.delete(jobHistory); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBLocation { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Location").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Location read(Integer locationId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Location.class, locationId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Location location) { - - Transaction transaction = null; - int locationId = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - locationId = (Integer) session.save(location); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return locationId; - } - - public void update(Location location) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(location); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer locationId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Location location = read(locationId); - - session.delete(location); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBJob { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Job ").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Job read(String jobId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Job.class, jobId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public String create(Job job) { - - Transaction transaction = null; - String jobId = ""; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - jobId = (String) session.save(job); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return jobId; - } - - public void update(Job job) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(job); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String jobId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Job job = read(jobId); - - session.delete(job); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBCountry { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Country").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Country read(String countryId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Country.class, countryId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public String create(Country country) { - - Transaction transaction = null; - String countryId = ""; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - countryId = (String) session.save(country); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return countryId; - } - - public void update(Country country) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(country); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(String countryId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Country country = read(countryId); - - session.delete(country); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } - - public static class DBDepartment { - - public List get() { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - //noinspection unchecked - return session.createQuery("FROM Department").list(); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - public Department read(Integer departmentId) { - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - return session.get(Department.class, departmentId); - - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - - return null; - } - - - public Integer create(Department department) { - - Transaction transaction = null; - int departmentId = 0; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - departmentId = (Integer) session.save(department); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - - return departmentId; - } - - public void update(Department department) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - session.update(department); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - public void delete(Integer departmentId) { - - Transaction transaction = null; - - try (Session session = DBConfig.SESSION_FACTORY.openSession()) { - - transaction = session.beginTransaction(); - - Department department = read(departmentId); - - session.delete(department); - - transaction.commit(); - - } catch (Exception ex) { - if (transaction != null) { - transaction.rollback(); - } - System.err.println(ex.getMessage()); - } - } - - } -} diff --git a/Hibernate_CS308/src/main/java/com/sci/dao/GenericDAO.java b/Hibernate_CS308/src/main/java/com/sci/dao/GenericDAO.java new file mode 100644 index 0000000..a52504f --- /dev/null +++ b/Hibernate_CS308/src/main/java/com/sci/dao/GenericDAO.java @@ -0,0 +1,180 @@ +package com.sci.dao; + +import com.sci.criteria.FilterQuery; +import jakarta.persistence.criteria.*; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.query.Query; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +public class GenericDAO { + + private static final Logger logger = LoggerFactory.getLogger(GenericDAO.class); + private final Class entityClass; + + public GenericDAO(Class entityClass) { + this.entityClass = entityClass; + } + + public List getAll(int offset, int limit) { + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + return session.createQuery("FROM " + entityClass.getSimpleName(), entityClass) + .setFirstResult(offset) + .setMaxResults(limit) + .getResultList(); + } catch (Exception ex) { + logger.error("Error fetching all entities", ex); + return new ArrayList<>(); + } + } + + public Optional read(ID id) { + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + return Optional.ofNullable(session.get(entityClass, id)); + } catch (Exception ex) { + logger.error("Error reading entity with ID: " + id, ex); + return Optional.empty(); + } + } + + public ID create(T entity) { + Transaction transaction = null; + ID id = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + transaction = session.beginTransaction(); + + session.persist(entity); + id = (ID) session.getIdentifier(entity); + + transaction.commit(); + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + logger.error("Error creating entity", ex); + } + + return id; + } + + public void update(T entity) { + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + transaction = session.beginTransaction(); + + session.merge(entity); + + transaction.commit(); + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + logger.error("Error updating entity", ex); + } + } + + public void delete(ID id) { + Transaction transaction = null; + + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + transaction = session.beginTransaction(); + + T entity = session.load(entityClass, id); + if (entity != null) { + session.remove(entity); + } + + transaction.commit(); + } catch (Exception ex) { + if (transaction != null) { + transaction.rollback(); + } + logger.error("Error deleting entity with ID: " + id, ex); + } + } + + public List findByFilter(List filterQueries, boolean useOr) { + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery criteriaQuery = cb.createQuery(entityClass); + Root root = criteriaQuery.from(entityClass); + + List predicates = new ArrayList<>(); + for (FilterQuery query : filterQueries) { + switch (query.getOp()) { + case Equal: + predicates.add(cb.equal(root.get(query.getAttributeName()), query.getAttributeValue())); + break; + case GreaterThan: + predicates.add(cb.greaterThan(root.get(query.getAttributeName()), (Comparable) query.getAttributeValue())); + break; + case LessThan: + predicates.add(cb.lessThan(root.get(query.getAttributeName()), (Comparable) query.getAttributeValue())); + break; + case NotEqual: + predicates.add(cb.notEqual(root.get(query.getAttributeName()), query.getAttributeValue())); + break; + case IsNull: + predicates.add(cb.isNull(root.get(query.getAttributeName()))); + break; + case GreaterThanOrEqual: + predicates.add(cb.greaterThanOrEqualTo(root.get(query.getAttributeName()), (Comparable) query.getAttributeValue())); + break; + case LessThanOrEqual: + predicates.add(cb.lessThanOrEqualTo(root.get(query.getAttributeName()), (Comparable) query.getAttributeValue())); + break; + case Like: + predicates.add(cb.like(root.get(query.getAttributeName()), String.format("%%%s%%", query.getAttributeValue()))); + break; + case Between: + List values = (List) query.getAttributeValue(); + predicates.add(cb.between(root.get(query.getAttributeName()), values.get(0), values.get(1))); + break; + case In: + List inQuery = (List) query.getAttributeValue(); + predicates.add(root.get(query.getAttributeName()).in(inQuery)); + break; + default: + logger.warn("Unsupported filter operation: " + query.getOp()); + break; + } + } + + Predicate combinedPredicate = useOr ? cb.or(predicates.toArray(new Predicate[0])) : cb.and(predicates.toArray(new Predicate[0])); + criteriaQuery.select(root).where(combinedPredicate); + Query query = session.createQuery(criteriaQuery); + return query.getResultList(); + } catch (Exception ex) { + logger.error("Error fetching entities by filter", ex); + return new ArrayList<>(); + } + } + + public List findWithCustomPredicate(PredicateBuilder predicateBuilder) { + try (Session session = DBConfig.SESSION_FACTORY.openSession()) { + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery criteriaQuery = cb.createQuery(entityClass); + Root root = criteriaQuery.from(entityClass); + + Predicate predicate = predicateBuilder.build(cb, root); + criteriaQuery.select(root).where(predicate); + + return session.createQuery(criteriaQuery).getResultList(); + } catch (Exception ex) { + logger.error("Error fetching entities with custom predicate", ex); + return new ArrayList<>(); + } + } + + public interface PredicateBuilder { + Predicate build(CriteriaBuilder cb, Root root); + } +} diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Car.java b/Hibernate_CS308/src/main/java/com/sci/models/Car.java index 174a374..fca63f3 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Car.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Car.java @@ -1,6 +1,6 @@ package com.sci.models; import java.io.Serializable; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,7 +8,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "CAR") @Data diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Country.java b/Hibernate_CS308/src/main/java/com/sci/models/Country.java index 3a82e53..402f1e7 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Country.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Country.java @@ -2,7 +2,7 @@ import java.io.Serializable; import java.util.List; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,7 +10,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "Countries") @Data @@ -24,7 +23,7 @@ public class Country implements Serializable { private static final long serialVersionUID = -4275743947797911430L; @Id - @Column(name = "COUNTRY_ID") + @Column(name = "COUNTRY_ID", columnDefinition = "CHAR(2)") private String countryId; @Column(name = "COUNTRY_NAME") private String countryName; diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Department.java b/Hibernate_CS308/src/main/java/com/sci/models/Department.java index 9ee9678..5fedfad 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Department.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Department.java @@ -2,7 +2,7 @@ import java.io.Serializable; import java.util.List; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,7 +10,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "departments") @Data @@ -18,8 +17,7 @@ @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @NoArgsConstructor @AllArgsConstructor -@SequenceGenerator(name = "departments_gen", sequenceName = "departments_seq", - allocationSize = 1) +@SequenceGenerator(name = "departments_gen", sequenceName = "departments_seq", allocationSize = 10) public class Department implements Serializable { private static final long serialVersionUID = 4396093107304957078L; @@ -28,14 +26,17 @@ public class Department implements Serializable { @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "departments_gen") @Column(name = "DEPARTMENT_ID") private Integer departmentId; + @Column(name = "DEPARTMENT_NAME") private String departmentName; + @Column(name = "MANAGER_ID") private Integer managerId; + @Column(name = "LOCATION_ID") private Integer locationId; - //One department has many employees: + // One department has many employees: @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "EMPLOYEES", joinColumns = {@JoinColumn(name = "DEPARTMENT_ID")}, @@ -43,13 +44,13 @@ public class Department implements Serializable { ) private List employees; - //Many departments are located in one location: + // Many departments are located in one location: @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "LOCATION_ID", insertable = false, updatable = false) private Location location; - //One department has many previous employees: + // One department has many previous employees: @OneToMany(fetch = FetchType.LAZY) @JoinColumn(name = "DEPARTMENT_ID", insertable = false, updatable = false) private List previous_Department_Employees; -} +} \ No newline at end of file diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Employee.java b/Hibernate_CS308/src/main/java/com/sci/models/Employee.java index 4a9365c..8797fd4 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Employee.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Employee.java @@ -6,7 +6,7 @@ import java.io.Serializable; import java.sql.Date; import java.util.List; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -14,7 +14,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "employees") @Data diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Job.java b/Hibernate_CS308/src/main/java/com/sci/models/Job.java index 59be34d..13976d0 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Job.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Job.java @@ -2,7 +2,7 @@ import java.io.Serializable; import java.util.List; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,7 +10,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "Jobs") @Data diff --git a/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java b/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java index d46ff2f..0ef333a 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/JobHistory.java @@ -2,13 +2,12 @@ import java.io.Serializable; import java.sql.Date; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "Job_History") @Data @@ -36,7 +35,7 @@ public class JobHistory implements Serializable { //One employee used to work many times: @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "EMPLOYEE_ID", insertable = false, updatable = false) - private Department employee; + private Employee employee; //Many previous employees used to work in one department: @ManyToOne(fetch = FetchType.LAZY) diff --git a/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java b/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java index 26a2e24..96d27e2 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/JobHistoryCompositeKey.java @@ -1,9 +1,7 @@ package com.sci.models; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; + import java.io.Serializable; import java.sql.Date; //Composite key class: @@ -11,6 +9,7 @@ @Setter @AllArgsConstructor @NoArgsConstructor +@EqualsAndHashCode public class JobHistoryCompositeKey implements Serializable { private static final long serialVersionUID = -7519983781399232210L; diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Location.java b/Hibernate_CS308/src/main/java/com/sci/models/Location.java index f8e8900..679b7d4 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Location.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Location.java @@ -2,7 +2,7 @@ import java.io.Serializable; import java.util.List; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,7 +10,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "Locations") @Data @@ -19,7 +18,7 @@ @NoArgsConstructor @AllArgsConstructor @SequenceGenerator(name = "locations_gen", - sequenceName = "LOCATIONS_SEQ", allocationSize = 1) + sequenceName = "LOCATIONS_SEQ", allocationSize = 100) public class Location implements Serializable { private static final long serialVersionUID = 1432055879282434621L; @@ -27,24 +26,29 @@ public class Location implements Serializable { @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "locations_gen") @Column(name = "LOCATION_ID") private Integer locationId; + @Column(name = "STREET_ADDRESS") private String streetAddress; + @Column(name = "POSTAL_CODE") private String postalCode; + @Column(name = "CITY") private String city; + @Column(name = "STATE_PROVINCE") private String stateProvince; - @Column(name = "COUNTRY_ID") + + @Column(name = "COUNTRY_ID", columnDefinition = "CHAR(2)") // Match the database type private String countryId; - //Many Locations are in one country: + // Many Locations are in one country: @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "COUNTRY_ID", insertable = false, updatable = false) private Country country; - //One location has many departments: + // One location has many departments: @OneToMany(fetch = FetchType.LAZY) @JoinColumn(name = "LOCATION_ID", insertable = false, updatable = false) private List departments; -} +} \ No newline at end of file diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Person.java b/Hibernate_CS308/src/main/java/com/sci/models/Person.java index 73901f9..1c135f6 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Person.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Person.java @@ -2,7 +2,7 @@ import java.io.Serializable; import java.util.List; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,7 +10,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "PERSON") @Data diff --git a/Hibernate_CS308/src/main/java/com/sci/models/Region.java b/Hibernate_CS308/src/main/java/com/sci/models/Region.java index 0e01c1a..eaf681f 100644 --- a/Hibernate_CS308/src/main/java/com/sci/models/Region.java +++ b/Hibernate_CS308/src/main/java/com/sci/models/Region.java @@ -2,7 +2,7 @@ import java.io.Serializable; import java.util.List; -import javax.persistence.*; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,7 +10,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -@SuppressWarnings("JpaDataSourceORMInspection") @Entity @Table(name = "Regions") @Data diff --git a/Hibernate_CS308/src/main/resources/hibernate.cfg.xml b/Hibernate_CS308/src/main/resources/hibernate.cfg.xml index 0efa7c1..a392911 100644 --- a/Hibernate_CS308/src/main/resources/hibernate.cfg.xml +++ b/Hibernate_CS308/src/main/resources/hibernate.cfg.xml @@ -1,22 +1,20 @@ - - - + + - oracle.jdbc.OracleDriver - jdbc:oracle:thin:@//localhost:1521/freepdb1 - hr - hr - org.hibernate.dialect.Oracle8iDialect + oracle.jdbc.driver.OracleDriver + jdbc:oracle:thin:@//localhost:1521/freepdb1 + hr + hr + validate + true + + + org.hibernate.cache.jcache.JCacheRegionFactory + org.ehcache.jsr107.EhcacheCachingProvider true true - org.hibernate.cache.ehcache.EhCacheRegionFactory - - - true + create - @@ -24,7 +22,9 @@ + \ No newline at end of file diff --git a/Hibernate_CS308/src/main/resources/logback.xml b/Hibernate_CS308/src/main/resources/logback.xml new file mode 100644 index 0000000..d6a7398 --- /dev/null +++ b/Hibernate_CS308/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + \ No newline at end of file diff --git a/Hibernate_CS308/target/classes/ClosureFinder.class b/Hibernate_CS308/target/classes/ClosureFinder.class deleted file mode 100644 index 0fab39f1953c0d0a6d9a718e1381976a46fb6a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1721 zcma)6ZFdtz6n-YzW}9>)kiK9QB^8yvg(zZ?rVVXVBWMX|px7wtG?^xY+ufYatcUu= z)1M)Kz>lJb)1JyX>SuqF3V3HXZIhfFj`^^exi8N=&%Jl%uV=sg4&V}a0ue+_7#0Q) zV>o%Af5)>nck0=joA*UkF~k<6BUPRuIytp&Vvylf5acUqXRq;AqbyVcCK4KAh+%wk z?bu&%ZJSV}>*S`^hmgceCQev5iBk;8<1m6?7?etQT)7^@*yL0P$n~~8H-uq~m>9J% zhSLnGV}QdD2D8CiCGmjph;Kz_j9YjGuQC`;U>-Td?ogRC@fyQO(RTu_++Gz;;najv z-HGE2&RR%gf*9IjOO<6!Fr4V%N9>7O66Y+uiMJSrs;;BBbXv={{epT_H1v53lNvhi z$$BHe)=1M9W;9Za*J=b3M+O&6WG%ddce|QY-f1bZOVa}Y0o1RqPKH)G_Cpj+ zd}QGot}_e=y1OevL(S5n#thysP22%|2(OuLVcmAE@jvEs-h@^W|drTo7?hxv254f3wk{0a(_(Ep#JGE zJ%nIbqg9svnYK*tgZ&b?Z_rn}fy*e-*9rr06Srswe2UKqgp%0`qVy^PyH8+l%@`yb&Q!I@rA(>>eU@xSNXLt}$o) z^!$%e(0uf)N zeI7+zCCW>f? diff --git a/Hibernate_CS308/target/classes/FunctionalDependency.class b/Hibernate_CS308/target/classes/FunctionalDependency.class deleted file mode 100644 index dba1c23b8a13777f11479a4b329da23700881bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 935 zcmaJ<+iuf95It+BaT44%4JGAT97-W^ljZ^5Tt(ud3Z$q!7)9dIaTa$g*N)5@seBbk zG?hT&1NbP!tQ{b3BOW}Sot-o1%q zl_KoBTso@2nu&FVt|lTl&hiXwFl_zfc4Z=>;CU*-2~TRMLsw?g#0@k_kvCOb483+< zeL=6&SqK%%I2GJvC|SLMrHb8F#qM0HkpuoyLm}^(*v5V8QpR~c&7pmj)}aPn5k#I$ z6B@)$aS#VrWI6*vwB{ZComUa%bVk&|i#VUGi1<-@I_Ak+ZyXXuV;K8hIPwyq&hubN z9*YkQ&Ec}ABF1JBbT<71e0@pEQpH7iOH-8Onj5Ey&ksc=^C(VEy- z)*3ic;MXVf#M|eypMUvAhPZ4TpQ?yC{{H{f``CW@*7Wo=F6r)WbtE9Z5h|1ai tj{3U`H0-Z1X1Lzin&B4ttK`pc_j86+%F0>xlT3|jkdSjV40e{a_Z#?q&^Q19 diff --git a/Hibernate_CS308/target/classes/FunctionalDependencyCoverage.class b/Hibernate_CS308/target/classes/FunctionalDependencyCoverage.class deleted file mode 100644 index 8d53e2c8f9df2a6baf0eb67dd5e02df6d0701533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1767 zcma)7U2hvj6g^|Fy|J@tlQg8bIBl9j8mDOtC4AY&?bdB*OA-_r1sd_PS#Rwv+ug`s zR}>)-AA$!YJ}N+J|3F{*00;>J66!PkM^#HWGwU>tn^stw-8-}Ao_p_^nd^W4{qt`C zb9gh27~(oK0|_Jr1}|Gzt-NRX_553FmmND4NS0jR4a)-YsoY9G`jFC*HqZ}4U_im! zq3h+V4zYc1=rpY`XbOx@_XmbqpF9!mz;bqYweTVYQZ=56H)mtI}h{ zz*86%(0sK#vc=t%Xi>-00weQn-wxftx4bjXy5rXz-@cZ@ejG6H46@A7b1sEdx8?}! z?aGhY7bWbVfkP6OYP$7?!liK-6FQC6v!RB-4-*A2l$AoIt-F_@U+cEz|P^GTls-!1K62EVYs&LBZ9o@ToY}yDzzv+Bu}|O*_Aed(4Vi+*=U5?;(Wd{vcp;fdW)d5ijNv8{@!PjH z?`pS6qN%_Wykfw|IDk)>^QV}^XPCw3DBuf}@Fh;-E0t84DUKtH*ElqyMv2JE>%^8+ zq?IJY1U+6?^_nPiP5w+WWLeND+H=H59Ogp~^C5>x4v8=0G~bcuX?j*@8;IYBu4B*K zJxXwfD>0l!TK1uiGy{w){onfw(-*1j%woJ8sZ`K1T1Tgnv?8GjiJ44-S}9#_;E?| diff --git a/Hibernate_CS308/target/classes/KeyFinder.class b/Hibernate_CS308/target/classes/KeyFinder.class deleted file mode 100644 index 86998696da1b4668dda7b7ae80ad64ecea6192ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1359 zcma)6T~8B16g|@}EVNsJ3f09g6oi(q;s=Tpt5_fqO3@TCkQg&*c zD#llHJ0kBgw9Xio;U*dU(b&3*Hil5jw96GoEErZnI02}VA;{3>1y@|dj4$%?c2>9n z1Q3$c7Z~(tx`C%`(3@#bDok%^|NHH>%( z#k&eO%PPhg+Ly(CbqZ8Q$}W(Mj^$r4W6d2X(A$B^fmQE|78GD9$Z z!jK?=TQpHJ5Sc4>OOmY7N~wbY?z%LHa24=st@eblfW(Yk#TCTt-zv}=s+C+9*^xeV zcPL29bE{w!xGTKGk<()LOLf8hr=`sNDZR8(7A6cDZSM5VK~{9+x9P zA4ch=%AZ{6t%6~kc5(VLX&F8M`{KcIS|toDVS-kz>VP}AODEtSqC`T$Y!ZI7kwqLq z-8evd<_Lj}kppPc%E%!)7^YkFmP7O~e8jBWU19iv8`G`QPgkU)s;heIA#VEcYD`y0 zzv4DU#(WeI(v>>$>Ccg_e5OPS=>-PSPU|wIP9uyJ5}82)tC+`gyu=H6g(z;n7&oEB(X{V rDI`xKpHO7gKS_R13Gasg7`-Y~6`d*~zcKfVd}ayp;TgrHyxrViYTiB9 diff --git a/Hibernate_CS308/target/classes/MinimalCoverFinder.class b/Hibernate_CS308/target/classes/MinimalCoverFinder.class deleted file mode 100644 index ed03dfc2f6946f80366c6fac632b9cac54b984ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1972 zcmah}-%}f96g^*lZ8j`IDQ#WFS}ao`6;&N$;^|B{YQi|5--Af%{y_;UAt_nvd_xp()s$3Oi7;2b_k zA%duan1(nK0^J+N4I^V4PC0XBZNn`10*MLBvHVGa=-|+@f~3HqAgJbBc4pStT+f?+ z3JOvZqC-F*oZGvfc5Ry|mg{7PmOIdirxbK)=*A&|&b=@~2qZ1v^bFti1da|4wSZi1 z__G~2j9vvtG#te-fu22pW{7~YZfxevFNnu_S7nB-;Tb$D5OV@|Zxg$v%dCRu1bSy` zPEf01UoxwvQ#75zO%;83Uc(9W3#gt|Uib4>(G=)vDUjt8;p9H~^1f#|W!dtJ8eYOF z3h9{@_XbmsG!$wrU}#km4QUvbL`mB$1w1J_(^A+Gf&NxuC1qO$p}-jpFH5$lQ7kGL zqs-H`yIJ$h8H){hDU2d2k5@FD#|7$D2(JY)|A*hkCwqHM!#J`69R=6%4a?b_vhDv^ zfmOLEQJFZY;SHInhN3V{!4yY2&tXFd1WvT~-MV{HXKsAOEm|eZEMDDPfS7Mqsw~d% zeQs<|C{8faaP&-zl#1Ntxr5eG|8Vl`Ei24o3t|g7t%9ahqxD9PxF-5!27twQwsy|7H0Sa zyp36cFgfxKfl`3Dcpu8j={nT;)7#JlawFU55%?NE(|B6oSM-g?WQ-pB0mm6P9@pbR zdH0-BDf}RK0C!MN)O@6%N0b(-nBR5b>v`$ss&a}_E+!~mbh@G;)QC%6s+ zC9I)}0&by*+c5DRJ$01vJ1qQx4g84;9>BpvxFUk8(D0cUh9}O#7w1tEllVNCXB8d9 ztKu^Hk>vk%yhBSR&zE=?bNr-?;g0-5bGifg7W2p4n6zVAv>ByU8G5UxUABbh z*g3OG1SS)?ldMux!IIBGMx`W!m@HzL;Zi-p_qL!@Q=1wt5|OkH9WTh>QHF{3U@9fm zhAgL3n>`rEWffNp#4$niTC~YeZQ-R76>}EJEfp_y^fd3eRGW^gcv;0Y0|`tu{65(g z*X0M)f-YVSYQLJe|38Y?FhganYM3LF(U2swrsEa7s^T?+j`WFGQ8~16&Gs|)5x@jPdRoR|BDJ_P%_O1s=4QT{~{C?NL zNh6EMN{IKU9f_^FhRz9m-@q+=z@T|f08H9WoK7Lob!@1(ZQu?*WEk`->#UhU-IE=# z>=Qa^FeY8*8zpDzC1;o88a`&YxZ(=x1Gh`@Ok6ywnfu%lwznKtagW5f;kXrUnO}(& ztL!i+X{SV|*_ShIu~DmR3->PHwrC}qbBf&BmIM0U7C zeNDFH=Wdx22iwJ2ca!w860+l0LXc`8unhUPnlp;*<*vvy%c4Cyi5~1V$X@G&T+E#% z=+qKz)tmQt@!>k(^UGB6fI-hYHMc0Trr(Q>a_1#eOkk64Lira0lXoF~KcQKYEF&A4 zJ_38{y9@M{ZqSvpMPDNbzphy$50DL=+4#c`phx(f}BK+ zXSi^LA%8p)jE`{XXN-k#uNf8j1uquDQ6pbaq9gfdm~3QBpO+DxZQ-_OPuH_g@6nzS zoj-v)dluh1?ucY{3b&PU4wLy)OepaB(oa}8#v(OqDY|@!mGMJl4zYHK-0Tdw7nC;t zN92zw&4BSIFk;FRsLGE}!V8hM$h$H!(u|bHs6Za0jZymQ(9nZ^^x_&W;5yj_dZ`Mu zvQ2ge19(g?*7sz8z#yJt2+zs>h8X_9F#aU_7e-i&-j>T`C+St0#u!WE3cH0kE72R^ zVUm4Ix4x9iQXmO@fd@3x*f-#`5B>bv*O;SGh_VHWC?QPw85) j2AMm}%pF=Y1K&UF5h5yfRgBX=BdOkyDt<`b5UhUz@^0*N diff --git a/Hibernate_CS308/target/classes/com/sci/TesterApp.class b/Hibernate_CS308/target/classes/com/sci/TesterApp.class deleted file mode 100644 index 84566ac4f0df099f1f8321418f5e615f60795669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2355 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 diff --git a/Hibernate_CS308/target/classes/com/sci/criteria/Operator.class b/Hibernate_CS308/target/classes/com/sci/criteria/Operator.class deleted file mode 100644 index 8556b155d3d607bb34d36b5dd8d7ff1afe18d0fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 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 I;Cn>>3)y%0S^xk5 diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBDepartment.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBDepartment.class deleted file mode 100644 index 89331c83adba7a57187cc6844423f058b844b6a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3671 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 diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBJob.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBJob.class deleted file mode 100644 index 3e4643c125fbcc8b1e1247865473830733d0bdec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3488 zcmb7{-*X#R7018#uH?0(b)2Y)9i?e1C#L=-RZTG^k&?9auQZ8ewU*ZM&L&7i-u@FU{z`{ZeU3}M*BQ41*?6F9Q(A+%m?I&|^1ZKruxAUD3ai=^Ccx{X?4?|EBl zYfitwNRHzv6DKS@jWnI>J)~==K&0-r$Tvy<^%2``x1L+%8jTF$q=i!|BhhNzYdI!9 zBk;toCoAhs?_Il6cl6dcMlo(-0+Rv*_S#x`dvmi%!p@q&(e3~`uN5X%O=NmZ&flpz zn{6f~hG&s8@tlRzc)mvx<-4u6vq2>|%_af*Zo6LYRbpuqj$>~W;+Vp;h0oyyfq2bn z7wLyxbEuUtPOYv0WgKU4) zxMK5?g_kiym+6W?q5J*Wy4`9OIzg13rfb*T_Y_s8c$c+b2!2vD?tUx?umFbeiiJzK zOhy%_<~CNEcB4f_lcB&Me8zw zWt2^aL|YDyW)Rv*6%u7Jir(ze5!52F0-9G}@zcGfWYqr)ntE@$Tru%r1s6@8(pK zTesk9rpZ?NC2sDx4t2Y0=))N1J$8;6QKLvsabf8r$P`lm3o} z<_?;kZE4(OX{S5*a4DL>nMfsn+dG6W#}Bx6nK97&OR&-S0g1$9A{OpWH*E zOJ?+Jcziz_6RT_uWpBG#brxKen?rLmyTW)@Q4z2%H5yJ+*QnDn@jZ63(EYthA^|NX zj8J=$-!-5QT-4V(XF1MTv4~Fo5aNB_NNfa~Ab*Ai?=61=JZy3%*fi4I#g~QT7~$H& z2QYUqAh0-6ieZ?&oh_S<_B2P(@w053r+8JPp}jlFPc7un5tF~bu>2)PIG*DCEbsI3SD2H( z)}E)iKZfV9g(m&ZBaRl@I+}$bnr)tN4$)6AVq(a|?N9ksny7FFVPf=C45;4#YR;Kn zimE+)R#BHJ+@S@DyIf;Y^QyQE@!TlaFNR!-ndEuK{-S}O;QUgCSTZ}970BLKlf#_M zDJ+S6B%6v5O!i@sU@|>m_}!xiW5_Zf1t!garnr{ZV>g%&3FbE#k{=<>@ud8aP(DII z{ucA{cN)y3Mtxd?k^H{+V3a;C24K|Pd-xIqQi$diqO^u^UWM-?DRondXi91+1ZD2R zEcvVizKpK~jB2E2()5-nCg+zzQ29tIvV)7%PAWoRS0sUzmdNKdcJ0U`OsdDMk$Xtz zqiSJDExfK4tbAW8n(8CHRP^CJ9Lq-n&esG8Q*l)?%id>l2Kj^F3@N^d1%9PQnXIe0 z){$49Ke-@(4=MkEsQe=a<)0|CKT~3V!G!!P&T#Fj{3ovQ{!RHeT$g{xn*11^{6y2e z!0H;LWhJ`^KO9H2>{Ov_b?9#4tN0pGNUnSx-{2UfbQEzz6MqH7cLq^S^}LB?6J59u zqHoWG5PJVVAZMt{e<8u^$IPtYSL&Mq^ckMhM?Y=~>dP;me?eh$yz)@0BmphDKU}3>v z12G~<7=1_@{YV*cJZ)IWaP6XT2$y+(#TY=zIDo6hLEJEsn(s7OC0MqKuYoH#toa%$ zt`6Uu9lqBCzDmb4ifRVFR(+~roge67-4XFF&$#9pBT1KM`-Ofj;JN-d&q=m5Ti5dr zYJ0fe>gD>*|H*ZX|4v3(^)F#ob1m`LP1qW>c8wu&JxZ>}$n`k6p1_Ea#+Y#u(_AkZ zV_4>W**JyQjZwU1JcF7s-qCJ~`d8{?W-u2}E_YF0?@(S3dW2-_^HtoTJRMM`YN_45 dl!MjBRU1;4_!jde@ojvEqf&7N-^KS4`ww!2>jnS- diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBJobHistory.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement$DBJobHistory.class deleted file mode 100644 index 9d646b204d7b9378193d2d12daa00972f9399772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3927 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 diff --git a/Hibernate_CS308/target/classes/com/sci/dao/DBManagement.class b/Hibernate_CS308/target/classes/com/sci/dao/DBManagement.class deleted file mode 100644 index 45f7cc301b58266bf06d0cd0b570ec04379354d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 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 p)%{-kU3&FB;v)FIyjUD%^}WjR49{`3F< diff --git a/Hibernate_CS308/target/classes/com/sci/models/Department.class b/Hibernate_CS308/target/classes/com/sci/models/Department.class deleted file mode 100644 index 952163aec1037a774af0ba94583639bf66b6f380..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6746 zcmcIo>vtPR6~80vt+gdPu@fa}Yo`v_vK%!eG$19Rj-w{XE z&=}+jj5ds%Q!l8glB&<9a=M|-YLyJv7E~xiVMc8hd`z9!7vFn7p$)VVU~PV(R9@7yDx;XxTQiEK)JU;v2(4WT zZKBPLf^~W9ZN#y;5mU7g*rL!@uKBiwiguw`u2pBOz0YLptA%0OZ3^8^cR+Ps)wAbo zYKc*2pKWjBXU=JPBh!DHgL@R(PIoej&T59Gko&K*uiqwA_h6WI(7OWkZiV{z8Zpbq zQY|CD#@DQJj6sEVaz-l{^(2#fn9(N7WpWD#YsFGQtAyzwWfeM1N8rPKMZIVo5K_}Y$}!q( z1*gwS++1Nl7yF<>BQy#zbzwo%5xYTqyiG^hquI1@hN~FoDvmoO>zQK9gJ#JfO(0as zZp$Jbsr^BkLNJoujf%m{G@_mCu4g+857LJOs8K1HIgO}TAWVE14o`Nknesq=lo9La zySQH=m1j@TC`&_mx@H3emuwVnFP2l2TBWF#iWk*0C4?nb6~k$*QbiG;$Q^>JV=#5N ztXBTB6P4n&dMDtgT$DTovPSkXxIIm3?t3@an()F?->K}#PCH(YIYJn@O8k(Nh zQn^Bg(RLTc5lz=Bs-YFc3IGMG1|QEZu8D_{Q;Q24$4_SOJ&_$7&f>J0mCDK$6tWeI z>I~)?ZE;zBxLm5u>(JuW#o5<-D0_TpVrn!yHZ{Y25VeiRhDNbQcywrN=ty=#up=Ym z!$VWK@i8$9O%`W$)u>hA&jFb$jf&gnEUJ2aW)5KW+g(hmz9V-|0DIRR73uQ--kBpznW+#zo=fIGDKL|C z*Lmf+6CEk)+E{J=j8+j|;C&8#r8KRg3}A^l={4qx*w9vIxU6Fb8yH-1pspR>)UEN3 zO+~BDHq>Q5%IaOHAE!xs6I6DHramW6fDFefz#kYKQkE`x4)uQYb9Jy zTOE!I_u5<(>9zYJYJX3pKzvw|Z}3+v9HaBaa$!H8!inHd8OMRi~`FST%DU zXPL<4H~){8tW|RBHFAZH6;%_SEY~V|?QoIb9HQ3IxRc*4+#78cw*`ZDvbbLH zWbvZtfsA@^x88wPn5Q6ZA&t(0o<(!?&>a5p(TDLljPIZpdI0YdX6H51sZ0x1I!_hw zt5q^Ejn6t09KqXU)WE>^+e*d-Fz^YtlJOuI_=v;vAz{a&Sbq=37Xkj5Mjxk7&?jLI zmVKB$bsw>N=n-&)6`!^bAB7CQ^2{Z=F?!6>@QBp#AbsXEeU={Q4-fyu!&9#NgjknL zeQt%6VUyYjF23RLd=mDi@Md`X60Z>ZmDs@N@#Om?d>4KJPelUgi}WRo82{kH(iXrPT{1BuypWKSQ}r0E*5k;mF#j+ z!uSWFiv@9~@ZB!L(t@Y4_Lu1^rUhvz^YB|#PomqeJc<8hTG!sx5? zH8(wh_3Dw;!|3bo_C(gJM;05SXWaF)tyhn%O-A3KZ(`3p%p-U={L{|$w5-EFyp$Pz z3uu}5eiZj2W@H4O1@&$Ej+^H?*K4UPaYo;Dw=}+9OL_4(Te_8=Xju9jDE#IkE%h9Q zC)!cGJp+js$mhL0aE(0AlCS0Rz+2=QO(vFUn;3%V9!uhp_71*Hk+}CdwO=A-Fz#KZ z-a4W`?E|Dg?T`C7#($kUE>UaT7x&vh$#ejqWI7lRa8S?$1>!*)D3uNYluC!=Ar1u~Ob{p=Xm7d|puOp~cq<3BnV{Bqn+=pnM*+&DWAP{l#Y|8% z9;<`AmtE83vUFa(j93qSkG>Drb~1&Y$Fb<4Ub;a)z+4L@=wI|hP+mGhf2SXT^3f>$ zjeZQukAAd7FMtZ5;k-zfKm}3KPt#98g^;{Y(oaE!X&K$?XP_c<6BK#^+5zONdk(&M9yaoxgI~O)8qdp+3q$%^EVIwMU!>r+SY{3h z7>o^EqQKxX9k`#*_ouy_5%-#$AWuulN~V2+g^UzJ!MLx^N~QgRHqmRKLOkqjmfCJ& z!i%sohENk@H=))VWBMj_lCKV^W4z5%Cd_YxSxD!s2@W)aExZfE6bY^nv83F2reMfT z(2`x1ZHk9i5w|p~g@6)-55FAB{1x@juSENj=bg1L#G9BY-yi8*q_ewg2SI4BJ z`}zC{N#i^k>o_Ut-JCup>Ajr3PtqAqe+2Y0%{VU$vdzm@RWMVG@n3~a+pPQD6*}YW zP#aus8eI5wR>A_byReBJNwF_C(yjM4gFvV2M_A zuZ?1j38|-X3?z})@{XAl_i)~)lj7pdf9gt#o3>X_ydV1n#rvjTP`vX6M30vDo22N` z62*I9!0gsnVgGL-;X%!v!+RGry@~f*a1O5D*XVZ`{2qfpX!J+APH&@BFn^x@RHZ-D JJ30Exe*xIR0}}uM diff --git a/Hibernate_CS308/target/classes/com/sci/models/Employee.class b/Hibernate_CS308/target/classes/com/sci/models/Employee.class deleted file mode 100644 index 2390b2d55886969219c256026c3236f1d79fba8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12165 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 diff --git a/Hibernate_CS308/target/classes/com/sci/models/JobHistory.class b/Hibernate_CS308/target/classes/com/sci/models/JobHistory.class deleted file mode 100644 index cfb555e1e13a370a7ec99de3cd3fadb2d63f2fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6111 zcmb_g`Ey&<75=WQT~C&*#D5{fUu~VR>p|o_SKXy9P>GBKzMLSbSzx(c!^en#wccwG8bnZRhckaFC zo^#%L`qLXPyaZqnzYoBL79ZRiJn#zWnZjzKoXI9u3rj|>oR};u-kvR23Z*rHps`xa z71j(RwIr}(>TLRaI+07~mlLUc#aK2jQobH0+dn)s~DR*H|_3mDG~tcWAf{ z*9-V-8x`0+)pVe-I>)rNOT%tS2{vp=OM5l!!&?MexD$b$%|_^zp&()VH5|ZOxnL%p zA3s-3=LFijZJR!^c-F{NhI&p*@C_Q?hJym(Wur1~^JIH>kBw6EWe`1x`_QYQPp%Mc zcv~42@EUT(vNV08hJ-X7q3Ol}Q%h2JSi=C`PH#~+*SM3m+N$+ik>Gb|xJiP8a*yg_ z9j8$!VTl-p$S$-;4n3b|m(whGV!zAS6v##}wF0_|lNQ0;f5n$0a4r649T ztziZyxW>_JK3m~7$Xf8@U0jT&trY04#Z_wQm?X_ck`;cc`m`=_X5_3i= zo6cn)OfTkm3DL4STrf)IY$1PVYK*2Px!PzU&qL%Z3+Y_d@Z5dVzh2w-iu(=Lq1kG_ zl3g_xvgIrd4CnKOO1eU7nKxqk<$**|8Y@?fe8xzmmWBj&IVeU8x$0`3N_RfJ%8i7^ zr%z6uI5j?gM(!avH$OZ(e`aiWp7G@$pBb}6@8pRQ6A&I7KS{*&_{_XH-s`Z$bUME_ zUpSFBxQgdKqmrSYoNyCTHNRGrIQP`>=~Dvx9L!A?vibV1gV{ViSCLL^VZjCqYqhwP zHYaFBMR;T?n>S{vtBXcyUb#CqRmh}s3u#^fnbxGcvXZ6ywv@z1fOBKvawBbJo_E+o zx>lTe78rg6+UiNn!qv-(!~~@=RYvGu4!D#wx~WLk@`U&ZA&uOZ$dI&9uOj=puTezg zf^zo_0}NfYCUbualUo^*6j9jxps|vVS6Qg67$t5>x~;30C2~_yQ?qHR%>>!=i&hnE z^JJ?DtS2tbE0k?UQw!Go7PeNajf1AzOl1A$m@XfF+)R}6j#A3U~gr&JBssmYXCigj#+08nT_cW6aJCYy8r!8`l7weK28}D6*c!rYw zqFYUNheB8vErUQMj=*F1jFTPTcI~Jf6ZovNozQmesB{$g96s-~pVsZ#QQ0f-1!w=n zwrfWvyTBLmC8zzgZ`Y2h4FX?wwxe&?j;b00U%^+M_OoZZc2qqP@^w<#aXrS^*um_d z=#4)GkNaZp%WypbPs_#L%WzHi#W&Dt4k>ia^zkFd3MXRNQ|yOaX7`U`xIQV<)=qwiA+ z;n#Q+Pg2tG55BJbfKnK*!N3nGwendofu|@%gcrBs0;Q<9fe+muQEC&td|LgOQVc)g zxfZe8=l>5{eQ>>w4j+2>=NGTzdL;(_4fDxhTJSgg6c_0g5B`duQF1X*{*0f~V=Z+0^9&vtcDFFV zo~Go%DK;$6Q1Y_FTEVlFd@Rt@_$4JjLt+5WQ3~J>Y=PD(1!b6sXA!-^2{*$;2!;lP zxWWY*V@_W|J3KW&4ddQCWx>2QSOeKSYk_^6!415F!lL-MP#P>}oka{d5gXjAsx5l( zD)fehYauKnp{pBd*m)BWO))0;OODDHmLV42k@7O-4P=`eA5}V4k6N^1SjgY!tbH~b z+)KzcKmXbsyQUe|Mb+TS;1BSS196hg&MDrv4qv=~9ih1HUPo(O_pBop*S+g#kL$j5 z=yBb@jxA5xn7PtD%38e;4KRIFt35!C{QZ(^nJ*pk2b=-(EyHa}veWRGlI#_{rX-*C wK2wsEW2Nr6C z^;jg8(-)z1efhy1`fOc|;?IEyBdLNn-2(z063QJFFhHOOu0Ij^(~qA{e}VRSVI=gE zbKBTxG*dQ0$aT0EhFk{X0g}m_ek&uwUhhJkY!ht8=r0@V$y-z6v}Rccz#*}K^I|F^;D1$}ml{nkb8{%1M6Pdjj;@h~B z=3`yd$MnMZR8UWRUU01}SF5zXVI^j2-9N*BhIS0LGn3B2DhU{;n?H`NjCD1!UNo7l OmkGWA6_r*2dQW diff --git a/Hibernate_CS308/target/classes/com/sci/models/Location.class b/Hibernate_CS308/target/classes/com/sci/models/Location.class deleted file mode 100644 index cf9013dae95de9076e23b47429dd8ea1a5d4b798..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6728 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 diff --git a/Hibernate_CS308/target/classes/com/sci/models/Person.class b/Hibernate_CS308/target/classes/com/sci/models/Person.class deleted file mode 100644 index 0c38cebbb559fcdd1b4531474d5b95b87d9bfcd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3465 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 aX!AYJ-)BgCEqs6vIr)f_k1c$H8~*@AZUavM diff --git a/Hibernate_CS308/target/classes/hibernate.cfg.xml b/Hibernate_CS308/target/classes/hibernate.cfg.xml deleted file mode 100644 index 0efa7c1..0000000 --- a/Hibernate_CS308/target/classes/hibernate.cfg.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - oracle.jdbc.OracleDriver - jdbc:oracle:thin:@//localhost:1521/freepdb1 - hr - hr - org.hibernate.dialect.Oracle8iDialect - true - true - org.hibernate.cache.ehcache.EhCacheRegionFactory - - - true - - - - - - - - - - - - - \ No newline at end of file diff --git a/Template/.idea/inspectionProfiles/Project_Default.xml b/Template/.idea/inspectionProfiles/Project_Default.xml index 21bc619..ac65bed 100644 --- a/Template/.idea/inspectionProfiles/Project_Default.xml +++ b/Template/.idea/inspectionProfiles/Project_Default.xml @@ -1,6 +1,9 @@