PRACTICE 3 Ms. Reham Alhaweal rhaweal@gmail.com 1) Identify valid and invalid identifier names: • today • last_name Valid Invalid Valid Invalid Valid Invalid • today’s_date • Number_of_days_in_February_t Valid Invalid his_year Valid Invalid • Isleap$year • #number Valid Invalid • NUMBER# Valid Invalid • number1to7 Valid Invalid 1) Identify valid and invalid identifier names: • today • last_name Valid Invalid Valid Invalid Valid Invalid • today’s_date • Number_of_days_in_February_t Valid Invalid his_year Valid Invalid • Isleap$year • #number Valid Invalid • NUMBER# Valid Invalid • number1to7 Valid Invalid 2) Identify valid and invalid variable declaration and initialization: • printer_name constant VARCHAR2(10); Valid Invalid • deliver_to VARCHAR2(10):=Ahmad; Valid Invalid • by_when DATE:= CURRENT_DATE+1; Valid Invalid 2) Identify valid and invalid variable declaration and initialization: • printer_name constant VARCHAR2(10); Valid Invalid • deliver_to VARCHAR2(10):=Ahmad; Valid Invalid • by_when DATE:= CURRENT_DATE+1; Valid Invalid Examine the following anonymous block and choose the appropriate statement. (Note: the ServerOutput already sets ON) DECLARE v_fname VARCHAR2(20); v_lname VARCHAR2(15) DEFAULT 'Mohammed'; BEGIN DBMS_OUTPUT.PUT_LINE(v_fname ||’ ‘ ||v_lname); END; / The block executes successfully and print “Mohammed.” The block returns an error because the fname variable is used without initializing. The block executes successfully and print “null Mohammed.” The block returns an error because you cannot use the DEFAULT keyword to initialize a variable of type VARCHAR2. The block returns an error because the v_fname variable is not declared. The block executes successfully and print “Mohammed.” The block returns an error because the fname variable is used without initializing. The block executes successfully and print “null Mohammed.” Create and execute a simple anonymous block: 1. That outputs:“Hello World.” 2. Add a declarative section to this PL/SQL block. In the declarative section, declare the following variables: • Variable v_today of type DATE. Initialize today with SYSDATE. • Variable v_tomorrow of type today. Use %TYPE attribute to declare thisvariable. 3. In the executable section, initialize the tomorrow variable with an expression, which calculates tomorrow’s date (add one to the value in today). Print the value of today and tomorrow after printing “Hello World.” . Also print your name. 4. Execute and save this script as lab_02_04.sql SET SERVEROUTPUT DECLARE v_today DATE:=SYSDATE; v_tomorrow v_today%TYPE; BEGIN v_tomorrow := v_today+1; DBMS_OUTPUT.PUT_LINE('Hello World ..' || CHR(10)||'Today is:'||v_today||CHR(10)|| 'Tomorrow will be : ' || v_tomorrow || CHR(10) ||’My name is : YOUR NAME'); END; / Edit the lab_02_04.sql script 1. Add code to create two bind variables. Create bind variables b_basic_percent and b_pf_percent of type NUMBER. 2. In the executable section of the PL/SQL block, assign the values 45 and 12 to b_basic_percent and b_pf_percent, respectively. 3. Terminate the PL/SQL block with “/” and display the value of the bind variables by using the PRINT command. 4. Execute and save your script file as lab_02_05.sql SET SERVEROUTPUT ON SET AUTOPRINT ON VARIABLE b_basic_percent NUMBER; VARIABLE b_pf_percent NUMBER; DECLARE v_today DATE:=SYSDATE; v_tomorrow v_today%TYPE; BEGIN v_tomorrow := v_today+1; DBMS_OUTPUT.PUT_LINE('Hello World '||CHR(10)|| 'Today is: '|| v_today || CHR(10)||'Tomorrow will be : '||v_tomorrow||CHR(10)|| 'My name is : YOU NAME'); :b_basic_percent := 45; :b_pf_percent := 12; END; / Using Product Sales database, create and execute an anonymous block that allow user to inter a product ID and print a product name of a it. SET SERVEROUTPUT ON SET VERIFY OFF DECLARE PRODUCTID NUMBER (10) := &PRODUCTID; P_NAME PRODUCTS.PRODUCT_NAME%TYPE; BEGIN SELECT PRODUCT_NAME INTO P_NAME FROM PRODUCTS WHERE PRODUCT_ID = PRODUCTID; DBMS_OUTPUT.PUT_LINE(CHR(10) ||'Product name is : ' || P_NAME); END; /