Oracle – Table Columns Report

SELECT   a.owner,    table_name  || ' '  || object_type table_name, column_name,
         data_type, data_length, DECODE (nullable, 'N', 'NO', 'YES') nullable
    FROM dba_tab_columns a, dba_objects b
   WHERE a.owner NOT IN ('SYS', 'SYSTEM')
   AND a.owner = UPPER ('Xtablespace')
     AND a.owner = b.owner
     AND a.table_name LIKE UPPER ('Xtablename')
     AND a.table_name = b.object_name
     AND object_type IN ('TABLE', 'VIEW', 'CLUSTER')
ORDER BY owner, object_type, table_name, column_id

Oracle – Tablo İstatistikleri

Tablo satır adetleri vb. bilgileri izleyebilirsiniz.

SELECT   owner, table_name, tablespace_name, num_rows, blocks, empty_blocks,
         avg_row_len, sample_size, last_analyzed
FROM dba_tables
WHERE UPPER (owner) LIKE 'xxx'
ORDER BY owner, table_name

Oracle – For Update

Select sonuna yazılarak kullanılır.Seçilen kayıtlara, commit veya rollback yapılana kadar DML işlemi yapılmasını engeller.
Yani bu kayıtlara lock koyulur.

SELECT * FROM tblfatuirs WHERE fatirs_no= 'DN0000012345' FOR UPDATE;

Oracle – PL/SQL Regular Expression

PL/SQL içerisinde işleri kolaylaştıran pek çok regular expression ifadesi bulunuyor.
“REGEXP_” ile başlayan bu ifadelerden biri de REGEXP_REPLACE dir.

Aşağıdaki örnekde REGEXP_REPLACE ile, ilgili alanın içinden yalnızca sayıları alıyoruz.

REGEXP_REPLACE(table.field,'[^0-9]')

PL/SQL Regular Expression komutları hakkında daha detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

http://psoug.org/reference/regexp.html

 

C# – Dizin varmı kontrolü

Dizin varmı kontrolü yapılan aşağıdaki method da, belirtilen path deki son dizin yoksa oluşturuluyor.

