5 2 PLSQL-Basic, WAT, semestr III, Bazy danych


0x01 graphic

BEGIN

NULL;

END;

Zmienne

declare

variable_name [constant] DATATYPE [DEFAULT value |DEFAULT NULL];

DECLARE

v1_nr,v2_nr NUMBER; -- ŹLE

DECLARE

v1_nr NUMBER; -- DOBRZE

v2_nr NUMBER; -- DOBRZE

DECLARE

v_sal_nr NUMBER;

v_name_tx VARCHAR2 (10) DEFAULT 'KING';

v_start_dt DATE := SYSDATE; -- TO SAMO CO: DEFAULT SYSDATE

DECLARE

variable_name table.column%TYPE;

variable_name2 variable_name%TYPE;

variable_row table%ROWTYPE;

PL/SQL Subtypes

SUBTYPE subtype_name IS base_type[(constraint)] [NOT NULL];

SUBTYPE CHARACTER IS CHAR;

SUBTYPE INTEGER IS NUMBER(38,0); -- allows only whole numbers

PL/SQLType

DECLARE

TYPE commissions IS TABLE OF NUMBER INDEX BY PLS_INTEGER;

comm_tab commissions;

BEGIN

comm_tab(5) := 20000 * 0.15;

Instrukcje warunkowe:

Instrukcja warunkowa uruchamia fragment kodu w zależności od sprawdzenia równości, porówniania, lub sprawdzenia poprawności warunku (TRUE)

PL/SQL posiada 3 inttrukcje:

  1. IF-THEN

  2. IF-THEN-ELSE

  3. IF-THEN-ELSIF-THEN-...-ELSE.

1.

Konstrukcja IF-THEN uruchamia kod jeśli warunek jest TRUE.

IF line_count > lines_per_page THEN

line_count := 0;

DBMS_SQL.put_line ('--------');

END IF;

2.

Konstrukcja IF-THEN-ELSE posiada dwa bloki kodu. Jeśli pierwszy warunek jest TRUE, to wykonywany jest pierwszy blok; jeśli nie to drugi:

IF items_sold > get_employee_target (emp_id) THEN

over_quota_count := over_quota_count + 1;

give_raise (emp_id);

ELSE

give_talking_to (emp_id);

END IF;

3.

IF is_number (current_char)

OR is_letter (current_char) THEN

new_char := current_char;

ELSIF current_char = ' ' THEN

new_char := '+';

ELSE

new_char := convert_to_hex (current_char);

END IF;

  1. Konstrukcja CASE

Konstrukcja CASE sprawdza sekwencyjnie warunki i uruchamia kod związany - wybierany jest pierwszy który zwróci TRUE.

SET SERVEROUTPUT ON;

DECLARE

grade CHAR (1);

BEGIN

grade := 'B';

CASE grade

WHEN 'A' THEN

DBMS_OUTPUT.put_line ('Excellent');

WHEN 'B' THEN

DBMS_OUTPUT.put_line ('Very Good');

WHEN 'C' THEN

DBMS_OUTPUT.put_line ('Good');

WHEN 'D' THEN

DBMS_OUTPUT.put_line ('Fair');

WHEN 'F' THEN

DBMS_OUTPUT.put_line ('Poor');

ELSE

DBMS_OUTPUT.put_line ('No such grade');

END CASE;

END;

DECLARE

grade NUMBER;

BEGIN

grade := 5;

CASE

WHEN grade = 5 THEN

DBMS_OUTPUT.put_line ('=5');

WHEN (grade > 1) THEN

DBMS_OUTPUT.put_line ('>1');

ELSE

DBMS_OUTPUT.put_line ('???');

END CASE;

END;

Pętle

LOOP

COUNT := COUNT + 1;

IF COUNT > 10 THEN

EXIT;

END IF;

END LOOP;

LOOP

COUNT := COUNT + 1;

EXIT WHEN COUNT > 10;

END LOOP;

WHILE (COUNT <= 10) LOOP

COUNT := COUNT + 1;

END LOOP;

FOR month_index IN 1 .. 12 LOOP

process_month_sales (month_index);

END LOOP;

0x01 graphic
0x01 graphic
0x01 graphic



Wyszukiwarka

Podobne podstrony:
bdsciaga, WAT, semestr III, Bazy danych
bdsprawko, WAT, semestr III, Bazy danych
pytania, WAT, semestr III, Bazy danych
caerm, WAT, semestr III, Bazy danych
ASO kolo test, WAT, semestr III, Bazy danych
5 Zadania PL-SQL1a, WAT, semestr III, Bazy danych
bd wyklad1, WAT, semestr III, Bazy danych
sprawko BD, WAT, semestr III, Bazy danych
sprawozdanie SKLEP SPOŻYWCZY Rafał Sylwestrzuk(1), WAT, semestr III, Bazy danych
wyrazenia, WAT, semestr III, Bazy danych
5 1 TRG, WAT, semestr III, Bazy danych
bdsprawko(2), WAT, semestr III, Bazy danych
moja, WAT, semestr III, Bazy danych

więcej podobnych podstron