poniedziałek, 2 lipca 2012

Podstawowe narzędzia




SQL*Plus

Językiem który umożliwia zarządzanie bazą danych jest język SQL (Structured Query Language). Wszystkie narzędzia dostępne na rynku służące do graficznego zarządzania bazą i umożliwiające „wyklikanie” zapytania są jedynie nakładką na ten język.
SQL*Plus jest podstawowym narzędziem Oracle służącym do komunikacji z bazą danych. Umożliwia wykonywanie zapytań do bazy i wyświetlanie wyników. Poza obsługą poleceń SQL, SQL*Plus posiada też zestaw własnych komend służących do konfiguracji programu oraz nawiązywania połączeń z bazami.

Aby uruchomić SQL*Plus wybieramy jego nazwę z menu start lub wpisując w konsoli:

sqlplus

lub

sqlplus nazwa_uzytkownika/haslo@sidbazy

SQL*Plus instalowany jest razem zawsze podczas instalacji Oracle Database. Mimo że jest programem konsolowym i subiektywnie postrzegając - mało wygodnym, warto się z nim zapoznać. Jednym z zasadniczych powodów jest fakt, że przy jego użyciu możemy sterować pracą instancji oraz zarządzać danymi i obiektami bazodanowymi również na serwerach które pozbawione są środowiska graficznego. Serwery produkcyjne rzadko kiedy udostępniają port 1521 (czyli domyślny port nasłuchu listenera), a często ten port jest blokowany na poziomie bramki sieciowej. Mamy wówczas jedynie SSH i naszym jedynym narzędziem staje się właśnie SQL*Plus.

Podstawowe polecenia SQL*PLUS

CONNECT

polecenie nawiązuje połączenie ze wskazaną bazą danych. Niezbędne do rozpoczęcia pracy z bazą danych. Bez nawiązania połączenia z bazą danych nie możemy wykonywać na niej żadnych operacji.




Składnia polecenia connect jest następująca:

connect nazwa_użytkownika/hasło@nazwa_bazy_wg_deskryptora

Ciąg który następuje po znaku @ to nazwa połączenia wg pliku tnsnames.ora. Możemy również podłączyć się do instancji podając adres ip serwera oraz SID bazy. Przykład:

connect hr/test@192.168.1.1/xe

Aby zalogować się na użytkownika HR, po wcześniejszym odblokowaniu go, podajemy następującą ścieżkę:


connect hr/hasło_które_ustawiliśmy@localhost;


krótszą formą polecenia connect jest polecenie conn :


conn hr/hasło_które_ustawiliśmy@localhost;


Korzystając z SQL*Plusa możemy również podać dane autoryzacyjne przy uruchamianiu programu:


sqlplus hr/hr@localhost;


Możemy łączyć się przy pomocy SQL*Plusa za pośrednictwem listenera lub bezpośrednio nawet do wyłączonej instancji. Pomijamy w takim wypadku @adres_ip_lub_sid np.:


sqlplus hr/hr


Warunkiem połączenia się jest w takim przypadku uruchamianie SQL*Plusa z konsoli hosta na którym zainstalowana jest baza lub poprzez SSH. Zaletą jest możliwość połączenia się nawet do wyłączonej instancji (tylko jako SYS). Łącząc się jako SYS musimy pamiętać o dodaniu frazy as sysdba:


sqlplus sys/haslo as sysdba


lub


sqlplus sys/haslo@192.168.1.1/xe as sysdba



DISCONNECT


Polecenie zamyka sesję nawiązaną przy pomocy connect, nie powoduje wyjścia z programu.





EXIT


Polecenie kończy sesję, okno programu zostaje zamknięte.


DESC


To polecenie pozwala na uzyskanie opisu wybranego obiektu bazy danych.



@


Uruchamia polecenia określone w pliku wskazanym jako parametr polecenia. Np. jeśli na partycji c:\ naszego dysku stworzymy plik test.sql w którym umieścimy zapytanie o treści:


select * from jobs;


Uruchamiamy komendę


@c:\test.sql


odnosząc się do stworzonego wcześniej skryptu, czego efektem będzie taki oto ekran:





SPOOL


przy pomocy tej komendy jesteśmy w stanie zapisać do pliku tekstowego wszystkie wykonywane polecenia oraz wyniki ich działań. Wszystkie te dane będą pozostawać wyłącznie w pamięci operacyjnej i nie będą widoczne w pliku aż do czasu wykonania polecenia spool off, kończącego zapis. Poniżej konsola wraz z plikiem efekty.txt do którego zostały zapisane komendy wraz z wynikami. Proszę zwrócić uwagę że zostały zapisane działania
w konsoli wykonane dopiero po wydaniu komendy spool.




SPOOL OFF

Kończy zapis do pliku, zatrzymuje komendę spool.

Podstawowe opcje SQL*Plus

Opcje SQL*Plusa ustawiamy przy pomocy polecenia SET:

SET nazwa_opcji wartość


Na przykład:

autocommit {on | off }



Zmienna modyfikuje ustawienie automatycznego zatwierdzenia wykonania poleceń lub po wykonaniu serii instrukcji (Domyślnie on).

