[ Pobierz całość w formacie PDF ]
FROM DUAL
5.7. Formaty zapisu danych
Formaty zapisu danych używane są w dwóch podstawowych celach:
zmiany sposobu wyświetlania informacji w kolumnie;
wprowadzanie danej zapisanej inaczej niż domyślnie.
Formaty zapisu używane są w funkcjach TO_CHAR i TO_DATE.
5.7.1. Formaty numeryczne
Formaty numeryczne są używane w połączeniu z funkcją TO_CHAR do
przekształcenia wartości numerycznej na wartość znakową.
Użycie formatu numerycznego powoduje zaokrąglenie do podanej w nim liczby
cyfr znaczących.
Jesli wartość numeryczna ma więcej cyfr z lewej strony niż to zostało przewidziane,
to wartość ta zastępowana jest gwiazdką * .
Poniższa tabela przedstawia elementy, które może zawierać specyfikacja formatu
numerycznego:
Element Przykład Opis
9 9999 Liczba 9 określa szerokość wyświetlania
0 0999 Pokazuje wiodące zera
$ $9999 Poprzedza wartość znakiem $
B B9999 Wyświetla zera jako spacje (nie jako zera)
MI 9999MI Wyświetla - po wartości ujemnej
PR 9999PR Wyświetla wartość ujemną w nawiasach kątowych
>
, (przecinek) 9,999 Wyświetla przecinek na podanej pozycji
. (kropka) 99.99 Wyświetla kropkę na podanej pozycji
V 999V99 Mnoży wartość przez 10n, gdzie n jest liczbą dziewiątek
po V
E 9.999EEEE Wyświetla liczbę w notacji wykładniczej (format musi
zawierać dokładnie cztery litery E)
DATE DATE Dla dat przechowywanych w postaci numerycznej.
Wyświetla datę w formacie MM/DD/YY
5.7.2. Formaty dat
Formaty dat są używane w funkcji TO_CHAR w celu wyświetlenia daty. Mogą być
również użyte w funkcji TO_DATE w celu wprowadzenia daty w określonym formacie.
Format standardowy, to DD-MON-YY .
64
Bazy danych Robert Chwastek
Elementy formatu dat przedstawia tabela:
Element Opis
SCC lub CC Wiek; S poprzedza daty przed naszą erą znakiem -
YYYY lub SYYYY Czterocyfrowy rok, S poprzedza daty przed naszą erą znakiem
-
YYY, YY lub Y Ostatnie 3, 2 lub 1 cyfra roku
Y,YYY Rok z przecinkiem na podanej pozycji
SYEAR lub YEAR Rok przeliterowany. S powoduje poprzedzenie daty przed
naszą erą znakiem -
BC lub AD Znak BC/AD (przed naszą erą/naszej ery)
B.C. lub A.D Znak BC/AD z kropkami
Q Kwartał roku (1, 2, 3 lub 4)
MM Miesiąc (01-12)
MONTH Nazwa miesiąca wyrównana do 9 znaków za pomocą spacji
MON Trzyliterowy skrót nazwy miesiąca
WW Tydzień roku (1-52) (tydzień zaczyna się w pierwszy dniu roku
i trwa 7 dni)
W Tydzień miesiąca (1-5) (tydzień zaczyna się w pierwszym dniu
miesiąca i trwa 7 dni)
DDD Dzień roku (1-366)
DD Dzień miesiąca (1-31)
D Dzień tygodnia (1-7)
DAY Nazwa dnia wyrównana do 9 znaków za pomocą spacji
DY Trzyliterowy skrót nazwy dnia
AM lub PM Wskaznik pory dnia
A.M. lub P.M. Wskaznik pory dnia z kropkami
HH lub HH12 Godzina (1-12)
HH24 Godzina (1-24)
MI Minuta (0-59)
SS Sekunda (0-59)
SSSS Sekundy po północy (0-86399)
/ ., Znaki przestankowe umieszczane w wyniku
... Ciąg znaków umieszczany w wyniku
Dodatkowo w ciągu znaków określających format można użyć:
FM - Fill Mode przełącznik włączający/wyłączający wypełnianie tekstów spacjami i
liczb zerami;
TH - dodany po kodzie pola powoduje wyświetlanie liczby porządkowej np. 4TH dla
liczby 4;
SP - dodany po kodzie pola powoduje, że jest ono literowane
SPTH lub THSP - połączenie SP i TH.
65
Bazy danych Robert Chwastek
6. Programowanie proceduralne - PL/SQL
6.1. Wprowadzenie
Rozkazy języka SQL są niewystarczające do tworzenia efektywnych systemów baz
danych, a w szczególności do kontroli warunków integralności bazy w momencie
wprowadzania do niej danych. Dlatego firma Oracle wprowadziła rozszerzenia
proceduralne do swojej implementacji języka SQL i tak powstały język nazwała PL/SQL.
PL/SQL pozwala wykorzystywać prawie wszystkie operacje standardowego SQL.
Wyjątkiem są tu operacje definiowania danych (ALTER, CREATE i RENAME) oraz
niektóre rozkazy kontroli danych jak CONNECT, GRANT i REVOKE.
Kod napisany w PL/SQL składa się z rozkazów standardowego SQL oraz
rozszerzeń proceduralnych. Możliwe jest stosowanie wszystkich standardowych funkcji
SQL w rozkazach SQL oraz prawie wszystkich (tj. z wyłączeniem funkcji grupowych) w
rozszerzeniach. Każdy rozkaz PL/SQL kończy się średnikiem.
PL/SQL pozwala na definiowanie zmiennych. Zmienne służą do przechowywania
wyników zapytań i obliczeń w celu ich pózniejszego wykorzystania. Jednak wszystkie
zmienne muszą być zadeklarowane przed ich użyciem. Każda zmienna posiada typ. Typy
zmiennych są takie same jak typy stosowane w SQL u. Zmienne deklaruje się pisząc
nazwę zmiennej a następnie jej typ, np.:
premia NUMBER(7, 2);
Wartość do zmiennej przypisuje się za pomocą operatora przypisania := , np.:
podatek := cena * stopa;
Druga możliwość nadania wartości zmiennej to użycie rozkazu SELECT lub FETCH do
wpisania wartości do zmiennej:
SELECT placa INTO placa_aktualna FROM pracownicy
WHERE nazwisko = Nowak ;
PL/SQL posiada zmienne strukturowe nazywane rekordami, które podzielone są na
pola.
Istnieje możliwość deklarowania stałych. Deklaracja taka jest podobna do
deklaracji zmiennej, ale konieczne jest dodatkowo użycie słowa CONSTANT i
natychmiastowe przypisanie wartości do zmiennej. Deklarację stałej pokazuje następujący
przykład:
stopa_premii CONSTANT NUMBER(3, 2) := 0.10;
Wszystkie obiekty posiadają atrybuty. Jednym z nich jest typ (zarówno zmiennej
jak i kolumny). Możliwe jest użycie zapisu %TYPE w celu zapisania typu np. w
deklaracji zmiennej. Zapis taki pozwala zadeklarować zmienną o takim samym typie jak
inna zmienna lub kolumna (należy przy tym zauważyć, że typ ten nie jest znany osobie
piszącej program):
tytul books.tytul%TYPE
Możliwe jest również zadeklarowanie rekordu odpowiadającego jednemu wierszowi
tabeli. W tym celu należy użyć konstrukcji %ROWTYPE.
66
Bazy danych Robert Chwastek
W PL/SQL można stosować następujące operatory porównań:
=, !=, , >=,
ciągach znaków (wykonują wtedy porównanie leksykalne).
6.2. Struktura bloku
Kod języka PL/SQL jest podzielony na bloki. Blok ma następującą strukturę:
DECLARE
deklaracje
BEGIN
rozkazy wykonywalne
EXCEPTION
obsługa sytuacji wyjątkowych
END;
Każdy blok może zawierać inne bloki, tzn. bloki mogą być zagnieżdżone. W
PL/SQL identyfikator jest nazwą dowolnego obiektu (tj. stałej, zmiennej, rekordu, kursora
[ Pobierz całość w formacie PDF ]