Kintamuju%20deklaravimas%20PL/SQL - PowerPoint PPT Presentation

About This Presentation
Title:

Kintamuju%20deklaravimas%20PL/SQL

Description:

Title: Declaring PL/SQL Variables Subject: OU6_Jan09 Author: psaxena Description: Oracle University Production Services: Graphics Team Last modified by – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 28
Provided by: psax
Category:

less

Transcript and Presenter's Notes

Title: Kintamuju%20deklaravimas%20PL/SQL


1
Kintamuju deklaravimas PL/SQL
  • Paskaita 2

2
Temos
  • Vardai (žymejimai arba identifikatoriai)
  • Kintamuju naudojimas
  • Kintamuju paskelbimas ir inicializacija
  • Duomenu tipai
  • TYPE atributas
  • Bind (Istatomi) kintamieji

3
Kintamuju naudojimas
  • Kintamieji g. b. naudojami
  • Laikinam duomenu saugojimui
  • Saugomu reikšmiu manipuliacijai
  • Pakartotinam naudojimui

4
Vardai arba Žymejimai
  • Turi prasideti raide
  • Gali susideti iš raidžiu ir skaiciu
  • Galima naudoti simbolius (, _, ir )
  • Maksimalus ilgis 30 simboliu
  • Neturi buti Oracle rezervuoti žodžiai

5
Kintamuju apdorojimas PL/SQL
  • Kintamuju paskelbimas ir inicializacija vyksta
    deklaravimo sekcijoje
  • Kintamuju panaudojimas ir nauju verciu
    priskyrimas vyksta vykdymo sekcijoje
  • Galimas kintamuju kaip parametru perdavimas i
    PL/SQL paprogrames
  • Panaudojimas PL/SQL paprogramiu rezultatu
    saugojimui

6
PL/SQL Kintamuju paskelbimas ir inicializacija
  • Sintakse
  • Pavyzdys