using System.IO;

        private static bool CheckDirectory(string DirectoryPath)
        {
            try
            {
                int SlashPos = DirectoryPath.Trim().LastIndexOf("\\");
                string strDirectoryname =
                           DirectoryPath.Trim().Substring(0, SlashPos);

                if (false == Directory.Exists(strDirectoryname))
                    Directory.CreateDirectory(strDirectoryname);
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
//Kullanım
        private void button1_Click(object sender, EventArgs e)
        {
            if (CheckDirectory(@"C:\Deneme\")==true)
                MessageBox.Show("Dizin Var");
            else
                MessageBox.Show("Dizin yok ve oluşturulamadı.");
        }

Oracle – PL/SQL ile Mail Gönderme

--Öncelikle göndermek için gereken yetkileri tanımlıyoruz,
--1
BEGIN
dbms_network_acl_admin.create_acl (
acl => 'cahari.xml',
description => 'mai atmak için',
principal => 'tablespace yazın',
is_grant => true,
privilege => 'connect',
start_date => null,
end_date => null
);
END;

--2
begin
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'cahari.xml',
principal => 'tablespace yazın',
is_grant => true,
privilege => 'resolve');
end;

--3
begin
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'cahari.xml',
host => 'Buraya host ip yi yazıyoruz.');
end;

--4
--Procedure yaratılıyor
create or replace
PROCEDURE MailGonder
( sender IN VARCHAR2,
recipient IN VARCHAR2,
subject IN VARCHAR2,
message IN VARCHAR2)
IS
mailhost VARCHAR2(30) := '10.10.13.253';
mail_conn utl_smtp.connection;
crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
mesg VARCHAR2( 1000 );

BEGIN
mail_conn := utl_smtp.open_connection(mailhost, 25);

mesg:= 'Date: ' || TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' ) || crlf
||
'From: <'||sender||'>' || crlf ||
'Subject: '||subject || crlf ||
'To: '||recipient || crlf ||
''||crlf||
'MIME-Version: 1.0'||crlf|| message;

utl_smtp.helo(mail_conn, mailhost);
utl_smtp.mail(mail_conn, sender);
utl_smtp.rcpt(mail_conn, recipient);
utl_smtp.data(mail_conn, mesg);
utl_smtp.quit(mail_conn);

Exception
WHEN OTHERS THEN
raise_application_error(-20002,'Mail Gönderilemedi'||SQLERRM);
END;

--5
--Kullanım şekli
Begin
MailGonder('orhan@mail.com','orhan@mail.com','Konu','Deneme mesajı');
End;

DataTable.Select() To DataTable

DataTable üzerinde filtreleme yaptıkdan sonra sonucu yine DataTable olarak değerlendirmek isterseniz;

    public DataTable DTFilter(DataTable dt, string FilterText)
    {
        //Filtre sonuçları DataRow[] olarak değişkene alınıyor.
        DataRow[] results = dt.Select(FilterText);

        //dt nin shema kopyasını kopya_dt ye alıyoruz.
        DataTable kopya_dt = dt.Clone();

        //Filtre sonucunu kopya_dt ye alıyoruz.
        foreach (DataRow dr in results)
            kopya_dt.ImportRow(dr);
        return kopya_dt;
    }

Oracle – Session Sayısı

select count(*) "Toplam session", 
(select count(*) from gv$session where type != 'BACKGROUND' ) "Toplam Session (Oracle Hariç)", 
(select count(*) from gv$session where status = 'ACTIVE' and inst_id=1 and type != 'BACKGROUND' ) "Aktif Session"
 from gv$session group by 1,2,3

Tarihi zamansız almak için..

Tarihi zamansız almak için bir örnek:

Select  CONVERT(datetime, FLOOR(CONVERT(float(24), GETDATE()-1)) )

SQL Server 2008 R2 Güncellemeleri

SQL Server 2008 R2 güncelleştirmelerine önem vermenizi tavsiye ediyorum,
yaşanan pek çok sorunu güncelleştirme ile çözebilirsiniz.

SELECT @@Version

Sorgusu ile mevcut MSSQL versiyonunuzu öğrenebilirsiniz.

Aşağıdaki tabloda 13 Nisan itibari ile tüm build ler bulunmaktadır.

Build KB Article Release Tarihi Açıklama
10.50.1765.0 2489376  21 Şubat 2011 SQL Server 2008 R2 Cumulative Update 6
10.50.1753.0 2438347  20 Aralık 2010 SQL Server 2008 R2 Cumulative Update 5
10.50.1746.0 2345451  18 Ekim 2010 SQL Server 2008 R2 Cumulative Update 4
10.50.1734.0 2261464  16 Ağustos 2010 SQL Server 2008 R2 Cumulative Update 3
10.50.1720.0 2072493  21 Temmuz 2010 SQL Server 2008 R2 Cumulative Update 2
10.50.1702.0 981355  17 Mayıs 2010 SQL Server 2008 R2 Cumulative Update 1
10.50.1600.1 RTM   SQL Server 2008 R2 RTM
10.50.1450.3 RC0   SQL Server 2008 R2 Release Candidate 0

 

 

Build 10.50.1765.0 (cumulative update 6 )  –   http://support.microsoft.com/kb/2489376

Build 10.50.1753.0 (cumulative update 5 )  –   http://support.microsoft.com/kb/2438347

Build 10.50.1746.0 (cumulative update 4 )  –   http://support.microsoft.com/kb/2345451

Build 10.50.1734.0 (cumulative update 3 )  –   http://support.microsoft.com/kb/2261464

Build 10.50.1720.0 (cumulative update 2 )  –   http://support.microsoft.com/kb/2072493

Build 10.50.1702.0 (cumulative update 1 )  –   http://support.microsoft.com/kb/981355

Kaynak : http://support.microsoft.com/kb/981356