<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Mevlüt Becerikli</title>
	<atom:link href="http://www.mevlutbecerikli.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.mevlutbecerikli.com</link>
	<description>Basit diye bir şey yok !!! Bilmeyene 2+2 bile zor...</description>
	<pubDate>Sun, 15 Aug 2010 09:02:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>TRANSLATE Fonksiyonu</title>
		<link>http://www.mevlutbecerikli.com/?p=340</link>
		<comments>http://www.mevlutbecerikli.com/?p=340#comments</comments>
		<pubDate>Thu, 29 Jul 2010 12:43:48 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[Veritabanı]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=340</guid>
		<description><![CDATA[Soru :
Veritabanımızda bir tablo sütununda farklı (aşağıdaki gibi) formatlarda telefon numaraları var.  Bizden bu verileri tek tip formata çevirmemiz isteniyor.
Mevcut Formatlar :
+1 123 456 7890
+1-123-456-7890
+1-123/456 7890
İstenen :
+1.123.4567890
Çözüm :
SELECT TRANSLATE(&#8217;+1 123 456 7890&#8242;, &#8216; /-&#8217;,'&#8230;&#8217;) FROM DUAL
SELECT TRANSLATE(&#8217;+1-123-456-7890&#8242;, &#8216; /-&#8217;,'&#8230;&#8217;) FROM DUAL
SELECT TRANSLATE(&#8217;+1-123/456 7890 &#8216;, &#8216; /-&#8217;,'&#8230;&#8217;) FROM DUAL
Açıklama :
TRANSLATE komutunun kullanımı aşağıdaki gibidir;
TRANSLATE( ilgili_metin , [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em><span style="text-decoration: underline;">Soru :</span></em></strong></p>
<p>Veritabanımızda bir tablo sütununda farklı (aşağıdaki gibi) formatlarda telefon numaraları var.  Bizden bu verileri tek tip formata çevirmemiz isteniyor.</p>
<p><strong><em><span style="text-decoration: underline;">Mevcut Formatlar :</span></em></strong></p>
<p style="padding-left: 30px;">+1 123 456 7890<br />
+1-123-456-7890<br />
+1-123/456 7890</p>
<p><strong><em><span style="text-decoration: underline;">İstenen :</span></em></strong></p>
<p style="padding-left: 30px;">+1.123.4567890</p>
<p><strong><em><span style="text-decoration: underline;">Çözüm :</span></em></strong></p>
<p style="padding-left: 30px;">SELECT <span style="color: #3366ff;">TRANSLATE(&#8217;+1 123 456 7890&#8242;, &#8216; /-&#8217;,'&#8230;&#8217;)</span> FROM DUAL<br />
SELECT <span style="color: #3366ff;">TRANSLATE(&#8217;+1-123-456-7890&#8242;, &#8216; /-&#8217;,'&#8230;&#8217;) </span>FROM DUAL<br />
SELECT <span style="color: #3366ff;">TRANSLATE(&#8217;+1-123/456 7890 &#8216;, &#8216; /-&#8217;,'&#8230;&#8217;) </span>FROM DUAL</p>
<p><strong><em><span style="text-decoration: underline;">Açıklama :</span></em></strong></p>
<p>TRANSLATE komutunun kullanımı aşağıdaki gibidir;</p>
<p style="padding-left: 30px;"><strong><span style="color: #ff0000;"><span style="color: #339966;"><em>TRANSLATE( ilgili_metin , degistirilecekler, eklenecekler )</em></span><br />
ilgili_metin :</span></strong> İçeriği değiştirilecek metin<strong><span style="color: #ff0000;"><br />
degistirilecekler :</span></strong> İçeriği değiştirilecek metin içerisinden değişecek karakterlerin dizisi<br />
<span style="color: #ff0000;"><strong>eklenecekler :</strong></span> degiceşekler kısmında her bir karakterin yerine gelecek karakterleriden oluşan dizi</p>
<p>Bu açıklamadan sonra gelelim bizim çözümümüze. Bu komut ile <strong><span style="color: #ff0000;"><span style="color: #339966;"><em>ilgili_metin </em></span></span></strong>içinde yer alan ve değiştirmeyi istediğimiz karakterleri sırası ile <strong><span style="color: #ff0000;"><span style="color: #339966;"><em>degistirilecekler</em></span></span></strong> kısmına yazıyoruz. Her bir karakterin yerine gelmesini istediğimiz karakterleri gene aynı sırada olmak kaydıyla <strong><span style="color: #ff0000;"><span style="color: #339966;"><em>eklenecekler </em></span></span></strong>kısmına yazıyoruz.</p>
<p>Burada önemli; komutun tek bir karakter bazında çalışması (Yani &#8220;12&#8243; yerine &#8220;34&#8243; yapamıyoruz, &#8220;1&#8243; yerine &#8220;3&#8243; ve &#8220;2&#8243; yerine &#8220;4&#8243; olacak şekilde çalışıyor) ve <strong><span style="color: #ff0000;"><span style="color: #339966;"><em>degistirilecekler</em></span></span></strong> ile <strong><span style="color: #ff0000;"><span style="color: #339966;"><em>eklenecekler </em></span></span></strong> dizilerindeki karakterlerin sıralarının aynı olmasıdır.</p>
<p><span style="text-decoration: underline;"><strong>NOT :</strong></span> Aynı soruna içiçe REPLACE komutu ile de çözüm üretebiliriz. Ama  TRANSLATE komutu sanırım bu okuması-yazması karışık ve hataya açık durumdan kurtulmak için geliştirilmiş;</p>
<p style="padding-left: 30px;">SELECT <span style="color: #3366ff;">REPLACE(REPLACE(REPLACE(&#8217;+1 123 456 7890&#8242;, &#8216; &#8216;,&#8217;.'),&#8217;/',&#8217;.'),&#8217;-',&#8217;.') </span>FROM DUAL<br />
SELECT <span style="color: #3366ff;">REPLACE(REPLACE(REPLACE(&#8217;+1-123-456-7890&#8242;, &#8216; &#8216;,&#8217;.'),&#8217;/',&#8217;.'),&#8217;-',&#8217;.') </span>FROM DUAL<br />
SELECT <span style="color: #3366ff;">REPLACE(REPLACE(REPLACE(&#8217;+1-123/456 7890&#8242;, &#8216; &#8216;,&#8217;.'),&#8217;/',&#8217;.'),&#8217;-',&#8217;.') </span>FROM DUAL</p>
<p>İyi Çalışmalar&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=340</wfw:commentRss>
		</item>
		<item>
		<title>Çoklu Veri Girişi (Multiple Insert - INSERT ALL)</title>
		<link>http://www.mevlutbecerikli.com/?p=269</link>
		<comments>http://www.mevlutbecerikli.com/?p=269#comments</comments>
		<pubDate>Wed, 28 Jul 2010 11:31:14 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[Veritabanı]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=269</guid>
		<description><![CDATA[Bu yazıda klasik insert ifadesinden biraz uzaklaşıp nasıl çoklu veri girişi işlemi yapacağımızı göreceğiz. Konunun detayını bende ihtiyaç doğrultusunda öğrendim. Bu özellik Oracle 9i den sonra gelmiş. Farklı varyasyonları var;

Koşulsuz çoklu giriş
Koşullu çoklu giriş
Koşullu ama koşula ilk uyan verinin girişi
Pivot Tablo yapısında çoklu veri girişi

1. KOŞULSUZ ÇOKLU VERİ GİRİŞİ ( INSERT ALL )
Syntax:
INSERT ALL
INTO &#60;tablo_ad&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Bu yazıda klasik insert ifadesinden biraz uzaklaşıp nasıl çoklu veri girişi işlemi yapacağımızı göreceğiz. Konunun detayını bende ihtiyaç doğrultusunda öğrendim. Bu özellik Oracle 9i den sonra gelmiş. Farklı varyasyonları var;</p>
<ol>
<li>Koşulsuz çoklu giriş</li>
<li>Koşullu çoklu giriş</li>
<li>Koşullu ama koşula ilk uyan verinin girişi</li>
<li>Pivot Tablo yapısında çoklu veri girişi</li>
</ol>
<p><span style="color: #ff0000;"><strong><em><span style="text-decoration: underline;">1. KOŞULSUZ ÇOKLU VERİ GİRİŞİ</span></em></strong></span><span style="color: #ff0000;"><strong><em><span style="text-decoration: underline;"> ( INSERT ALL )</span></em></strong></span></p>
<p><span style="text-decoration: underline;">Syntax:</span></p>
<p style="padding-left: 30px;">INSERT ALL<br />
INTO &lt;tablo_ad&gt; VALUES &lt;sutun_degerleri)<br />
INTO &lt;tablo_ad&gt; VALUES &lt;sutun_degerleri)<br />
&#8230;<br />
SELECT &lt;sutun_isimleri&gt; FROM &lt;tablo_ad&gt;;</p>
<p><span style="text-decoration: underline;">Örnek :</span></p>
<p style="padding-left: 30px;">INSERT ALL<br />
INTO tbl_tip VALUES (tip_id)<br />
INTO tbl_marka VALUES (marka_id)<br />
SELECT marka_id, tip_id FROM tbl_arabalar;</p>
<p><strong>SELECT</strong> ifadesinden gelen verileri <strong>INSERT ALL</strong> kısmında ki tablolara ekliyoruz.<span style="text-decoration: underline;"><br />
</span></p>
<p><span style="color: #ff0000;"><strong><em><span style="text-decoration: underline;">2. KOŞULLU ÇOKLU VERİ GİRİŞİ ( INSERT ALL )<br />
</span></em></strong></span></p>
<p><span style="text-decoration: underline;">Syntax:</span></p>
<p style="padding-left: 30px;">INSERT ALL<br />
WHEN (&lt;condition&gt;) THEN<br />
INTO &lt;tablo_ad&gt; (&lt;sutun_isimleri&gt;)<br />
VALUES (&lt;deger_listesi&gt;)<br />
WHEN (&lt;condition&gt;) THEN<br />
INTO &lt;tablo_ad&gt; (&lt;sutun_isimleri&gt;)<br />
VALUES (&lt;deger_listesi&gt;)<br />
ELSE<br />
INTO &lt;tablo_ad&gt; (&lt;sutun_isimleri&gt;)<br />
VALUES (&lt;deger_listesi&gt;)<br />
SELECT &lt;sutun_isimleri&gt; FROM &lt;tablo_ad&gt;;</p>
<p style="padding-left: 30px;">
<p>Örnek :</p>
<p style="padding-left: 30px;">INSERT ALL<br />
WHEN (marka_id = 1) THEN<br />
INTO tbl_bmw VALUES (plaka)<br />
WHEN (marka_id = 2) THEN<br />
INTO tbl_audi VALUES (plaka)<br />
SELECT marka_id, plaka FROM tbl_arabalar;</p>
<p><strong>SELECT</strong> ifadesinden gelen verileri <strong>INSERT ALL</strong> kısmında ki <strong>WHEN </strong>koşuluna göre ilgili tablolara ekliyoruz. Burda ilk şarta uysa bile tüm koşullara bakılıyor.<span style="text-decoration: underline;"><br />
</span></p>
<p><span style="color: #ff0000;"><strong><em><span style="text-decoration: underline;">3. KOŞULLU AMA KOŞULA İLK UYAN VERİNİN GİRİŞİ </span></em></strong></span><span style="color: #ff0000;"><strong><em><span style="text-decoration: underline;"> ( INSERT FIRST)</span></em></strong></span></p>
<p><span style="text-decoration: underline;">Syntax:</span></p>
<p style="padding-left: 30px;">Koşullu <strong>INSERT ALL </strong>ile aynıdır sadece <strong>INSERT ALL </strong>yerine <strong>INSERT FIRST </strong>ifadesi kullanılır. Farkı; ilgili koşulları sırası ile değerlendirir ve istenen şartı ilk sağlayan koşul da veri girişini yapar ve sıradaki diğer şartlara bakmaz.</p>
<p><span style="text-decoration: underline;">Örnek:</span></p>
<p style="padding-left: 30px;">INSERT FIRST<br />
WHEN (model &lt; 1980) THEN<br />
INTO tbl_hurda VALUES (plaka)<br />
WHEN (model &lt; 2000) THEN<br />
INTO tbl_normal VALUES (plaka)<br />
WHEN (model &gt; 2010) THEN<br />
INTO tbl_lux VALUES (plaka)<br />
SELECT marka_id, plaka FROM tbl_arabalar;</p>
<p>Bu örnekte, araçları modellerine göre ayırıyor ve buna göre farklı tablolara atıyoruz. Burda şartı sağlayan ilk koşulda işlem yapılıp diğer koşullar es geçiliyor.</p>
<p><span style="color: #ff0000;"><strong><em><span style="text-decoration: underline;">4. PİVOT TABLO YAPISINDA ÇOKLU VERİ GİRİŞİ</span></em></strong></span><span style="color: #ff0000;"><strong><em><span style="text-decoration: underline;"> ( INSERT ALL )</span></em></strong></span></p>
<p><span style="text-decoration: underline;">Syntax:</span></p>
<p style="padding-left: 30px;">Koşulsuz veri girişi ile aynıdır. Burda asıl amaç ilişkisel veritabanı mantığına aykırı olan ve yatay olarak genişliğe sahip bir tablonun ilişkisel hale getirilmesi işidir (Belki başka amaç içinde kullanılabilir).</p>
<p><span style="text-decoration: underline;">Örnek :<br />
</span></p>
<p style="padding-left: 30px;">INSERT ALL<br />
INTO HAFTALIK_SATIS (id,urun_ad,gun,tutar) VALUES (id,urun_ad,&#8217;PAZARTESI&#8217;,tut_pazartesi)<br />
INTO HAFTALIK_SATIS (id,urun_ad,gun,tutar) VALUES (id,urun_ad,&#8217;SALI&#8217;,tut_sali)<br />
INTO HAFTALIK_SATIS (id,urun_ad,gun,tutar) VALUES (id,urun_ad,&#8217;CARSAMBA&#8217;,tut_carsamba)<br />
INTO HAFTALIK_SATIS (id,urun_ad,gun,tutar) VALUES (id,urun_ad,&#8217;PERSEMBE&#8217;,tut_persembe)<br />
INTO HAFTALIK_SATIS (id,urun_ad,gun,tutar) VALUES (id,urun_ad,&#8217;CUMA&#8217;,tut_cuma)<br />
INTO HAFTALIK_SATIS (id,urun_ad,gun,tutar) VALUES (id,urun_ad,&#8217;CUMARTESI&#8217;,tutCumartesi)<br />
INTO HAFTALIK_SATIS (id,urun_ad,gun,tutar) VALUES (id,urun_ad,&#8217;PAZAR&#8217;,tut_cumartesi)<br />
SELECT satis_id, urun_ad, tut_pazartesi, tut_sali, tut_carsamba, tut_persembe, tut_cuma, tut_cumartesi, tut_pazar<br />
FROM satis;</p>
<p>Bu örnekte <strong>&#8220;satis_id / urun_ad / tut_pazartesi / tut_sali / tut_carsamba / tut_persembe / tut_cuma / tut_cumartesi / tut_pazar&#8221;</strong> alanlarını sahip bir tabloyu <strong>&#8220;id / urun_ad /gun / tutar&#8221;</strong> alanlarına sahip bir tabloya atmış oluyoruz</p>
<p>İyi Çalışmalar&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=269</wfw:commentRss>
		</item>
		<item>
		<title>SQL*Plus, SQL Script Dosyası, Hata (SP2-0042,SP2-0734)</title>
		<link>http://www.mevlutbecerikli.com/?p=344</link>
		<comments>http://www.mevlutbecerikli.com/?p=344#comments</comments>
		<pubDate>Tue, 27 Jul 2010 11:58:10 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[Veritabanı]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=344</guid>
		<description><![CDATA[SQL *Plus&#8217; ta bir SQL script çalıştırdım. Gayet güzel çalıştı. Ama script dosyası içeriğini okuması kolay olsun diye formatladım. Tekrar çalıştırdığımda hata verdi&#8230;
SP2-0042: unknown command &#8220;FROM&#8221; - rest of line ignored.
SP2-0734: unknown command beginning &#8220;SELECT&#8230;&#8221; - rest of line ignored.
Sorunun kaynağının değişiklik yaparken eklenen YENİ SATIR KARAKTERİ olduğu anlaşıldı. SQL* Plus ortamında bunun da çözümü [...]]]></description>
			<content:encoded><![CDATA[<p>SQL *Plus&#8217; ta bir SQL script çalıştırdım. Gayet güzel çalıştı. Ama script dosyası içeriğini okuması kolay olsun diye formatladım. Tekrar çalıştırdığımda hata verdi&#8230;</p>
<p style="padding-left: 30px;"><em><strong><span style="color: #339966;">SP2-0042: unknown command &#8220;FROM&#8221; - rest of line ignored.<br />
SP2-0734: unknown command beginning &#8220;SELECT&#8230;&#8221; - rest of line ignored.</span></strong></em></p>
<p>Sorunun kaynağının değişiklik yaparken eklenen YENİ SATIR KARAKTERİ olduğu anlaşıldı. SQL* Plus ortamında bunun da çözümü mevcut. Script i çalıştırmadan önce ;</p>
<p style="padding-left: 30px;"><strong><em><span style="color: #339966;">SQL&gt; set sqlblanklines on</span></em></strong></p>
<p>ifadesini çalıştırın&#8230;</p>
<p>İyi Çalışmalar&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=344</wfw:commentRss>
		</item>
		<item>
		<title>ETL Benchmarks</title>
		<link>http://www.mevlutbecerikli.com/?p=476</link>
		<comments>http://www.mevlutbecerikli.com/?p=476#comments</comments>
		<pubDate>Tue, 27 Jul 2010 07:48:21 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[ETL]]></category>

		<category><![CDATA[İş Zekası]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=476</guid>
		<description><![CDATA[ETL dünyama girdikçe sizinle paylaşmaya devam edeceğim&#8230;
Son bulduğum güzel linkte 130 sayfalık bir karşılaştırma raporu mevcut. Kıyaslama aşağıdaki ETL tool&#8217; ları arasında (Ben Talend Open Studio kullanıyorum) ;

DATASTAGE SERVER 7.5
DATASTAGE PX 7.5
TALEND OPEN STUDIO 2.4.1
INFORMATICA 8.1.1
PENTAHO DATA INTEGRATOR 3.0.0

Link ;
http://www.manapps.tm.fr/pdfETL/ETLBenchmarks_Manapps%20090203.pdf
İyi Çalışmalar…
]]></description>
			<content:encoded><![CDATA[<p>ETL dünyama girdikçe sizinle paylaşmaya devam edeceğim&#8230;<br />
Son bulduğum güzel linkte 130 sayfalık bir karşılaştırma raporu mevcut. Kıyaslama aşağıdaki ETL tool&#8217; ları arasında (Ben Talend Open Studio kullanıyorum) ;</p>
<ul>
<li>DATASTAGE SERVER 7.5</li>
<li>DATASTAGE PX 7.5</li>
<li>TALEND OPEN STUDIO 2.4.1</li>
<li>INFORMATICA 8.1.1</li>
<li>PENTAHO DATA INTEGRATOR 3.0.0</li>
</ul>
<p><span style="text-decoration: underline;">Link ;</span></p>
<p style="padding-left: 30px;"><a href="http://www.manapps.tm.fr/pdfETL/ETLBenchmarks_Manapps%20090203.pdf" target="_blank">http://www.manapps.tm.fr/pdfETL/ETLBenchmarks_Manapps%20090203.pdf</a></p>
<p>İyi Çalışmalar…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=476</wfw:commentRss>
		</item>
		<item>
		<title>Report Studio - TOP 5 Listemiz</title>
		<link>http://www.mevlutbecerikli.com/?p=473</link>
		<comments>http://www.mevlutbecerikli.com/?p=473#comments</comments>
		<pubDate>Mon, 26 Jul 2010 13:19:21 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Cognos]]></category>

		<category><![CDATA[İş Zekası]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=473</guid>
		<description><![CDATA[Merhabalar&#8230;
Raporlarımızda (Özellikle grafiksel) bazı alaları (Dimension) baz alarak istatiksel veri alanlarını (Fact) sıralarız. Ama baz alınan bu alanlarının çokluğu karmaşıklığa yol açar ve müdür direkt şu ifadeyi kullanır;
- Bana NÜFUS açısından ilk 5 İL i getirsin yeter&#8230;
Bu gibi bir durumda raporumuzu nasıl tasarlıcaz ona değinmek istiyorum. Bu örneği Cognos 8.3 ve İlişkisel (Relational) bir modelde [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar&#8230;</p>
<p>Raporlarımızda <em>(Özellikle grafiksel)</em> bazı alaları <em>(Dimension)</em> baz alarak istatiksel veri alanlarını <em>(Fact)</em> sıralarız. Ama baz alınan bu alanlarının çokluğu karmaşıklığa yol açar ve müdür direkt şu ifadeyi kullanır;</p>
<p>- Bana <strong>NÜFUS</strong> açısından ilk 5 <strong>İL</strong> i getirsin yeter&#8230;</p>
<p>Bu gibi bir durumda raporumuzu nasıl tasarlıcaz ona değinmek istiyorum. Bu örneği Cognos 8.3 ve İlişkisel <em>(Relational)</em> bir modelde yaptığımı belirteyim.</p>
<p>Öncelikle rapor sorgumuza (<em><strong>qAltVeri</strong></em>) bir <strong>DataItem </strong>(<em><strong>SIRALAMA</strong></em>) ekleyerek <strong>Expression Definition </strong>ekranında şu ifadeyi yazalım;</p>
<p style="text-align: center;"><span style="color: #339966;"><em><strong>Rank([NUFUS] desc for report) </strong></em></span></p>
<p>Böylece <strong>NÜFUS </strong>alanına göre azalan yönce veri sonuç kümesini sıralayarak yanına eklediğimiz sütunda tekil <em>(UNIQUE)</em> ve sıralı artan<em> (AUTO INCREMENT)</em> bir alan elde etmiş oluruz.</p>
<p>Bu sorgu bizim temel sorgumuz olacak ve bu sorguyu kullanarak yeni sorgular üretebiliriz. Amacımız olan ilk 5 kayıt için yeni bir sorgu <em>(2. sorgu)</em> oluşturup filtreye de şu ifadeyi yazarız;</p>
<p style="text-align: center;"><span style="color: #339966;"><strong>[<em>qAltVeri</em>].[SIRALAMA]&lt;=5</strong></span></p>
<p>Görüldüğü gibi <em>TOP 5</em> listemizi oluşturmuş olduk. Sorgumuzda IL bazında <em><strong>qAltveri </strong></em>sorgusunu kullanmıştık ve <strong>IL </strong>alanımızın <strong>Expression Definition </strong>değeri de aşağıdaki gibiydi;</p>
<p style="text-align: center;"><span style="color: #339966;"><em><strong>[qAltVeri].[IL_ADI]</strong></em></span></p>
<p>Peki ya ilk dışında kalmayanları da toplu olarak, <em><strong>&#8220;DİĞER İLLER&#8221;</strong></em> olarak istenirse?</p>
<p>3. bir sorgu oluşturup filtreye de;</p>
<p style="text-align: center;"><span style="color: #339966;"><strong>[<em>qAltVeri</em>].[SIRALAMA]&lt;=5</strong></span></p>
<p>yazmamız yeterli olacak mıdır ? <span style="color: #ff0000;"><strong>HAYIR!!!!</strong></span></p>
<p>Her <strong>İL</strong>&#8216; i aynı saymak için <strong>Expression Definition </strong>değeri de aynı olmalıdır ki <strong>İL DataItem</strong>&#8216; ının <strong>Expression Definition </strong>değerine <em><strong>&#8220;DİĞER İLLER&#8221;</strong></em> yazarak bu işten yırtabiliriz. Sonra da 2. ve 3.  sorgularımızı <strong>UNION </strong>yaparak 4. sorgumuz elde edebiliriz.</p>
<p>İster <span style="color: #ff0000;"><em>List</em></span>, ister <span style="color: #ff0000;"><em>Chart</em></span>, isterseniz de <span style="color: #ff0000;"><em>Crosstab</em></span>&#8230;. Bu 4. sorguyu kullanarak istediğiniz gibi raporunuzu oluşturabilirsiniz.</p>
<p><span style="text-decoration: underline;"><strong>Not :</strong></span> <em><strong>&#8220;DİĞER İLLER&#8221; </strong></em>i raporda en alt sırada göstermek isteyeceksinizdir. Bunun için de 2. ve 3. sorgulara yeni bir DataItem ekleyerek <strong>Expression Definition </strong>değerlerine <span style="color: #ff0000;">&#8220;0&#8243;</span> ve <span style="color: #ff0000;">&#8220;1&#8243;</span> ekleyerek rapor tipinize göre <em><span style="color: #ff0000;">SORTING</span></em> özelliğini <span style="color: #ff0000;"><em>ASC/DESC</em></span> yaparak bunu sağlayabilirsiniz&#8230;</p>
<p>İyi Çalışmalar…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=473</wfw:commentRss>
		</item>
		<item>
		<title>Cognos ???</title>
		<link>http://www.mevlutbecerikli.com/?p=470</link>
		<comments>http://www.mevlutbecerikli.com/?p=470#comments</comments>
		<pubDate>Thu, 22 Jul 2010 14:33:03 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Cognos]]></category>

		<category><![CDATA[İş Zekası]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=470</guid>
		<description><![CDATA[Cognos nedir? Neler yapabilir?  gibi soruların cevabını bulabileceğiniz, özellikle Cognos öğrenmeye yeni başlayacak olanlar için güzelden öte görsel bir kaynak;
http://www.udel.edu/cognos/
Bunun dışında elbetteki ürünün sahibi olan IBM firmasının eşsiz kaynağı olan sitesi için tıklayınız
İyi Çalışmalar…
]]></description>
			<content:encoded><![CDATA[<p>Cognos nedir? Neler yapabilir?  gibi soruların cevabını bulabileceğiniz, özellikle Cognos öğrenmeye yeni başlayacak olanlar için güzelden öte görsel bir kaynak;</p>
<p><a href="http://www.udel.edu/cognos/" target="_blank">http://www.udel.edu/cognos/</a></p>
<p>Bunun dışında elbetteki ürünün sahibi olan IBM firmasının eşsiz kaynağı olan sitesi için <a href="http://www.ibm.com/search/csass/search?q=swf&amp;sn=spe&amp;filter=language:en%20collection:stgsysx,dblue,ic,pubs,devrel1&amp;prod=X558425N40027Y15" target="_blank">tıklayınız</a></p>
<p>İyi Çalışmalar…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=470</wfw:commentRss>
		</item>
		<item>
		<title>The Oracle PFILE / The Oracle SPFILE</title>
		<link>http://www.mevlutbecerikli.com/?p=459</link>
		<comments>http://www.mevlutbecerikli.com/?p=459#comments</comments>
		<pubDate>Thu, 22 Jul 2010 13:32:01 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Veritabanı]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=459</guid>
		<description><![CDATA[PFILE ve SPFILE, dosyaları içerisinde kayıtlı olan parametreler, veritabanı ayarlarını kapsamaktadır. Bu parametreler ile Oracle nasıl çalışmaya başlayacağına (çalışacağına) karar verir. Bunlar, veritabanı ile ilgili dosyaların yerlerini işaret eden ve Oracle yapıları tarafından kullanılacak hafıza değerleri içeren parametrelerdir.Bunlar parametrelere;


DESC v$parameter komutunu çalıştırarak 
SQL*Plus dan SHOW PARAMETERS komutnu çalıştırarak
V$PARAMETER isimli View&#8217; i sorgulayarak

ulaşabilirsiniz. Şimdi bu iki [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><strong>PFILE </strong>ve <strong>SPFILE</strong>, dosyaları içerisinde kayıtlı olan parametreler, veritabanı ayarlarını kapsamaktadır. Bu parametreler ile Oracle nasıl çalışmaya başlayacağına (çalışacağına) karar verir. Bunlar, veritabanı ile ilgili dosyaların yerlerini işaret eden ve Oracle yapıları tarafından kullanılacak hafıza değerleri içeren parametrelerdir.Bunlar parametrelere;<br />
</span></p>
<ul>
<li><strong>DESC v$parameter</strong> <span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">komutunu çalıştırarak </span></li>
<li>SQL*Plus dan <strong>SHOW PARAMETERS</strong> komutnu çalıştırarak</li>
<li><strong>V$PARAMETER</strong> isimli View&#8217; i sorgulayarak</li>
</ul>
<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">ulaşabilirsiniz. Şimdi bu iki , PFILE ve SPFILE, dosya arasındaki farkları incelemeye çalışalım;</span></p>
<p><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">PFILE (Parameter File) : </span></span></strong></p>
<ul>
<li><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Dosyanın ismi </span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Default olarak </span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">&#8220;<em><strong>init.ora</strong></em>&#8221; veya <strong><em>ORACLE_SID</em></strong> ifadesi kullanılarak &#8220;<em><strong>initSID.ora</strong></em>&#8221; formatındadır.<br />
</span></li>
</ul>
<ul>
<li><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Dosyanın yeri Windows için &#8220;<em><strong>ORACLE_HOME\database</strong></em>&#8221; ve<span> </span>Unix için <span> </span>&#8220;<em><strong>ORACLE_HOME\dbs</strong></em>&#8221; dizinleridir.</span></li>
</ul>
<ul>
<li><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">PFILE, metin tabanlı yani NOTEPAD (Windows) veya vi (Unix)&#8230;v.b herhangi bir editör ile açılıp içeriği değiştirilebilir bir dosyadır. </span></li>
</ul>
<p><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">SPFILE (Server Parameter File) : </span></span></strong></p>
<ul>
<li><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Dosyanın ismi Default olarak </span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">&#8220;<em><strong>spfile.ora</strong></em>&#8221; veya </span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"><em><strong>ORACLE_SID</strong></em> ifadesi kullanılarak &#8220;<em><strong>spfileSID.ora</strong></em>&#8221; formatındadır.</span></li>
</ul>
<ul>
<li><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Dosyanın yeri Windows için &#8220;<em><strong>ORACLE_HOME\database</strong></em>&#8221; ve<span> </span>Unix için <span> </span>&#8220;<em><strong>ORACLE_HOME\dbs</strong></em>&#8221; dizinleridir.</span></li>
</ul>
<ul>
<li><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">SPFILE, PFILE aksine İkili (Binary) bir dosyadır. Bir editör aracılığı ile içeriği elle olarak değiştirilemez. Oracle, SPFILE içeriğini değiştirme işlemini &#8220;<em><strong>ALTER SYSTEM SET&#8230;</strong></em>&#8221; komutu ile yapmamızı sağlar.</span></li>
</ul>
<ul>
<li>PFILE göre en büyük avantajlarından birisi, Kalıcı (Persistent) parametrelerin dinamik olarak veritabanının kapanıp açılmasına gerek duymadan değiştirilmesi ve aktif hale getirilebilmesidir. Veritabanı kapatılıp açıldıktan sonra bile bu değişiklikler devamlılığını sürdürebilmektedir. Bu işlem;<em><strong>ALTER SYSTEM SET &lt;parametre_ismi&gt; = &lt;deger&gt;  SCOPE=SPFILE; </strong></em></li>
</ul>
<ul>
<li>komutu ile gerçekleştirilir. SCOPE ifadesi 3 değer alabilmektedir;</li>
</ul>
<ul>
<li>
<ul>
<li><strong>MEMORY : </strong>Default seçenektir ve değişiklikler sadece mevcut Instance için geçerli olacaktır.</li>
<li><strong>SPFILE :</strong> SPFILE&#8217; ı günceller ve değişiklikler bir sonraki STARUP da geçerli olacaktır</li>
<li><strong>BOTH :</strong> Bu seçenek diğer iki seçeneğin toplamıdı. Çalıştırıldığı andan itibaren geçerli olup SPFILE da kayıtlı olur ve sonraki STARTUP&#8217; larda da geçerli olur.</li>
</ul>
</li>
</ul>
<ul>
<li>Diğer bir avantajı da RMAN ile yedeklenebilmesidir. Veritabanında yapısal bir değişiklik olduğunda ya da veritabanının yedeği her alındığında otomatik olarak RMAN tarafından yedeği alınabilir. Dolayısıyla da Kurtarma (Recover) işlemi de otomatik ve kolayca olur.</li>
</ul>
<ul>
<li>SPFILE&#8217; ın önemli bir diğer avantajı da, Oracle&#8217; ın Otomatik Ayar (Tuning) özellikleri için SPFILE a ihtiyaç duymasıdır.</li>
</ul>
<p><strong><span style="text-decoration: underline;"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;">Oracle STARUP esnasında hangi dosyayı kullanır ???</span></span></strong></p>
<p>Sırasıyla;</p>
<ol>
<li>spfileSID.ora</li>
<li>spfile.ora</li>
<li>initSID.ora</li>
<li>init.ora</li>
</ol>
<p>dosyalarını arar ve ilk bulduğu dosyaya göre açılır. Kendimiz de bu seçimi belirleyebiliriz;</p>
<ul>
<li>SQL&gt; startup pfile=/&#8230;./initTEST.ora</li>
<li>SQL&gt; startup spfile=/&#8230;./initTEST.ora</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Not :</strong></span> PFILE&#8217; dan SPFILE ve SPFILE&#8217; dan PFILE elde ederek SPFILE içeriğini de değiştirebiliriz. Nasıl mı ?</p>
<pre class="bb-code-block">SQL&gt; CREATE PFILE FROM SPFILE;
<code class="bb-code">SQL&gt; CREATE </code><code class="bb-code">PFILE='/.../initTEST.ora' from </code><code class="bb-code">SPFILE='/.../spfileTEST.ora';</code>
SQL&gt; CREATE SPFILE FROM PFILE;<code class="bb-code">SQL&gt; CREATE SPFILE='/.../spfileTEST.ora' from PFILE='/.../initTEST.ora';

</code>İyi Çalışmalar…</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=459</wfw:commentRss>
		</item>
		<item>
		<title>Report Studio - Cognos Raporlarının XML Hali</title>
		<link>http://www.mevlutbecerikli.com/?p=457</link>
		<comments>http://www.mevlutbecerikli.com/?p=457#comments</comments>
		<pubDate>Fri, 16 Jul 2010 07:54:34 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Cognos]]></category>

		<category><![CDATA[İş Zekası]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=457</guid>
		<description><![CDATA[Merhabalar,
Cognos raporlarını, Cognos&#8217; un kendi özelliği olan Report Studio&#8216; dan istediğimiz gibi dizayn edip tasarlayabilir ve geliştirebiliriz. Ama bazen bu raporları bir dosya olarak taşımak gerekebiliyor. Bu durumda, Report Studio (Cognos) bir raporun yapısını XML olarak bize sağlamaktadır.
Bir raporu export etmek için, Report Studio ortamında  &#8220;Tools &#62;&#62; Copy Report to Clipboard&#8221; menüsünü tıklayarak kopyalayıp, XML [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar,</p>
<p>Cognos raporlarını, Cognos&#8217; un kendi özelliği olan <strong>Report Studio</strong>&#8216; dan istediğimiz gibi dizayn edip tasarlayabilir ve geliştirebiliriz. Ama bazen bu raporları bir dosya olarak taşımak gerekebiliyor. Bu durumda, Report Studio (Cognos) bir raporun yapısını XML olarak bize sağlamaktadır.</p>
<p><span style="text-decoration: underline;">Bir raporu export etmek için</span>, <strong>Report Studio</strong> ortamında  <span style="color: #ff0000;"><strong>&#8220;Tools &gt;&gt; Copy Report to Clipboard&#8221;</strong></span> menüsünü tıklayarak kopyalayıp, XML formatını destekleyen herhangi bir editore yapıştırarak XML olarak kaydedebilir ve istediğimiz gibi kullanabiliriz.</p>
<p><span style="text-decoration: underline;">Bir raporu import etmek için</span>, Raporumuzun XML formatındaki son halini kopyaladıktan sonra <strong>Report Studio</strong> ortamında <span style="color: #ff0000;"><strong>&#8220;Tools &gt;&gt; Open Report from Clipboard&#8221;</strong></span> menüsünü tıkladığımızda raporumuz açlıacaktır.</p>
<p>İyi Çalışmalar&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=457</wfw:commentRss>
		</item>
		<item>
		<title>ŞEMA (SCHEMA) bazlı Yetkilendirme</title>
		<link>http://www.mevlutbecerikli.com/?p=333</link>
		<comments>http://www.mevlutbecerikli.com/?p=333#comments</comments>
		<pubDate>Tue, 13 Jul 2010 07:37:13 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[PL/SQL]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[Veritabanı]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=333</guid>
		<description><![CDATA[ORACLE veritabanımızdaki mevcut bir kullanıcıya, mevcut bir şemadaki tüm tablolara erişim yetkisi (SELECT, UPDATE,INSERT,DELETE &#8230;vs.) verilmesini istiyoruz. Bunun tek bir GRANT komutu ile yapamayız. TOAD gibi araçlar ile kolayca yapabilsekte bunu tek tek yapmak da sıkıcı olsa gerek ?
Bu iş için bir PLSQL bloğu yapabiliriz&#8230;
EGITIM şemasındaki tabloları için MEVLUT kullanıcısını yetkilendirelim;
FOR x IN (SELECT * [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>ORACLE </strong>veritabanımızdaki mevcut bir kullanıcıya, mevcut bir şemadaki tüm tablolara erişim yetkisi (<strong>SELECT, UPDATE,INSERT,DELETE</strong> &#8230;vs.) verilmesini istiyoruz. Bunun tek bir <strong>GRANT </strong>komutu ile yapamayız. <strong>TOAD </strong>gibi araçlar ile kolayca yapabilsekte bunu tek tek yapmak da sıkıcı olsa gerek ?<br />
Bu iş için bir <strong>PLSQL </strong>bloğu yapabiliriz&#8230;</p>
<p><strong>EGITIM </strong>şemasındaki tabloları için <strong>MEVLUT </strong>kullanıcısını yetkilendirelim;</p>
<p style="padding-left: 30px;"><span style="font-family: arial; color: #008000;">FOR x IN (SELECT * FROM dba_tables WHERE owner = &#8216;EGITIM&#8217;)<br />
LOOP<br />
EXECUTE IMMEDIATE &#8216;GRANT SELECT, UPDATE, DELETE, INSERT ON &#8216; || x.owner || &#8216;.&#8217; || x.table_name || &#8216; TO MEVLUT&#8217;;<br />
END LOOP;</span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>NOT :</strong></span> Tabiki bu script çalıştırıldıktan sonra veritabanında EGITIM şemasında oluşturulan tablolara MEVLUT kullanıcısının yetkisi olmayacaktır. Script kaydedilip düzenli olarak çalıştırılabilir.</p>
<p style="text-align: justify;">Şu an sadece tablo için ve manual olarak konuşuyorum. Ama bunu <strong>DDL </strong>ifadelerine endeksli bir <strong>TRIGGER </strong>ile otomatik olarak da yapmamız mümkün. Mesela bir tablo yaratıldığında <strong>MEVLUT </strong>kullanıcısına <strong>SELECT </strong>yetkisi verilmesini sağlayan bir <strong>TRIGGER </strong>yazalım;</p>
<p style="padding-left: 30px;"><span style="color: #008000;">CREATE OR REPLACE TRIGGER do_grant<br />
AFTER CREATE ON SCHEMA<br />
DECLARE<br />
l_str varchar2(255);<br />
l_job number;<br />
BEGIN<br />
IF ( ora_dict_obj_type = &#8216;TABLE&#8217; ) THEN<br />
l_str := &#8216;EXECUTE IMMEDIATE &#8220;GRANT SELECT ON &#8216; || ORA_DICT_OBJ_NAME || &#8216; TO mevlut&#8221;;&#8217;;<br />
DBMS_JOB.SUBMIT( l_job, replace(l_str,&#8217;&#8221;&#8216;,&#8221;&#8221;) );<br />
END IF;<br />
END;</span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>NOT :</strong></span>Burada  ORA_DICT_OBJ_NAME ifadesi, bir DDL  ifadesi <em>(System Event) </em>çalıştırıldığında  oluşan nesne tipidir (Dictionary  Object Type). Burada oluşan tabloyu verir. Bunun gibi bir çok nesne tipi vardır. Bunlar için aşağıdaki linkleri incelemenizi öneririm.</p>
<p style="text-align: justify;"><a href="http://www.java2s.com/Tutorial/Oracle/0560__Trigger/ORADICTOBJTYPEORADICTOBJOWNERORADICTOBJNAME.htm" target="_blank">http://www.java2s.com/Tutorial/Oracle/0560__Trigger/ORADICTOBJTYPE.htm</a><br />
<a href="http://psoug.org/reference/system_events.html" target="_blank"> http://psoug.org/reference/system_events.html</a></p>
<p style="text-align: justify;">İyi Çalışmalar…</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=333</wfw:commentRss>
		</item>
		<item>
		<title>COL-2-ROW</title>
		<link>http://www.mevlutbecerikli.com/?p=436</link>
		<comments>http://www.mevlutbecerikli.com/?p=436#comments</comments>
		<pubDate>Mon, 17 May 2010 11:51:15 +0000</pubDate>
		<dc:creator>Mevlüt Becerikli</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[Veritabanı]]></category>

		<guid isPermaLink="false">http://www.mevlutbecerikli.com/?p=436</guid>
		<description><![CDATA[SORU : 
Tablomuz (TEST_TABLE)
COL1   COL2
1          A
1          B
1          C
2          A
2          C
İstenen Sonuç
1       A, B, C
2       A, C
HAZIRLIK :
DROP TABLE TEST_TABLE;
/
CREATE TABLE TEST_TABLE (COL1 NUMBER,  COL2 VARCHAR(2)) ;
/
INSERT INTO TEST_TABLE VALUES (1, &#8216;A&#8217;);
INSERT  INTO TEST_TABLE VALUES (1, &#8216;B&#8217;);
INSERT INTO TEST_TABLE VALUES (1,  &#8216;C&#8217;);
INSERT INTO TEST_TABLE VALUES (2, &#8216;A&#8217;);
INSERT INTO  [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="text-decoration: underline; color: #ff0000;">SORU : </span></strong></p>
<p><strong><span style="color: #339966;"><em>Tablomuz (TEST_TABLE)</em></span></strong></p>
<p style="padding-left: 30px;">COL1   COL2<br />
1          A<br />
1          B<br />
1          C<br />
2          A<br />
2          C</p>
<div><em><strong><span style="color: #339966;">İstenen Sonuç</span></strong></em></div>
<p style="padding-left: 30px;">1       A, B, C<br />
2       A, C</p>
<div><span style="text-decoration: underline; color: #ff0000;"><strong>HAZIRLIK :</strong></span></div>
<div style="padding-left: 30px;">DROP TABLE TEST_TABLE;<br />
/<br />
CREATE TABLE TEST_TABLE (COL1 NUMBER,  COL2 VARCHAR(2)) ;<br />
/<br />
INSERT INTO TEST_TABLE VALUES (1, &#8216;A&#8217;);<br />
INSERT  INTO TEST_TABLE VALUES (1, &#8216;B&#8217;);<br />
INSERT INTO TEST_TABLE VALUES (1,  &#8216;C&#8217;);<br />
INSERT INTO TEST_TABLE VALUES (2, &#8216;A&#8217;);<br />
INSERT INTO  TEST_TABLE VALUES (2, &#8216;C&#8217;);<br />
/<br />
COMMIT;</div>
<p><span style="color: #ff0000;"><span style="text-decoration: underline;"><strong>ÇÖZÜMLER :</strong></span></span></p>
<p style="padding-left: 30px;"><em><span style="color: #339966;"><strong>1. YOL (CONNECT BY) :</strong></span></em></p>
<p style="padding-left: 30px;">SELECT COL1,<br />
SUBSTR(SYS_CONNECT_BY_PATH(COL2, &#8216;,&#8217;), 2) LISTE<br />
FROM (select COL2,<br />
COL1,<br />
COUNT(*) OVER (PARTITION BY COL1) cnt,<br />
ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) seq<br />
FROM (SELECT * FROM TEST_TABLE))<br />
WHERE seq = cnt<br />
START WITH seq = 1<br />
CONNECT BY PRIOR seq + 1 = seq AND PRIOR COL1 = COL1;</p>
<p style="padding-left: 30px;"><em><span style="color: #339966;"><strong>2. YOL (XML) :</strong></span></em></p>
<p style="padding-left: 30px;">SELECT COL1,<br />
RTRIM(XMLAGG(XMLELEMENT(c, COL2 ||&#8217;, &#8216;)).EXTRACT(&#8217;//text()&#8217;), &#8216;, &#8216;) LISTE<br />
FROM TEST_TABLE<br />
GROUP BY COL1;</p>
<p style="padding-left: 30px;"><em><span style="color: #339966;"><strong>3. YOL (WM_CONCAT) :</strong></span></em></p>
<p style="padding-left: 30px;">SELECT COL1,<br />
WM_CONCAT(COL2) LISTE<br />
FROM TEST_TABLE<br />
GROUP BY COL1;</p>
<p>İyi Çalışmalar…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mevlutbecerikli.com/?feed=rss2&amp;p=436</wfw:commentRss>
		</item>
	</channel>
</rss>
