ORACLE SEQUENCE(OTOMATIK SAYI)

Oracle da access yada Ms sql dekine benzer otomatik arttırma diye birşey yoktur.Bunu yapmak için siz kendiniz sequences yaratmalısınız.

CREATE SEQUENCE sequence_name
MINVALUE value
MAXVALUE value
START WITH value
INCREMENT BY value
CACHE value;

Örneğin:

CREATE SEQUENCE supplier_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;

Burada MINVALUE en küçük MAXVALUE en büyük değer koşuludur.MAXVALUE zorunlu değildir.Atanmazsa varsayılan olarak 999999999999999999999999999 değerini alır.START WITH başlangıç değerini INCREMENT BY her seferinde ne kadarlık bir değer artışı olacağını gösterir.CACHE ise sequnece işleminin performans açısından daha hızlı olması için bellekte tutulacak değerdir.NOCACHE bellekte tutulmayacağı demektir.Sequencesin bir sonraki değerine ulaşmak için sequence_name.nextval ile erişilebilir.

INSERT INTO musteriler
(musteri_id, musteri_name)
VALUES
(supplier_seq.nextval, ‘Ali Çetinkaya’);

Normalde değerler Increment By da belirtilen kadar artar mesela diyelim ki bu değer 1 olsun ve son kullanılan değer 100 olsun. Biz bir sonraki insert işleminde 255 atamak istiyorsan Alter ifadesi ile sequence i değiştirmemiz gerekir.

alter sequence seq_name
increment by 124;

select seq_name.nextval from dual;

alter sequence seq_name
increment by 1;

Böylece bir sonraki değer 255 olacak ve sonra yine 1 artacaktır.
spacer

ORACLE INSTR FONKSIYONU

Bir string te aranan karakterin index ini döndürür.

instr( string1, string2 [, start_position [, nth_appearance ] ] )

string1 arama yapılacak string, string2 aranacak karakter,start_position kaynak stringin hangi karakterinden itibaren aramaya başlanacağı gösterir.Eğer negatif olursa tersten aramaya başlar.nth_appearance aranan o kararkterin kaçıncısının indexini döndüreceğini gösterir.start_position ve nth_appearance zorunlu değildir.Girilmezse varsayılan olarak 1 dir.Eğer aranan karakter bulunmazsa geriye sıfır döndürülür.

