OVH Cloud OVH Cloud

Help ! Traitement d'un resultat renvoye par une procedure

7 réponses
Avatar
abraham
Bonjour,

je suis confronté au problème suivant :

Dans une procédure je voudrais traiter le résultat renvoyée par une
procédure système
par exemple la procédure sp_who2

Est ce possible ?
Si oui Comment ?

Merci d'avance

7 réponses

Avatar
bruno reiter [MVP]
Une table temporaire, la créer, puis insert ... exec sp_who2

br

"abraham" wrote in message
news:uVsEV$
Bonjour,

je suis confronté au problème suivant :

Dans une procédure je voudrais traiter le résultat renvoyée par une
procédure système
par exemple la procédure sp_who2

Est ce possible ?
Si oui Comment ?

Merci d'avance





Avatar
abraham
voici mon exemple :
insert into #Tmp
execute msdb..sp_help_job @job_name = 'Changement_statut' ,
@execution_status =1 , @job_aspect = 'JOB'

et voici la reponse du Serveur :

Serveur : Msg 8164, Niveau 16, État 1, Procédure sp_get_composite_job_info,
Ligne 67
Une instruction INSERT EXEC ne peut pas être imbriquée.


???



"bruno reiter [MVP]" a écrit dans le message
de news:
Une table temporaire, la créer, puis insert ... exec sp_who2

br

"abraham" wrote in message
news:uVsEV$
> Bonjour,
>
> je suis confronté au problème suivant :
>
> Dans une procédure je voudrais traiter le résultat renvoyée par une
> procédure système
> par exemple la procédure sp_who2
>
> Est ce possible ?
> Si oui Comment ?
>
> Merci d'avance
>
>
>




Avatar
bruno reiter [MVP]
il faut d'abord créer la table temporaire
create table #tmp ........

br

"abraham" wrote in message
news:
voici mon exemple :
insert into #Tmp
execute msdb..sp_help_job @job_name = 'Changement_statut' ,
@execution_status =1 , @job_aspect = 'JOB'

et voici la reponse du Serveur :

Serveur : Msg 8164, Niveau 16, État 1, Procédure sp_get_composite_job_info,
Ligne 67
Une instruction INSERT EXEC ne peut pas être imbriquée.


???



"bruno reiter [MVP]" a écrit dans le message
de news:
> Une table temporaire, la créer, puis insert ... exec sp_who2
>
> br
>
> "abraham" wrote in message
> news:uVsEV$
> > Bonjour,
> >
> > je suis confronté au problème suivant :
> >
> > Dans une procédure je voudrais traiter le résultat renvoyée par une
> > procédure système
> > par exemple la procédure sp_who2
> >
> > Est ce possible ?
> > Si oui Comment ?
> >
> > Merci d'avance
> >
> >
> >
>
>




Avatar
albert
même avec la table crée , l'erreur persiste !!!

"bruno reiter [MVP]" a écrit dans le message
de news:
| il faut d'abord créer la table temporaire
| create table #tmp ........
|
| br
|
| "abraham" wrote in message
| news:
| > voici mon exemple :
| > insert into #Tmp
| > execute msdb..sp_help_job @job_name = 'Changement_statut' ,
| > @execution_status =1 , @job_aspect = 'JOB'
| >
| > et voici la reponse du Serveur :
| >
| > Serveur : Msg 8164, Niveau 16, État 1, Procédure
sp_get_composite_job_info,
| > Ligne 67
| > Une instruction INSERT EXEC ne peut pas être imbriquée.
| >
| >
| > ???
| >
| >
| >
| > "bruno reiter [MVP]" a écrit dans le
message
| > de news:
| > > Une table temporaire, la créer, puis insert ... exec sp_who2
| > >
| > > br
| > >
| > > "abraham" wrote in message
| > > news:uVsEV$
| > > > Bonjour,
| > > >
| > > > je suis confronté au problème suivant :
| > > >
| > > > Dans une procédure je voudrais traiter le résultat renvoyée par une
| > > > procédure système
| > > > par exemple la procédure sp_who2
| > > >
| > > > Est ce possible ?
| > > > Si oui Comment ?
| > > >
| > > > Merci d'avance
| > > >
| > > >
| > > >
| > >
| > >
| >
| >
|
|
Avatar
bruno reiter [MVP]
faut tout leur faire ;-)

