• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • PL/SQL

    Przeczytaj także...
    Ada to strukturalny, kompilowany, imperatywny, statycznie typowany i obiektowy język programowania opracowany przez Jean Ichbiaha i zespół z CII Honeywell Bull w latach 70. XX wieku. Język ten wygrał konkurs zorganizowany przez Departament Obrony USA (U.S. Department of Defense – DoD), pokonując 19 innych projektów. Nazwa języka, nadana przez DoD, pochodzi od imienia lady Augusty Ady Lovelace, uważanej za pierwszą programistkę w historii.Instrukcja warunkowa jest elementem języka programowania, które pozwala na wykonanie różnych obliczeń w zależności od tego czy zdefiniowane przez programistę wyrażenie logiczne jest prawdziwe, czy fałszywe. Możliwość warunkowego decydowania o tym, jaki krok zostanie wykonany w dalszej kolejności jest jedną z podstawowych własności współczesnych komputerów – dowolny model obliczeń zdolny do wykonywania algorytmów (tj. równoważny maszynom Turinga) musi ją posiadać.
    Podprogram (inaczej funkcja lub procedura) - termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu.

    PL/SQL oznacza proceduralny SQL - rozszerzenie języka SQL umożliwiające tworzenie konstrukcji takich jak pętle, instrukcje warunkowe oraz zmienne. Jest używany w Oracle Forms i w bazie Oracle Database do tworzenia wyzwalaczy, procedur i funkcji.

    PL/SQL składniowo nawiązuje do Ady, jest jednym z trzech języków wbudowanych w bazę danych Oracle, pozostałe dwa to SQL i Java.

    PL/SQL stanowi wbudowany język proceduralny baz danych Oracle. Inne bazy danych zwykle mają odpowiedniki języka proceduralnego, np. PL/pgSQL w PostgreSQL.

    PostgreSQL (/poːst ɡɹɛs kjuː ɛl/) często nazywany także Postgres to, obok MySQL i SQLite, jeden z trzech najpopularniejszych otwartych systemów zarządzania relacyjnymi bazami danych. Początkowo opracowywany na Uniwersytecie Kalifornijskim w Berkeley i opublikowany pod nazwą Ingres. W miarę rozwoju i zwiększania funkcjonalności, baza danych otrzymała nazwy Postgres95 i ostatecznie PostgreSQL, aby upamiętnić pierwowzór oraz zaznaczyć zgodność ze standardem SQL. Aktualnie baza implementuje większość standardu SQL:2011. Język proceduralny (ang. procedural language) – język programowania umożliwiający tworzenie oprogramowania w postaci programu głównego oraz wielu procedur (lub podprogramów), z których każda realizuje określoną funkcję i może być wywoływana wielokrotnie przez program główny.

    Historia[ | edytuj kod]

    PL/SQL pierwszy raz pojawił się w Oracle Forms v3. Parę lat później został zawarty w bazie danych Oracle v7 (do tworzenia procedur, funkcji, pakietów, wyzwalaczy i bloków anonimowych), następnie w Oracle Reports v2.

    Library of Congress Control Number (LCCN) – numer nadawany elementom skatalogowanym przez Bibliotekę Kongresu wykorzystywany przez amerykańskie biblioteki do wyszukiwania rekordów bibliograficznych w bazach danych i zamawiania kart katalogowych w Bibliotece Kongresu lub u innych komercyjnych dostawców. Fraza – składniowa jednostka podrzędna stanowiąca część definicji większej jednostki złożonej, występującej w składni określonego języka programowania. Rolą fraz jest modyfikowanie i definiowanie szczegółów działania określonej jednostki nadrzędnej, w szczególności instrukcji lub deklaracji.

    Podstawowa struktura kodu[ | edytuj kod]

    Kod PL/SQL składa się z bloków, które ogólnie rzecz biorąc mają formę:

      DECLARE
         -- blok deklaracji (opcjonalnie)
      BEGIN
         -- blok programu
      EXCEPTION
         -- obsługa wyjątków (opcjonalnie)
      END
      /* Przykładowy komentarz
          w wielu liniach... */
    

    W sekcji DECLARE określa się typy zmiennych, stałych, kolekcji, i typów zdefiniowanych przez użytkownika.

    SQL (ang. Structured Query Language wym. /ɛskjuːˈɛl/) – strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.Biblioteka Narodowa Francji (fr. Bibliothèque nationale de France, BnF) – francuska biblioteka narodowa, znajdująca się w Paryżu. Przewidziana jest jako repozytorium dla wszystkich materiałów bibliotecznych, wydawanych we Francji. Obecnym dyrektorem Biblioteki jest Bruno Racine.

    Pomiędzy BEGIN i END znajduje się kod wykonywany przez procedurę.

    Wyjątki, błędy pojawiające się podczas wykonywania kodu, występują w jednym z dwóch typów:

    1. Wyjątki pre-definiowane (wstępnie zdefiniowane wyjątki).
    2. Wyjątki zdefiniowane przez użytkownika.

    Wyjątki zdefiniowane przez użytkownika można uruchomić przy pomocy komendy RAISE, składnia :

     RAISE <exception name>;
    

    Oracle zdefiniowało wstępnie podstawowe wyjątki np. NO_DATA_FOUND, TOO_MANY_ROWS, itp. Każdy wyjątek posiada numer błędu (SQL Error Number) i związaną z nim treść (SQL Error Message). Dostęp do numeru i treści błędu można uzyskać poprzez użycie funkcji SQLCODE i SQLERRM.

    Oracle Forms jest narzędziem RAD (Rapid Application Development) wspomagającym programowanie w języku PL/SQL. Umożliwia w sposób szybki i efektywny stworzenie aplikacji z interfejsem użytkownika i dostępem do bazy danych Oracle.Język programowania – zbiór zasad określających, kiedy ciąg symboli tworzy program komputerowy oraz jakie obliczenia opisuje.

    Zmienne[ | edytuj kod]

    W bloku deklaracji, jak sama nazwa wskazuje, deklaruje się i (opcjonalnie) inicjalizuje zmienne. Jeśli zmienna nie jest zainicjowana jej wartość jest automatycznie ustawiana na NULL.

    Przykład:

    declare
      liczba1 number(2);
      liczba2 number(4,2)     := 17.25;
      text1   varchar2(12)  := 'Waldek';
      data1   date          := SYSDATE;        -- obecna data i czas.
    begin
      SELECT numer_ulicy
      into   liczba1
      from   address
      where  name = text1;
    end;
    

    Zmienne numeryczne[ | edytuj kod]

    nazwa_zmiennej number(P[,S]) := wartość;

    Konwersja typu, zmiana typu (zmiennej w odwołaniu, wyrażenia), rzutowanie typu, przekształcenie typu, to konstrukcja programistyczna dostępna w określonym języku programowania, umożliwiająca traktowanie danej pewnego, konkretnego typu, jak daną innego typu, lub taką zmianę tej danej albo jej reprezentacji w pamięci operacyjnej, aby wartość tej danej, odpowiadała według przyjętych kryteriów odwzorowania, danej innego, wybranego typu. Pojęcie konwersji odnosi się także do sytuacji wyboru, rzutowania danych, które nie posiadają przypisanego typu, na wybrany, konkretny typ, celem interpretacji tych danych. Konwersja typu jest więc w swej istocie wykonaniem pewnego, z góry ustalonego, odwzorowania pomiędzy różnymi typami.W programowaniu pętla to jedna z trzech podstawowych konstrukcji programowania strukturalnego (obok instrukcji warunkowej i instrukcji wyboru). Umożliwia cykliczne wykonywanie ciągu instrukcji określoną liczbę razy, do momentu zajścia pewnych warunków, dla każdego elementu kolekcji lub w nieskończoność.

    Typ NUMBER w PL/SQL jest identyczny z typem NUMBER z bazy danych Oracle, może przechowywać liczby zmiennoprzecinkowe jak i całkowite. Przy deklaracji tego typu możemy podać precyzję (P), czyli łączną liczbę cyfr jaka będzie służyła do zapisu wartości, oraz skale (S), czyli liczbę cyfr po przecinku (jeśli wartość skali jest dodatnia) lub liczbę cyfr zaokrąglonych na lewo od przecinka (jeśli wartość S jest ujemna).

    Baza danych – zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego specjalizowanego do gromadzenia i przetwarzania tych danych. Program taki (często pakiet programów) nazywany jest „systemem zarządzania bazą danych” (ang. database management system, DBMS).Wyzwalacz (ang. trigger) jest to procedura wykonywana automatycznie jako reakcja na pewne zdarzenia w tabeli bazy danych. Wyzwalacze mogą ograniczać dostęp do pewnych danych, rejestrować zmiany danych lub nadzorować modyfikacje danych.

    Inne typy danych numerycznych: binary_float, binary_double, dec, decimal, double precision, float, integer, int, numeric, real, smallint, binary_integer

    Zmienne znakowe[ | edytuj kod]

    nazwa_zmiennej varchar2 ( L ) := 'Tekst' ;

    Aby określić typ zmiennej znakowej należy po definicji nazwy zmiennej określić typ na VARCHAR2. W nawiasie określamy liczbę bajtów (L) jaka będzie używana do przechowywania wartości zmiennej.

    Inne typy danych dla zmiennych znakowych: varchar, char, long, raw, long raw, nchar, nchar2, clob, blob, bfile

    Oracle Database – to oficjalna nazwa systemu zarządzania relacyjnymi bazami danych (ang. RDBMS) stworzonego przez firmę Oracle Corporation. Nazwa Oracle pochodzi od nazwy kodowej jednego z projektów sponsorowanych przez CIA, nad którymi pracował współzałożyciel korporacji Oracle – Larry Ellison.Identyfikator – podstawowa jednostka leksykalna określonego języka programowania, tworzona przez programistę zgodnie ze składnią danego języka programowania, służąca identyfikacji i odwoływaniu się do określonego elementu kodu źródłowego. Tak rozumiane pojęcie identyfikatora można przez analogię porównać do pojęcia nazwy własnej lub symbolu, ale stosowanej w programowaniu, odnoszącej się do konkretnego, odrębnego obiektu programu. Słowo identyfikator wywodzi się od słowa identyfikować i do języka polskiego zapożyczone zostało z języków obcych.

    Zmienne logiczne (Boolean)[ | edytuj kod]

    nazwa_zmiennej boolean:= true;

    Zmienne logiczne przechowują wartości: TRUE (prawda), FALSE (fałsz) lub NULL.

    Data i czas[ | edytuj kod]

    nazwa_zmiennej date := '01-Jan-2005';

    w PL/SQL do obsługi daty i czasu służą typy: DATE, TIMESTAMP i INTERVAL. Najczęściej stosowany jest typ DATE.

    Do konwersji zmiennej typu znakowego (np.varchar2) do typu DATE służy funkcja "TO_DATE". Funkcja zamienia podany ciąg znaków na podstawie podanej definicji w wywołaniu funkcji, np.

    Definicja intuicyjna: Java (wym. „dżawa”) to język programowania. Programy napisane w Javie można uruchamiać na wielu urządzeniach, takich jak telefony komórkowe lub komputery oraz pod różnymi systemami operacyjnymi, przy użyciu Wirtualnej maszyny Javy, która musi być w danym środowisku zainstalowana.Hiszpańska Biblioteka Narodowa (Biblioteca Nacional de España) – największa biblioteka w Hiszpanii i jedną z największych na świecie. Znajduje się w Madrycie, a dokładnie przy Paseo de Recoletos.
     to_date('31-12-2004','dd-mm-yyyy')
    

    Do odwrotnej konwersji, tj. z typu DATE do typów znakowych należy stosować funkcji "TO_CHAR", która przyjmuje datę i zwraca informację w formacie VARCHAR2, np.

     to_char(SYSDATE, 'DD:MM:YYYY HH24:MI:SS')
    




    Warto wiedzieć że... beta

    Instrukcja blokowa – (instrukcja złożona) jako instrukcja strukturalna jest elementem składni języków programowania strukturalnego, wydzielona część kodu źródłowego programu komputerowego, stosowane np. do grupowania sekwencji instrukcji składowych (prostych lub złożonych), ujmując je w nawiasy zdaniowe.
    Deklaracja (w informatyce) to konstrukcja programistyczna w określonym języku programowania, służąca związaniu z określonym identyfikatorem jego znaczenia i atrybutów.
    Gemeinsame Normdatei (GND) – kartoteka wzorcowa, stanowiąca element centralnego katalogu Niemieckiej Biblioteki Narodowej (DNB), utrzymywanego wspólnie przez niemieckie i austriackie sieci biblioteczne.
    Zmienna - konstrukcja programistyczna posiadająca trzy podstawowe atrybuty: symboliczną nazwę, miejsce przechowywania i wartość; pozwalająca w kodzie źródłowym odwoływać się przy pomocy nazwy do wartości lub miejsca przechowywania. Nazwa służy do identyfikowania zmiennej w związku z tym często nazywana jest identyfikatorem. Miejsce przechowywania przeważnie znajduje się w pamięci komputera i określane jest przez adres i długość danych. Wartość to zawartość miejsca przechowywania. Zmienna zazwyczaj posiada również czwarty atrybut: typ, określający rodzaj danych przechowywanych w zmiennej i co za tym idzie sposób reprezentacji wartości w miejscu przechowywania. W programie wartość zmiennej może być odczytywana lub zastępowana nową wartością, tak więc wartość zmiennej może zmieniać się w trakcie wykonywania programu, natomiast dwa pierwsze atrybuty (nazwa i miejsce przechowywania) nie zmieniają się w trakcie istnienia zmiennej. W zależności od rodzaju języka typ zmiennej może być stały lub zmienny. Konstrukcją podobną lecz nie pozwalającą na modyfikowanie wartości jest stała.

    Reklama

    Czas generowania strony: 0.016 sek.