select instr(‘ABDULAHCETINKAYA’,'A’) sonuc from dual; sonuc:1

select instr(‘ABDULAHCETINKAYA’,'A’,2) sonuc from dual; sonuc:6

select instr(‘ABDULAHCETINKAYA’,'A’,1,3) sonuc from dual; sonuc:14

select instr(‘ABDULAHCETINKAYA’,'A’,-1) sonuc from dual; sonuc:16

select instr(‘ABDULAHCETINKAYA’,'A’,-1,2) sonuc from dual; sonuc:14

select instr(‘ABDULAHCETINKAYA’,'A’,-2,2) sonuc from dual; sonuc:6
spacer

ORACLE MINUS KULLANIMI

İki sorgu sonucu dönen değerlerin kıyaslanarak ayıklanması için kullanılır.

SELECT DIFFERENCE FROM NORTHI_TESTER.BSS_CONTROL
MINUS
SELECT DIFFERENCE FROM NORTHI_TESTER.BSS_CONTROL WHERE DIFFERENCE =77

ilk sorgu geriye 34 ve 77 döndürsün.ikinci sorgu 77 döndürdüğünden sonuç olarak elde edilen değer 34 olur.
spacer

CMD KISAYOLLARI

msconfig
regedit
ping
services.msc
slmgr.vbs -dlv
slmgr.vbs -ipk
cmd
slmgr.vbs -ato
slmgr.vbs -atp
slmgr.vbs -dti
slmgr.vbs -ilc
slmgr.vbs -cpky
slmgr.vbs -xpr
slmgr.vbs -dlv
slmgr.vbs -dli
slmgr.vbs -upk
gpedit.msc
compmgmt.msc – Bilgisyar Yöneticisi
devmgmt.msc – Aygıt Yöneticisi
diskmgmt.msc – Disk Yöneticisi
dfrg.msc – Disk birleştirme
eventvwr.msc – Olay Görüntülüyicisi
fsmgmt.msc – Paylaşılan Dosyalar
gpedit.msc – Grup Poliçeleri
lusrmgr.msc – Yerel Kullanıcılar ve Gruplar
perfmon.msc – Performans Monitörü
rsop.msc – Poliçe Sonuçarını Ortaya koymak
secpol.msc – Yerel Güvenlik Ayarları
services.msc – Çeşitli Servisler
msconfig – Sytem Bilgisi Hizmetleri
regedit – - Kayıt Defteri Editörü
msinfo32 – Sistem bilgisi
sysedit – Sistem Şekli Editörü
win.ini – Windows Yükleme Bilgisi
winver – Şu anki Wİndows Sürümünü Görüntüle
mailto: – Varsayılan E-mail alıcısı Görüntüle
cmd – Komut satırını çalıştır

Denetim Masası Öğeleri İçin Çalıştır Komutları

Program Ekle Kaldır / control appwiz.cpl
Tarih Saat özellikleri /control timedate.cpl
Ekran özellikleri / control desk.cpl
Hızlı bul / control findfast.cpl
Fontlar / control fonts
İnternet Özellikleri /control inetcpl.cpl
Klavye özellikleri /control main.cpl keyboard
Mouse Özellikleri / control main.cpl
Multimedya Özellikler /control mmsys.cpl
Ağ Özellikleri / control netcpl.cpl
Şifre özellikleri / control password.cpl
Printer /control printers
Ses Özellikleri / control mmsys.cpl sounds
Sistem Özellikleri /control sysdm.cpl


Windows XP Shortcuts

ALT+ENTER / seçili ögelerin özellikleri
ALT+ESC / en son acılan ıtem lerı gecıs saglar
ALT+F4 / aktif pencerelerı kapatır
ALT+SPACEBAR / aktif sayfanın menusu
ALT+TAB / menuler arasında geçiş
BACKSPACE / bir önceki sayfaya geçiş
CTRL+A / hepsini seç
CTRL+B / kalın yazı
CTRL+C / kopyala
CTRL+I / italik
CTRL+O / dosya açma
CTRL+U / alt cızgı
CTRL+V / yapıştır
CTRL+X / kes
CTRL+Z / geri tusu
CTRL+F4 / dökümanları kapatır
CTRL while dragging / seçili ögeleri tutar
CTRL+SHIFT while dragging / seçili ögeleri kısayol oluşturur
SHIFT+DELETE / çöp kutusuna atmadan siler
ESC / ıslemlerı durdurur
F1 / help
F2 / seçili öğenin ismini degiştirme
F3 / arama dosya ve klasörlerde
F4 / adres çubuğunu açar
F5 / yenileme
F6 / adres çubuğuna gider
F10 / active sayfalarda çubuğa gider “dosya eklemek araçlar filan”
SHIFT+F10 / sağ tıkladıgınızda açılan menu
CTRL+ESC / start menusu
SHIFT+CTRL+ESC / görev yönetıcısı
WIN / start menüsü
WIN+BREAK / sistem özellikler menüsü
WIN+D / bütün aktif sayfalari küçültme
WIN+E / bilgisayarımı açar
WIN+F / arama dosya ve klasörlerde
WIN+F+CTRL / bilgisayarımda arama
WIN+L / kullanıcı degiştirme kapatmadan
WIN+M / küçültme veya restore etme sayfaları
WIN+R / çalıştırı açar
WIN+TAB / açık olan sayfalarda geçiş

Windows Explorer Shortcuts

ALT+SPACEBAR / aktif sayfanın menüsü
CTRL+ESC / windows menusu
ALT+F4 / windows penceresini ve cerayann eden olayları kapatır
CTRL+A / bütün parçaları seçer
CTRL+X / seçili kısmı keser
CTRL+C / seçili kısmı kopyalar
CTRL+V / seçili kısmı yapıştırır
CTRL+Z / geri döner son yapılana
CTRL+(+) / sutun icindeki pencereleri otomatik olarak dogru sıralar
TAB / 7 sutun atlatma yada digger seçili ögeye geçme
SHIFT+DELETE / direk silme
BACKSPACE / bir önceki sayfaya yada slime işlemi
ALT+ENTER / seçili ögelerin özellikleri
F10 / aktif sayfanın menusu
F6 / adress bara gider /
F5 / sayfayı yenıler
F3 / arama ögesi
F2 / ismini degistirme seçili ögenin

Internet Explorer Shortcuts

CTRL+A / bütün sayfanın seçimi
CTRL+D / favorite ekler
CTRL+E / aktif sayfada arama yapar
CTRL+F / sayfada bulma
CTRL+H / geçmiş sayfasını açar
CTRL+I / favorite sayfalarının oldugu kısmı açar
CTRL+N / yeni pencere açar
CTRL+O / yenı lokasyonlar gider
CTRL+P / printer menusu
CTRL+S / degisiklikleri kaydeder
CTRL+W / aktif sayfayı kapatır
CTRL+ENTER/ basına www ve sonuna .com koymayı yapar

SHIFT+CLICK / yeni pencerede açar
BACKSPACE / bir önceki sayfaya gider
ALT+HOME / anasayfaya gider
HOME / sayfanın başına gider
TAB / Itemler arasında atlamayı sağlar
END / sayfanın sonuna gider
ESC / açılan sayfayı sonlandırır
F11 / tam ekran yapar sayfayı
F5 / sayfayı yeniler
F4 / adress barı açar
F6 / adress bara gider
ALT+RIGHT ARROW / ileri sayfaya götürür
SHIFT+CTRL+TAB / address bara gider
SHIFT+F10 / sağ tus olayı
SHIFT+TAB / geri tab olayı
CTRL+C / kopyalama
CTRL+V / yapıştırma
ENTER / aktif etmek /
F1 / internet explorer help

telefon için kodlar =

*#06# IMEI
*#0000# view Software Version
*#746025625# [*#sim0clock#]
*#92702689# [*#war0anty#] secret menu:
1. Displays Serial Number
2. Displays the Month and Year of Manufacture (0997)
3. Displays (if there) the date where the phone was purchased
4. Displays the date of last repairment – if found (0000)
5. Makes you capebel of transferring user data
6. Shows how many hours the phone has been on

*3370# Enhanced Full Rate Codec (EFR) activation
#3370# Enhanced Full Rate Codec (EFR) deactivation
*4370# Half Rate Codec activation
#4370# Half Rate Codec deactivation
xx# – xx position in Phone Book

NOKIA 9000

*#06# IMEI
*#682371158412125# soft version
*#3283# prod. date

NOKIA 7650

*#7979# phone reset
*#7470# hard reset
*#7370# master reset (like new phone



*#06# Seri No’yu Gösterir
*#0000# Versiyonu Gösterir
*#7760# Üretim Seri numarasını gösterir
*#92702689# Garanti bilgileri gösterme ve düzenleme
*#2820# Bluetooth bilgilerini gösterir
*#73# Telefondaki oyunların skorlarını ve zamanlarını sıfırlar
*#335738# Mobil operatörden alınan SMS ve MMS ve GPRS’den alınmış profilleri siler
*#7370925538# Tüm cüzdan ve cüzdan kotlarını siler
*#7780# Fabrika ayarlarına geri döner
*#7370# Soft format
[Yeşil tuş]*3 Hard format

Nokia 3310 Secret codes
Jul, 08 2003 – 06:20
contributed by: mef
*#06# To find IMEI (International Mobile Equipment Identity)

*#7780# Restores Factory Settings..(Memory, language, counters not included)

*#3110# For checking the phone’s software (SW) – called firmware revision information.

*#746025625# [*#sim0clock#] To check if the Sim-Clock can be Stopped (Sim-clock-stop is a kind of standby mode which will save battery time)

*#92702689# [*#war0anty#] Phone asks ‘warranty code:’

6232 (OK) Displays the Month and Year of Manufacture

9268 (OK) Displays Serial Number

7332 (OK) Displays the date of the last repairment – if found

7832 (OK) Displays (if found) the date where the phone was purchased

37832 (OK) Set the Purchasing Date MMYY (This date can be set only once!)

87267 (OK) Transfers ALL phone numbers, Logo’s, and ringtones from other gsm phones

Nokia 101 cell phone lockcode
Jul, 10 2000 – 02:35
Nokia 101 cell phones set up by Bell Mobility in Toronto can have their lock code circumvented by the following method:

Type: * 3001 # 12345 [STO] 00
Wait for: NOT DONE
Type: [RCL] 01
Clear old lock code (the last four digits) and enter a new lock code. Be very careful not to delete other characters.

Type: [STO] 01 [STO]
Turn power off.

Nokia 9000/9000i
Nov, 25 2000 – 22:41
To view IMEI number *#06#
To view Software Version enter *#8110# Latest Version is under Phone Info.
To view Week and Year of manufacture enter *#3283#

Samsung SGH-600 / SGH-2100
Secret Codes

*#06# -> Show IMEI
*#9999# -> Show Software Version
*#0837# -> Show Software Version (instructions)
*#0001# -> Show Serial Parameters
*#9125# -> Activates the smiley when charging.

*#9998*228# -> Battery status (capacity, voltage, temperature)
*#9998*246# -> Program status
*#9998*289# -> Change Alarm Buzzer Frequency
*#9998*324# -> Debug screens
*#9998*364# -> Watchdog
*#9998*377# -> EEPROM Error Stack – Use side keys to select values. Cancel and ok.
*#9998*427# -> Trace Watchdog
*#9998*523# -> Change LCD contrast – Only with version G60RL01W
*#9998*544# -> Jig detect
*#9998*636# -> Memory status
*#9998*746# -> SIM File Size
*#9998*778# -> SIM Service Table
*#9998*785# -> RTK (Run Time Kernel) errors – if ok then phn is reset, info is put in memory error. *#9998*786# -> Run, Last UP, Last DOWN
*#9998*837# -> Software Version
*#9998*842# -> Test Vibrator – Flash the screenligth during 10 seconds and vibration activated.
*#9998*862# -> Vocoder Reg – Normal, Earphone or carkit can be selected
*#9998*872# -> Diag
*#9998*947# -> Reset On Fatal Error
*#9998*999# -> Last/Chk

*#9998*9266# -> Yann debug screen (=Debug Screens?)
*#9998*9999# -> Software version

*0001*s*f*t# -> Changes serial parameters (s=?, f=0,1, t=0,1) (incomplete)
*0002*?# -> unknown
*0003*?# -> unknown

Nokİa Gİzlİ Kodlar

——————————————————————————–

*#0000# telefonun versiyonunu öğrenirsin

*#92702689# s60 telefonlar hariç nokia modellerinde servis menüsünü açar. üretim tarihini, kaç gün kullanıldığını, kaç kez tamir edildiğini görebilirsin.

Nokia code

These Nokia codes will work on most Nokia mobile phones, however we accept no responsibility of any kind for damage done to your phone whilst trying these Nokia secret codes.

Nokia code Code ********
*3370# This Nokia code activates Enhanced Full Rate Codec (EFR) – Your Nokia cell phone uses the best sound quality but talk time is reduced my approx. 5%
#3370# Deactivate Enhanced Full Rate Codec (EFR)
*#4720# Activate Half Rate Codec – Your phone uses a lower quality sound but you should gain approx 30% more Talk Time
*#4720# With this Nokia code you can deactivate the Half Rate Codec
*#0000# Displays your phones software version, 1st Line : Software Version, 2nd Line : Software Release Date, 3rd Line : Compression Type
*#9999# Phones software version if *#0000# does not work
*#06# For checking the International Mobile Equipment Identity (IMEI Number)
#pw+1234567890+1# Provider Lock Status. (use the “*” button to obtain the “p,w” and “+” symbols)
#pw+1234567890+2# Network Lock Status. (use the “*” button to obtain the “p,w” and “+” symbols)
#pw+1234567890+3# Country Lock Status. (use the “*” button to obtain the “p,w” and “+” symbols)
#pw+1234567890+4# SIM Card Lock Status. (use the “*” button to obtain the “p,w” and “+” symbols)
*#147# This lets you know who called you last (Only vodofone)
*#1471# Last call (Only vodofone)
*#21# This phone code allows you to check the number that “All Calls” are diverted to
*#2640# Displays phone security code in use
*#30# Lets you see the private number
*#43# Allows you to check the “Call Waiting” status of your cell phone.
*#61# Allows you to check the number that “On No Reply” calls are diverted to
*#62# Allows you to check the number that “Divert If Unreachable (no service)” calls are diverted to
*#67# Allows you to check the number that “On Busy Calls” are diverted to
*#67705646# Phone code that removes operator logo on 3310 & 3330
*#73# Reset phone timers and game scores
*#746025625# Displays the SIM Clock status, if your phone supports this power saving feature “SIM Clock Stop Allowed”, it means you will get the best standby time possible
*#7760# Manufactures code
*#7780# Restore factory settings
*#8110# Software version for the nokia 8110
*#92702689# Displays – 1.Serial Number, 2.Date Made, 3.Purchase Date, 4.Date of last repair (0000 for no repairs), 5.Transfer User Data. To exit this mode you need to switch your phone off then on again
*#94870345123456789# Deactivate the PWM-Mem
**21*number# Turn on “All Calls” diverting to the phone number entered
**61*number# Turn on “No Reply” diverting to the phone number entered
**67*number# Turn on “On Busy” diverting to the phone number entered
12345 This is the default security code
press and hold # Lets you switch between lines

*#7370825538# (*#res_wallet) ____ M-Cüzdan kodunu ve içeriğini sıfırlar
*#335738# 6230i ile ilgili birşeymiş ama ne olduğunu denemedim
*#2820# Bluetooth adresini gösterir
*35*0000# bloke__ kimse arayamaz seni
#35#0000# BLOKE iptal
*#7370# format
*#65220# ————–
*#2820# – bluetooth cihaz adresi
*21*telno# yes – tüm Yönlendir
*21*11*telno# yes – tüm Ses yönlendir
*21*25*telno# yes – tüm Data yönlendir
*21*13*telno# yes – tüm Fax yönlendir
*67*telno# yes – mesgul ise yönlendir
*61*tel*s cevap yoksa s saniye sonra yönlendir
*62*telno# yes kapsamdisi ise yönlendir
#002#tüm yönlendirme iptal
*43#aramaBekletme
#330*0000# arama engelleme iptal
#31#telno yes – numara gösterme iptali
**04*eski pin*yeni pin*yeni pin# – pin değiştirme
**042*eski pin2*yeni pin2*yeni pin2# – pin2 değiştirme
**05*puk*yeni pin*yeni pin# – pin blok kaldırma
**05*puk2*yeni pin2*yeni pin2# – pin2 blok kaldırma

NOKIA 3210 – 5110 – 6110 kodlari:

Telefonunuzun IMEI numarasini öğrenmek için * # 0 6 # tu$layiniz.

Telefonunuzun software versiyonunu görüntülemek için * # 0 0 0 0 # tu$layin.

Telefonunuzun imal tarihini, seri numarasini, varsa son tamir tarihinini, vs görmek için
* # 9 2 7 0 2 6 8 9 # tu$layin.

Arama kalitesini arttirmak (baterya ömrünü azaltir) için * 3 3 7 0 # tuşlayın. Kapatmak içinse
# 3 3 7 0 # tu$layın.

Arama kalitesini dü$ürmek (batarya ömrünü artirir) için * 4 7 2 0 # tu$layin. Kapatmak için
# 4 7 2 0 # tu$layin.

NOKIA 6150

Telefonunuzun IMEI numarasini öğrenmek için * # 0 6 # tu$layiniz.

Telefonunuzun software versiyonunu görüntülemek için * # 0 0 0 0 # tu$layin.
*#746025625# – [*#sim0clock#]
Sim Clock istendigi takdirde kapatilabilir bu da bataryadan enerji kaybini azaltir. Versiyon 4.59 da chali$mamaktadir.

*#92702689 – [*#war0anty#]
Telefonunuzun garanti kodunu ogrenebilirsiniz.. Menü ye bakabilirsiniz..

Menü:

Telefonun seri numarasini görün
Üretim tarihini görün (ör. 0997)
Son modifiye tarihini görün
Telefonunuzdaki tüm telefon muaralarini, resimlerinizi , zillerinizi ba$ka telefona transfer edebilirsiniz
*3370# Telefon kapatildiktan sonra, EFR yi aktif hale getirir, EFR seslerin daha kaliteli chikmasini saglar fakat normalden daha fazla batarya tüketimi olu$ur. 5% daha uzun konu$ma süresi werir.
#3370# Telefon kapatildiktan sonra, EFR yi kapatir.

*4720# Telefon kapatildiktan sonra, HRC yi aktif hale getirir, HRC seslerin daha kalitesiz chikmasini saglar fakat normalden daha az batarya tüketimi olu$ur.
#4720# Telefon kapatildiktan sonra, HRC yi kapatir..

ilginch Bir Kapatma Yöntemi
Bazi Telefonlar yanli$ telefon numarasi $eklinmde bir hata weriyor o zaman bu kodu kullanamazssiniz..!!

Ajanda menusune gidin (Calendar) (menu -
Make note / reminder
Kutu nun ichine birr$eyler yazin
Yazdiginiz her$ey silinene kadar silme tuuna basin. dah sonra geri tu$una basin..
0 a basin.
4 rakam girin (1234 misal)
2 kere a$agi ok tu$una basiniz
$imdi 6 basamak girin ve ye$il tu$a basin “Arama Tu$u”.
Biraz bekleyin telefon yanip yanip sönecek ve aniden kapanicak…
V5.20 20-09-99 NSM-1 versionlarda chalı$mamaktadir.

NOKIA 8810

Telefonunuzun IMEI numarasini öğrenmek için * # 0 6 # tu$layiniz.

Telefonunuzun software versiyonunu görüntülemek için * # 0 0 0 0 # tu$layin.

*#746025625# – [*#sim0clock#]
Sim Clock istendigi takdirde kapatilabilir bu da bataryadan enerji kaybini azaltir. Versiyon 4.59 da chali$mamaktadir.

*#92702689 – [*#war0anty#]
Telefonunuzun garanti kodunu ogrenebilirsiniz.. Menü ye bakabilirsiniz..

Menü:

Telefonun seri numarasini görün
Üretim tarihini görün (ör. 0997)
Son modifiye tarihini görün
Telefonunuzdaki tüm telefon muaralarini, resimlerinizi , zillerinizi ba$ka telefona transfer edebilirsiniz
*3370# Telefon kapatildiktan sonra, EFR yi aktif hale getirir, EFR seslerin daha kaliteli chikmasini saglar fakat normalden daha fazla batarya tüketimi olu$ur. 30% daha uznu konu$ma süresi werir.
#3370# Telefon kapatildiktan sonra, EFR yi kapatir.

*4720# Telefon kapatildiktan sonra, HRC yi aktif hale getirir, HRC seslerin daha kalitesiz chikmasini saglar fakat normalden daha az batarya tüketimi olu$ur.
#4720# Telefon kapatildiktan sonra, HRC yi kapatir
spacer

SEQUENCE'DE CYCLE KULLANIMI

Merhaba,

Daha önce sequence in ne olduğuna bakmıştık.Kısaca hatırlayacak olursak oracle db de tablolar için unique alan istiyorsak otomatik sayı üretimi için sequence kullanılır.Sequence başlangıç değerinden başlar ve bitiş değerine kadar gider.Her sequence çalıştırıldığı zaman son olan değer artması gereken değer kadar arttırılır.Normalde cycle kullanmadan bir sequence yaratalım ve daha sonra cycle kullanarak bir sequence yaratalım böylece sequence de cycle kullanımını daha iyi anlamış oluruz.

create sequence normal_sequence
minvalue 1
maxvalue 7
start with 1
increment by 1
cache 20;

Şimdi bu sequenci çalıştıralım.

select normal_sequence.nextval from dual;

bu sorguyu her çalıştırdığımızda sırayla 1,2,3,4,5,6,7 değerlerini alırız.Fakat 8.çalıştırdığımız zaman sequence için bir sonraki değer 8 olmuş olur ve maxvalue değeri olan 7 aşılmış olur.Bu durumda oracle “ORA-08004: sequence NORMAL_SEQUENCE.NEXTVAL exceeds MAXVALUE and cannot be instantiated” diye hata verecektir.

Aynı sequence i cycle ile yeni isimde create edelim.

create sequence cycle_sequence
minvalue 1
maxvalue 7
start with 1
increment by 1
cache 6
cycle;

Şimdi bu sequence i çalıştıralım.

select cycle_sequence.nextval from dual;

ilk 7 değer için diğer sequence ile aynı değerleri üretecektir.Yani 1,2,3,4,5,6,7 fakat 8. çalıştırığımız zaman hata vermeyecek ve yeniden sequence başa dönüp 1 değerini üretecektir.Burada dikkat edilmesi gereken bir diğer nokta cycle kullanıldığı sequence de cache değeri bir döngü değerinden küçük olmalıdır.
spacer

Oracle Pivot Fonksiyonu

Merhaba,
Bazen öyle bir durumla karşılaşırsınız ki satırlarınızın sütun olmasını istersiniz işte o zaman pivot fonksiyonu yardımınıza koşar.pivot fonksiyonu Oracle 11 g ile gelmiştir.
create table pivot_ex (
  a  varchar2(10),
  b  number,
  c  char(1)
);

pivot_ex adındabir tablo create ettik.kayıt ekleyelim.
insert into pivot_ex values ('foo',  1, 'y');
insert into pivot_ex values ('foo',  2, 'y');
insert into pivot_ex values ('foo',  3, 'y');
insert into pivot_ex values ('foo',  4, 'y');
insert into pivot_ex values ('foo', 99, 'n');
insert into pivot_ex values ('bar',  9, 'y');
insert into pivot_ex values ('bar', 11, 'y');
insert into pivot_ex values ('bar',-42, 'n');
insert into pivot_ex values ('baz', 30, 'y');
insert into pivot_ex values ('baz', 70, 'n');

şimdi eklediğimiz kayıtları görelim.

select * from pivot_ex;

 A     B    C
foo    1    y
foo    2    y
foo    3    y
foo    4    y
foo    99   n
bar    9    y
bar    11   y
bar   -42   n
baz    30   y
baz    70   n

select
 alan1, alan2, alan3
from pivot_ex
 pivot(
 sum(b) for a in ('foo' alan1,'bar' alan2,'baz' alan3)
 )
where c = 'y';

sorgusu ile satırları sütun yapmış olduk  a alanı için her bir değer için varolan değerlerin toplamını
sum fonksiyonu ile aldık ve gösterdik.
ALAN1 ALAN2 ALAN3
 10    20    30

Burda sum yerine max,min,avg gibi fonksiyonlarıda kullanabiliriz.
select
 alan1, alan2, alan3
from pivot_ex
 pivot(
 min(b) for a in ('foo' alan1,'bar' alan2,'baz' alan3)
 )
where c = 'y';
ALAN1 ALAN2 ALAN3
 1     9    30
spacer

Veritabanı Yaratılması Hakkında Özet Bilgiler

Bir veritabanın yaratılmasına geçmeden önce uyulmasında ve gözönünde bulundurulmasında yararlı olacak bazı noktaları belirtelim. Bu kuralları özet olarak açıklarsak ;
Ø Veritabanının oluşturmadan önce yapılması gerekenler,
Ø Tabloların, alanların yaratılması ve kullanılmasında dikkat edilecekler,
Ø Tablolara erişim yöntemlerinin belirlenmesinde ki hususlar,
Ø Veritabanın entegre bir şekilde çalışması,
Ø Unutulmaması gerekenler,



Veritabanının oluşturmadan önce yapılması gerekenler,

1. Kurulacak veritabanın hangi amaca hizmet edeceği önceden kesinlikle bilinmelidir. Bilgisayarlar kullanılarak elle yapılan işleri daha hızlı ve daha doğru bir biçimde yapılması amaç olduğuna göre mevcut düzenin çok iyi analiz edilmesi gereklidir. Yapılan işleri yerinde görerek, yapan kişilerle konuşarak gerekli tüm dökümanları toplayarak, işlerin sırasını, önemini, önceliğini belirleyerek sahada çalışma yapılmalıdır.
2. Veritabanını oluşturacak olan nesneleri, detaya girmeden kullanım yeri, amaçlarına göre standart isimlendirilmelidir. Nesnelerin önüne veya sonuna belirleyici tanımlamalar koymak sonrasında inceleme ve geliştirmede yarar sağlayacaktır. Stok’la ilgili nesnelerin STK_, Personel ile ilgili olanların PER_ ile başlaması gibi veya parametre dosyalarına _PAR ekinin konulması. Bunun nesneler içinde kullanılacak olan alan isimlerinde de yapılması tavsiye edilir. Formların FRM, Query’lerin QRY, Reportların RPT ile başlaması bir bütünü anlamakta kolaylık sağlayacaktır.
3. Yaratılacak olan veritabanın ömrünün ne kadar olacağı belirlenmeli ve 2000 yılı örneğinde olduğu gibi sorun yaratacak kısıtlamalardan kaçınılmalıdır. Bugünün sorunlarına çözüm getirilmesine yönelik olarak hazırlanan çözümün gelecek zamanların ihtiyaçlarına da cevap verebilecek durumda olması kesinlikle gözden kaçırılmamalıdır.
4. Veritabanını oluşturan tabloların ve/veya alanların birbiriyle olan ilişkilerini gösterecek, gerektiğinde kontrol edilmesini sağlayacak data modelleme araçlarından yararlanılmalıdır.
5. Veritabanı kurulması sırasında ki tüm aşamalarda toplanan tüm bilgi kesinlikle kağıt üzerinde tutulmalıdır. Projenin her bölümünde oluşan sonuçlar, aksaklıklar yazılı hale getirilmelidir.

6. Oluşturulan veritabanının fiziksel uygulamaya geçilmeden önce mantık olarak kağıt üzerinde (hayal gücünüzü de kullanarak) test edilmeli, çalıştırılmalıdır.

7. Veritabanını oluşturan tabloların ve alanların belirlenmesinde girilecek olan bilgiler kadar istenen bilgilerin de ne olacağının önceden bilinmesi önemlidir. Bu amaçla hangi ekranların, hangi raporların kullanılması gerektiği iyice araştırılmalıdır. Özellikle kullanıcıların elle tutmuş oldukları dosyaları hazırlamış oldukları raporlar toplanmalı ve veritabanında ki tablo ve alanların bunları verebilecek şekilde düzenlenmiş olduğundan emin olunmalıdır.

8. Veritabanında tutulacak olan bilgilere erişim zamanlarının veya sıklıklarının ne olacağı önceden bilinmelidir. Hangi bilgiye sürekli erişilecek, haftalık veya aylık raporlarda ne olacak ? bu tür soruların önceden cevaplandırılmış olması hem veritabanının hem de programların kullanıcı ihtiyaçlarına cevap verecek şekilde hazırlanmasında yarar sağlayacaktır.
9. Tüm bu işlemler sırasında, belli dönemlerde ve uygulamaya geçilmeden önce kullanıcılarla bilgi alışverişinde bulunulmalı ve sonuçlar paylaşılmalıdır. Unutulmamalıdır ki kullanıcıların projeye dahil edilmediği, alınmadığı, sonuçların paylaşılmadığı durumlarda bir karşı konulmayla karşılaşılacaktır.Bunun da sonucu yapılan her türlü uygulamalar başarısız olarak nitelendirilecektir.

Tabloların, alanların yaratılması ve kullanılmasında dikkat edilecekler,

1. Her zaman yaratılmakta olan tabloların, alanların değişebileceği unutulmamalıdır. Bundan dolayı tasarım sırasında ki tüm değişikliklerin nedenleri, ne içinleri yazılı bir biçimde kayıt altında tutulmalıdır.

2. Tablo isimleri ve tablo içindeki alan isimleri açıklayıcı ve belirleyici olmalıdır. Birden fazla tabloda yer alacak olan alanlar varsa bunlar bütün tablolarda aynı isimlerle kullanılmalıdır. Örneğin stok_no alanı bütün stok tablolarında ep aynı isimle yer almalıdır. Alan isimlerinin öncesi veya sonrasında takılar takılması alan isimlerinin anlaşılmasında kolaylık sağlayacaktır. Per_AdiSoyadi, Mus_AdiSoyadi gibi. Bu arada özellikle Türkçe karakterlerin kullanılmamasına dikkat edilmelidir. Ayrıca bazı özel işaretlerin (%,&, ‘ gibi) veya kısıtlanmış kelimelerin (NOT, END, IN, LIST, vb.) de alan isimlerinde kullanılmamalıdır.

3. Bütün tabloların son dört alanı ; kaydı yaratan kullanıcı, kayıt yaratma tarihi/saati, kayıt güncelleyen kullanıcı ve kayıt güncelleme tarihi/saati bilgilerini içermelidir. Böylece kayıtlara kimlerin ne zaman eriştiği bilgisine sahip olunacaktır.

4. Tablolarda tekrarlayan alanlardan kaçınılmalı ama abartıya kaçınılmamalıdır. Kayıtların ve alanların veritabanı genelinde bir yerde tutulması tavsiye edilmekle beraber bazı durumlarda bazı alanların tekrar etmesi de gerekecektir. Buna işin durumuna ve özelliğine göre karar verilecektir. Veritabanın iyileştirilmesine yönelik çalışmalarda aşırıya kaçınılmaması tavsiye edilir.

5. Tablolar üzerinde kayıt ekleme, kayıt silme, kayıt değiştirme ve sorgulama yapacak olan kullanıcıların belirlenerek bunlara erişim yetkilerinin verilmesi unutulmamalıdır.

6. Veritabanın kullanılacağı yerlerin, ortamların durumuna bağlı olarak bazı değişiklikleri yapmak kaçınılmazdır. B.r WEB uygulamasında yerel kullanıcılar olabileceği gibi yabancı kullanıcılarında olacağı unutulmamalıdır. Onların girebilecekleri alanlar eklenmelidir.

7. Alanların bazılarına mutlaka değer girişinin yapılacağı durumlarda alanları tanımlarken NOT NULL, ilk değerin verilmesi gerek durumlarda DEFAULT deyimleri kullanılmalıdır.

8. Tablolarda ki Adres alanlarının iki veya üç alanda tutulması tavsiye edilir. Böylece ekran veya yazıcı üzerinde adreslerin gösterilmesinde sorunlar (uygun olmayan yerden kesmek gibi) yaşanmaz. Aynı şekilde telefon veya fax numaralarının başındaki kodlamalarında ayrı alanda tutulması ileride olabilecek sorunlara karşı bir önlem niteliğindedir.

9. Alanların veri tiplerinin belirlenmesinde (Sayısal, alfasayısal, tarih vb.) dikkat edilmeli ve doğru seçimlerde bulunulmalıdır. İçeriklere bağlı olarak sayı tiplerinde genişlikten (LONG INTEGER, INTEGER veya DECIMAL) dolayı sorunlar yaşanmamalıdır.

10. Bazı durumlarda kullanılmak üzere tablolarda SILINMIS ve/veya GECERSIZ işaretlerin konulacağı alanlar olmalıdır. Örnek olarak bazı muhasebe hesaplarının geçici olarak kapatılması veya bazı stokların geçersiz hale getirilmesi durumlarında bu alanlar kullanılmalıdır.

11. Alan isimlendirilmesinde aşırıya kaçınılmamalıdır. Unutulmamalı ki bu alan isimleri programlama sırasında programcılar tarafından kullanılacaktır.

Tablolara erişim yöntemlerinin belirlenmesinde ki hususlar,

1. Tablolara hızlı erişim için kullanılan INDEX dosyalarının ne fazla ne eksik olması gerekir. Bunun için hangi tabloya nasıl erişileceği belirlenmeli, erişim sırasında ne kadar bilginin kullanılacağı önceden belirlenmelidir.

2. Bir tabloya ait ne kadar fazla index dosyası varsa, kayıt ekleme, değiştirme ve silme işlemlerinde ki performansta o kadar düşük olur.

3. Kayıt sayısı az olan tablolara index kurmaya gerek yoktur.

4. Tablolara bağlantılarda FOREIGN KEY kullanılması bilginin doğruluğu ve düzgünlüğü için mutlak şarttır. Bütün index dosyalarda tekrar etmeyen (unique) alanlar kullanılmalıdır.

5. Kullanıcıların veya programcıların tablolara erişimlerini kolaylaştıracak alanlardan indexlerin oluşturulmasına dikkat ediniz. Örneğin 20 karakterlik bir numara üzerinden index oluşturulursa kullanıcının bu 20 karakteri doğru bir şekilde girmesi halinde index kullanılacağı unutulmamalıdır.
Veritabanın entegre bir şekilde çalışması,
1. İş kurallarına ve işin gelişimine kolaylıkla uyum sağlayabilecek tablolar ve alanların kullanılmasına önem verilmelidir.İşin bir bölümünün değişmesi, yenilenmesi durumda bütün tablolarda veya ilgili alanların çoğunda değişikliğe gidilmemesi gerekir.

2. Veritabanı üzerinde kaç yıllık bilgilerin tutulacağı önceden belirlenmelidir. Orta vadeli (beş yıllık) veya uzun vadeli (10 yıllık) sürelerde bilgilerin başka yerlere taşınıp orada tutulması ve gerektiğinde erişilmesi yöntemleri başlangıçta uygulanmalıdır.

3. Tablolara girilen kayıtların amaçlara doğru olarak hizmet edecek şekilde olmasına dikkat edilmeli ve gereksiz, kullanılmayan kayıtlar tablolardan temizlenmelidir. Bu işlemler veritabanı bazında belli periyotlarda uygulanmalıdır.

4. Veritabanı üzerinde çalışacak fonksiyonlar ve/veya procedurler belirlenerek bunların tek bir yerde toplanmasına uyulmalıdır.

5. Veritabanın yedeklerinin alınması ve gerektiğinde geri dönüşler için izlenecek yollar önceden belirli olmalıdır.
Unutulmaması gerekenler,

Projenin her aşaması, kağıt üzerinde, yazılı bir biçimde tutulmalıdır. Değişiklikler, ilaveler tarih bazında, version numaralandırılmasına gidilerek takip edilmelidir. Bunların nedenleri, nasılları ve kimler tarafından istendiği ve kimler tarafından yapıldığı kayıt altına alınmalıdır.

Her uygulama, her seferinde , gerektiğinde değişik kişiler tarafından test edilmelidir.

Veritabanına bir bütün olarak bakılmalı ve gerektiğinde bölümlere ayrılarak analiz edilmelidir. Bu analizler sırasında yardımcı araçlardan, bilgilerden yararlanılmalıdır.
spacer