create table #tmpwho
(
spid int,
ecid int,
status sysname,
loginame sysname,
hostname sysname,
blk int,
dbname sysname null,
cmd sysname
)

insert #tmpwho
exec sp_who

select * from #tmpwho

drop #tmpwho



br

"albert" wrote in message
news:
même avec la table crée , l'erreur persiste !!!

"bruno reiter [MVP]" a écrit dans le message
de news:
| il faut d'abord créer la table temporaire
| create table #tmp ........
|
| br
|
| "abraham" wrote in message
| news:
| > voici mon exemple :
| > insert into #Tmp
| > execute msdb..sp_help_job @job_name = 'Changement_statut' ,
| > @execution_status =1 , @job_aspect = 'JOB'
| >
| > et voici la reponse du Serveur :
| >
| > Serveur : Msg 8164, Niveau 16, État 1, Procédure
sp_get_composite_job_info,
| > Ligne 67
| > Une instruction INSERT EXEC ne peut pas être imbriquée.
| >
| >
| > ???
| >
| >
| >
| > "bruno reiter [MVP]" a écrit dans le
message
| > de news:
| > > Une table temporaire, la créer, puis insert ... exec sp_who2
| > >
| > > br
| > >
| > > "abraham" wrote in message
| > > news:uVsEV$
| > > > Bonjour,
| > > >
| > > > je suis confronté au problème suivant :
| > > >
| > > > Dans une procédure je voudrais traiter le résultat renvoyée par une
| > > > procédure système
| > > > par exemple la procédure sp_who2
| > > >
| > > > Est ce possible ?
| > > > Si oui Comment ?
| > > >
| > > > Merci d'avance
| > > >
| > > >
| > > >
| > >
| > >
| >
| >
|
|




Avatar
albert
Avant tout Merci,

Mais je persiste , car la procédure dont je veux récupérer le résultat est
: msdb..sp_help_job

En suivant a la lettre vos recommandations j'ai le message d'erreur Suivant
:

Serveur : Msg 8164, Niveau 16, État 1, Procédure
sp_get_composite_job_info,
Ligne 67 Une instruction INSERT EXEC ne peut pas être imbriquée

et j'ai bien crée la table Temporaire , ( il y avait trente paramètres.... )



"bruno reiter [MVP]" a écrit dans le message
de news:
| faut tout leur faire ;-)
|
| create table #tmpwho
| (
| spid int,
| ecid int,
| status sysname,
| loginame sysname,
| hostname sysname,
| blk int,
| dbname sysname null,
| cmd sysname
| )
|
| insert #tmpwho
| exec sp_who
|
| select * from #tmpwho
|
| drop #tmpwho
|
|
|
| br
|
| "albert" wrote in message
| news:
| > même avec la table crée , l'erreur persiste !!!
| >
| > "bruno reiter [MVP]" a écrit dans le
message
| > de news:
| > | il faut d'abord créer la table temporaire
| > | create table #tmp ........
| > |
| > | br
| > |
| > | "abraham" wrote in message
| > | news:
| > | > voici mon exemple :
| > | > insert into #Tmp
| > | > execute msdb..sp_help_job @job_name = 'Changement_statut' ,
| > | > @execution_status =1 , @job_aspect = 'JOB'
| > | >
| > | > et voici la reponse du Serveur :
| > | >
| > | > Serveur : Msg 8164, Niveau 16, État 1, Procédure
| > sp_get_composite_job_info,
| > | > Ligne 67
| > | > Une instruction INSERT EXEC ne peut pas être imbriquée.
| > | >
| > | >
| > | > ???
| > | >
| > | >
| > | >
| > | > "bruno reiter [MVP]" a écrit dans le
| > message
| > | > de news:
| > | > > Une table temporaire, la créer, puis insert ... exec sp_who2
| > | > >
| > | > > br
| > | > >
| > | > > "abraham" wrote in message
| > | > > news:uVsEV$
| > | > > > Bonjour,
| > | > > >
| > | > > > je suis confronté au problème suivant :
| > | > > >
| > | > > > Dans une procédure je voudrais traiter le résultat renvoyée par
une
| > | > > > procédure système
| > | > > > par exemple la procédure sp_who2
| > | > > >
| > | > > > Est ce possible ?
| > | > > > Si oui Comment ?
| > | > > >
| > | > > > Merci d'avance
| > | > > >
| > | > > >
| > | > > >
| > | > >
| > | > >
| > | >
| > | >
| > |
| > |
| >
| >
|
|
Avatar
Laurent Moreau
sp_help_job se termine par un exec, ça pose peut-etre un probleme pour le
récupérer dans une table. Je n'ai pas testé....


