..
Görev sys.all_objects görüntüsü verisini dbms_obfuscation_toolkit destek paketi ile sifreleyerek isletim sistemine text file olarak utl_file destek paketi ile yazan pl/sql paketinin ilgili moduller ile hazirlanmasi. Ve bu yazilan kodun dbms_job destek paketi ile her saat basi otomatik calismasini saglamalisiniz.
Kodu yazarken IDE olarak pl/sql developer indirip kullanmaya yavas yavas baslamanızı rica ediyorum; http://www.allroundautomations.nl
icindeki Beautifier ‘ın özelliklerini ayarlayarak standart, okunabilir bir kod hazırlamasını bekliyorum. Referans olması için bizim genel olarak veritabanı uygulaması geliştirirken uyguladigimiz kuralları da gonderiyorum; “ORACLE UYGULAMA GELİŞTİRME STANDARTLARI v1.doc”
Bazı dikkat edilmesi gereken noktalar sunlar;
- plsql sentaksı java sentaksından farklıdır, ornegin değişkenler ve işlev isimlerinde “_” ile ayırıyoruz, dbms_random oracle paketini plsql developer ile goruntuleyip inceleminizi oneririm.
- Hazirlanacak bu paket içinde commit kullanMAyın, bir standart olarak asla başkalarının çağırabileceği dış dünyaya açtığın uygulamalarda commit/rollback kullanMAmak gerekir, zira farkında olmayan çağırıcının tüm transaction mantığını yok eder bu yaklaşım. Dikkat..
- Benzer durum exceptionlar icin de gecerli, exception dondu ise cagiran handle etmeli. Transaction ve exception handling cagiricinin sorumlulugudur aksi belirtilmedi ise.
- Yine Spec kısmında sadece dışardan çağırılacak işlevleri belirtmek gerek. Diger body ‘deki islevleri boylece saklamis oluyoruz.
- Hard-coding den kacinalim; mesela utl_file.fopen da file_name, path, open_mode ‘da degerler arguman olsun, statik olmasin. Hard coding ‘den olabildiğince kaçınmak lazım esnek bir uygulama olması ve tekrar tekrar kullanılabilmesi için.
- Aynı amaç için paket içinde bir isi yapan esnek alt moduller kullanmak gerek. Ornegin paketin icinde utl_file ile dosya acma islemini bir modul yapsin, yazma ve kapama islemlerini baska moduller yapsin gibi.
- Okunaklı bir kod olmasi cok onemli, aciklamalar olmali, bu uzun vadede başkalarının da uygulamana mudahele etmesini rahatlatacaktır, hatta bir-iki sene sonra kendi kodunu bile zor anliyor bu aciklayici satirlar olmayınca insan
- İncelemek isterseniz PL/SQL Developer alternatifi bazı IDE ler sunlar(google’da aratabilirsiniz); SQL Navigator(Quest), TOAD(Quest), SQL Developer(Oracle-ucretsiz), JDeveloper(Oracle-ucretsiz-UML
Oracle® Database SQL Reference 10g Release 2 (10.2)
http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/toc.htm
Oracle® Database PL/SQL User’s Guide and Reference 10g Release 2 (10.2)
http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14261/toc.htm
Oracle® Database Application Developer’s Guide – Fundamentals 10g Release 2 (10.2)
http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14251/toc.htm
Oracle® Database PL/SQL Packages and Types Reference 10g Release 2 (10.2)
http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14258/toc.htm
OTN PL/SQL Sample Codes
http://www.oracle.com/technology/sample_code/tech/pl_sql/index.html
Best Practice PL/SQL with Steven Feuerstein
http://www.oracle.com/technology/pub/columns/plsql/index.html
OTN PL/SQL Homepage
http://www.oracle.com/technology/tech/pl_sql/index.html
Discussion Forums » Database » SQL and PL/SQL
http://forums.oracle.com/forums/forum.jspa?forumID=75
OTN Oracle Database Application Development Homepage
http://www.oracle.com/technology/products/database/application_development/index.html
uyari 1) utl_file hatasi ile ilgili;
Warning: Package Body created with compilation errors.
HR on 23/12/2006 13:26:30 at XE > sho err
Errors for PACKAGE …
LINE/COL ERROR
——– —————————————————-
2/12 PL/SQL: Item ignored
2/12 PLS-00201: identifier ‘UTL_FILE’ must be declared
…
– sys ile grant verip sorunu cozdum;
on 23/12/2006 13:28:54 at > conn sys/tonguc as sysdba
Connected.
SYS on 23/12/2006 at XE > grant all on utl_file to public ;
Grant succeeded.
Elapsed: 00:00:00.18
SYS on 23/12/2006 at XE > conn hr/hr
Connected.
HR on 23/12/2006 at XE > CREATE OR REPLACE PACKAGE BODY ….
uyari 2) Exception Handling konusu cok cok onemli;
Plsql soz konusu oldugunda tahiti belgeleri yaninda Steven Feuerstein yol gosterenimizdir bir sunumu paylasiyorum; www.quest.com/presentations/ExceptionHandling.pdf
Oracle® Database PL/SQL User’s Guide and Reference 10g Release 2 (10.2)
Chapter 10 Handling PL/SQL Errors
http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14261/errors.htm#LNPLS00702
uyari 3) bu gorevi yaparken bu belgeyi benden email ile istemelisiniz;
“ORACLE UYGULAMA GELİŞTİRME STANDARTLARI v1.doc”
..