<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ahmet HAYRAN &#187; Oracle</title>
	<atom:link href="http://www.ahmethayran.com/category/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ahmethayran.com</link>
	<description>&#34;Keep It Simple, Smartypants&#34;</description>
	<lastBuildDate>Sun, 18 Dec 2011 09:21:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Oracle Provider For Ole DB</title>
		<link>http://www.ahmethayran.com/2010/11/oracle-provider-for-ole-db/</link>
		<comments>http://www.ahmethayran.com/2010/11/oracle-provider-for-ole-db/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 09:07:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.ahmethayran.com/?p=183</guid>
		<description><![CDATA[Windows Server 2008 / Windows 7 işletim sistemlerine Oracle için Ole DB sağlayıcı yüklemek bir hayli zaman alan ve çoğunluklada başarız sonuçlanan bir işlem halini almaktadır. Bu yazıda kurulum için gerekli detaylı bilgi verilmiş ve adım adım açıklanmıştır.

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ahmethayran.com/wp-content/uploads/2010/04/oracle_logo.jpg"><img class="alignleft size-full wp-image-120" title="Oracle Logo" src="http://www.ahmethayran.com/wp-content/uploads/2010/04/oracle_logo.jpg" alt="Oracle 10gR2" width="272" height="182" /></a>Windows Server 2008 / Windows 7 işletim sistemlerine Oracle için Ole DB sağlayıcı yüklemek bir hayli zaman alan ve çoğunluklada başarız sonuçlanan bir işlem halini almaktadır. Bu yazıda kurulum için gerekli detaylı bilgi verilmiş ve adım adım açıklanmıştır.</p>
<p>Masaüstünüze bir test.udl dosyası oluşturun. Bu dosyaya çift tıklatığınızda açılacak &#8220;Data Link Properties&#8221; penceresinin &#8220;Provider (Sağlayıcı)&#8221; sekmesinde şuan sisteminizde yüklü provider listesini göreceksiniz. Buradaki önemli nokta bu listenin işletim sisteminizin 32 veya 64 bit olmasına göre değiştiğidir. Daha açık bir ifadeyle 64 bit(Server 2008 veya 7) bir işletim sisteminde .udl dosyasına çift tıkladığınızda C:\Program Files\Common Files\System\Ole DB altında oledb32.dll dosyası çalışmakta ve bu .dll dosyası çalışıtırıldığında (rundll32.exe tarafından) karşınıza 64 bitlik provider listesi gelmektedir. Diğer yandan .udl dosyası aşağıda örnekteki gibi çalıştırıldığında durumun farklı olduğunu göreceksiniz.</p>
<p>&gt; rundll32.exe &#8220;C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll&#8221;,OpenDSLFile C:\Users\Administrator\Desktop\test.udl</p>
<p><span id="more-183"></span></p>
<p>Bu şekilde çalıştırılan .udl dosyası sonucu gelen provider listesinde farklı providerlar görüntülenecektir. Bu providerlar 32 bit&#8217;liktir ve Oracle Provider for OLE DB bu listede görünmeyecektir. Bu providerı yüklemek için gerekli işlemler aşağıda adım adım anlatılmıştır:</p>
<ul>
<li><a href="http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html">http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html</a> adresinden Oracle 11g Release 2 ODAC 11.2.0.1.2 with Xcopy Deployment paketini indirip masaüstünüze açın. Bu paket içerisinde (Oracle Data Access Components) OLE DB, ODBC gibi providerlar ve uygulama geliştiriceler için gerekli araçlar bulunmaktadır. Konumuz OLE DB olduğundan tüm paketi kurmak yerine sadece OLE DB yi sisteme yükleyebiliriz.</li>
<li>Açtığınız klasör içine girerek install.bat dosyasını çalıştırmadan önce C:\ sürücüsünün içine &#8220;oracle&#8221; adında bir klasör açın. Sonra install.bat dosyasını komut satırından çalışıtırın (&gt; install.bat OLEDB c:\oracle HOME). Bu dosyayı çalışıtırdığınızda c:\oracle altına gerekli dosyalar yüklenirken (oledb ve instantclient) registery bilgileride yazılmaktadır.</li>
<li>Sonra Environment Variables&#8217;lardan PATH değişkini içine c:\oracle ve c:\oracle\bin yollarını ekleyin.</li>
<li>Bilgisayarınızı tekrar başlattığınızda ve udl dosyanızı 32 bitlik oledb32.dll ile çalıştırdığınızda (Yukarıda örnekteki gibi) provider listesinde Oracle Provider for OLE DB görünecektir. Görünmezse c:\oracle\bin altındaki OraOLEDB11.dll dosyasını elle kayıt ettirin(&gt;regsvr32 c:\oracle\bin\OraOLEDB11.dll)</li>
</ul>
<p>Bu işlemlerden sonra providerınız kullanıma hazırdır.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ahmethayran.com/2010/11/oracle-provider-for-ole-db/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle DB: Case Insensetive Arama</title>
		<link>http://www.ahmethayran.com/2010/04/oracle-db-case-insensetive-arama/</link>
		<comments>http://www.ahmethayran.com/2010/04/oracle-db-case-insensetive-arama/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 12:19:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Case Insensitivity]]></category>
		<category><![CDATA[Oracle 10gR2]]></category>
		<category><![CDATA[Oracle DB]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.ahmethayran.com/?p=117</guid>
		<description><![CDATA[Uygulama geliştiricilerin veya veri tabanı adminlerinin genellikle problem yaşadığı konulardan bir taneside Oracle Case Insensetive Search (Büyük Küçük Harfe Duyurlu Arama) problemidir. Bunu konu üzerine bir çok yazı ile karşılaşmış ve bu konu ile ilgili bir çok çözüm yolunu uygulamaya çalışmış olabilirsiniz. Oracle 10gR2 öncesinde case insensetive arama için bir çok çözüm yolu mevcut olmasına rağmen bu yollardan sadece bir tanesinin uygulanması nihai çözüm olmamaktaydı.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ahmethayran.com/wp-content/uploads/2010/04/oracle_logo.jpg"><img class="alignleft size-medium wp-image-120" title="Oracle Logo" src="http://www.ahmethayran.com/wp-content/uploads/2010/04/oracle_logo-300x225.jpg" alt="Oracle 10gR2" width="238" height="166" /></a>Uygulama geliştiricilerin veya veri tabanı yöneticilerinin genellikle problem yaşadığı konulardan bir tanesi de Oracle Case Insensetive Search (Büyük Küçük Harfe Duyurlu Arama). Bunu konu üzerine bir çok yazı ile karşılaşmış ve bu konu ile ilgili bir çok çözüm yolunu uygulamaya çalışmış olabilirsiniz. Oracle 10gR2 öncesinde case insensetive arama için bir çok çözüm yolu mevcut olmasına rağmen bu yollardan sadece bir tanesinin uygulanması nihai çözüm olmamaktadır.</p>
<p>Örneğin &#8220;Querying Data with Case Insensevity&#8221; bu konulara bir örnek olabilir. Genellikle bu yol uygulama geliştiriciler için çok maliyetli olmaktadır. Maliyet ile kastetmek istediğim çok fazla emek ve zaman kaybıdır. Çünkü yazılmış betikler içindeki sorguların yapısını değiştirmek gerekmektedir. Kısacası bu durumda tek seçeneğiniz UPPER, NLS_UPPER ve REGEXP_LIKE gibi optisiyonları kullanmak olacaktır. Fakat 10gR2 sürümünden sonra gelen bir özellik ile bu duruma daha iyi bir çözüm bulunmuştur.</p>
<p><span id="more-117"></span></p>
<p>Aşağıda 10gR2 öncesinin ve sonrasının tipik çözümlerini örnek üzerinde gösterdim.</p>
<p>10gR2 öncesi yaratılmış bir tablodaki kişilerin isimlerini çektim.</p>
<p class="errorbox">SQL&gt; select name from names;<br />
NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Ahmet Hayran<br />
ahmet hayran<br />
AHMET HAYRAN</p>
<p>NLS_SORT=BINARY olarak düzenledikten sonra yapmış olduğum sorgu case sensetive olarak çalıştı.</p>
<p class="errorbox">SQL&gt; alter session set NLS_SORT=BINARY;<br />
Session altered.<br />
SQL&gt; select name from names where name = &#8216;Ahmet Hayran&#8217;;<br />
NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Ahmet Hayran</p>
<p>NLS_SORT parametresinin değerinini bu sefer sonuna _CI (Case Insensetive) getirerek değiştirdim. Eşitliklerde görüldüğü üzere problem yok.</p>
<p class="errorbox">SQL&gt; alter session set NLS_COMP=ANSI;<br />
Session altered.<br />
SQL&gt; alter session set NLS_SORT=BINARY_CI;<br />
Session altered.<br />
SQL&gt; select name from names where name = &#8216;Ahmet Hayran&#8217;;<br />
NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Ahmet Hayran<br />
ahmet hayran<br />
AHMET HAYRAN</p>
<p>NLS_SORT parametresini tekrar eski haline alıp BINARY yaptım. LIKE parametresi case sensetive çalıştı.</p>
<p class="errorbox">SQL&gt; alter session set NLS_SORT=BINARY;<br />
Session altered.<br />
SQL&gt; select name from names where name like &#8216;Ahmet%&#8217;;<br />
NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Ahmet Hayran</p>
<p>NLS_SORT parametresini eşitlikte çalışmış olduğu şekli ile tekrar düzenletim fakat like sorgularında durum yine aynı. Soruguda görüldüğü üzere like case sensetive çalıştı.</p>
<p class="errorbox">SQL&gt; alter session set NLS_COMP=ANSI;<br />
Session altered.<br />
SQL&gt; alter session set NLS_SORT=BINARY_CI;<br />
Session altered.<br />
SQL&gt; select name from names where name like &#8216;Ahmet%&#8217;;<br />
NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Ahmet Hayran</p>
<p>10gR2 sürümü ve sonraki sürümlerinde NLS_COMP parametresine getirilen &#8216;LINGUISTIC&#8217; değeri ile tüm eştitlik, sıralama işlemlerinin yanında benzerlik(LIKE) sorgularıda case insensetive çalışacaktır.</p>
<p class="errorbox">SQL&gt; alter session set NLS_SORT=BINARY_CI;<br />
Session altered.<br />
SQL&gt; alter session set NLS_COMP=LINGUISTIC;<br />
Session altered.<br />
SQL&gt; select name from names where name = &#8216;Ahmet Hayran&#8217;;<br />
NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Ahmet Hayran<br />
ahmet hayran<br />
AHMET HAYRAN<br />
SQL&gt; select name from names where name like &#8216;Ahmet%&#8217;;<br />
NAME<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Ahmet Hayran<br />
ahmet hayran<br />
AHMET HAYRAN</p>
<p>REFERANSLAR</p>
<p>Koopman, J. (2005). Retrieved From <a href="http://www.orafaq.com/node/91">http://www.orafaq.com/node/91</a> at 2009</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ahmethayran.com/2010/04/oracle-db-case-insensetive-arama/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

