<?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>Blog de Dje &#187; SSIS</title>
	<atom:link href="https://blog.developpez.com/dje/pcategory/ms-sql-server/ssis/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/dje</link>
	<description></description>
	<lastBuildDate>Thu, 31 May 2012 20:33:57 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>SSIS &#8211; Obtenir le produit cartésien de 2 ensembles</title>
		<link>https://blog.developpez.com/dje/p8821/ms-sql-server/ssis_obtenir_le_produit_cartesien_de_2_e</link>
		<comments>https://blog.developpez.com/dje/p8821/ms-sql-server/ssis_obtenir_le_produit_cartesien_de_2_e#comments</comments>
		<pubDate>Wed, 14 Apr 2010 15:34:40 +0000</pubDate>
		<dc:creator><![CDATA[Ptit_Dje]]></dc:creator>
				<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Comment l&#8217;obtenir au moyen de SQL Server? Grace à l&#8217;opérateur CROSS JOIN: with cte_Ville as ( &#160; Select 'Lausanne' Ville, 'Suisse' Pays &#160; union &#160; Select 'Bruxelles' Ville, 'Belgique' Pays &#160; union &#160; Select 'Bangkok' Ville, 'Thailande' Pays ), cte_Produit as ( &#160; Select 'Pain' Produit, 'Condiment' Categorie &#160; union &#160; Select 'Sel' Produit, 'Condiment' Categorie &#160; union &#160; Select 'Savon' Produit, 'Entretien' Categorie &#160; union &#160; Select 'Javel' Produit, 'Entretien' Categorie ) select &#160; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><b><u>Comment l&rsquo;obtenir au moyen de SQL Server? </u></b></p>
<p><u>Grace à l&rsquo;opérateur CROSS JOIN:</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">with cte_Ville as <br />
( <br />
&nbsp; Select 'Lausanne' Ville, 'Suisse' Pays <br />
&nbsp; union <br />
&nbsp; Select 'Bruxelles' Ville, 'Belgique' Pays <br />
&nbsp; union <br />
&nbsp; Select 'Bangkok' Ville, 'Thailande' Pays <br />
), <br />
cte_Produit as <br />
( <br />
&nbsp; Select 'Pain' Produit, 'Condiment' Categorie <br />
&nbsp; union <br />
&nbsp; Select 'Sel' Produit, 'Condiment' Categorie <br />
&nbsp; union <br />
&nbsp; Select 'Savon' Produit, 'Entretien' Categorie <br />
&nbsp; union <br />
&nbsp; Select 'Javel' Produit, 'Entretien' Categorie <br />
) <br />
select &nbsp; <br />
&nbsp; Ville, &nbsp;<br />
&nbsp; Pays, &nbsp;<br />
&nbsp; Produit, &nbsp;<br />
&nbsp; Categorie &nbsp; <br />
from cte_Ville <br />
cross join cte_Produit</div></div>
<p><u>Grace à une jointure sans condition:</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">with cte_Ville as <br />
( <br />
&nbsp; Select 'Lausanne' Ville, 'Suisse' Pays <br />
&nbsp; union <br />
&nbsp; Select 'Bruxelles' Ville, 'Belgique' Pays <br />
&nbsp; union <br />
&nbsp; Select 'Bangkok' Ville, 'Thailande' Pays <br />
), <br />
cte_Produit as <br />
( <br />
&nbsp; Select 'Pain' Produit, 'Condiment' Categorie <br />
&nbsp; union <br />
&nbsp; Select 'Sel' Produit, 'Condiment' Categorie <br />
&nbsp; union <br />
&nbsp; Select 'Savon' Produit, 'Entretien' Categorie <br />
&nbsp; union <br />
&nbsp; Select 'Javel' Produit, 'Entretien' Categorie <br />
) <br />
select &nbsp;<br />
&nbsp; Ville, &nbsp;<br />
&nbsp; Pays, &nbsp;<br />
&nbsp; Produit, &nbsp;<br />
&nbsp; Categorie &nbsp;<br />
from cte_Ville, <br />
&nbsp; &nbsp; &nbsp;cte_Produit</div></div>
<p><u>Grace à une jointure sur une constante artificielle:</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">with cte_Ville as <br />
( <br />
&nbsp; Select 'Lausanne' Ville, 'Suisse' Pays, 1 Constante <br />
&nbsp; union <br />
&nbsp; Select 'Bruxelles' Ville, 'Belgique' Pays, 1 Constante <br />
&nbsp; union <br />
&nbsp; Select 'Bangkok' Ville, 'Thailande' Pays, 1 Constante <br />
), <br />
cte_Produit as <br />
( <br />
&nbsp; Select 'Pain' Produit, 'Condiment' Categorie, 1 Constante <br />
&nbsp; union <br />
&nbsp; Select 'Sel' Produit, 'Condiment' Categorie, 1 Constante <br />
&nbsp; union <br />
&nbsp; Select 'Savon' Produit, 'Entretien' Categorie, 1 Constante <br />
&nbsp; union <br />
&nbsp; Select 'Javel' Produit, 'Entretien' Categorie, 1 Constante <br />
) <br />
select &nbsp;<br />
&nbsp; Ville, &nbsp;<br />
&nbsp; Pays, &nbsp;<br />
&nbsp; Produit, &nbsp;<br />
&nbsp; Categorie &nbsp;<br />
from cte_Ville <br />
join cte_Produit &nbsp;<br />
&nbsp; on cte_Ville.Constante = cte_Produit.Constante</div></div>
<p><b><u>Comment l&rsquo;obtenir au moyen de SSIS?</u></b></p>
<p>Pour réaliser ceci, nous allons nous baser sur le dernier cas énoncé ci-dessus.<br />
En effet, le composant &laquo;&nbsp;Merge join&nbsp;&raquo; ne permettant pas de joindre 2 datasets sur base d&rsquo;aucune clef de jointure, nous allons donc devoir créer une clef artificielle grâce au composant &laquo;&nbsp;Derived column&nbsp;&raquo; et ce, pour les 2 datasets, pour ensuite réaliser une jointure sur cette nouvelle colonne.<br />
<b>Cette astuce prend particulièrement de sens lorsque les données proviennent de sources desquelles on ne peut pas ajouter directement une colonne (par exemple: fichier texte, source XML).</b><br />
Ci-dessous un exemple illustrant ceci:</p>
<p><img src="http://blog.developpez.com/media/SSIS_cardinal_01.jpg" width="709" height="485" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSIS &#8211; Obtenir un timestamp</title>
		<link>https://blog.developpez.com/dje/p8825/ms-sql-server/ssis_obtenir_un_timestamp</link>
		<comments>https://blog.developpez.com/dje/p8825/ms-sql-server/ssis_obtenir_un_timestamp#comments</comments>
		<pubDate>Thu, 15 Apr 2010 09:59:51 +0000</pubDate>
		<dc:creator><![CDATA[Ptit_Dje]]></dc:creator>
				<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Il est souvent utile pour marquer des fichiers, que se soit des logs ou des fichiers de sorties, de les &#171;&#160;timestamper&#160;&#187;. Pour ce faire nous allons utiliser une expression: SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE((DT_WSTR, 29) getdate(),&#34;-&#34;,&#34;&#34;),&#34;:&#34;,&#34;&#34;),&#34; &#34;,&#34;&#34;),&#34;.&#34;,&#34;&#34;),1,12) Celle-ci retourne un timestamp au format suivant: YYYYMMDDhhmm Pour changer le format de ce timestamp, il suffit de modifier la valeur de la longueur du substring: YYYYMMDDhhmmss : SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE((DT_WSTR, 29) getdate(),&#34;-&#34;,&#34;&#34;),&#34;:&#34;,&#34;&#34;),&#34; &#34;,&#34;&#34;),&#34;.&#34;,&#34;&#34;),1,14) YYYYMMDD : SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE((DT_WSTR, 29) getdate(),&#34;-&#34;,&#34;&#34;),&#34;:&#34;,&#34;&#34;),&#34; &#34;,&#34;&#34;),&#34;.&#34;,&#34;&#34;),1,8) Cette expression pouvant être [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Il est souvent utile pour marquer des fichiers, que se soit des logs ou des fichiers de sorties, de les &laquo;&nbsp;timestamper&nbsp;&raquo;.<br />
