|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Étudiant Inscription : avril 2009 Messages : 144 ![]() |
Bonjour à tous !
Je suis confronté à une problématique que je ne peux résoudre. Je vous explique la situation : Je suis actuellement en train de travailler sur du reporting de données, qui sont extraites dans des fichiers journaux. J'utilise un petit outil sympathique qu'est LogParser ( fait par windows ). J'arrive à extraire des données à l'aide d'une requête "SQL like" et insérer ces données dans une base de données sous SQL SERVER 2008 R2. Voici une des requêtes LogParser qui me ramène la liste des comptes créés dans l'Active Directory : Code :
SELECT RecordNumber, EventId, EventType, TimeGenerated, ComputerName, Message INTO AD_UserCreated FROM Security WHERE EventId = 4720 Code :
"Un compte d'utilisateur a été créé. Nom du compte : Administrateur Domaine du compte : DomaineTest Id d'ouverture de session : 0x479f4 ........... etc"
Je ne vois pas trop comment réaliser ceci. Avez vous des informations là dessus ? Avez-vous rencontré des situations similaires ? Merci d'avance pour votre aide.
__________________
La politesse n'a jamais tué personne Le langage SMS c'est le mal ! Pensez au tag
|
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() |
Tu peux utiliser une fonction Split :
--> soit en CLRs --> soit en T-SQL Voici un exemple de fonction Split en T-SQL A+ |
|
10
|
|
|
#3 |
|
Membre habitué
![]() Étudiant Inscription : avril 2009 Messages : 144 ![]() |
Merci pour les informations !
Mais le soucis c'est qu'il y a des espaces à gérer. Il n'y a pas réellement de caractère séparateur ici
__________________
La politesse n'a jamais tué personne Le langage SMS c'est le mal ! Pensez au tag
|
|
|
00
|
|
|
#4 | ||||
|
Membre Expert
![]() ![]() |
Avec la fonction F_SQLSplit on a ceci :
Code :
=> Résultat Code :
|
||||
|
10
|
|
|
#5 | ||
|
Membre habitué
![]() Étudiant Inscription : avril 2009 Messages : 144 ![]() |
J'ai du mal à visualiser la chose.
Je prends mes données d'une table : Citation:
Citation:
__________________
La politesse n'a jamais tué personne Le langage SMS c'est le mal ! Pensez au tag
|
||
|
|
00
|
|
|
#6 | ||||
|
Membre Expert
![]() ![]() |
Code :
Code :
|
||||
|
00
|
|
|
#7 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 670 ![]() |
Bonjour,
Attention à la fonction dbo.F_SQLSplit() : l'utilisation d'un WHILE et/ou d'une expression de table commune est très contre-performant. Après avoir faits quelques tests avec un nombre de valeurs conséquent, variant de 100 à 100 000 : - une fonction T-SQL avec un WHILE est la moins performante - Alléché par une fonction CLR, j'ai fait le même test, qui a montré la CLR plus rapide qu'une implémentation T-SQL avec WHILE - le plus rapide est une fonction qui repose sur une table de nombres, et qui évite la boucle du WHILE en T-SQL, ou l’instanciation de la CLR à chaque appel de la fonction d'assembly. La différence de temps d'exécution est de l'ordre d'une centaine de millisecondes pour 10 000 valeurs. Je prépare un post là-dessus @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#8 |
|
Membre habitué
![]() Étudiant Inscription : avril 2009 Messages : 144 ![]() |
Merci pour toutes ces informations.
Ta méthode est fonctionnelle ! Pour la rapidité, je n'ai pas fait de tests, je suis donc intéressé par le futur post Merci à vous pour vos conseils
__________________
La politesse n'a jamais tué personne Le langage SMS c'est le mal ! Pensez au tag
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com