2010-08-31 6 views
1

J'appelle Sybase Stored Proc X qui renvoie les données utilisées par une servlet.Appel d'une procédure stockée Sybase à partir d'une autre procédure stockée

Dans stocké Proc X, stocké Proc get_business_day est appelé de la manière suivante:

exec get_business_day @CBDate, -1, sortie @prevBusDay

Ainsi, le résultat de l'appel de cette (en DBArtisan) est :

6/25/2010 12: 00: 00.000 AM
1 ligne (s) concernée (s).

Le problème est que je ne ai pas besoin cette ligne ci-dessus pour être lors de l'exécution X émis, comme la sortie que je reçois (en DBArtisan) est:

6/25/2010 12: 00: 00.000 AM
-2817773441.669999

Ceci affectera évidemment les résultats obtenus par la servlet car elle attend seulement la valeur -2817773441.669999.

Existe-t-il un moyen de supprimer la sortie de get_business_day lors de l'appel de X?

Thx Agnyata

Répondre

-1

essayer de capturer le jeu de résultats dans une table temporaire, quelque chose comme ceci:

CREATE TABLE #BadResultSet (DateOf datetime) 

INSERT INTO #BadResultSet (DateOf) 
EXEC get_business_day @CBDate, -1, @prevBusDay output 
+0

ne fonctionne pas ... Iget le message ci-dessous: 20: 43: 20.546 \t SGBD \t - Nombre (156) Gravité (15) État (2) Serveur syntaxe incorrecte près du mot-clé « exec '. – Chapax

+0

ne fonctionne toujours pas même après le changement d'ordre – Chapax

+0

Essayez ceci: [Comment puis-je obtenir des données d'une procédure stockée dans une table temporaire?] (Http://stackoverflow.com/questions/166080/how-can-i- get-data-from-a-stored-procedure-into-a-temp-table), je n'ai pas de sybase pour les essayer, mais je l'ai fait tout le temps (il y a plus de dix ans, donc je ne sais pas ne me souviens pas exactement) –

0

ici est la ce que vous voulez faire:

principal proc:

... 
create table #tmp(
    CBDate datetime 
) 
EXEC get_business_day @CBDate, -1 

select CBDate from #tmp 
-- use it 

drop table #tmp 
-- before end 

get_business_day:

create table #tmp(
    CBDate datetime 
) 
go 
create proc get_business_day 
as 

-- find the value to be inserted into @day 
insert into #tmp select @day 

go 

drop table #tmp 
go 
Questions connexes