SQL> create sequence sqx_test;
Sequence created
SQL> select sqx_test.nextval from dual;
NEXTVAL
----------
1
SQL> alter sequence sqx_test increment by 499;
Sequence altered
SQL> select sqx_test.currval from dual;
CURRVAL
----------
1
SQL> select sqx_test.nextval from dual;
NEXTVAL
----------
500
SQL> alter sequence sqx_test increment by 1;
Sequence altered
SQL>
21.08.2009
Sequence değerini değiştirmek.
Oracle'da sequence'lerin değerini, increment değeri ile oynayarak değiştirmek mümkündür. sqx_test adında bir sequence oluşturup 1 olan sıra numarasını 500 olarak değiştiriyoruz.
11.08.2009
Excel'de sayı sistemleri...
Excel'de 32 lik sayı sisteminden 10'luk sayı sistemine çevirmek için aşağıdaki fonksiyon kullanılabilir :
Türkçe Excel:
İngilizce Excel:
Türkçe Excel:
=EĞER(A1="";"0";TOPLA.ÇARPIM( KUVVET(32;UZUNLUK(A1) - SATIR( DOLAYLI("1:"&UZUNLUK(A1))));(KOD(BÜYÜKHARF(PARÇAAL(A1;SATIR(DOLAYLI("1:"&UZUNLUK(A1)));1))) -48*(KOD(PARÇAAL(A1;SATIR(DOLAYLI("1:"&UZUNLUK(A1)));1))<58) -55*(KOD(PARÇAAL(A1;SATIR(DOLAYLI("1:"&UZUNLUK(A1)));1))>64))))
İngilizce Excel:
=IF(A1="","0",SUMPRODUCT( POWER(32,LEN(A1) - ROW(INDIRECT("1:"&LEN(A1)))),
(CODE(UPPER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))) - 48*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<58) - 55*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>64))))
Etiketler:
Excel,
Sayı sistemi
20.07.2009
asp.net'te web.config'ten parametre okumak
asp.net ile uygulama geliştirirken, uygulamanın parametrik olmasını isteyebilirsiniz. Bunun için web.config dosyasında appSettings alanı içerisine ihtiyaç duyduğunuz parametreleri şu şekilde tanımlamalısınız :
program içerisinden bu değerleri okumak için :
<appSettings>
<add key="username" value="kullaniciadi" />
<add key="password" value="pass" />
</appSettings>
program içerisinden bu değerleri okumak için :
Username = ConfigurationSettings.AppSettings["username"];
Password = ConfigurationSettings.AppSettings["password"];
Etiketler:
appSettings,
asp.net,
parametre,
web.config
10.07.2009
Delphi ile web servis'e parametre gönderim problemi
ASP.NET (VS 2005) ile oluşturulmuş bir web servisine parametre gönderemedim. Parametresiz olarak çağırıldığında problem yok, parametre ile çağrıldığında, parametre değeri olarak null gidiyor.
Delphi ile oluşturulan kod içerisine initialization altına:
satırını ekleyince problem çözüldü.
Delphi ile oluşturulan kod içerisine initialization altına:
InvRegistry.RegisterInvokeOptions(TypeInfo(SoapAdi), ioDocument);
satırını ekleyince problem çözüldü.
Etiketler:
asp.net,
delphi,
web service
6.02.2009
firebird'de sayıları yazıya çeviren procedure
Bir zamanlar yazmış olduğum, firebird veritabanı üzerinde sayıları yazıya çeviren procedure.
Kullanım:
Kaynak kodları...
Kullanım:
SELECT p.TUTARYAZI FROM YAZIYLA(111023.03) p
TUTARYAZI
---------
YÜZONBİRBİNYİRMİÜÇ YTL ÜÇ YKR
Kaynak kodları...
SET TERM ^ ;
CREATE PROCEDURE BASAMAKYAZI (
BASAMAK Integer,
RAKAM Integer )
RETURNS (
YAZI Varchar(20) )
AS
BEGIN
YAZI= case basamak
when 1 then
case rakam
when 1 then 'BİR'
when 2 then 'İKİ'
when 3 then 'ÜÇ'
when 4 then 'DÖRT'
when 5 then 'BEŞ'
when 6 then 'ALTI'
when 7 then 'YEDİ'
when 8 then 'SEKİZ'
when 9 then 'DOKUZ'
end
when 2 then
case rakam
when 1 then 'ON'
when 2 then 'YİRMİ'
when 3 then 'OTUZ'
when 4 then 'KIRK'
when 5 then 'ELLİ'
when 6 then 'ALTMIŞ'
when 7 then 'YETMİŞ'
when 8 then 'SEKSEN'
when 9 then 'DOKSAN'
end
when 3 then
case rakam
when 1 then 'YÜZ'
when 2 then 'İKİYÜZ'
when 3 then 'ÜÇYÜZ'
when 4 then 'DÖRTYÜZ'
when 5 then 'BEŞYÜZ'
when 6 then 'ALTIYÜZ'
when 7 then 'YEDİYÜZ'
when 8 then 'SEKİZYÜZ'
when 9 then 'DOKUZYÜZ'
end
end;
SUSPEND;
END^
SET TERM ; ^
SET TERM ^ ;
CREATE PROCEDURE YAZIYLA (
TUTAR Numeric(18,2) )
RETURNS (
TUTARYAZI Varchar(300) )
AS
DECLARE VARIABLE tutarstr VARCHAR(50);
DECLARE VARIABLE yazi VARCHAR(50);
DECLARE VARIABLE len integer;
DECLARE VARIABLE tamsayistr VARCHAR(50);
DECLARE VARIABLE tamsayiuz integer;
DECLARE VARIABLE kesirstr VARCHAR(2);
DECLARE VARIABLE i integer;
DECLARE VARIABLE rakam integer;
DECLARE VARIABLE basamak integer;
DECLARE VARIABLE uclubasamak integer;
BEGIN
tutarstr=tutar;
len = 0;
TUTARYAZI = '';
len= CHAR_LENGTH(tutarstr);
IF (len = 0) THEN
BEGIN
TUTARYAZI = 'SIFIR';
END
tamsayiuz = len-3;
tamsayistr = SUBSTRING(tutarstr FROM 1 FOR tamsayiuz);
kesirstr = SUBSTRING(tutarstr FROM len-1 FOR 2);
i = 1;
uclubasamak = tamsayiuz;
WHILE (uclubasamak>3) DO BEGIN
uclubasamak = uclubasamak-3;
END
-- Tam kısmı
WHILE (i<=tamsayiuz) DO
BEGIN
rakam = SUBSTRING(tamsayistr FROM i FOR 1);
basamak = tamsayiuz-i+1;
IF ((tamsayiuz=1) AND rakam=0) THEN TUTARYAZI = 'SIFIR';
IF (( rakam>0 ) and (not ( tamsayiuz = 4 and basamak = 4 and uclubasamak = 1 ))) THEN
BEGIN
EXECUTE PROCEDURE BASAMAKYAZI(:uclubasamak,:rakam) RETURNING_VALUES :YAZI;
TUTARYAZI = TUTARYAZI || TRIM(YAZI);
END
IF ((BASAMAK=4) AND (TUTARYAZI not like '%MİLYON' and TUTARYAZI not like '%MİLYAR')) THEN TUTARYAZI = TUTARYAZI||'BİN' ;
IF ((BASAMAK=7) AND ( TUTARYAZI not like '%MİLYAR' )) THEN TUTARYAZI = TUTARYAZI || 'MİLYON';
IF (BASAMAK=10) THEN TUTARYAZI = TUTARYAZI || 'MİLYAR';
i = i + 1;
uclubasamak = uclubasamak - 1;
IF (uclubasamak = 0) THEN uclubasamak = 3;
END
TUTARYAZI = TUTARYAZI||' YTL ';
-- Kuruş Kısmı
IF (CAST (kesirstr AS INTEGER)>0) THEN
BEGIN
rakam = SUBSTRING(kesirstr FROM 1 FOR 1);
IF ( rakam > 0 ) THEN
BEGIN
EXECUTE PROCEDURE BASAMAKYAZI(2,:rakam) RETURNING_VALUES :YAZI;
TUTARYAZI= TUTARYAZI||TRIM(YAZI);
END
rakam = SUBSTRING(kesirstr FROM 2 FOR 1);
IF ( rakam > 0 ) THEN
BEGIN
EXECUTE PROCEDURE BASAMAKYAZI(1,:rakam) RETURNING_VALUES :YAZI;
TUTARYAZI= TUTARYAZI||TRIM(YAZI);
END
TUTARYAZI= TUTARYAZI||' YKR';
END
SUSPEND;
END^
SET TERM ; ^
5.02.2009
oracle substr fonksiyonu
SUBSTR (string, başlangıç [, uzunluk ])
Fonksiyonu string içerisinden başlangıç karakterinden uzunluk kadar olan kısmı alır.
Eğer uzunluk belirtilmezse, string'in başlangıç olarak belirtilen pozisyondan başlıyarak, string'in tamamını alır.
başlangıç pozisyonu pozitif bir sayı olursa string'in başından, negatif bir sayı olursa string'in son tarafından başlar.
Fonksiyonu string içerisinden başlangıç karakterinden uzunluk kadar olan kısmı alır.
SQL> select Substr('Zeki Güven',6,5) from dual;
SUBSTR('ZEKIGÜVEN',6,5)
--------------------------------
Güven
Eğer uzunluk belirtilmezse, string'in başlangıç olarak belirtilen pozisyondan başlıyarak, string'in tamamını alır.
SQL> select Substr('Zeki Güven',6) from dual;
SUBSTR('ZEKIGÜVEN',6)
--------------------------------
Güven
başlangıç pozisyonu pozitif bir sayı olursa string'in başından, negatif bir sayı olursa string'in son tarafından başlar.
SQL> select Substr('Zeki Güven',3) from dual;
SUBSTR('ZEKIGÜVEN',3)
--------------------------------
ki Güven
SQL> select Substr('Zeki Güven',-3) from dual;
SUBSTR('ZEKIGÜVEN',-3)
--------------------------------
ven
SQL> select Substr('Zeki Güven',-10,4) from dual;
SUBSTR('ZEKIGÜVEN',-10,4)
--------------------------------
Zeki
31.01.2009
oracle replace fonksiyonu
REPLACE(string, aranacak_string [, değiştirilecek_string ] ) fonksiyonu string parametresi içerisinde aranacak_string arayıp, değiştirilecek_string ile değiştirir. Bütük küçük harf ayırımını dikkate alır. değiştirilecek_string belitilmezse aranacak_string, string içinden kaldırır.
SQL> select Replace('Zeki Güven','Z','C') from dual;
REPLACE('ZEKIGÜVEN','Z','C')
---------------------------------------------------
Ceki Güven
SQL> select Replace('Zeki Güven','z','C') from dual;
REPLACE('ZEKIGÜVEN','Z','C')
---------------------------------------------------
Zeki Güven
SQL> select Replace('Zeki Güven','e','x') from dual;
REPLACE('ZEKIGÜVEN','E','X')
---------------------------------------------------
Zxki Güvxn
SQL> select Replace('Zeki Güven','e',null) from dual;
REPLACE('ZEKIGÜVEN','E',NULL)
--------------------------------
Zki Güvn
SQL> select Replace('Zeki Güven','e') from dual;
REPLACE('ZEKIGÜVEN','E')
--------------------------------
Zki Güvn
Kaydol:
Kayıtlar (Atom)