<?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; SQL</title>
	<atom:link href="http://everythingiswrong.free.fr/index.php/tag/sql/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 : 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>JBoss 7 : Datasources dans un WAR</title>
		<link>http://everythingiswrong.free.fr/index.php/2012/09/28/jboss-7-datasources-dans-un-war/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2012/09/28/jboss-7-datasources-dans-un-war/#comments</comments>
		<pubDate>Fri, 28 Sep 2012 19:17:57 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[jndi]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=1902</guid>
		<description><![CDATA[J2EE6 : Configurer une Datasource JNDI encapsulée dans une archive WAR.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Avec JBoss 7, il est possible de déclarer une datasource JNDI dans une archive WAR. Pour cela, il faut déposer un fichier <em>ma-datasource-ds.xml</em> dans le répertoire WEB-INF avec la déclaration de la source de données. Par exemple :</p>
<pre class="brush: xml; gutter: true; first-line: 1">&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;datasources xmlns="http://www.jboss.org/ironjacamar/schema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd"&gt;
   &lt;!-- The datasource is bound into JNDI at this location. We reference
      this in META-INF/persistence.xml --&gt;
   &lt;datasource jndi-name="java:jboss/datasources/maDS"
          pool-name="mysqlds"
          enabled="true"
          use-java-context="true"&gt;
      &lt;connection-url&gt;jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=UTF-8&lt;/connection-url&gt;
      &lt;driver&gt;mysql&lt;/driver&gt;
      &lt;security&gt;
         &lt;user-name&gt;root&lt;/user-name&gt;
         &lt;password&gt;123456&lt;/password&gt;
      &lt;/security&gt;
   &lt;/datasource&gt;
&lt;/datasources&gt;</pre>
<p style="text-align: justify;">La valeur de l&#8217;élément <em>driver</em>, est le nom du driver installé sur le serveur. Pour l&#8217;installer, il est possible de copier le jar dans le répertoire de déploiement du serveur (<code>cp mysql.jar &lt;as7&gt;/standalone/deployments</code>).</p>
<p style="text-align: justify;">Sources : <a href="https://community.jboss.org/thread/204245" target="_blank">https://community.jboss.org/thread/204245</a>, <a href="https://community.jboss.org/wiki/DataSourceConfigurationInAS7">https://community.jboss.org/wiki/DataSourceConfigurationInAS7</a>, <a href="https://github.com/abstractj/as-quickstarts/blob/40f8cae2ce9388151e1a07f743df74e59c7848bc/kitchensink-html5-mobile/src/test/resources/arquillian-ds.xml">https://github.com/abstractj/as-quickstarts/blob/40f8cae2ce9388151e1a07f743df74e59c7848bc/kitchensink-html5-mobile/src/test/resources/arquillian-ds.xml</a></p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2012/09/28/jboss-7-datasources-dans-un-war/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>
		<item>
		<title>Normalisation des bases de données</title>
		<link>http://everythingiswrong.free.fr/index.php/2010/04/02/normalisation-base-de-donnees/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2010/04/02/normalisation-base-de-donnees/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 20:30:29 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=104</guid>
		<description><![CDATA[SQL base de données relationnelle normalisation oracle mysql]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Depuis que je travaille dans l&#8217;informatique de gestion, je vois tout et son contraire en terme de normalisation des bases de données. J&#8217;ai découvert aujourd&#8217;hui un document très intéressant sur le sujet qui pourrait servir à l&#8217;ensemble des informaticiens qui travaillent avec une base : <a href="http://sqlpro.developpez.com/cours/standards/" target="_blank">http://sqlpro.developpez.com/cours/standards/</a>.</p>
<p style="text-align: justify;">On y apprend comment nommer ses tables relationnelles, leurs colonnes, index, etc. Je ne vais pas réécrire l&#8217;article, cela n&#8217;aurait pas d&#8217;intérêt, mais je vais vous montrer quelques exemples. Voici la proposition pour les tables et les vues :</p>
<p><center></p>
<table style="width: 383px; height: 124px;" border="0" align="center">
<tbody>
<tr>
<th style="text-align: center;">Préfixe de table</th>
<th style="text-align: center;">fonction</th>
<th style="text-align: center;">préfixe de vue</th>
</tr>
</tbody>
<tbody>
<tr>
<td>T_</td>
<td>lorsqu&#8217;il s&#8217;agit d&#8217;une table fonctionnelle</td>
<td>V_</td>
</tr>
<tr>
<td>TR_</td>
<td>lorsqu&#8217;il s&#8217;agit d&#8217;une table de référence</td>
<td>VR_</td>
</tr>
<tr>
<td>TS_</td>
<td>lorsqu&#8217;il s&#8217;agit d&#8217;une table &#8220;système&#8221;</td>
<td>VS_</td>
</tr>
<tr>
<td>TJ_</td>
<td>lorsqu&#8217;il s&#8217;agit d&#8217;une table de jointure</td>
<td>VJ_</td>
</tr>
<tr>
<td>TG_</td>
<td>lorsqu&#8217;il s&#8217;agit d&#8217;une table générique (héritage)</td>
<td>VG_</td>
</tr>
</tbody>
</table>
<p></center><br />
On y apprend aussi comment écrire du code SQL (indentation, nom des colonnes résultats, etc.). Par exemple voici un mauvais code :</p>
<pre class="brush: sql; title: ; notranslate">SELECT CLI_ID, CLI_NOM, CLI_ENSEIGNE,
CLI_PRENOM  FROM T_CLIENT WHERE CLI_ADR_PAYS = 'F'
AND CLI_ENSEIGNE IS NULL OR CLI_ENSEIGNE =''
ORDER BY CLI_NOM</pre>
<p>Voici le même code bon cette fois-ci :</p>
<pre class="brush: sql; title: ; notranslate">SELECT CLI_ID, CLI_NOM, CLI_ENSEIGNE,
       CLI_PRENOM
FROM   T_CLIENT
WHERE  CLI_ADR_PAYS = 'F'
       AND CLI_ENSEIGNE IS NULL OR CLI_ENSEIGNE =''
ORDER  BY CLI_NOM</pre>
<p style="text-align: justify;">Au final, je pense que si tout le monde utilisait les mêmes conventions pour les schémas de base de données et les requêtes SQL, les développeurs (Java par exemple) seraient plus à l&#8217;aise pour leurs développements et pour changer de projet.</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2010/04/02/normalisation-base-de-donnees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