Commit jest poleceniem służącym do zatwierdzania zmian w danych, wprowadzonych w obrębie sesji. Polecenie to może być wydawane jawnie lub niejawnie tj. możemy wyłączyć autocommit i zatwierdzać samodzielnie poprzez wydanie komendy commit; lub ustawić automatyczne zatwierdzanie. Jeśli nie zatwierdzimy zmian danych, zmiany będą dotyczyć tylko naszej sesji i nie będą widoczne dla innych użytkowników.



echo {on | off}



decyduje, czy polecenia wysyłane na serwer są powtórnie wyświetlane w wyniku wykonania się polecenia. (Domyślnie on)




linesize n





zmienna określa jak długa ma być linia w buforze ekranowym SQL*Plusa. (Domyślnie 80)


pagesize n



określa rozmiar strony w wierszach. (Domyślnie 24)



serveroutput {on | off}



określa, czy komunikaty wypisywane podczas działania podprogramów PL/SQL mają być wyświetlane na konsoli SQL*Plusa. Domyślnie ustawiony jest brak wyświetlania.
(Domyślnie off)










SQL DEVELOPER






Graficzną alternatywą dla SQL Plusa jest SQL Developer. Możemy z niego korzystać pod warunkiem, że możemy się połączyć z serwerem Oracle poprzez sieć (mamy port nasłuchu otwarty) lub jeżeli łączymy się bezpośrednio z maszyny na której zainstalowany jest serwer. Jest to program bezpłatny rozpowszechniany przez firmę Oracle. Musimy go jednak zainstalować oddzielnie, nie jest dostarczany wraz z bazą danych.
TWORZENIE, TESTOWANIE I ZAPISYWANIE NOWEGO POŁĄCZENIA







Aby utworzyć nowe połączenie klikamy zielony krzyżyk znajdujący się w lewym górnym rogu na zakładce „Connections”. W poniższym oknie wprowadzamy:
Connection Name - własna nazwa połączeniaUsername - nazwa użytkownika z którego uprawnieniami chcemy połączyć się do bazy danych.Password – hasło w.w. Użytkownika.Save Password – zaznaczamy jeśli chcemy aby hasło zostało zapamiętane w programie. Jeśli tego nie zaznaczymy, przy każdym łączeniu się z bazą będzie trzeba to hasło wpisać.Hostname – host na którym znajduje się serwer Oracle. Jeśli łączymy się do bazy znajdującej się na tym samym komputerze, wpisujemy „localhost”Port – port sieciowy pod którym nasłuchuje serwer bazy danych. Domyślny to 1521SID – sid bazy, dla naszych potrzeb będzie to zawsze XE. Jeśli pracujesz na innej wersji Oracle niż Express Edition zapytaj swojego administratora o sid bazy.

Jeśli autoryzujemy się jako użytkownik SYS, musimy dodatkowo zmienić ustawienie Role z Default na SYSDBA.

Prawidłowość wprowadzonych danych możemy sprawdzić naciskając przycisk Test. W lewym dolnym rogu okna zostanie wypisany status połączenia: Success jeśli dane umożliwiają autoryzację, lub Failure z przyczyną jeśli nie można zrealizować połączenia.
Połączenie możemy zapisać klikając SAVE, oraz połączyć się klikając CONNECT.



DRZEWO OBIEKTÓW



Po uruchomieniu nowego połączenia możemy w zakładce Connections kliknąć w symbol plusika znajdujący się przy nazwie połączenia. Pojawi nam się okno edycji oraz lista obiektów bazy danych pogrupowana w kategorie. Rozwijając kolejne gałęzie możemy przeglądać listy obiektów, struktury, a nawet zawartość tabeli (po dwukrotnym kliknięciu symbolu danego obiektu).





















Klikając prawym przyciskiem na nazwę połączenia, a następnie z menu wybierając Open SQL Worksheet uruchomimy kolejny edytor kodu. Klikając View - > DBMS Output uruchomi nam się konsola na której wyświetlane będą przez nas komunikaty wywoływane w podprogramach PL/SQL.





Aby konsola wyświetlała komunikaty z aktywnego połączenia musimy kliknąć zielony krzyżyk w jej lewym górnym rogu a następnie wybrać połączenie które nas interesuje:



URUCHAMIANIE PODPROGRAMÓW W EDYTORZE

Po napisaniu programu w edytorze możemy go uruchomić naciskając przycisk „run” wyglądający jak „Play” w magnetofonach. Jeśli w edytorze mamy kilka podprogramów, zostaną wykonane wszystkie. Jeśli chcemy uruchomić tylko jeden, zaznaczamy go i klikamy „run” lub kombinację klawiszy CTRL + ENTER










1 komentarz:

  1. Miałem okazję porównywać w firmie Oracle, jak również Microsoft Dynamics 365. Po dokładniejszej analizie, dzięki dynamics 365 pricing zdecydowaliśmy sie jednak na pakiet Dynamics. Trzeba jednak przyznać, że obydwa pakiety są potężnie użyteczne w dużych przedsiębiorstwach.

    OdpowiedzUsuń