Je dois passer FlightDate
, FlightNumbers
comme paramètres de la procédure Oracle stockée comme ci-dessous.Comment obtenir des valeurs séparées par des virgules dans la procédure stockée Oracle
CREATE OR REPLACE PROCEDURE GetPaxDetails(
FlyingDate IN PAX_DETAILS.FlightDate%TYPE,
FlightNumbers IN VARCHAR(300))
IS
BEGIN
-- Assume that we've received **FlightNumbers** as '0620,0712,0154'
-- Basically I am trying to select all passenger details (PAX_DETAILS)
-- for those flights passed in as a parameter(**FlightNumbers**)
-- for the specified dates
-- In this procedure the query should be generated something like below:
SELECT *
FROM PAX_DETAILS
WHERE TO_DATE(FlightDate,'DDMONYY') BETWEEN TO_DATE(FlyingDate,'DDMONYY')
AND TO_DATE(FlyingDate,'DDMONYY') + 1
AND FlightNo IN ('0620,0712,0154')
END
je ne comprends pas comment convertir le paramètre FlightNumbers
à quelque chose comme AND FlightNo IN ('0620,0712,0154')
dans la requête.
Avez-vous essayé: SELECT * FROM PAX_DETAILS OÙ TO_DATE (FlightDate, 'DDMONYY') ENTRE TO_DATE (FlyingDate, 'DDMONYY') ET TO_DATE (FlyingDate, 'DDMONYY') + 1 ET FlightNo IN (FlightNumbers) – Satya
avez-vous essayé d'utiliser SQL dynamique? : http://stackoverflow.com/questions/5007725/pl-sql-using-a-dynamic-query-inside-a-stored-procedure – planben
Vous pourriez trouver votre réponse: [Envoi d'un tableau de valeurs à la procédure Oracle à utiliser dans la clause WHERE IN] (http://stackoverflow.com/questions/13580245/sending-an-array-of-values-to-oracle-procedure-to-use-in-where-in-clause) –