<?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>Everything is wrong &#187; Oracle</title>
	<atom:link href="http://everythingiswrong.free.fr/index.php/tag/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://everythingiswrong.free.fr</link>
	<description>Un blog dédié à l&#039;informatique en général</description>
	<lastBuildDate>Wed, 06 Oct 2021 21:20:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Oracle : index basé sur une fonction</title>
		<link>http://everythingiswrong.free.fr/index.php/2013/06/05/oracle-index-base-sur-une-fonction/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2013/06/05/oracle-index-base-sur-une-fonction/#comments</comments>
		<pubDate>Wed, 05 Jun 2013 20:53:49 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=2236</guid>
		<description><![CDATA[Comment créer un index qui se base sur une fonction Oracle (TO_NUMBER, TO_DATE, SUBSTR, etc.)...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Il est possible de définir des index basés sur des fonctions (based-function index). Par exemple lorsqu&#8217;il est nécessaire de faire un index sur ce genre de requête SQL :</p>
<pre class="brush: sql; gutter: true; first-line: 1; highlight: [4]">SELECT * FROM
    MA_TABLE
WHERE
    SUBSTR(MA_COLONNE, 1, 3) = 'ABC';</pre>
<p style="text-align: justify;">Il est possible de définir un index spécialement sur la fonction recherchée de la façon suivante :</p>
<pre class="brush: sql; gutter: true; first-line: 1">CREATE INDEX IDX ON MA_TABLE (SUBSTR(MA_COLONNE, 1, 3));</pre>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2013/06/05/oracle-index-base-sur-une-fonction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle : Noms des objets sensibles à la casse</title>
		<link>http://everythingiswrong.free.fr/index.php/2013/01/11/oracle-noms-des-objets-sensibles-a-la-casse/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2013/01/11/oracle-noms-des-objets-sensibles-a-la-casse/#comments</comments>
		<pubDate>Fri, 11 Jan 2013 23:42:39 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=2005</guid>
		<description><![CDATA[Comprendre une erreur "ORA-00942: table or view does not exist" sur un objet qui existe (à priori)]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Par défaut Oracle enregistre tous les noms des objets en majuscule sauf s&#8217;ils ont été créés avec des guillemets. Dans ce cas le nom de l&#8217;objet est sensible à la casse. Par exemple :</p>
<pre class="brush: sql; gutter: true; first-line: 1">SQL&gt; create table "bob" (a number);

Table created.

SQL&gt; select * from bob;
select * from bob
              *
ERROR at line 1:
ORA-00942: table or view does not exist

SQL&gt; select * from "bob";

no rows selected</pre>
<p style="text-align: justify;">Attention ! Certains logiciels SQL (SQLDevlopper par exemple) créent toutes leurs requêtes avec des guillemets lorsque l&#8217;on demande des actions (insertions, modifications, créations, etc.) sur les bases de données via les menus contextuels.</p>
<p style="text-align: justify;">Sources :</p>
<ul>
<li><a href="https://forums.oracle.com/forums/thread.jspa?threadID=998437">https://forums.oracle.com/forums/thread.jspa?threadID=998437</a></li>
<li><a href="http://www.orafaq.com/forum/t/71934/2/">http://www.orafaq.com/forum/t/71934/2/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2013/01/11/oracle-noms-des-objets-sensibles-a-la-casse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle : Supprimer toutes les tables d&#8217;un schéma</title>
		<link>http://everythingiswrong.free.fr/index.php/2012/12/14/oracle-supprimer-toutes-les-tables-dun-schema/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2012/12/14/oracle-supprimer-toutes-les-tables-dun-schema/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 20:32:09 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=1991</guid>
		<description><![CDATA[Un petit script PLSQL pour supprimer toutes les tables d'un schéma oracle.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Voici un petit script PLSQL pour supprimer toutes les tables d&#8217;un schéma d&#8217;une base de données Oracle. Il s&#8217;agit de créer un curseur implicite sur la liste des tables de l&#8217;utilisateur sans prendre en compte les tables de la corbeille. Puis de boucler sur cette liste afin d&#8217;exécuter la commande de suppression de chaque table sans oublier toutes ses contraintes :</p>
<pre class="brush: sql; gutter: true; first-line: 1">BEGIN
    FOR c IN (SELECT object_name,
                     object_type
              FROM user_objects
              WHERE object_type IN ('TABLE') AND object_name NOT LIKE '%$%') LOOP
        EXECUTE IMMEDIATE 'DROP '
                             || c.object_type || ' "'
                             || c.object_name || '" CASCADE CONSTRAINTS';
    END LOOP;
END;</pre>
<p style="text-align: justify;">Ce script peut être adapté pour supprimer d&#8217;autres types d&#8217;objet comme des vues. Pour cela, modifier <em>TABLE</em> en <em>VIEW</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2012/12/14/oracle-supprimer-toutes-les-tables-dun-schema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle : Connaitre la taille d&#8217;une table en Mo</title>
		<link>http://everythingiswrong.free.fr/index.php/2012/09/07/oracle-connaitre-la-taille-dune-table-en-mo/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2012/09/07/oracle-connaitre-la-taille-dune-table-en-mo/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 19:43:50 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=1887</guid>
		<description><![CDATA[Calculer la taille d'une table dans une base de données Oracle.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Pour connaître la taille utile d&#8217;une table d&#8217;une base de données oracle il faut se baser sur le nombre de blocs de la table et le multiplier par la taille d&#8217;un bloc. La taille utile est la taille exacte de la table. Cela ne prendre pas en compte les blocs vides occupés par la table qui proviendraient d&#8217;une fragmentation de la base de données.</p>
<pre class="brush: sql; gutter: true; first-line: 1; highlight: [6, 7]">    select
        user_tables.table_name,
        user_tablespaces.tablespace_name,
        user_tablespaces.block_size,
        user_tables.blocks,
        user_tablespaces.block_size * user_tables.blocks / 1024 / 1024
            as "Taille Mb"
    from user_tables, user_tablespaces
    where
        user_tables.tablespace_name = user_tablespaces.tablespace_name
    order by "Taille Mb" desc</pre>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2012/09/07/oracle-connaitre-la-taille-dune-table-en-mo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle : Générer une série de date</title>
		<link>http://everythingiswrong.free.fr/index.php/2011/02/15/oracle-generer-une-serie-de-date/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2011/02/15/oracle-generer-une-serie-de-date/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 20:46:00 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=924</guid>
		<description><![CDATA[Génération d'une séquence de date successives avec une base de données Oracle. Cela peu être utile pour générer des données de tests.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Comment est-il possible de générer une séquence de date à partir d&#8217;une simple requête SQL sur un base de données Oracle ?</p>
<p style="text-align: justify;">Pour comprendre le principe, il faut savoir que ce type de résultat est obtenu en deux étapes. La première est la génération d&#8217;un nombre défini de données à partir d&#8217;une requête SQL. La seconde est la transformation des données générées pour obtenir des dates.</p>
<h1 style="text-align: justify;">Génération d&#8217;une série de données</h1>
<p style="text-align: justify;">Il existe plusieurs façons de générer un nombre défini de données qui peuvent être exploitées par la suite. Voici un exemple simple :</p>
<pre class="brush: sql; toolbar: true;">SELECT 1
FROM DUAL
CONNECT BY LEVEL &lt;= &lt; n &gt;</pre>
<p style="text-align: justify;">Avec <em>n </em>le nombre de données que vous souhaitez obtenir. Voici le résultat pour n = 3 :</p>
<p class="wp-caption" style="text-align: left;">1<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
1<br />
1<br />
1</p>
<h1 style="text-align: left;">Transformation de la série en séquence de dates</h1>
<p style="text-align: justify;">A partir des données générées précédemment, il est possible de créer une séquence de date avec ce type de requête SQL :</p>
<pre class="brush: sql; toolbar: true;">SELECT TRUNC(TO_DATE('20080415','yyyymmdd'),'MM')+ROWNUM -1 DATES FROM (
   SELECT 1
   FROM DUAL
   CONNECT BY LEVEL &lt;= &lt;n&gt;
)</pre>
<p style="text-align: justify;">Voici le résultat pour n = 3 :</p>
<p class="wp-caption" style="text-align: justify;">DATES<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
01/04/08<br />
02/04/08<br />
03/04/08</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Sources</span> : Pour plus d&#8217;explications, vous pouvez vous référer au site internet qui m&#8217;a servi de référence : <a href="http://www.dba-oracle.com/t_test_data_date_generation_sql.htm" target="_blank">http://www.dba-oracle.com/t_test_data_date_generation_sql.htm</a>. Vous y retrouverez entre autre deux façons différentes de générer une série de données.</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2011/02/15/oracle-generer-une-serie-de-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