Mais, je te propose une autre idée: réécrire la procédure stockée système a
ta sauce.

Tu l'édites, tu copies le code dans une nouvelle procédure stockée

--------------
CREATE PROCEDURE MONsp_help_job
-- Individual job parameters
@job_id UNIQUEIDENTIFIER = NULL, -- If provided
should NOT also provide job_name
..........
----------

Et tu fais tes modifs, tes traitements....



Laurent.





"albert" wrote in message
news:#
Avant tout Merci,

Mais je persiste , car la procédure dont je veux récupérer le résultat est
: msdb..sp_help_job

En suivant a la lettre vos recommandations j'ai le message d'erreur


Suivant
:

Serveur : Msg 8164, Niveau 16, État 1, Procédure
sp_get_composite_job_info,
Ligne 67 Une instruction INSERT EXEC ne peut pas être imbriquée

et j'ai bien crée la table Temporaire , ( il y avait trente


paramètres.... )



"bruno reiter [MVP]" a écrit dans le message
de news:
| faut tout leur faire ;-)
|
| create table #tmpwho
| (
| spid int,
| ecid int,
| status sysname,
| loginame sysname,
| hostname sysname,
| blk int,
| dbname sysname null,
| cmd sysname
| )
|
| insert #tmpwho
| exec sp_who
|
| select * from #tmpwho
|
| drop #tmpwho
|
|
|
| br
|
| "albert" wrote in message
| news:
| > même avec la table crée , l'erreur persiste !!!
| >
| > "bruno reiter [MVP]" a écrit dans le
message
| > de news:
| > | il faut d'abord créer la table temporaire
| > | create table #tmp ........
| > |
| > | br
| > |
| > | "abraham" wrote in message
| > | news:
| > | > voici mon exemple :
| > | > insert into #Tmp
| > | > execute msdb..sp_help_job @job_name = 'Changement_statut' ,
| > | > @execution_status =1 , @job_aspect = 'JOB'
| > | >
| > | > et voici la reponse du Serveur :
| > | >
| > | > Serveur : Msg 8164, Niveau 16, État 1, Procédure
| > sp_get_composite_job_info,
| > | > Ligne 67
| > | > Une instruction INSERT EXEC ne peut pas être imbriquée.
| > | >
| > | >
| > | > ???
| > | >
| > | >
| > | >
| > | > "bruno reiter [MVP]" a écrit dans le
| > message
| > | > de news:
| > | > > Une table temporaire, la créer, puis insert ... exec sp_who2
| > | > >
| > | > > br
| > | > >
| > | > > "abraham" wrote in message
| > | > > news:uVsEV$
| > | > > > Bonjour,
| > | > > >
| > | > > > je suis confronté au problème suivant :
| > | > > >
| > | > > > Dans une procédure je voudrais traiter le résultat renvoyée


par
une
| > | > > > procédure système
| > | > > > par exemple la procédure sp_who2
| > | > > >
| > | > > > Est ce possible ?
| > | > > > Si oui Comment ?
| > | > > >
| > | > > > Merci d'avance
| > | > > >
| > | > > >
| > | > > >
| > | > >
| > | > >
| > | >
| > | >
| > |
| > |
| >
| >
|
|