Your SlideShare is downloading. ×
0
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Oracle 11g PL/SQL proqramlamlaşdırma yenilikləri

1,394

Published on

Oracle 11g PL/SQL proqramlaşdırma yeniliklər haqda qısa məlumat

Oracle 11g PL/SQL proqramlaşdırma yeniliklər haqda qısa məlumat

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,394
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
36
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. • Ramin Orucov Oracle 11g PL/SQLproqramlaşdırma yenilikləri 28 İyul 2012 Qafqaz Universiteti
  • 2. Planı 1 2 3 4 Dilyenilikləri Performans yenilikləri Yeni funksional imkanlar Digər yeniliklər
  • 3. 1 Dil yenilikləri
  • 4. Dil yenilikləri• SEQUENCE istifadəsi• CONTİNUE əmri• Qarışıq parameter dəstəyi• FORALL bulk bind atribute dəstəyi
  • 5. SEQUENCEDECLARE l_new_id NUMBER;BEGIN -- Kohne sequence istifade sintaksisi SELECT employees_seq.NEXTVAL INTO l_new_id FROM DUAL; DBMS_OUTPUT.put_line (New id = || l_new_id);END;DECLARE l_new_id NUMBER;BEGIN -- Yeni sequence istifade sintaksisi l_new_id := employees_seq.NEXTVAL; DBMS_OUTPUT.put_line (New id = || l_new_id);
  • 6. CONTINUEbegin -- CONTINUE for k in 1 .. 20 loop if mod(k, 2)=0 then continue; end if; dbms_output.put_line(k); end loop;end;begin -- CONTINUE WHEN for k in 1 .. 20 loop continue when mod(k, 2)=0; dbms_output.put_line(k); end loop;end;
  • 7. Qarışıq parameter dəstəyicreate or replace function full_name(p_first_name in varchar2, p_last_name in varchar2)return varchar2isbegin return p_first_name || || p_last_name;end full_name;select employee_id, full_name(first_name, last_name) employee, salaryfrom hr.employees -- Yeni imkanselect employee_id, full_name(p_first_name => first_name, p_last_name=> last_name) employee, salary from hr.employees select employee_id, full_name(p_last_name => last_name, p_first_name=> first_name) employee, salary from hr.employeesselect employee_id, full_name(first_name, p_last_name => last_name) employee, salary from hr.employees
  • 8. FORALL bulk bind atribute dəstəyideclare type employee_aat is table of hr.employees%rowtype index by pls_integer; l_employees employee_aat;begin select * bulk collect into l_employees fromhr.employees; forall i in 1..l_employees.count update hr.employees set salary = l_employees(i).salary - 100 where employee_id =l_employees(i).employee_id; dbms_output.put_line(SQL%ROWCOUNT || rowsupdated);end;
  • 9. FORALL bulk bind atribute dəstəyiOracle ErrorORA-06550: line 9, column 22:PLS-00436: implementation restriction: cannotreference fields of BULK In-BIND table of recordsORA-06550: line 9, column 22:PLS-00382: expression is of wrong type
  • 10. 2 Performans yenilikləri
  • 11. Performans yenilikləri• PL/SQL native compilation• SİMPLE_İNTEGER• Fine grained dependency tracking• RESULT CACHE• COMPOUND trigger• İntra-unit inline
  • 12. PL/SQL Native compilation• PVM – PL/SQL Virtual Machine• Oracle 9i, 10g – C compiler, OS linker, loader proqramları• Plsql_Code_type
  • 13. SİMPLE_İNTEGEROracle 11g VBİS-də yeni SIMPLE_INTEGER adlı ədəd tipiəlavə edilmişdir, onun qiymət aralığı -232 və 232-1 intervalındaola bilər, NULL qiyməti qəbul etmir.Bu intervalın alt sərhədini keçəndə qiymət avtomatik olaraq üstsərhədə bərabər olur, oxşar şəkildə də üst sərhədi keçəndəonun qiyməti avtomatik alt sərhədin qiymətinə bərabər olur.Oracle şirkəti PLS_İNTEGER tipinin əvəzinə yeniSİMPLE_İNTEGER tipini istifadə etməyi tövsiyə edir. Bu tipdəolan dəyişkənlər ilə hesablamalar daha sürətli olur. Sadə testlərəsasında aşağıdakı sürət fərqlərini demək olar:INTERPRETED rejimdə PLS_İNTEGER-ə görə 10%,NUMBER tipinə görə isə 2-2.5 dəfə daha sürətli işləyir.NATİVE rejimdə isə PLS_İNTEGER-ə görə 8-10 dəfə,NUMBER tipinə görə isə 30 dəfə daha sürətli işləyir.
  • 14. RESULT_CACHECREATE OR REPLACE FUNCTION get_employee(p_employee_id IN employees.employee_id%TYPE) RETURN employees%ROWTYPE RESULT_CACHE RELIES_ON (employees)IS l_employee employees%ROWTYPE;BEGIN SELECT * INTO l_employee FROM employees WHERE employee_id = p_employee_id; RETURN l_employee;EXCEPTION WHEN NO_DATA_FOUND THEN /* Return an empty record. */ RETURN l_employee;END get_employee;
  • 15. COMPOUND TRIGGERCREATE TRIGGER trigger_nameFOR [INSERT | UPDATE | DELETE] OF [COLUMN] ON[TABLE]COMPOUND TRIGGERBEFORE STATEMENT ISBEGIN…END BEFORE STATEMENT;AFTER STATEMENT ISBEGIN…END AFTER STATEMENT;BEFORE EACH ROW ISBEGIN…END BEFORE EACH ROW;
  • 16. 3 Yeni funksional imkanlar
  • 17. Yeni funksional imkanlar• Triggerlərin işləmə sırası• DBMS_SQL CLOB dəstəyi• DBMS_SQL təhlükəsizlik• UTL_* paketləri üçün səlahiyyət
  • 18. Triggerlərin işləmə sırasıİlk dəfə Oracle 11g VBİS-də bir cədvəl üzərində olan triggerlərinişləmə ardıcıllığını təyin etmək mümkün oldu, bunun üçün yeniFOLLOWS adlı açar söz əlavə edildi.create table test_table( x number);create or replace trigger trigger1after insert on test_tablefor each rowbegin dbms_output.put_line(Trigger1 - value = || :NEW.x);end trigger1; 
  • 19. Triggerlərin işləmə sırasıcreate or replace trigger trigger2after insert on test_tablefor each rowfollows trigger1begin dbms_output.put_line(Trigger2 - value = || :NEW.x);end trigger2;create or replace trigger trigger3after insert on test_tablefor each rowfollows trigger2begin dbms_output.put_line(Trigger3 - value = || :NEW.x);end trigger3;
  • 20. Triggerlərin işləmə sırasıinsert into test_table values(1);insert into test_table values(2);insert into test_table values(3);NəticəTrigger1 - value = 1Trigger2 - value = 1Trigger3 - value = 1Trigger1 - value = 2Trigger2 - value = 2Trigger3 - value = 2Trigger1 - value = 3Trigger2 - value = 3Trigger3 - value = 3
  • 21. 4 Digər yeniliklər
  • 22. Digər yeniliklər• PL/SQL hierarchical profiler• PL/Scope
  • 23. Qaynaqlar• Sam R. Alapati, Charles Kim, Oracle Database 11g - New Features for DBAs and Developers, Apress• http ://docs.oracle.com/cd/E14072_01/appdev.112/e10472/whatsnew.htm• http ://www.oracle.com/technology/tech/pl_sql/pdf/PL/SQL_new_in_11gr1.pdf , Oracle White Paper, PL/SQL Enhancements in Oracle Database 11g• http:// docs.oracle.com/cd/E11882_01/appdev.112/e10471/adfns_dependencies.h• http:// www.oracle.com/technetwork/articles/sql/11g-efficient-coding-093640.html• http://www.oracle-developer.net/display.php?id=507
  • 24. ƏlaqəWeb site: www.azeroug.orgBloq: raminorucov.wordpress.comFacebook: www.facebook.com/ramin.orucov

×