xzonz
Messages postés107Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention23 novembre 2022
-
24 août 2006 à 00:32
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 2013
-
26 août 2006 à 18:40
salut tout le monde
voila ma question
j'ai une requete qui fait les actions suivantes
- verification de la presence d'une table (status_export)
si oui on la supprime
-copie de la structure dune deuxieme table (status...qui va servir de source)
-insert du contenu de status dans status export
-transformation de deux champs de la table status_export
(format de date et d'heure)
-supression dans status_export des lignes qui ne correspondent pas à la date du jour
et pour finir j'aimerais exporter la table status_export vers un fichier txt
est il possible de faire ca avec un lot dts ?
j'ai essayé ... mais je ne maitrise pas du tout les différent éléments disponibles
dans le concepteur dts ... j'ai éssayé plein de lots différents ... mais je n'y arrive pas !!
j'ai besoin d'un coup de main.car mes debuts avec dts sont laborieux
MERCI BEAUCOUP
ah ... j'oubliais ... voila la requete ....elle fonctionne bien !
--------------------------------------------------------------------------------
/* on teste si la table existe - si oui on la supprime */
/*-----------------------------------------------------*/if exists (select * from dbo.sysobjects where id object_id(N'[dbo].[STATUS_EXPORT]') and OBJECTPROPERTY(id, N'IsUserTable') 1)
drop table [dbo].[STATUS_EXPORT]
/* on recopie la structure de la table status dans STATUS_EXPORT */
/*---------------------------------------------------------------*/
select * into STATUS_EXPORT
from STATUS
where 1=2
/* on copie les données de status dans STATUS_EXPORT */
/*---------------------------------------------------*/
insert into STATUS_EXPORT
select [status_id],[status_ident],[status_date],[status_starttime],[status_ani],[status_waitingtime],
[status_talktime],[status_wrapuptime],[status_status],[status_detail],[status_argued],[status_positive],
[status_transfert],[status_comtype],[status_numcamp],[status_camptype],[status_layer],[status_user],
[status_idlink],[rec_cle]
from STATUS
/* modification du format de status_date et status_startime au format MySql */
/*--------------------------------------------------------------------------*/
update STATUS_EXPORT
set status_date = left(status_date, 4) + '-' + substring(status_date, 5, 2) + '-' + right(status_date, 2),
status_starttime = left(status_starttime, 2) + ':' + substring(status_starttime, 3, 2) + ':' + right(status_starttime, 2)
/* on supprime les lignes differentes de la date du jour dans status_export */
/*---------------------------------------------------------------------------*/
delete from STATUS_EXPORT
where STATUS_DATE not in (
SELECT CONVERT(VARCHAR(10), GETDATE(), 120))
cs_skweeky
Messages postés259Date d'inscriptionmercredi 3 mai 2006StatutMembreDernière intervention11 janvier 20108 24 août 2006 à 10:08
Avec des tâches de scripts SQL çà doit marcher sans problèmes, en découpant les différentes portions de ton scripts dans différentes tâches.
Petit commentaire, c'est quoi l'interêt que tu as à faire çà :
/* on recopie la structure de la table status dans STATUS_EXPORT */
/*---------------------------------------------------------------*/
select * into STATUS_EXPORT
from STATUS
where 1=2
/* on copie les données de status dans STATUS_EXPORT */
/*---------------------------------------------------*/
insert into STATUS_EXPORT
select [status_id],[status_ident],[status_date],[status_starttime],[status_ani],[status_waitingtime],
[status_talktime],[status_wrapuptime],[status_status],[status_detail],[status_argued],[status_positive],
[status_transfert],[status_comtype],[status_numcamp],[status_camptype],[status_layer],[status_user],
[status_idlink],[rec_cle]
from STATUS
Au lieu de çà :
select * into STATUS_EXPORT
from STATUS
Et tu finis par une tâche de d'export (pour la créer tu peux partir de l'assistant d'exportaion de données c'est sans doute plus simple, en lui disant de sauvegarder le lot DTS à la sortie)
xzonz
Messages postés107Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention23 novembre 2022 24 août 2006 à 17:25
salut
merci beaucoup pour le conseil au sujet de:
select * into STATUS_EXPORT
from STATUS
c'est quand meme mieux
pour l'export vers un txt c'est bon j'ai trouvé
(c'était pas bien difficile)
mais quand je suis dans le concepteur dts
quel type de tache utiliser pour pouvoir
executer un script sql - est ce une tache de transformation
de donnée .... et comment la configurer ?
c'est la ou je suis un peu perdu !
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 26 août 2006 à 18:40
pour aller un peu plus loin dans l'optimisation je pense que la conversion de champs et la selection des champs du jour peuvent être faite directement dans la requette SELECT INTO :
select
[status_id],
[status_ident],
left(status_date, 4) + '-' + substring(status_date, 5, 2) + '-' + right(status_date, 2) as [status_date],
left(status_starttime, 2) + ':' + substring(status_starttime, 3, 2) + ':' + right(status_starttime, 2) as [status_starttime], [status_ani],
[status_waitingtime],
[status_talktime],
[status_wrapuptime],
[status_status],
[status_detail],
[status_argued],
[status_positive],
[status_transfert],
[status_comtype],
[status_numcamp],
[status_camptype],
[status_layer],
[status_user],
[status_idlink],
[rec_cle]
into
STATUS_EXPORT
from
STATUS
where
STATUS_DATE = GETDATE();