<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>case-sensitive &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/case-sensitive/</link>
	<description>Feed of posts on WordPress.com tagged "case-sensitive"</description>
	<pubDate>Sun, 29 Nov 2009 15:44:09 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Ignorando case sensitive na consulta SQL]]></title>
<link>http://postgresblog.wordpress.com/?p=35</link>
<pubDate>Tue, 27 Oct 2009 11:39:22 +0000</pubDate>
<dc:creator>msantino</dc:creator>
<guid>http://postgresblog.wordpress.com/?p=35</guid>
<description><![CDATA[Vou mostrar aqui uma solução que tenho utilizado frequentemente em alguns trabalhos, substituindo um]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Vou mostrar aqui uma solução que tenho utilizado frequentemente em alguns trabalhos, substituindo um pouco uma série de tratamentos dentro da query e consequentemente, economizando um tempinho!</p>
<p><!--more--><strong>Problema</strong>:<br />
Como fazer buscas em banco de dados ignorando letras maiusculas/minusculas?</p>
<p>Geralmente os SGBDs são case sensitive e é muito comum recorrermos a alternativas para transformar os textos na hora de comparar valores do banco case sensitive em consultas que fazemos.</p>
<p>Exemplo de uma query comum:</p>
<blockquote><p>SELECT * FROM cliente WHERE nome LIKE &#8216;%Marcelo%&#8217;;</p></blockquote>
<p>Nessa query, retornarão apenas clientes que possuam Marcelo (com M maiúsculo) no nome. Se o valor consultado estivesse em letras minúsculas (marcelo), ignoraria todos os nomes em maiúsculos cadastrados no banco.</p>
<p><strong>Alternativa Padrão:</strong></p>
<p>Algumas pessoas passaram a utilizar a função UPPER para eliminar esse problema:</p>
<blockquote><p>SELECT * FROM cliente WHERE UPPER(nome) LIKE &#8216;%&#8217; &#124;&#124; UPPER(&#8216;Marcelo&#8217;) &#124;&#124; &#8216;%&#8217;;</p></blockquote>
<p>Nesse caso, o valor armazenado na coluna nome será transformado para CAIXA ALTA e o mesmo acontecerá para o valor consultado. No caso, o valor Marcelo será transformado para MARCELO.</p>
<p>Isso funciona até certo ponto, pois essa função não converte letras acentuadas e caracteres especiais. No caso, João seria transformado para JOãO. Creio que esse não é o nosso objetivo, nesse caso.</p>
<p><strong>Eis a solução para o problema:</strong></p>
<p>Sendo assim, a melhor alternativa para esse caso seria usar o termo &#8220;~*&#8221; (til + asterístico). Nesse caso, o Postgre automaticamente procura por qualquer ocorrência do valor pesquisado, ignorando o case sensitive.</p>
<blockquote><p>SELECT * FROM cliente WHERE nome <strong>~*</strong> &#8216;Marcelo&#8217;;</p></blockquote>
<p>Essa técnica funciona em PostgreSQL e MySQL mas nunca testei no Oracle ou MSSQL. Quem experimentar pode compartilhar conosco o resultado com comentários.</p>
<p><a href="http://compare.buscape.com.br/categoria?id=7340&#38;lkout=1&#38;kw=postgresql&#38;site_origem=9000217" target="_blank">Pesquise por hospedagens de sites com MySQL e PostgreSQL</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[to pw protect or not to pw protect?]]></title>
<link>http://netteynette.wordpress.com/2009/08/02/to-pw-protect-or-not-to-pw-protect/</link>
<pubDate>Sun, 02 Aug 2009 02:58:19 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2009/08/02/to-pw-protect-or-not-to-pw-protect/</guid>
<description><![CDATA[I hate craving for something. Like how much I crave for murni/william’s and that bubble tea in Sunwa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><font face="Century Gothic">I hate craving for something.     <br />Like how much I crave for murni/william’s and that bubble tea in Sunway,      <br />that every time I accidentally miss the chance,      <br />I feel so sad and betrayed,      <br />that I can’t help but cry.</font></p>
<p><font face="Century Gothic">Then thinking about it,     <br />I cried for some bloody food and a bloody bubble tea.      <br />It’s so what the heck, even to me.      <br />Yet, I <strong>truly</strong>, <strong>honestly</strong>, <strong>really</strong> cannot help it.</font></p>
<p><font face="Century Gothic">Gosh, I just realize I haven’t seen my friends the whole holidays.     <br />In fact, the last time I’ve seen them was ages ago.      <br />I am devastated.</font></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Casesensitive Issue in MYSQL]]></title>
<link>http://vmchellappan.wordpress.com/2009/07/28/casesensitive-issue-in-mysql/</link>
<pubDate>Tue, 28 Jul 2009 10:36:08 +0000</pubDate>
<dc:creator>MuthuChellappan</dc:creator>
<guid>http://vmchellappan.wordpress.com/2009/07/28/casesensitive-issue-in-mysql/</guid>
<description><![CDATA[I bumped into a weird issue that my java web application is working perfectly in Windows box where a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I bumped into a weird issue that my java web application is working perfectly in Windows box where as when I deploy that in linux it throws following error &#8220;dbuser1.table1&#8243; doesn&#8217;t exist. </p>
<p>After scratching our head for couple of hours I found that I created table with name as &#8220;Table1&#8243; in Mysql database where as in the code I called it as &#8220;table1&#8243; and that&#8217;s the problem. The weird thing is that it everything works fine if the database is deployed in Windows and all this problem will arise only with Linux.</p>
<p>After that I changed the code to access the table with proper name everything works fine. As I used this table name in more than one place it took more than 30 mins to search and replace all entries. So, whenever you have a possibility of linux deployment make sure you use a DBObjectConstants class for holding all database related object names and use that constant through out your application. In this way fixing these kind of issues will be more easier.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Vamos aprender a programar em C/C++? Lição 04: as palavras-chave de C e C++]]></title>
<link>http://fabianovasconcelos.wordpress.com/2009/07/13/vamos-aprender-a-programar-em-cc-licao-04-as-palavras-chave-de-c-e-c/</link>
<pubDate>Mon, 13 Jul 2009 04:30:30 +0000</pubDate>
<dc:creator>fabianovasconcelos</dc:creator>
<guid>http://fabianovasconcelos.wordpress.com/2009/07/13/vamos-aprender-a-programar-em-cc-licao-04-as-palavras-chave-de-c-e-c/</guid>
<description><![CDATA[Salve, galerinha do país do povo que adora uma mamata! Aos que acreditam piamente que o Michael Jack]]></description>
<content:encoded><![CDATA[Salve, galerinha do país do povo que adora uma mamata! Aos que acreditam piamente que o Michael Jack]]></content:encoded>
</item>
<item>
<title><![CDATA[Capital idea - or it certainly would be]]></title>
<link>http://slewfootsnoop.wordpress.com/2009/07/05/capital-idea-or-it-certainly-would-be/</link>
<pubDate>Sun, 05 Jul 2009 20:14:43 +0000</pubDate>
<dc:creator>Murray Dick</dc:creator>
<guid>http://slewfootsnoop.wordpress.com/2009/07/05/capital-idea-or-it-certainly-would-be/</guid>
<description><![CDATA[Nothing rhymes with &#8216;orange&#8217;. But when it comes to search there is an altogether differe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">Nothing rhymes with &#8216;orange&#8217;.</p>
<p style="text-align:justify;">But when it comes to search there is an altogether different problem with this word (and many others).</p>
<p style="text-align:justify;">If you&#8217;re searching for the colour orange, it&#8217;s unlikely that references to the company of the same name, will be relevant to you.</p>
<p style="text-align:justify;">And if that&#8217;s the case, wouldn&#8217;t it be grand if your search engine took steps to differentiate colour from company?  Afterall, the latest Find- option in IE8 allows you to do it on individual pages.</p>
<p style="text-align:justify;">Providing surfers with a means of case-sensitive searching is one such option &#8211; and it used to be available in some free engines (notably <a href="http://www.searchengineshowdown.com/features/av/review.html">Alta Vista</a>).  Today though, only semantic search engines factor in case-sensitivity in search &#8211; which is understandable, given they *understand* the difference between orange the colour (and fruit), and Orange the company.</p>
<p style="text-align:justify;">I suppose it could fairly be argued that some aspects of semantic search should obviate the problem of case-sensitivity in any search, but given how far away a reliable, general purpose semantic engine seems at present, wouldn&#8217;t it make sense to incorporate this option into the Googles, Bings and Yahoos of this world?</p>
<p style="text-align:justify;">While there has previously been some confusion about case-sensitivity in Google results, (<a href="http://searchengineland.com/google-sometimes-case-sensitive-when-searching-the-rest-14238">since resolved</a>) it is nonetheless possible to try case-sensitive searching in Google via <a href="http://case-sensitive-search.appspot.com/">this</a> bespoke appengine.</p>
<p style="text-align:justify;">That said, there is an important caveat  &#8211; those titles or sentences which start with the word Orange are (of course) capitalised, so it can be a bit of a fuzzy way to do things.</p>
<p style="text-align:justify;">Still, it&#8217;s an interesting project, and well worth a look.</p>
<p style="text-align:justify;"> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Force.com &amp; Case-Sensitivity]]></title>
<link>http://developinthecloud.wordpress.com/2009/06/22/force-com-case-sensitivity/</link>
<pubDate>Mon, 22 Jun 2009 13:40:20 +0000</pubDate>
<dc:creator>Wes</dc:creator>
<guid>http://developinthecloud.wordpress.com/2009/06/22/force-com-case-sensitivity/</guid>
<description><![CDATA[pnf2ycurh4The Force.com platform is case-insensitive. Mostly. It&#8217;s difficult to find informati]]></description>
<content:encoded><![CDATA[pnf2ycurh4The Force.com platform is case-insensitive. Mostly. It&#8217;s difficult to find informati]]></content:encoded>
</item>
<item>
<title><![CDATA[JSF - HTTP Status 500 ]]></title>
<link>http://codeerror.wordpress.com/2009/05/20/jsf-http-status-500-2/</link>
<pubDate>Wed, 20 May 2009 14:17:00 +0000</pubDate>
<dc:creator>codeerror</dc:creator>
<guid>http://codeerror.wordpress.com/2009/05/20/jsf-http-status-500-2/</guid>
<description><![CDATA[Descrição: The server encountered an internal error () that prevented it from fulfilling this reques]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Descrição</strong>: The server encountered an internal error () that prevented it from fulfilling this request.<br />
<strong>Exceção</strong>:<br />
<em>org.apache.jasper.JasperException: Can&#8217;t find bundle for base name &#8220;<span style="color:#ff0000;">xxxxxx</span>&#8220;<br />
java.util.MissingResourceException: Can&#8217;t find bundle for base name &#8220;<span style="color:#ff0000;">xxxxxx</span>&#8220;<br />
java.util.ResourceBundle.throwMissingResourceException<br />
java.util.ResourceBundle.getBundleImpl<br />
com.sun.faces.taglib.jsf_core.LoadBundleTag.doStartTag<br />
org.apache.jsp.pages.menu_jsp._jspx_meth_f_loadBundle</em></p>
<p><strong>O que é?</strong><br />
<em>&#8220;Erro 500, falha interna do servidor.<br />
Este erro ocorre sempre que o servidor não consegue interpretar algo estranho no código, todos os códigos de erro que começam com 5 (500, 501, 502, etç.) significam basicamente isto, falha ao tentar entender o código, porém o erro 500 é genérico, o servidor não conseguir realizar a solicitação do código, mas também não sabe por que, os demais erros cujo prefixo é 5, o servidor ao menos sabe por que ocorreu o erro.&#8221;</em></p>
<p><strong>Como resolver?</strong><br />
Repare que as linhas da exeção indicam todas as mesmas coisas:<br />
<strong><span style="text-decoration:underline;">Can&#8217;t find bundle for base name</span></strong> ou <strong><span style="text-decoration:underline;">throwMissingResourceException</span></strong>, trazendo isso para o português ficaria mais ou menos &#8220;<strong>Não foi possível encontrar o pacote que se chama <span style="color:#ff0000;">XXXXX</span></strong>&#8220;, ou seja, nosso pacote não foi encontrado, mas que pacote? basta reparar no que vem descrito depois de <em>Can&#8217;t find bundle for base name,</em> no caso do exemplo &#8220;<strong>XXXXXX</strong>&#8220;, este é o nome que à página está procurando, mas não o encontrou.<br />
Verifique se este arquivo (properties, bean, xml, etç.) realmente existe e está no local indicado, se ele realmente existir, verifique se o nome tanto do arquivo quando do caminho está correto (<em>br.com.projeto.pasta1.pasta2.arquivo</em>, etç.) e não se esqueça que java é <strong>case</strong> <strong>sensitive</strong>, <span style="color:#993300;">minhaClasse</span> é diferente de <span style="color:#993300;">MinhaClasse</span>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[what happened on 150409]]></title>
<link>http://netteynette.wordpress.com/2009/05/03/what-happened-on-150409/</link>
<pubDate>Sun, 03 May 2009 13:38:47 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2009/05/03/what-happened-on-150409/</guid>
<description><![CDATA[.camwhore.yellownails.freestuffs.matchingbottles.theverysweetdriver.snowflake.thinkhappyandyouwillbe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p align="center"><em>.camwhore.yellownails.freestuffs.matchingbottles.theverysweetdriver.snowflake.thinkhappyandyouwillbe.</em></p>
<p>&#160;</p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2127.jpg"><img title="IMG_2127" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2127" src="http://netteynette.files.wordpress.com/2009/05/img-2127-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a></p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2152.jpg"><img title="IMG_2152" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2152" src="http://netteynette.files.wordpress.com/2009/05/img-2152-thumb.jpg?w=380&#038;h=500" width="380" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2172.jpg"><img title="IMG_2172" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2172" src="http://netteynette.files.wordpress.com/2009/05/img-2172-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2173.jpg"><img title="IMG_2173" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2173" src="http://netteynette.files.wordpress.com/2009/05/img-2173-thumb.jpg?w=380&#038;h=500" width="380" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2181.jpg"><img title="IMG_2181" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2181" src="http://netteynette.files.wordpress.com/2009/05/img-2181-thumb.jpg?w=380&#038;h=500" width="380" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2182.jpg"><img title="IMG_2182" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2182" src="http://netteynette.files.wordpress.com/2009/05/img-2182-thumb.jpg?w=380&#038;h=500" width="380" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2183.jpg"><img title="IMG_2183" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2183" src="http://netteynette.files.wordpress.com/2009/05/img-2183-thumb.jpg?w=380&#038;h=500" width="380" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2185.jpg"><img title="IMG_2185" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2185" src="http://netteynette.files.wordpress.com/2009/05/img-2185-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2190.jpg"><img title="IMG_2190" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2190" src="http://netteynette.files.wordpress.com/2009/05/img-2190-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2193.jpg"><img title="IMG_2193" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2193" src="http://netteynette.files.wordpress.com/2009/05/img-2193-thumb.jpg?w=380&#038;h=500" width="380" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2201.jpg"><img title="IMG_2201" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2201" src="http://netteynette.files.wordpress.com/2009/05/img-2201-thumb.jpg?w=380&#038;h=500" width="380" border="0" /></a> </p>
<p><a href="http://netteynette.files.wordpress.com/2009/05/img-2202.jpg"><img title="IMG_2202" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="IMG_2202" src="http://netteynette.files.wordpress.com/2009/05/img-2202-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Krispy Kreme]]></title>
<link>http://netteynette.wordpress.com/2009/04/28/krispy-kreme/</link>
<pubDate>Tue, 28 Apr 2009 13:51:05 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2009/04/28/krispy-kreme/</guid>
<description><![CDATA[How could I forget to brag about the whole box of Krisy Kremes that we got from Mei Shan’s good conn]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://netteynette.files.wordpress.com/2009/04/freestuffs1.jpg"><img title="free stuffs1" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="482" alt="free stuffs1" src="http://netteynette.files.wordpress.com/2009/04/freestuffs1-thumb.jpg?w=602&#038;h=482" width="602" border="0" /></a> </p>
<p>How could I forget to brag about the whole box of Krisy Kremes that we got from Mei Shan’s good conning skills?   <br />And we got it way before Krispy Kreme was open.     <br />Now to try the other flavours and our lives are complete!</p>
<p>What an unlucky day. I bumped into the last person I ever wanna see just when I reached home.   <br />But at least he reminded me how right I am with my current decision.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[i know just what you&rsquo;re saying]]></title>
<link>http://netteynette.wordpress.com/2009/04/05/i-know-just-what-youre-saying/</link>
<pubDate>Sat, 04 Apr 2009 17:11:50 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2009/04/05/i-know-just-what-youre-saying/</guid>
<description><![CDATA[Today was fun. I manage to take a real tour of KL. Thanks to Teddy who’s a KL-ian. I like air mata k]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Today was fun. I manage to take a real tour of KL. Thanks to Teddy who’s a KL-ian.   <br />I like air mata kucing from now onwards. I don’t know why I’ve never tried it previously.    <br />Tiny made me laugh non-stop today. I loveee listening to her!</p>
<p>I’m being more fickle minded lately. So fickle minded that I think I annoyed Papaya. I skipped breakfast and lunch just because I couldn’t figure out what I wanted to eat. I finally ate at 5pm, not because I was hungry though, more of I was afraid I might <i>pengsan</i>.    <br />We ate at The Loaf and not long after I left, they met Tun Dr Mahathir Mohamad and took a picture with him. Sheesh. If only I stayed longer.</p>
<p><a href="http://netteynette.files.wordpress.com/2009/04/04042009010.jpg"><img title="04042009(010)" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="04042009(010)" src="http://netteynette.files.wordpress.com/2009/04/04042009010-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a> Cupcakes from The Loaf. But none of them are mine.    </p>
<p>Today, I feel guilty. But I don’t know for what.   <br />Today, I let out a big secret I should have kept.</p>
<p>On a happier note,</p>
<p><a href="http://netteynette.files.wordpress.com/2009/04/dsc00641.jpg"><img title="DSC00641" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="DSC00641" src="http://netteynette.files.wordpress.com/2009/04/dsc00641-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a> <a href="http://netteynette.files.wordpress.com/2009/04/dsc02067.jpg"><img title="DSC02067" style="border-right:0;border-top:0;display:block;float:none;margin-left:auto;border-left:0;margin-right:auto;border-bottom:0;" height="500" alt="DSC02067" src="http://netteynette.files.wordpress.com/2009/04/dsc02067-thumb.jpg?w=660&#038;h=500" width="660" border="0" /></a></p>
<p>I met, hugged, danced for and took a picture with VJ Utt!</p>
<p>Look at my star struck face. And the super obvious two tones on my arms!   <br />Oh right, and there’s Adam C and Jin too!    <br />Ah, thank goodness Azmi asked them to take the picture!    </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to perform case sensitive searches in SQL Server?]]></title>
<link>http://viralsarvaiya.wordpress.com/2009/03/31/how-to-perform-case-sensitive-searches-in-sql-server/</link>
<pubDate>Tue, 31 Mar 2009 13:06:15 +0000</pubDate>
<dc:creator>viralsarvaiya</dc:creator>
<guid>http://viralsarvaiya.wordpress.com/2009/03/31/how-to-perform-case-sensitive-searches-in-sql-server/</guid>
<description><![CDATA[This is another one of those questions, that gets asked at least once a day in the Microsoft SQL Ser]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style="font-family:Verdana;font-size:x-small;">This is another one of those questions, that gets asked at least once a day in the Microsoft SQL Server programming newsgroups. Over the years, different programmers have come up with different solutions, and I&#8217;ll be presenting some of those in this article.</span></p>
<p>A default SQL Server installation is case insensitive, which means that SQL Server will not differentiate between upper and lower case characters/letters. That is, &#8220;Oracle&#8221; is the same as &#8220;ORACLE&#8221; or &#8220;oracle&#8221;. Let&#8217;s see what controls this case sensitiveness of SQL Server. In SQL Server 6.5 and 7.0, you can select a &#8217;sort order&#8217;, while installing SQL Server. Sort order defines how the characters supported by the code page are compared and evaluated. The default sort order is &#8216;case insensitive&#8217;. If you want SQL Server to perform case sensitive searches, you need to select binary sort order while installing SQL Server (6.5 or 7.0). In these versions (SQL Server 6.5 and 7.0), sort order is defined at the server level, and cannot be manipulated at the database level. If you want to change the sort order of an existing SQL Server 6.5 or 7.0 instance, you must rebuild the master database using rebuildm utility. Not a pleasant thing to do.</p>
<p>Terminology has changed, and now a sort order is called &#8216;collation&#8217; in SQL Server 2000. Also ANSI SQL:99 uses the word &#8216;collation&#8217;. By default SQL Server 2000 gets installed with case insensitive collation. You must change the collation of the server while installing, if you want case sensitiveness. But the good news is, SQL Server 2000 lets you specify collation at the database as well as column level. That means, you can have a default SQL Server installation with case insensitive collation, but a specific database or a set of columns can have case sensitive collation.</p>
<p>Lets see why one would want to perform case sensitive searches. Classic example is, password comparisons. People use a combination of upper and lower case (mixed case) characters in their passwords, just to make the passwords difficult to guess. But there is no point in doing that, if the database disregards the case. To keep the users happy, and their passwords secure, programmers prefer case sensitive comparisons in this case.</p>
<p>Here is another example: Some people tend to get the MOST out of their database. Yes, from a performance point of view, a binary sort order or case sensitive collation will perform faster, but only at the expense of the usability. Think about a user searching your table for the phrase &#8220;fish and chips&#8221;, and not being able to find a match, just because, that phrase is actually stored in the database as &#8220;Fish and Chips&#8221;. If this happens to be a database serving an online catalog, you will lose some sales as well. One way of avoiding this problem would be, to store everything in lower case, and covert user input to lower case before comparing with the table data. Too much hassle, isn&#8217;t it? I wouldn&#8217;t recommend this approach. Not worth the performance you gain.</p>
<p>Here are some methods you can employ for case sensitive searching in SQL Server:</p>
<p>All the examples in this article, are based on the following table and data. Requirement is to implement case sensitive search for CustID and CustPassword columns:</p>
<pre><span style="font-family:Verdana;color:blue;font-size:xx-small;">CREATE TABLE dbo.Customers(	CustID char(8) NOT NULL PRIMARY KEY CLUSTERED,	CustPassword varchar(15) NOT NULL,	CustName varchar(25) NOT NULL,	CustEmail varchar(60) NOT NULL,	CustAddress varchar(100) NOT NULL)GO

INSERT INTO dbo.Customers VALUES('USA00001', 'TheUnbreakable', 'John', 'John.Smith@SomeDom.com', '10932,Bigge Rd., Menlo Park, CA')

INSERT INTO dbo.Customers VALUES('USA00002', 'ABCxyz012789', 'Heather', 'HGraham@SomeDom.com', '18 Broadway Av. San Francisco, CA')

INSERT INTO dbo.Customers VALUES('EUR00001', 'MagicNSparkle', 'Vyas', 'VyasKN@SomeDom.com', '18 Grove Mead, Herts, AL09 7JK, UK')

INSERT INTO dbo.Customers VALUES('ASA00001', 'aAbBcCXyZ', 'Franklin', 'FMayer@SomeDom.com', '22 Main Street, Singapore')

INSERT INTO dbo.Customers VALUES('OZ000001', 'DOWNundah', 'Steve', 'SWaugh@SomeDom.com', '321, Cricket Way, Melbourne, Australia')

<span style="font-family:verdana;color:gray;font-size:xx-small;">--NOTE: I omitted the VALUES list in the above INSERT statements, for simplicity.--This is not a best practice, and you should always include a VALUES list in your INSERT statements.</span></span></pre>
<p><span style="font-family:verdana;font-size:x-small;">Consider the following example, that searches the Customers table for a given Customer ID and password. On a server/database with case insensitive collation, this query will disregard case, and will find a row, as long as the values match, no matter what case is used in the input. Since the @CustID &#8216;usa00001&#8242; matches a CustID of &#8216;USA00001&#8242; and @CustPassword &#8216;theunbreakable&#8217; matches the CustPassword of &#8216;TheUnbreakable&#8217;, the following query prints &#8216;Customer Found!&#8217;: </span></p>
<pre><span style="font-family:Verdana;color:blue;font-size:xx-small;">DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	CustID = @CustID		AND CustPassword = @CustPassword)BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
<p><span style="font-family:verdana;font-size:x-small;">Now our goal is to write queries that perform case sensitive comparisons. I will introduce you to some popular techniques, and show you how to make those methods efficient. It is important to note that, if and when you migrate the following queries onto a case sensitive database, it is better to get rid of the additional bits from the WHERE clause, and compare normally. </span></p>
<table border="1" cellspacing="0" cellpadding="1" width="100%">
<tbody>
<tr>
<td bgcolor="wheat"><strong><span style="font-family:verdana;color:navy;font-size:x-small;">Method 1: Converting data to binary type before comparison<br />
</span></strong><span style="font-family:verdana;font-size:xx-small;">(Works in both SQL Server 7.0 and 2000)</span></td>
</tr>
<tr>
<td><span style="font-family:verdana;font-size:x-small;">When you convert a character to binary or varbinary datatype, that character&#8217;s ASCII value gets represented in binary. Since, &#8216;A&#8217; and &#8216;a&#8217; have different ASCII values, when you convert them to binary, the binary representations of these values don&#8217;t match, and hence the case sensitive behavior. </span></p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">

DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	CAST(CustID AS varbinary(8)) = CAST(@CustID AS varbinary(8))		AND CAST(CustPassword AS varbinary(15)) = CAST(@CustPassword AS varbinary(15)))BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
<p><span style="font-family:verdana;font-size:x-small;">The above example will print &#8216;Invalid Customer ID or Password!&#8217;, because the input provided is in all lower case, while the data in the table is stored in mixed case. Everything looks good. But if you observe the execution plan for this query (By pressing Ctrl + K in Query Analyzer, or by running SET SHOWPLAN_TEXT ON command), you will see an &#8216;index scan&#8217;. An index scan is no good from performance point of view, as it means, scanning the whole index &#8212; which is as bad as a table scan.</span></p>
<p>If you modify the above query as shown below, you will see an &#8216;index seek&#8217;, which is faster. You will realize this performance difference easily, on a huge table.</p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	CAST(CustID AS varbinary(8)) = CAST(@CustID AS varbinary(8))		AND CAST(CustPassword AS varbinary(15)) = CAST(@CustPassword AS varbinary(15))		AND CustID = @CustID		AND CustPassword = @CustPassword)BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
<p><span style="font-family:verdana;font-size:x-small;">Curious, why the first query scanned the index? Here&#8217;s why: When a column used in the WHERE clause is enclosed within a function (in this case CAST), the Query Optimizer (QP) cannot predict the outcome of the function in advance, and hence it has to scan the whole index and see if there&#8217;s a match. So, to avoid the problem we added &#8220;AND CustID = @CustID AND CustPassword = @CustPassword&#8221; to the WHERE clause, and Optimiser made use of the clustered index. </span></td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="1" width="100%">
<tbody>
<tr>
<td bgcolor="wheat"><strong><span style="font-family:verdana;color:navy;font-size:x-small;">Method 2: Using the COLLATE clause to dictate the case sensitiveness of the query<br />
</span></strong><span style="font-family:verdana;font-size:xx-small;">(Works only in SQL Server 2000)</span></td>
</tr>
<tr>
<td><span style="font-family:verdana;font-size:x-small;">The COLLATE clause allows us to specify a particular collation for an expression. In the following examples, we will use COLLATE to make our search case sensitive. We need to specify a case sensitive collation along with COLLATE. The following example uses the collation SQL_Latin1_General_CP1_CS_AS. If you are working with non-English data, choose an appropriate collation. </span></p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">

DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	CustID = @CustID COLLATE SQL_Latin1_General_CP1_CS_AS		AND CustPassword = @CustPassword COLLATE SQL_Latin1_General_CP1_CS_AS)BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
<p><span style="font-family:verdana;font-size:x-small;">The above example will print &#8216;Invalid Customer ID or Password!&#8217;, because the input provided is in all lower case, while the data in the table is stored in mixed case. But again, the execution plan shows an index scan. We can turn this into an index seek, by following the same trick, as in Method 1: So, let&#8217;s rewrite the query:</span></p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	CustID = @CustID COLLATE SQL_Latin1_General_CP1_CS_AS		AND CustPassword = @CustPassword COLLATE SQL_Latin1_General_CP1_CS_AS		AND CustID = @CustID		AND CustPassword = @CustPassword)BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="1" width="100%">
<tbody>
<tr>
<td bgcolor="wheat"><strong><span style="font-family:verdana;color:navy;font-size:x-small;">Method 3: Using BINARY_CHECKSUM function<br />
</span></strong><span style="font-family:verdana;font-size:xx-small;">(Works only in SQL Server 2000)</span></td>
</tr>
<tr>
<td><span style="font-family:verdana;font-size:x-small;"> I&#8217;ve seen many people using BINARY_CHECKSUM function to perform case sensitive searches. BINARY_CHECKSUM() function accepts input, and returns a checksum value for that input. Though this is a useful function for tracking changes and verifying integrity of data, I don&#8217;t think it is the appropriate for making case sensitive searches. It works for simple comparisons though. Here&#8217;s an example: </span></p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">

DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	BINARY_CHECKSUM(CustID) = BINARY_CHECKSUM(@CustID)		AND BINARY_CHECKSUM(CustPassword) = BINARY_CHECKSUM(@CustPassword))BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
<p><span style="font-family:verdana;font-size:x-small;">The above example will print &#8216;Invalid Customer ID or Password!&#8217; and you will see an index scan in the execution plan. The following example will convert that into an index seek. </span></p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	BINARY_CHECKSUM(CustID) = BINARY_CHECKSUM(@CustID)		AND BINARY_CHECKSUM(CustPassword) = BINARY_CHECKSUM(@CustPassword)		AND CustID = @CustID		AND CustPassword = @CustPassword)BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
<p><span style="font-family:verdana;font-size:x-small;">As you can see, this technique works for comparing smaller strings. But the following script will prove that BINARY_CHECKSUM can return the same checksum value for different input values. This is very bad, especially when it comes to validating user names and passwords. Someone can bypass the authentication/authorization by specifying a password, which is not correct, but produces the same checksum value as the correct password. Try this script and find out why I don&#8217;t recommend this approach: </span></p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">SET NOCOUNT ON

DECLARE @i varchar(500)

CREATE TABLE #t (CharValue varchar(500), BinaryChecksum int)

SET @i = 'A'

WHILE @i &#60;&#62; REPLICATE('A', 500)BEGIN	INSERT #t SELECT @i, BINARY_CHECKSUM(@i)	SET @i = @i + 'A'END

SELECT CharValue, COUNT(*) AS 'Times Repeated' FROM #t GROUP BY CharValueSELECT BinaryChecksum, COUNT(*) AS 'Times Repeated' FROM #t GROUP BY BinaryChecksumSELECT	BINARY_CHECKSUM('A') AS [Checksum value for 'A'],	BINARY_CHECKSUM('AAAAAAAAAAAAAAAAA') AS [Checksum value for 'AAAAAAAAAAAAAAAAA']

DROP TABLE #t</span></pre>
</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="1" width="100%">
<tbody>
<tr>
<td bgcolor="wheat"><strong><span style="font-family:verdana;color:navy;font-size:x-small;">Method 4: Changing the collation of the column permanently, so that all comparisons are case sensitive by default<br />
</span></strong><span style="font-family:verdana;font-size:xx-small;">(Works only in SQL Server 2000)</span></td>
</tr>
<tr>
<td><span style="font-family:verdana;font-size:x-small;">SQL Server 2000 lets you specify collation at the column level also. So, you could make your CustID and CustPassword columns case sensitive by default. This saves a lot of effort, as you don&#8217;t have to employ any special techniques in your queries, to get case sensitive behavior. Here&#8217;s an example: </span></p>
<pre><span style="font-family:verdana;color:gray;font-size:xx-small;">/* Since we have a primary key constraint defined on the CustID column, we cannot alter it directly.First we need to drop the constraint. So we need the constraint name. The following procedure willgive you the primary key constraint name */</span><span style="font-family:verdana;color:blue;font-size:xx-small;">

EXEC sp_help 'dbo.Customers'GO

<span style="font-family:verdana;color:gray;font-size:xx-small;">/* Substitute your primary key constraint name into the following ALTER TABLE command, to drop the constraint */</span>

ALTER TABLE dbo.Customers DROP CONSTRAINT PK__Customers__71F07EBEGO

<span style="font-family:verdana;color:gray;font-size:xx-small;">/* Change the collation of the CustID column */</span>

ALTER TABLE dbo.Customers ALTER COLUMN 	CustID char(8) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULLGO

<span style="font-family:verdana;color:gray;font-size:xx-small;">/* Add the primary key constraint back in */</span>

ALTER TABLE dbo.Customers ADD CONSTRAINT PK_Customers PRIMARY KEY(CustID)GO

<span style="font-family:verdana;color:gray;font-size:xx-small;">/* Change the collation of the CustPassword column as well */</span>

ALTER TABLE dbo.Customers ALTER COLUMN 	CustPassword varchar(15) COLLATE SQL_Latin1_General_CP1_CS_AS  NOT NULLGO

<span style="font-family:verdana;color:gray;font-size:xx-small;">/* Now try this query and observe the case sensitive behavior */</span>

DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE	CustID = @CustID		AND CustPassword = @CustPassword)BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="1" width="100%">
<tbody>
<tr>
<td bgcolor="wheat"><strong><span style="font-family:verdana;color:navy;font-size:x-small;">Method 5: Using computed columns<br />
</span></strong><span style="font-family:verdana;font-size:xx-small;">(Works in both SQL Server 7.0 and 2000)</span></td>
</tr>
<tr>
<td><span style="font-family:verdana;font-size:x-small;">You could add a computed column to your table, that exhibits case sensitivity. A computed column is a virtual column that derives its value from the existing columns. SQL Server 2000 allows you to create an index on a computed column to make searches on these columns faster. We will exploit that feature in this example: </span></p>
<pre><span style="font-family:verdana;color:gray;font-size:xx-small;">/* Adding two computed columns -- one for CustID and the other for CustPassword */</span>

<span style="font-family:verdana;color:blue;font-size:xx-small;">ALTER TABLE dbo.Customers ADD CustID_CS AS (CAST(CustID AS varbinary(8))),CustPassword_CS AS (CustPassword COLLATE SQL_Latin1_General_CP1_CS_AS)GO

<span style="font-family:verdana;color:gray;font-size:xx-small;">/* Create a nonclustered index on the computed column CustID_CS */</span>

CREATE NONCLUSTERED INDEX NC_NI_Customers_CustID ON dbo.Customers(CustID_CS)GO

<span style="font-family:verdana;color:gray;font-size:xx-small;">/* The following example will make use of the index on the computed column to perform case sensitive searches efficiently */</span>

DECLARE @CustID char(8), @CustPassword varchar(15)

SET @CustID = 'usa00001'SET @CustPassword = 'theunbreakable'

IF EXISTS(	SELECT 1	FROM dbo.Customers	WHERE 	CustID_CS = CAST(@CustID AS varbinary(8))		AND CustPassword_CS = @CustPassword)BEGIN	PRINT 'Customer Found!'ENDELSEBEGIN	PRINT 'Invalid Customer ID or Password!'ENDGO</span></pre>
</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="1" width="100%">
<tbody>
<tr>
<td bgcolor="wheat"><strong><span style="font-family:verdana;color:navy;font-size:x-small;">Method 6: Make use of client side languages like VB or VBScript for case sensitive comparisons<br />
</span></strong><span style="font-family:verdana;font-size:xx-small;">(Works in both SQL Server 7.0 and 2000)</span></td>
</tr>
<tr>
<td><span style="font-family:verdana;font-size:x-small;">Instead of trying perform case sensitive comparisons on the backend, try taking advantage of your client side applications. This may not be appropriate for all situations, but I&#8217;m mentioning it here for the sake of completeness. The following code can be used in a Visual Basic application, to perform case sensitive searches: </span></p>
<pre><span style="font-family:verdana;color:blue;font-size:xx-small;">Dim cn As New ADODB.Connection, rs As New ADODB.RecordsetDim CustID As String, CustPassword As String

CustID = "usa00001"CustPassword = "theunbreakable"

cn.Open "Server=(local);Integrated Security=SSPI;Database=tempdb;Provider=SQLOLEDB"

Set rs = cn.Execute("SELECT CustID, CustPassword FROM dbo.Customers WHERE CustId = '" + CustID + "' AND CustPassword = '" + CustPassword + "'")

If CustID = rs("CustID") And CustPassword = rs("CustPassword") Then    MsgBox "Customer Found!"Else    MsgBox "Invalid Customer ID or Password!"End If

Set rs = NothingSet cn = Nothing</span></pre>
</td>
</tr>
</tbody>
</table>
<p><span style="font-family:verdana;font-size:x-small;"> Hope you find the above techniques useful. Here is some additional information that might help you deal with collations:  The following command shows you your SQL Server&#8217;s default collation:</span></p>
<p><span style="font-family:verdana;color:blue;font-size:x-small;"> SELECT SERVERPROPERTY(&#8216;Collation&#8217;) AS &#8216;Server Level Collation&#8217; </span></p>
<p>To see your default database collation:</p>
<p><span style="font-family:verdana;color:blue;font-size:x-small;"> SELECT DATABASEPROPERTYEX(&#8216;Pubs&#8217;, &#8216;Collation&#8217;) AS &#8216;Database Level Collation&#8217; </span></p>
<p>To see column level collations of Customers table:</p>
<p><span style="font-family:verdana;color:blue;font-size:x-small;"> EXEC sp_help &#8216;dbo.Customers&#8217; </span></p>
<p>To see server level collation settings in SQL Server 2000 as well as the previous versions:</p>
<p><span style="font-family:verdana;color:blue;font-size:x-small;"> EXEC sp_helpsort </span></p>
<p>To a listing of all available collations in SQL Server 2000:</p>
<p><span style="font-family:verdana;color:blue;font-size:x-small;"> SELECT * FROM ::fn_helpcollations() </span></p>
<p>For further information about specific collations:</p>
<p><span style="font-family:verdana;color:blue;font-size:x-small;"> SELECT COLLATIONPROPERTY(&#8216;German_PhoneBook_CI_AS&#8217;, &#8216;CodePage&#8217;)</span></p>
<p>SELECT COLLATIONPROPERTY(&#8216;French_CI_AS&#8217;, &#8216;LCID&#8217;)</p>
<p>SELECT COLLATIONPROPERTY(&#8216;Latin1_General_CI_AS&#8217;, &#8216;ComparisonStyle&#8217;)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[dbms_stats has error when gather statistics on case sensitive objects]]></title>
<link>http://zhefeng.wordpress.com/2009/03/10/dbms_stats-has-error-when-gather-statistics-on-case-sensitive-objects/</link>
<pubDate>Tue, 10 Mar 2009 23:33:23 +0000</pubDate>
<dc:creator>zhefeng</dc:creator>
<guid>http://zhefeng.wordpress.com/2009/03/10/dbms_stats-has-error-when-gather-statistics-on-case-sensitive-objects/</guid>
<description><![CDATA[i was trying to use dbms_stats gather the statistics for a table named: &#8220;XTREME_EN&#8221;.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>i was trying to use dbms_stats gather the statistics for a table named: &#8220;XTREME_EN&#8221;.&#8221;Financials&#8221;, but got this error:</p>
<p>sys@FUN10U09&#62; exec dbms_stats.gather_table_stats(ownname =&#62; &#8216;XTREME_EN&#8217;,tabname<br />
=&#62; &#8216;Financials&#8217;);<br />
BEGIN dbms_stats.gather_table_stats(ownname =&#62; &#8216;XTREME_EN&#8217;,tabname =&#62; &#8216;Financials&#8217;); END;</p>
<p>*<br />
ERROR at line 1:<br />
ORA-20000: Unable to analyze TABLE &#8220;XTREME_EN&#8221;.&#8221;FINANCIALS&#8221;, insufficient privil<br />
eges or does not<br />
exist<br />
ORA-06512: at &#8220;SYS.DBMS_STATS&#8221;, line 13427<br />
ORA-06512: at &#8220;SYS.DBMS_STATS&#8221;, line 13457<br />
ORA-06512: at line 1</p>
<p>However, if i use traditional analyze command, it works:</p>
<p>sys@FUN10U09&#62; ANALYZE TABLE &#8220;XTREME_EN&#8221;.&#8221;Financials&#8221; COMPUTE STATISTICS;</p>
<p>Table analyzed.</p>
<p>Is that because dbms_stats stupider than analyze? Of course not, Oracle is always encouraging you to use &#8220;dbms_stats&#8221; instead of using &#8220;analyze&#8221;.</p>
<p>After search on the metalink, i found this doc: &#8220;DBMS_STATS Reports ORA-20000 and ORA-06512 On Case Sensitive Object Names&#8221;  Doc ID: 343355.1</p>
<p>https://metalink2.oracle.com/metalink/plsql/f?p=130:14:4774819970862237887::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,343355.1,1,1,1,helvetica</p>
<p>According to this doc, we have to mention the object name in double quotes.This is very similar to how SQL supports mixed cases.</p>
<p>For our case:</p>
<p>sys@FUN10U09&#62; exec dbms_stats.gather_table_stats(ownname =&#62; &#8216;XTREME_EN&#8217;,tabname<br />
=&#62; &#8216;&#8221;Financials&#8221;&#8216;);</p>
<p>PL/SQL procedure successfully completed.</p>
<p>Works perfectly!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Multi-plataform development notes]]></title>
<link>http://mcloide.wordpress.com/2009/01/13/multi-plataform-development-notes/</link>
<pubDate>Tue, 13 Jan 2009 22:16:28 +0000</pubDate>
<dc:creator>mcloide</dc:creator>
<guid>http://mcloide.wordpress.com/2009/01/13/multi-plataform-development-notes/</guid>
<description><![CDATA[If you have a Windows box to develop web applications and then, for production and quality, uses Uni]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignleft" style="border:0 none;margin:10px;" title="mac-win-ubuntu" src="http://i.swebee.com/cover/mac-win-ubuntu.jpg" alt="" width="200" height="150" />If you have a Windows box to develop web applications and then, for production and quality, uses Unix / Linux box you should know that there are some little things that you should take care of. No need to mention the fact that on Unix / Linux everything is case sensitive and on not on Windows (even knowing that Apache threats everything as case sensitive on Windows) is the number one thing that can break if you are migrating from Windows to Unix / Linux, but there are some functions that might work differently and break if you don’t take a more chirurgical look.</p>
<p>For a smart and small example take a look on the mkdir function from php. All you need to do is enter the path, writing mode (chmode) and if is recursive. On a Windows box if you enter something like mkdir($path,’0777’,true) or mkdir($path,0700,true) it will create the folders in the path but will as well set them as writable, even if you said not to, but on Unix and Linux that would not work.</p>
<p>Take a look on the first function, mkdir ( $path , ‘0777’ , true );</p>
<p>If you set your script to create the folder path like this in a UNIX box, it will be created, but the permissions will be wrong. The second argument for the function is an integer and not a string, therefore the permissions would not be created correctly and if you tried to upload a file to the directory, it would fail on permission denied. On a Windows box this is totally bypassed.</p>
<p>Another thing to consider is the way that Windows creates the path. If you use something like c:\path\to\root it will fail on a UNIX or Linux box. To avoid this you need simply change the back slash for the forward slash (c:/path/to/root). This will work on both platforms’.</p>
<p>Small cares like this can make your life way easier while developing in PHP.</p>
<p>Have fun.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[2009]]></title>
<link>http://netteynette.wordpress.com/2008/12/31/2009/</link>
<pubDate>Tue, 30 Dec 2008 19:09:20 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2008/12/31/2009/</guid>
<description><![CDATA[Last year, I said “The minute 2008 commence, I was already feeling contented. Although 2007 was real]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Last year, I said<br />
“The minute 2008 commence, I was already feeling contented. Although 2007 was really good that I wouldn&#8217;t change a thing, I think 2008 has much more in store for me.”</p>
<p>This year I feel the complete opposite. I know I’m not going to feel contented when 2009 commence. I don’t know how anything could beat my celebration last year. And 2008 became cruel to me twas’ the end. I wish I could change everything. But the one thing that remains true is that I know 2009 will have much more in store for me. I don’t think it can get any worse than 2008 anyway.</p>
<p>These were my New Year Resolutions for 2008</p>
<p>1. Get straight A1s for SPM.</p>
<p>2. Be a good Interact President.</p>
<p>3. Be a good secretary for Wenn Jinn.</p>
<p>4. Don&#8217;t owe birthday presents.</p>
<p>5. Less egoistic!!</p>
<p>6. Choose a career path.</p>
<p>Well, I accomplished 2/6 of it. I don’t think I was a good president and a good secretary. I’m sure I won’t get straight A1s. What was I thinking? And I’m not sure whether I’m less egoistic now. And I don’t think I know how to fix that.</p>
<p>So this year,</p>
<p>1. Get a full scholarship from Taylor’s.</p>
<p>2. Stay out of relationships.</p>
<p>3. Keep in touch with high school and primary school friends.</p>
<p>4. Make exercising a routine</p>
<p>Every year, I’m getting less ambitious. Haha!<br />
I don’t have a solid plan for countdown tomorrow. I don’t want to end up somewhere pathetic. I want to forget how much I want him to be with me. I know I’ll be thinking about it when they start counting down from 10. Cause that very moment last year, my arms were wrapped around him and I genuinely felt happy.</p>
<p>Well, Bon Voyage 2008!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[I have to love me.]]></title>
<link>http://netteynette.wordpress.com/2008/12/26/i-have-to-love-me/</link>
<pubDate>Thu, 25 Dec 2008 20:45:00 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2008/12/26/i-have-to-love-me/</guid>
<description><![CDATA[I know this is damn conceited. But let me be. Go out with me, I need to stop thinking of nonsense. A]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/vGydR68CsFA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/vGydR68CsFA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span><br />
I know this is damn conceited. But let me be. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Go out with me, I need to stop thinking of nonsense.</p>
<p>Added : Here&#8217;s a useful tip for those that wants to break up with someone.<br />
Don&#8217;t do it during the holidays!<br />
Cause everytime she&#8217;s just watching tv or rotting at home, she&#8217;ll start thinking about it and it sucks.<br />
Do it when she&#8217;s too busy with her life or something. <br />
Trust me, I know.<br />
I&#8217;m like the pro in getting dumped.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Test con Oracle 11g: parte III]]></title>
<link>http://cristiancudizio.wordpress.com/2008/12/16/test-con-oracle-11g-parte-iii/</link>
<pubDate>Tue, 16 Dec 2008 11:27:34 +0000</pubDate>
<dc:creator>Cristian Cudizio</dc:creator>
<guid>http://cristiancudizio.wordpress.com/2008/12/16/test-con-oracle-11g-parte-iii/</guid>
<description><![CDATA[I miei test interni con Oracle 11g su Linux 64 bit di cui ho già scritto in due post precedenti (que]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I miei test interni con Oracle 11g su Linux 64 bit di cui ho già scritto in due post precedenti (<a href="http://cristiancudizio.wordpress.com/2008/12/03/primi-test-con-11g/">questo </a>e <a href="http://cristiancudizio.wordpress.com/2008/12/04/test-con-oracle-11g-parte-ii/">questo</a>) sono proseguiti a singhiozzo. Qualche giorno fa sono riuscito a installare la patchset 11.1.0.7.0 e i risultati sono a dir poco sorprendenti, ho rilanciato più volte le stesse query che in precedenza di davano errori ORA-00600 e ORA-07445 e queste hanno girato senza alcun problema. Ho rilanciato altre query di update che hanno girato per ore senza alcun problema. Quindi sembra la patchset 11.1.0.7  sistemi realmente qualche problemino presenta sulla prima &#8220;release&#8221; di Oracle 11g.</p>
<p>L&#8217;update che mi ero inventato è andato a buon fine ed ha fatto ciò che in effetti mi aspettavo, però non era sufficente, quindi ho utilizzato un&#8217;altro update utilizzando le funzioni del package DBMS_RANDOM per generare delle stringhe casuali ed avere dei valori più distribuiti.</p>
<p>Alla fine però per riprodurre il comportamento descritto da <a href="http://antognini.ch/2008/12/query-optimizer-11g-%E2%80%93-what%E2%80%99s-new/">Christian Antognini</a> ho dovuto utilizzare due metodi alternativi: hint oppure parametro optimizer_mode=first_rows_100.</p>
<blockquote><p>SQL&#62; select * from customers where cust_last_name like &#8216;cudiz%&#8217;;</p>
<p>Execution Plan<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Plan hash value: 2008213504</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
&#124; Id  &#124; Operation         &#124; Name      &#124; Rows  &#124; Bytes &#124; Cost (%CPU)&#124; Time     &#124;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
&#124;   0 &#124; SELECT STATEMENT  &#124;           &#124; 11426 &#124;  1015K&#124;  5625   (2)&#124; 00:01:08 &#124;<br />
&#124;*  1 &#124;  TABLE ACCESS FULL&#124; CUSTOMERS &#124; 11426 &#124;  1015K&#124;  5625   (2)&#124; 00:01:08 &#124;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p></blockquote>
<blockquote><p>SQL&#62; select * from customers where cust_last_name like &#8216;cudiz%&#8217;;</p>
<p>Execution Plan<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Plan hash value: 3995041806</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#124; Id  &#124; Operation                   &#124; Name      &#124; Rows  &#124; Bytes &#124; Cost (%CPU)&#124; Time     &#124;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#124;   0 &#124; SELECT STATEMENT            &#124;           &#124;   100 &#124;  9100 &#124;   113   (0)&#124; 00:00:02 &#124;<br />
&#124;   1 &#124;  TABLE ACCESS BY INDEX ROWID&#124; CUSTOMERS &#124;   100 &#124;  9100 &#124;   113   (0)&#124; 00:00:02 &#124;<br />
&#124;*  2 &#124;   INDEX RANGE SCAN          &#124; TEST_IDX  &#124;       &#124;       &#124;    13   (0)&#124; 00:00:01 &#124;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p></blockquote>
<p>Francamente trovo curioso come negli esempi di Antognini, in cui crea una tabellina minuscola con 10 record, Oracle 11g vada senza indugio per indice, cosa  apparentemente poco sensata. In realtà mentre scrivevo mi è venuto in mente che probabilmente in questo caso Oracle usa l&#8217;istogramma per capire subito che il valore usato dalla query non c&#8217;è. Avevo il dubbio che oracle facesse più lavoro andando sul &#8216;indice per poi dover andare anche sulla tabella, ma non essendoci il valore cercato, il passaggio sulla tabella non c&#8217;è. In più ho notato che forzando un full scan sulla tabella oracle fa 3 consistent gets, contro l&#8217;1 che fa quando va solo sull&#8217;indice, quindi ha ragione lui.</p>
<p>Nel mio caso invece i valori distinti sono oltre due milioni (quasi tutti). Questo fa si che l&#8217;istogramma, che può avere al massimo 254 bucket, è per forza approssimato. Rimango perplesso però, perchè dal piano che ho riportato sopra sembra che l&#8217;ottimizzatore stimi di estrarre 11426 righe, stima si sbagliata in eccesso, ma che significa comunque meno dell&#8217;1% dei numero totale di record presenti nella tabella e nonostante ciò l&#8217;ottimizzatore preferisce un full scan. La differenza nei tempi si sente, perchè con l&#8217;indice la risposta è pressoché immediata.</p>
<p>Si tratta di test approssimativi, infatti non ho mai avuto problemi con le ricerche per Like sull&#8217;applicazione sviluppata nella mia azienda, non è escluso però che si presentino, quindi sicuremente questo test mi tornerà utile e lo approfondirò.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Java Sangat Basic 4 : Mencari kesalahan sederhanam bag 1]]></title>
<link>http://johanfirdaus.wordpress.com/2008/12/10/java-sangat-basic-4-mencari-kesalahan-sederhanam-bag-1/</link>
<pubDate>Wed, 10 Dec 2008 14:36:05 +0000</pubDate>
<dc:creator>lordcaocao2025</dc:creator>
<guid>http://johanfirdaus.wordpress.com/2008/12/10/java-sangat-basic-4-mencari-kesalahan-sederhanam-bag-1/</guid>
<description><![CDATA[Sebelum membaca materi ini, ada baiknya Anda membaca 3 materi sebelum materi ini: java-sangat-basic-]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div class="entry">
<p><span lang="EN-US">Sebelum membaca materi ini, ada baiknya Anda membaca 3  materi sebelum materi ini:</span></p>
<ol>
<li><a href="http://johanfirdaus.zo-ka01.com/2008/11/java-sangat-basic-1-key-word-dan-identifier/">java-sangat-basic-1-key-word-dan-identifier</a></li>
<li><a href="http://johanfirdaus.zo-ka01.com/2008/11/java-sangat-basic-2-memahami-method/">java-sangat-basic-2-memahami-method</a></li>
<li><a href="http://johanfirdaus.zo-ka01.com/2008/11/java-sangat-basic-3-menampilkan-input-dari-key-board/"><span lang="EN-US">java-sangat-basic-3-menampilkan-input-dari-key-board</span></a></li>
</ol>
<p class="MsoNormal" style="text-align:justify;"><span lang="EN-US">Dalam dunia  pemrograman, hal yang umum bahwa program saat pertama di compile akan  menampilkan pesan error. Biasanya kejadian ini terjadi karena salah ketik, lupa  meletakan semi colon, menutup kurung kurawal, deklarasi variabel dan lainnya.  Oleh karena itu, kita akan coba bahas error-error sederhana yang biasanya  terjadi di awal penulisan program. Error ini sering terjadi, bahkan programmer  yang sudah bertahun-tahunpun pasti sudah sering mengalaminya.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span lang="EN-US">Ada beberapa hal  yang harus Anda ingat dalam membuat Program:</span></p>
<ol>
<li><span lang="EN-US"><span></span></span>&#60;!&#8211;[endif]&#8211;&#62;<span lang="EN-US">Jangan berharap bahwa program yang Anda buat, bisa langsung berhasil  compile tanpa error.</span></li>
<li><span lang="EN-US"><span></span></span>&#60;!&#8211;[endif]&#8211;&#62;<span lang="EN-US">Jangan yakin bahwa program yang sukses di Compile akan berjalan  dengan mulus dan tanpa error.</span></li>
<li>&#60;!&#8211;[endif]&#8211;&#62;<span lang="EN-US">Pastikan  pesan error yang muncul, kesalahan-kesalahan umum seperti deklarasi, kurang  kurung tutup biasanya bisa terdeteksi di pesan error hasil compile.</span></li>
<li>&#60;!&#8211;[if !supportLists]&#8211;&#62;<span lang="EN-US"><span><span> </span></span></span>&#60;!&#8211;[endif]&#8211;&#62;<span lang="EN-US">Sabar dan Jangan cepat  Frustasi</span></li>
<li>&#60;!&#8211;[endif]&#8211;&#62;<span lang="EN-US">Beberapa  ilmu Programming sangat sulit di mengerti, bahkan untuk ahli sekalipun, jadi  jangan kecil hati.</span></li>
<li><span lang="EN-US"><span></span></span>&#60;!&#8211;[endif]&#8211;&#62;<span lang="EN-US">Jika Anda sudah putus asa, coba tanyakan masalah Anda ke orang lain,  ke Milis atau Komunitas Open Source misalnya.</span></li>
</ol>
<p class="MsoNormal" style="text-align:justify;"><strong><span lang="EN-US">Mengenali Error</span></strong></p>
<p class="MsoNormal" style="text-align:justify;"><span lang="EN-US">Saat mengetik  program TampilkanInput yang kita bahas <a href="http://johanfirdaus.zo-ka01.com/2008/11/java-sangat-basic-3-menampilkan-input-dari-key-board/">sebelumnya</a>,  mungkin Anda sudah mengalami beberapa Error. Biasanya Error-error tersebut  adalah error simple yang mudah dikenali. Error-error tersebut diantaranya  Adalah:</span></p>
<p><a class="more-link" href="http://johanfirdaus.zo-ka01.com/2008/12/java-sangat-basic-4-mencari-kesalahan-sederhanam-bag-1/#more-226">Read  the rest of this entry »</a></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[&lt;/3]]></title>
<link>http://netteynette.wordpress.com/2008/12/03/3/</link>
<pubDate>Wed, 03 Dec 2008 08:39:03 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2008/12/03/3/</guid>
<description><![CDATA[I forgot how cleaning up can make you emotional. So I packed up yet another bag of things the-guy-i-]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I forgot how cleaning up can make you emotional.</p>
<p>So I packed up yet another bag of things the-guy-i-like gave me.<br />
It wasn&#8217;t too long ago when I did the exact same thing and pasted a note that says not to open up the bag until I am completely over him.<br />
Perhaps I&#8217;m just bad at handling relationships.</p>
<p>At least I finally took the hardest step in getting over him.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[.]]></title>
<link>http://netteynette.wordpress.com/2008/11/19/391/</link>
<pubDate>Wed, 19 Nov 2008 01:50:00 +0000</pubDate>
<dc:creator>nettey</dc:creator>
<guid>http://netteynette.wordpress.com/2008/11/19/391/</guid>
<description><![CDATA[So here comes the Science subjects and my one and only Accounts. And we’re finally done with SPM. Ca]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span lang="EN-US">So here comes the Science subjects and my one and only Accounts. And we’re finally done with SPM. Can’t believe it’s so fast. Not complaining.:D<br />
We were never a couple, but I guess you can say what I have with him have been called off just last night. And I think if you know me well enough, you’ll know who wanted it. Don’t confront me about this, please.</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Case sensitive passwords]]></title>
<link>http://mcloide.wordpress.com/2008/11/03/case-sensitive-passwords/</link>
<pubDate>Mon, 03 Nov 2008 19:24:31 +0000</pubDate>
<dc:creator>mcloide</dc:creator>
<guid>http://mcloide.wordpress.com/2008/11/03/case-sensitive-passwords/</guid>
<description><![CDATA[No matter where you are registering you will find 2 distincts password handling systems: Case sensit]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://www.smh.com.au" target="_blank"><img class="alignright" style="border:0 none;margin:10px;" title="user-password-crisis" src="http://www.smh.com.au/ffximage/2006/02/15/300_password,0.jpg" alt="" width="210" height="227" /></a>No matter where you are registering you will find 2 distincts password handling systems:</p>
<ul>
<li>Case sensitive password storage</li>
<li>Case insensitive password storage</li>
</ul>
<p>If you work in a LAMP enviroment most likely you will use a case sensitive method, since that&#8217;s what you are used to (Linux is a case sensitive system) and most likely you have set on your brain that this is the only secure accepted scenario for password handling, but when you start looking for the user side, case sensitive password handlers became an issue.</p>
<p>Talking with some users (none computer savy) I found out that a password with upper case letters, lower case letters, special chars and numbers combination is a little too much to remember.</p>
<p>Considering this and my will of testing out the poll system from WordPress, I would like to you guys to help me out.</p>
<p>I&#8217;m pretty strict with security and I would not exchange security for usability in a password system, but I would like to know what you guys think, so&#8230;</p>
<a name="pd_a_1072331"></a><div class="PDS_Poll" id="PDI_container1072331" style="display:inline-block;"></div><script type="text/javascript" language="javascript" charset="utf-8" src="http://static.polldaddy.com/p/1072331.js"></script>
		<noscript>
		<a href="http://answers.polldaddy.com/poll/1072331/">View This Poll</a><br/><span style="font-size:10px;"><a href="http://answers.polldaddy.com">answers</a></span>
		</noscript>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Why MySQL gave case insensitive string results]]></title>
<link>http://geertschuring.wordpress.com/2008/10/14/why-mysql-gave-case-insensitive-string-results/</link>
<pubDate>Tue, 14 Oct 2008 15:39:18 +0000</pubDate>
<dc:creator>Geert Schuring</dc:creator>
<guid>http://geertschuring.wordpress.com/2008/10/14/why-mysql-gave-case-insensitive-string-results/</guid>
<description><![CDATA[Problem Today MySQL was giving me crappy results&#8230; when I searched for a user with name &#8216;]]></description>
<content:encoded><![CDATA[Problem Today MySQL was giving me crappy results&#8230; when I searched for a user with name &#8216;]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL Select Query for Case Sensitive and Case Insensitive]]></title>
<link>http://asimafzal.wordpress.com/2008/09/08/sql-select-query-for-case-sensitive-and-case-insensitive/</link>
<pubDate>Mon, 08 Sep 2008 09:19:02 +0000</pubDate>
<dc:creator>asimafzal</dc:creator>
<guid>http://asimafzal.wordpress.com/2008/09/08/sql-select-query-for-case-sensitive-and-case-insensitive/</guid>
<description><![CDATA[If you want to seach the record with sensitive case below code might help you! (For Case Insensitive]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>If you want to seach the record with sensitive case below code might help you!</p>
<p>(For Case Insensitive)<br />
SELECT password<br />
FROM tblMembers<br />
WHERE (password = @pass COLLATE SQL_Latin1_General_CP1_CI_AS)</p>
<p>(For Case Sensitive)<br />
SELECT password<br />
FROM tblMembers<br />
WHERE (password = @pass COLLATE SQL_Latin1_General_CP1_CS_AS)</p>
<p>Note: @pass is the user&#8217;s password </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Documentum Installation Owner and Windows Services]]></title>
<link>http://doquent.wordpress.com/2008/08/13/documentum-installation-owner-and-windows-services/</link>
<pubDate>Wed, 13 Aug 2008 15:14:21 +0000</pubDate>
<dc:creator>doquent</dc:creator>
<guid>http://doquent.wordpress.com/2008/08/13/documentum-installation-owner-and-windows-services/</guid>
<description><![CDATA[Documentum installation owner user id is used for installing Documentum Content Server. On Windows, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Documentum <em>installation owner</em> user id is used for installing Documentum Content Server. On Windows, the installation sets up services for each repository (docbase), connection broker (docbroker), and Java method server. If you run into issues related to the installation owner id (typically authentication related), there are two aspects that can be checked:</p>
<ol>
<li>Each repository service has an associated <em>command-line</em> which specifies the installation owner as an argument. This command-line is visible on service properties when inspected through Windows services. You can edit the command-line through Documentum Server Manager utility. Select the relevant repository and click on the Edit Service button.
<ol>
<li>Note that this argument overrides the install owner specified in <em>server.ini</em> in case there is a conflict between the two.</li>
</ol>
</li>
<li>All the windows services use logon credentials and the Documentum services mentioned above use the installation owner credentials. These can be edited through the standard Windows service properties dialog.</li>
</ol>
<div id="attachment_68" class="wp-caption alignleft" style="width: 95px"><a href="http://doquent.files.wordpress.com/2008/08/dmservice.png"><img class="size-thumbnail wp-image-68" src="http://doquent.wordpress.com/files/2008/08/dmservice.png?w=85" alt="Inspecting Documentum Repository Service" width="85" height="96" /></a><p class="wp-caption-text">Inspecting Documentum Repository Service</p></div>
<p>Issues related to the installation owner may arise when it is a domain user (as opposed to a local user) and/or when multiple content servers are being used. Another aspect to remember is that while Windows treats the user id as case-insensitive Documentum treats it as case-sensitive. Repository configuration also creates a user in the repository for the installation owner, using the exact case as entered during the installation process (at login time prior to installation).</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Bad Software Technology]]></title>
<link>http://salon1.wordpress.com/2008/07/13/bad-software-technology/</link>
<pubDate>Sun, 13 Jul 2008 20:24:53 +0000</pubDate>
<dc:creator>Lao Tzu</dc:creator>
<guid>http://salon1.wordpress.com/2008/07/13/bad-software-technology/</guid>
<description><![CDATA[The following are bad ideas that have been used extensively in software engineering, mainly because ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The following are bad ideas that have been used extensively in software engineering, mainly because they are &#8220;shortcuts&#8221; &#8211; methods that are not proper or cogent, but are implemented for the sake of convenience or performance.  Sometimes they are implemented when the programmer has decided to have the application &#8220;think&#8221; for the user. From a Systems Engineering perspective, these are just wrong. As a coworker once stated, &#8220;Performance is the responsibility of the hardware, the software needs to be correct.&#8221; In addition, the situation where the computer thinks for the user rather than doing what the user tells it to do, should be limited to very few, well thought-out and critical situations, or quite possibly never.</p>
<ul>
<li><strong>Cache</strong> - Storing and presenting old data because it takes to long too present more accurate and reliable real time data.</li>
<li><strong>Cookies</strong> &#8211; Saving personal data for a website on the computer, especially bad for public computers.</li>
<li><strong>Remember Me on this Computer</strong> (saving passwords) &#8211; This violates the fundamental reason for passwords.  And the option is often checked by default on many sites (e.g., Hotmail).</li>
<li><strong>Multitab Browsers</strong> - Because of session beans, these won&#8217;t work properly &#8211; your session information can get shared between multiple tabs. </li>
<li><strong>Automatic Updates</strong> &#8211; Apparently people who still implement this have never had the experience of an application searching and installing updates while they were trying to use it.  Here&#8217;s an idea &#8211; I tell the software when to look for updates.</li>
<li><strong>Auto Correction</strong> &#8211; Who&#8217;s driving here, I mean really?! That&#8217;s why there is a Spell Check button on many applications. I will spell check and approve when I want to. Thank you.  This is not to be confused with <em>Auto-Completion</em>, which I think is great (example of letting computer help).</li>
<li><strong>Spaces in File or Directory Names</strong> &#8211; Although Windows allows it, it can still cause problems in several scenerios.  Ironically, even MS-DOS can&#8217;t handle it without quotes.</li>
<li><strong>Registry</strong> &#8211; This is spaghetti code for operating systems.  If I were wrong, there wouldn&#8217;t be so many registry cleaners out there.  Maybe if it were humanly readable / editable, but that&#8217;s probably just asking for trouble.</li>
<li><strong>Case Indecision</strong> - <em>Case Sensitive</em> is OK; <em>Case Insensitive</em> is OK, too;  <em>Case Sensitive Sometimes</em> is pure madness!</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How do I check the Default Server Collation (case-sensitivity) of a SQL Server installation?]]></title>
<link>http://dba4life.wordpress.com/2008/06/06/how-do-i-check-the-default-server-collation-case-sensitivity-of-a-sql-server-installation/</link>
<pubDate>Fri, 06 Jun 2008 13:27:04 +0000</pubDate>
<dc:creator>dba4life</dc:creator>
<guid>http://dba4life.wordpress.com/2008/06/06/how-do-i-check-the-default-server-collation-case-sensitivity-of-a-sql-server-installation/</guid>
<description><![CDATA[To check the Default Server Collation of a SQL Server installation, run the following SQL query: sp_]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>To check the Default Server Collation of a SQL Server installation, run the following SQL query:</p>
<blockquote><p>sp_helpsort</p></blockquote>
<p>You should get a result similar to this:</p>
<p><a href="http://dba4life.files.wordpress.com/2008/06/check_default_server_collation.png"><img class="alignnone size-full wp-image-12" src="http://dba4life.wordpress.com/files/2008/06/check_default_server_collation.png" alt="" /></a><br />
<strong><br />
Note:</strong> To check the collation of a particular database, right click on the database in SQL Server Enterprise Manager (2000) or Management Studio (2005) and click <strong>Properties</strong>. The collation will be displayed in the <strong>Collation Name</strong> field.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
