Question: ) Create an object type, bank_account by executing the follwings: Create a sequence, acct_sequence, first by using a command: Create sequence acct_sequence; CREATE TYPE Bank_Account

) Create an object type, bank_account by executing the follwings: Create a sequence, acct_sequence, first by using a command: Create sequence acct_sequence; CREATE TYPE Bank_Account AS OBJECT ( acct_number INTEGER(5), balance REAL, status VARCHAR2(10), MEMBER PROCEDURE open (amount IN REAL), MEMBER PROCEDURE verify_acct (num IN INTEGER), MEMBER PROCEDURE close (num IN INTEGER, amount OUT REAL), MEMBER PROCEDURE deposit (num IN INTEGER, amount IN REAL), MEMBER PROCEDURE withdraw (num IN INTEGER, amount IN REAL), MEMBER FUNCTION curr_bal (SELF IN OUT Bank_Account, num IN INTEGER) RETURN REAL ); CREATE TYPE BODY Bank_Account AS MEMBER PROCEDURE open (amount IN REAL) IS -- open account with initial deposit BEGIN IF NOT amount > 0 THEN RAISE_APPLICATION_ERROR(-20104, 'bad amount'); END IF; SELECT acct_sequence.NEXTVAL INTO acct_number FROM dual; status := 'open'; balance := amount; END; MEMBER PROCEDURE verify_acct (num IN INTEGER) IS -- check for wrong account number or closed account BEGIN IF (num <> acct_number) THEN RAISE_APPLICATION_ERROR(-20105, 'wrong number'); ELSIF (status = 'closed') THEN RAISE_APPLICATION_ERROR(-20106, 'account closed'); END IF; END verify_acct; MEMBER PROCEDURE close (num IN INTEGER, amount OUT REAL) IS -- close account and return balance BEGIN verify_acct(num); status := 'closed'; amount := balance; END close; MEMBER PROCEDURE deposit (num IN INTEGER, amount IN REAL) IS BEGIN verify_acct(num); IF NOT amount > 0 THEN RAISE_APPLICATION_ERROR(-20104, 'bad amount'); END IF; balance := balance + amount; END deposit; MEMBER PROCEDURE withdraw (num IN INTEGER, amount IN REAL) IS -- if account has enough funds, withdraw -- given amount; else, raise an exception BEGIN verify_acct(num); IF amount <= balance THEN balance := balance - amount; ELSE RAISE_APPLICATION_ERROR(-20107, 'insufficient funds'); END IF; END withdraw; MEMBER FUNCTION curr_bal (SELF IN OUT Bank_Account, num IN INTEGER) RETURN REAL IS BEGIN verify_acct(num); RETURN balance; END curr_bal; END; (a) Declare and initialize the bank_account object. (b) Demonstrate how to call a method. (c) Create a table using the bank_account object type and insert a row into the table.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!