Transformer une requête sql dynamique
Bonjour,
J'ai une requête SQL Sybase dynamique générée par un programme en Java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| SELECT
T1.M_INDEX,
T1.M_ACHAT,
T1.M_VENTE,
T2.M_LABEL_X,
T2.M_LABEL_Y
FROM
TABLE_X T1, TABLE_Y T2
WHERE
T1.M_INDEX = T2.M_INDEX
AND T1.M_INDEX IN
(
SELECT T3.M_INDEX
FROM
TABLE_Y T3
WHERE
T3.M_DATE = ?
AND T3.M_NOM = ?
AND T3.M_LABEL_X IN
( ?, ?, ?, ? ) ---- nombre d'éléments
---- variables chaque
---- appel
AND T3.M_LABEL_Y IN
( ?, ?, ?, ? ) ---- la même liste
---- d'éléments
)
ORDER BY T1.M_INDEX |
Je souhaite transformer en procédure stockée comme ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| CREATE PROCEDURE
PRC_LIST( @Nom varchar(20),
@Date datetime,
@ListParametres varchar(1000)
)
AS
BEGIN
SELECT
T1.M_INDEX,
T1.M_ACHAT,
T1.M_VENTE,
T2.M_LABEL_X,
T2.M_LABEL_Y
FROM
TABLE_X T1, TABLE_Y T2
WHERE
T1.M_INDEX = T2.M_INDEX
AND T1.M_INDEX IN
(
SELECT T3.M_INDEX
FROM
TABLE_Y T3
WHERE
T3.M_DATE = @Date
AND T3.M_NOM = @Nom
AND T3.M_LABEL_X IN
( @ListParametres )
AND T3.M_LABEL_Y IN
( @ListParametres )
)
ORDER BY T1.M_INDEX
END |
Pourriez-vous me dire comment faire pour que je puisse appeler cette procedure comme ceci:
Code:
1 2
| PRC_LIST ( "DEVISES", "2007-07-07", " 'USD', 'EUR', 'GBP', 'JPY' ")
PRC_LIST ( "DEVISES", "2007-07-07", " 'EUR', 'GBP', 'AUD' ") |
Merci.
Exemple un appel généré:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| SELECT
T1.M_INDEX,
T1.M_ACHAT,
T1.M_VENTE,
T2.M_LABEL_X,
T2.M_LABEL_Y
FROM
TABLE_X T1, TABLE_Y T2
WHERE
T1.M_INDEX = T2.M_INDEX
AND T1.M_INDEX IN
(
SELECT T3.M_INDEX
FROM
TABLE_Y T3
WHERE
T3.M_DATE = "2007-07-07"
AND T3.M_NOM = "DEVISE"
AND T3.M_LABEL_X IN
( "USD", "EUR", "GBP", "CAD" )
AND T3.M_LABEL_Y IN
( "USD", "EUR", "GBP", "CAD" )
)
ORDER BY T1.M_INDEX |
Transformer requete SQL en procedure stockee
Merci de ton aide.
J'ai essaye de creer cette procedure mais j'ai ceci:
Procedure (PRC_LIST) Incorrect syntax near the key word 'convert'.
As-tu une idee?
Merci