Resources

Random Errors

ORA-00160: global transaction length string is greater than maximum (string)

Cause: An external global transaction ID with a too large length field was passed in.

Action: Report the problem to your external transaction coordinator vendor.

Random Errors

ORA-00151: invalid transaction ID

Cause: The specified transaction ID does not correspond to an existing valid transaction.

Action: Check your application.


Designed by:
SiteGround web hosting Joomla Templates
SQL czy PL/SQL PDF Print E-mail
User Rating: / 2
PoorBest 
Written by Administrator   
Friday, 28 March 2008 11:53
Your Ad Here

Postawmy sobie proste pytanie: jaka jest różnica między językami SLQ a PL/SQL. Aby można było sensownie odpowiedzieć na to pytanie należy na samym wstępie wyjaśnić czym są obie technologie.

Język SQL

SQL czyli Structured Query Language jest to ustrukturyzowany język zapytań do baz danych. W skrócie można podzielić SQL na dwie niezależne części: DDL oraz DML. Pierwsza z nich czyli Data Definiton Language służy do tworzenia oraz modyfikowania struktury bazy danych (tabele, widoki, indeksy, sekwencje, procedury i funkcje składowane itp.) oraz wszelkich metadanych związanych z bazą danych (parametry, sesje). Przykładowe słowa kluczowe związane z DDL to: CREATE TABLE, ALTER VIEW, CREATE OR REPLACE PROCEDURE. Druga część czyli Data Manipulation Language służy do modyfikowania danych znajdujących się w bazie. To DML odpowiada za takie polecenia jak SELECT, UPDATE, INSERT, DELETE.

Poniżej przedstawiony kod przedstawia zapytanie DDL:

create table tabela_testowa
(
kolumna1 NUMBER PRIMARY KEY,
kolumna2 VARACHAR2(50)
)

 

Poniżej przedstawiony kod przedstawia zapytanie DML:

insert into tabela_testowa values (1,'Test1');
insert into tabela_testowa values (2,'Test2');
update tabela_testowa set kolumna2 ='Test3' where kolumna1 = 1;
select * from tabel_testowa;

 

Polecenia SQL

Polecenia SQL są to polecenia, które tak naprawdę nie są częścią standardu SQL, a wspierają pracę narzędzi programistycznych. Przykładowo SQL*Plus posiada wiele komend, które ułatwiają pracę, lecz nie wchodzą w skład żadnego standardu. Jako polecenia SQL często brane są polecenia ułatwiające pracę np. z formatowaniem tekstu takie jak PRINT, COLUMN, BREAK itp, a także polecenia pozwalające na interakcje z bazą danych. Do tej grupy zaliczyć można polecenia takie jak CONNECT lub SHUTDOWN. Jeśli usłyszysz kiedyś od kogoś, że użył polecenia SQL upewnij się czy naprawdę mówi o SQLu.

 

Język PL/SQL

Język PL/SQL jest proceduralnym rozszerzeniem języka SQL, a zarazem jest zaawansowanym językiem programowania czwartej generacji (4GL). Oferuje programistom zaawansowane elementy takie jak: enkapsulacja danych, kolekcje typów, obsługę wyjątków, przeciążenia itp. Co jednak znaczy powyższy opis. Kluczem do rozwiązania jest określenie: proceduralne rozszerzenie języka SQL. Język PL/SQL jest językiem proceduralnym podobnie jak Java, C++ i inne języki wysokiego poziomu.Język ten umożliwia definiowanie zmiennych, sterowanie przepływem danych poprzez użycie struktur warunkowych takich jak LOOP, IF, CASE, WHILE. Ponieważ PL/SQL jest rozszerzeniem SQL umożliwia on używanie standardowego SQLa wewnątrz swojego kodu. Pozwala on w prosty sposób modyfikować zawartością bazy danych. Upraszczając definicję języka PL/SQL można powiedzieć że jest to wbudowany w bazę danych Oracle język programowania który umożliwia rozwój oprogramowania po stronie bazy danych. Pozwala w prosty sposób wywoływać statyczne zapytania SQL oraz budować dynamiczne zapytania SQL.

 

Poniżej przedstawiony kod przedstawia blok anonimowy PL/SQL:

BEGIN
cursor FOR kursor IN ( select * from
tabela_testowa )
LOOP
DBMS_OUTPUT.PUT_LINE( 'Kolumna 1: ' || TO_CHAR(kursor.kolumna1) || ', Kolumna 2: ' || kursor.kolumna2 );
END LOOP;
END;

Różnice między SQL a PL/SQL

A teraz odpowiedź na nurtujące nas pytanie: czym różni się PL/SQL od SQL. Język SQL jest językiem zorientowanym na pracę z danymi. Głównym celem zapytań w tym języku jest wyłuskiwanie i modyfikowanie (DML) danych zgromadzonych bazie, a także tworzenie i modyfikowanie struktury i metadanych (DDL) bazy danych. PL/SQL natomiast jest językiem proceduralnym przy pomocy, którego można tworzyć od podstaw aplikacje, tak jak w innych językach programowania. Co ważne nie można powiedzieć, że napisana została aplikacja przy pomocy języka SQL. Co najwyżej można powiedzieć że aplikacja korzysta z języka SQL w celu przeprowadzania operacji na bazie danych.


Your Ad Here
Comments
Add New Search RSS
+/-
Write comment
Name:
Email:
 
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
 
Please input the anti-spam code that you can read in the image.

3.25 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Last Updated ( Friday, 28 March 2008 13:08 )
 

Random Errors

ORA-00155: cannot perform work outside of global transaction

Cause: The application tried to perform some work on either an Oracle 7.3 server or an Oracle8 server with local transactions disabled while outside of a global transaction.

Action: Check if the application is connected to an Oracle 7.3 server. The Transaction monitor must not return a NULL XID on an AX_REG call when the resource manager is Oracle 7.3. If the application is connected to an Oracle8 server, either set nolocal=f in the xa_open string or start a global transaction prior to attempting the work.

 

Resources

Oracle Database Support, Powered by Joomla! and designed by SiteGround web hosting