identifier CONSTANT datatype NOT NULL
DEFAULT expr
DECLARE v_hiredate DATE
v_deptno NUMBER(2) NOT NULL 10
v_location VARCHAR2(13) 'Atlanta'
c_comm CONSTANT NUMBER 1400
7
PL/SQL Kintamuju paskelbimas ir inicializacija
DECLARE v_myName VARCHAR2(20) BEGIN
DBMS_OUTPUT.PUT_LINE('My name is ' v_myName)
v_myName 'John' DBMS_OUTPUT.PUT_LINE('My
name is ' v_myName) END /
1
DECLARE v_myName VARCHAR2(20) 'John' BEGIN
v_myName 'Steven' DBMS_OUTPUT.PUT_LINE('My
name is ' v_myName) END /
2
8
Apribojimai
DECLARE v_event VARCHAR2(15) BEGIN
v_event q'!Father's day!'
DBMS_OUTPUT.PUT_LINE('3rd Sunday in June is
' v_event ) v_event q'Mother's day'
DBMS_OUTPUT.PUT_LINE('2nd Sunday in May is
' v_event ) END /
9
Kintamuju tipai
  • PL/SQL kintamieji
  • Skaliariniai
  • Sudetinis
  • Referencinis
  • Large object (LOB)
  • Ne-PL/SQL kintamieji Bind kintamieji

10
Kintamuju tipai
11
PL/SQL Kintamuju paskelbimo ir inicializacijos
rekomendacijos
  • Sukurti susitarimai kaip vadinti žymejimus ir kt.
    objektus
  • Kodo rašymas naudojant didžiasias / mažasias
    raides pagal Oracle rekomendacijas
  • Inicializuokite kintamuosius aprašytus kaip NOT
    NULL ir CONSTANT
  • Inicializuokite kintamasias operatoriu () ir
    DEFAULT pagalba
  • Deklaruokite po viena varda arba žymejima vienoje
    eiluteje

v_myName VARCHAR2(20)'John'
v_myName VARCHAR2(20) DEFAULT 'John'
12
PL/SQL Kintamuju paskelbimo rekomendacijos
  • Kintamasis neturi buti pavadintas tuo paciu vardu
    kaip DB lenteles stulpelio vardas
  • .
  • Nuduokite NOT NULL apribojima jeigu kintamasis
    turi buti inicializuotas.

DECLARE employee_id NUMBER(6) BEGIN SELECT
employee_id INTO employee_id
FROM employees WHERE last_name
'Kochhar' END /
13
Skaliariniai duomenu tipai
  • Priima vienintele reikšme
  • Neturi sudetingos vidines strukturos

14
Pagrindiniai skaliariniai duomenu tipai
  • CHAR (maks. ilgis)
  • VARCHAR2 (maks. ilgis)
  • NUMBER (tikslumas, mastelis)
  • BINARY_INTEGER
  • PLS_INTEGER
  • BOOLEAN
  • BINARY_FLOAT
  • BINARY_DOUBLE

15
Pagrindiniai skaliariniai duomenu tipai
  • DATE
  • TIMESTAMP
  • TIMESTAMP WITH TIME ZONE
  • TIMESTAMP WITH LOCAL TIME ZONE
  • INTERVAL YEAR TO MONTH
  • INTERVAL DAY TO SECOND

16
Skaliariniu duomenu tipu deklaravimas
  • Pavyzdys

DECLARE v_emp_job VARCHAR2(9)
v_count_loop BINARY_INTEGER 0
v_dept_total_sal NUMBER(9,2) 0
v_orderdate DATE SYSDATE 7
c_tax_rate CONSTANT NUMBER(3,2) 8.25
v_valid BOOLEAN NOT NULL TRUE ...
17
TYPE atributas
  • Naudojamas
  • Deklaruoti kintamaji pagal duomenu bazes
    stulpelio tipa
  • Prieš tai deklaruoto kintamojo tipa
  • Prieš TYPE rašome
  • Duomenu bazes lenteles ir stulpelio vardus
  • Jau deklaruotojo kintamojo varda

18
Kintamuju deklaravimas suTYPE atributu
  • Sintakse
  • Pavyzdys

identifier table.column_nameTYPE
... emp_lname employees.last_nameTYPE ...

... balance NUMBER(7,2) min_balance
balanceTYPE 1000 ...
19
Boolean kintamuju dekladavimas
  • Tik TRUE, FALSE, ir NULL gali buti priskirti
    Boolean tipui.
  • Salyginese išraiškose naudojami loginiai
    operatoriai AND, OR ir unarinis operatorius NOT
  • Kintamieji visada gražina viena iš šiu reikšmiu
    TRUE, FALSE arba NULL.
  • Boolean reikšme gali gražinti aritmetiniai,
    simboliniai ir datos išraiškos.

20
Bind kintamieji
  • Bind kintamieji tai
  • Aplinkos kintamieji
  • Kartais vadinami host kintamieji
  • Sukuriamos raktinio žodžio VARIABLE pagalba
  • Naudojami SQL sakiniuose ir PL/SQL blokuose
  • Pasiekiamos po PL/SQL bloko vykdymo
  • Nuoroda i Bind kintamaji yra ()

21
Bind kintamuju spausdinimas
  • Pavyzdys

VARIABLE b_emp_salary NUMBER BEGIN SELECT
salary INTO b_emp_salary FROM employees
WHERE employee_id 178 END / PRINT
b_emp_salary SELECT first_name, last_name FROM
employees WHERE salaryb_emp_salary
22
Bind kintamuju spausdinimas
  • Pavyzdys

VARIABLE b_emp_salary NUMBER SET AUTOPRINT
ON DECLARE v_empno NUMBER(6)empno BEGIN
SELECT salary INTO b_emp_salary FROM
employees WHERE employee_id v_empno END
Output
7000
23
LOB duomenu tipas
Book (CLOB)
Photo (BLOB)
Movie (BFILE)
NCLOB
24
Sudetinis duomenu tipas
25
Santrauka
  • Sužinojome
  • Vardai (žymejimai arba identifikatoriai)
  • Kintamuju naudojimas
  • Kintamuju paskelbimas ir inicializacija
  • Duomenu tipai
  • TYPE atributas
  • Bind (surišimo) kintamieji

26
Praktika 2
  • 1. Vardai (žymejimai arba identifikatoriai)
  • a. today
  • b. last_name
  • c. todays_date
  • d. Number_of_days_in_February_this_year
  • e. Isleapyear
  • f. number
  • g. NUMBER
  • h. number1to7
  • 2. Kintamuju deklaravimas ir inicializavimas
  • a. number_of_copies PLS_INTEGER
  • b. printer_name constant VARCHAR2(10)
  • c. deliver_to VARCHAR2(10)Johnson
  • d. by_when DATE CURRENT_DATE1

27
Praktika 2
  • 3. Pasirinkite teisinga atsakyma.
  • DECLARE
  • v_fname VARCHAR2(20)
  • v_lname VARCHAR2(15) DEFAULT 'fernandez'
  • BEGIN
  • DBMS_OUTPUT.PUT_LINE(v_fname ' ' v_lname)
  • END
  • /
  • a. The block executes successfully and prints
    fernandez.
  • b. The block returns an error because the fname
    variable is used without initializing.
  • c. The block executes successfully and prints
    null fernandez.
  • d. The block returns an error because you cannot
    use the DEFAULT keyword to initialize a variable
    of type VARCHAR2.
  • e. The block returns an error because the v_fname
    variable is not declared.

28
Praktika 2
  • Create an anonymous block. In SQL Developer, load
    the lab_01_02_soln.sql script, which you created
    in question 2 of practice 1.
  • a. Add a declarative section to this PL/SQL
    block. In the declarative section, declare the
    following variables
  • 1. Variable v_today of type DATE. Initialize
    today with SYSDATE.
  • 2. Variable v_tomorrow of type today. Use TYPE
    attribute to declare this variable.
  • In the executable section, initialize the
    tomorrow variable with an expression, which
    calculates tomorrows date (add one to the value
    in today). Print the value of today and tomorrow
    after printing Hello World.
  • Execute and save this script as
    lab_02_04_soln.sql. Sample output is as follows

29
Praktika 2
  • 5. Edit the lab_02_04_soln.sql script.
  • a. Add code to create two bind variables. Create
    bind variables b_basic_percent and b_pf_percent
    of type NUMBER.
  • b. In the executable section of the PL/SQL block,
    assign the values 45 and 12 to b_basic_percent
    and b_pf_percent, respectively.
  • c. Terminate the PL/SQL block with / and
    display the value of the bind variables by using
    the PRINT command.
  • d. Execute and save your script file as
    lab_02_05_soln.sql. Sample output is as follows
Write a Comment
User Comments (0)
About PowerShow.com