Chapter4 Scripts
Chapter4 Scripts
Chapter4 Scripts
v_num1 NUMBER := 5;
v_num2 NUMBER := 3;
v_temp NUMBER;
BEGIN
-- if v_num1 is greater than v_num2 rearrange their values
IF v_num1 > v_num2 THEN
v_temp := v_num1;
v_num1 := v_num2;
v_num2 := v_temp;
END IF;
DECLARE
v_num NUMBER := &sv_user_num;
BEGIN
-- test if the number provided by the user is even
IF MOD(v_num,2) = 0
THEN
ELSE
DBMS_OUTPUT.PUT_LINE (v_num||' is odd number');
END IF;
DBMS_OUTPUT.PUT_LINE ('Done');
END;
2:
v_num
NUMBER := &v_user_num;
new
2:
v_num
NUMBER := 24;
24 is even number
Done
DECLARE
v_num1 NUMBER := 0;
v_num2 NUMBER;
BEGIN
IF v_num1 = v_num2 THEN
DBMS_OUTPUT.PUT_LINE ('v_num1 = v_num2');
ELSE
DBMS_OUTPUT.PUT_LINE ('v_num1 != v_num2');
END IF;
END;
v_num1 != v_num2
VARCHAR2(15);
BEGIN
v_day := RTRIM(TO_CHAR(v_date, 'DAY'));
2:
new
2:
Done...
2:
new
2:
Done...
VARCHAR2(15);
BEGIN
v_day := TO_CHAR(v_date, 'DAY');
2:
new
2:
Done...
SET SERVEROUTPUT ON
DECLARE
v_date DATE := TO_DATE('&sv_user_date', 'DD-MON-YYYY');
v_day
VARCHAR2(15);
BEGIN
v_day := RTRIM(TO_CHAR(v_date, 'DAY'));
VARCHAR2(15);
BEGIN
v_day := RTRIM(TO_CHAR(v_date, 'DAY'));
DECLARE
v_total
NUMBER;
v_course_no
CHAR(6) := '&sv_course_no';
v_section_no NUMBER
:= &sv_section_no;
BEGIN
SELECT COUNT(*)
INTO v_total
FROM enrollment e
JOIN section s USING (section_id)
WHERE s.course_no = v_course_no
AND s.section_no = v_section_no;
INTO v_total
FROM enrollment e
JOIN section s USING (section_id)
WHERE s.course_no = 25
AND s.section_no = 1;
DECLARE
v_num NUMBER := &sv_num;
BEGIN
IF v_num < 0 THEN
DBMS_OUTPUT.PUT_LINE (v_num||' is a negative number');
ELSIF v_num = 0 THEN
DBMS_OUTPUT.PUT_LINE (v_num||' is equal to zero');
ELSE
DBMS_OUTPUT.PUT_LINE (v_num||' is a positive number');
END IF;
END;
2:
v_num
NUMBER := &sv_num;
new
2:
v_num
NUMBER := 5;
5 is a positive number
DECLARE
v_num NUMBER := &sv_num;
BEGIN
IF v_num < 0 THEN
DBMS_OUTPUT.PUT_LINE (v_num||' is a negative number');
ELSIF v_num > 0 THEN
DBMS_OUTPUT.PUT_LINE (v_num||' is a positive number');
END IF;
DBMS_OUTPUT.PUT_LINE ('Done');
END;
2:
v_num
NUMBER := &sv_num;
new
2:
v_num
NUMBER := 0;
Done
NUMBER := 102;
v_section_id
NUMBER := 89;
v_final_grade
NUMBER;
v_letter_grade CHAR(1);
BEGIN
SELECT final_grade
INTO v_final_grade
FROM enrollment
WHERE student_id = v_student_id
AND section_id = v_section_id;
NUMBER := 102;
v_section_id
NUMBER := 89;
v_final_grade
NUMBER;
v_letter_grade CHAR(1);
BEGIN
SELECT final_grade
INTO v_final_grade
FROM enrollment
WHERE student_id = v_student_id
AND section_id = v_section_id;
v_letter_grade := 'F';
END IF;
NUMBER := &sv_student_id;
v_section_id
NUMBER := &sv_section_id;
v_final_grade
NUMBER;
v_letter_grade CHAR(1);
BEGIN
SELECT final_grade
INTO v_final_grade
FROM enrollment
WHERE student_id = v_student_id
AND section_id = v_section_id;
v_letter_grade := 'D';
ELSE
v_letter_grade := 'F';
END IF;
NUMBER := 102;
v_section_id
NUMBER := 89;
v_final_grade
NUMBER;
v_letter_grade CHAR(1);
BEGIN
SELECT final_grade
INTO v_final_grade
FROM enrollment
WHERE student_id = v_student_id
AND section_id = v_section_id;
v_letter_grade := 'C';
ELSIF v_final_grade >= 60 THEN
v_letter_grade := 'D';
ELSE
v_letter_grade := 'F';
END IF;
DECLARE
v_num1 NUMBER := &sv_num1;
v_num2 NUMBER := &sv_num2;
v_total NUMBER;
BEGIN
IF v_num1 > v_num2 THEN
DBMS_OUTPUT.PUT_LINE ('IF part of the outer IF');
v_total := v_num1 - v_num2;
ELSE
DBMS_OUTPUT.PUT_LINE ('ELSE part of the outer IF');
v_total := v_num1 + v_num2;
END IF;
DBMS_OUTPUT.PUT_LINE ('v_total = '||v_total);
END;
2:
v_num1
NUMBER := &sv_num1;
new
2:
v_num1
NUMBER := -4;
3:
v_num2
NUMBER := &sv_num2;
new
3:
v_num2
NUMBER := 3;
DECLARE
v_letter CHAR(1) := '&sv_letter';
BEGIN
IF (v_letter >= 'A' AND v_letter <= 'Z') OR
(v_letter >= 'a' AND v_letter <= 'z')
THEN
DBMS_OUTPUT.PUT_LINE ('This is a letter');
ELSE
DBMS_OUTPUT.PUT_LINE ('This is not a letter');
ELSE
DBMS_OUTPUT.PUT_LINE ('This is not a number');
END IF;
END IF;
END;
2:
new
2:
NUMBER := &sv_temp_in;
v_scale_in
CHAR
v_temp_out
NUMBER;
:= '&sv_scale_in';
v_scale_out CHAR;
BEGIN
IF v_scale_in != 'C' AND v_scale_in != 'F' THEN
DBMS_OUTPUT.PUT_LINE ('This is not a valid scale');
ELSE
IF v_scale_in = 'C' THEN
v_temp_out
:= ( (9 * v_temp_in) / 5 ) + 32;
v_scale_out := 'F';
ELSE
v_temp_out
:= ( (v_temp_in 32) * 5 ) / 9;
v_scale_out := 'C';
END IF;
DBMS_OUTPUT.PUT_LINE ('New scale is: '||v_scale_out);
DBMS_OUTPUT.PUT_LINE ('New temperature is: '||v_temp_out);
END IF;
END;
2:
v_temp_in
NUMBER := &sv_temp_in;
new
2:
v_temp_in
NUMBER := 100;
3:
v_scale_in
CHAR := '&sv_scale_in';
new
3:
v_scale_in
CHAR := 'C';
2:
v_temp_in
NUMBER := &sv_temp_in;
new
2:
v_temp_in
NUMBER := ;
3:
v_scale_in
CHAR := '&sv_scale_in';
new
3:
v_scale_in
CHAR := 'C';
v_temp_in
NUMBER := ;
*
ERROR at line 2:
ORA-06550: line 2, column 27:
-PLS-00103: Encountered the symbol ";" when expecting one of the
following:
( - + mod not null <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current exists max min prior sql stddev sum variance
cast <a string literal with character set specification>
<a number> <a single-quoted SQL string>
The symbol "null" was substituted for ";" to continue.
2:
v_temp_in
NUMBER := &sv_temp_in;
new
2:
v_temp_in
NUMBER := 45;
3:
v_scale_in
CHAR := '&sv_scale_in';
new
3:
v_scale_in
CHAR := 'V';
NUMBER := &sv_temp_in;
v_scale_in
CHAR
v_temp_out
NUMBER;
v_scale_out CHAR;
:= '&sv_scale_in';
BEGIN
IF v_scale_in != 'C' AND v_scale_in != 'F' THEN
DBMS_OUTPUT.PUT_LINE ('This is not a valid scale');
v_temp_out
:= 0;
v_scale_out := 'C';
ELSE
IF v_scale_in = 'C' THEN
v_temp_out
:= ( (9 * v_temp_in) / 5 ) + 32;
v_scale_out := 'F';
ELSE
v_temp_out
:= ( (v_temp_in - 32) * 5 ) / 9;
v_scale_out := 'C';
END IF;
END IF;
DBMS_OUTPUT.PUT_LINE ('New scale is: '||v_scale_out);
DBMS_OUTPUT.PUT_LINE ('New temperature is: '||v_temp_out);
END;
2:
v_temp_in
NUMBER := &sv_temp_in;
new
2:
v_temp_in
NUMBER := 100;
3:
v_scale_in
CHAR := '&sv_scale_in';
new
3:
v_scale_in
CHAR := 'V';