Pour ce faire nous allons utiliser une expression:<br />
<code class="codecolorer text default"><span class="text">SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE((DT_WSTR, 29) getdate(),&quot;-&quot;,&quot;&quot;),&quot;:&quot;,&quot;&quot;),&quot; &quot;,&quot;&quot;),&quot;.&quot;,&quot;&quot;),1,12)</span></code><br />
Celle-ci retourne un timestamp au format suivant: YYYYMMDDhhmm<br />
Pour changer le format de ce timestamp, il suffit de modifier la valeur de la longueur du substring:<br />
YYYYMMDDhhmmss : <code class="codecolorer text default"><span class="text">SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE((DT_WSTR, 29) getdate(),&quot;-&quot;,&quot;&quot;),&quot;:&quot;,&quot;&quot;),&quot; &quot;,&quot;&quot;),&quot;.&quot;,&quot;&quot;),1,14)</span></code><br />
YYYYMMDD : <code class="codecolorer text default"><span class="text">SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE((DT_WSTR, 29) getdate(),&quot;-&quot;,&quot;&quot;),&quot;:&quot;,&quot;&quot;),&quot; &quot;,&quot;&quot;),&quot;.&quot;,&quot;&quot;),1,8)</span></code> </p>
<p>Cette expression pouvant être réutilisée à de multiples endroits, il est préférable de stocker celle-ci dans une variable, dans la propriété &laquo;&nbsp;Expression&nbsp;&raquo; et de définir la valeur &laquo;&nbsp;EvaluateAsExpression&nbsp;&raquo; de cette dernière à True.<br />
<img src="http://blog.developpez.com/media/SSIS_DateTimeStamp.jpg" width="718" height="326" alt="Variable retournant un timestamp" /></p>
<p>Nous pouvons ensuite utiliser cette variable dans diverses expressions.</p>
<p><img src="http://blog.developpez.com/media/SSIS_DateTimeStamp_VariableUsage.jpg" width="634" height="507" alt="Utilisation de la variable de timestamp de date" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
