Ich möchte eine gespeicherte Prozedur mit optionalen Argument haben. Der Standardwert ist nullMsSql Server: Standard Bigint Argument in gespeicherten Prozedur
CREATE PROCEDURE [myStoredProcedure](@itemID bigint = NULL)
Dann würde ich es zu benutzen, wie in COALESCE
COALESCE(@itemID, table.itemID) = table.itemID
Ist dieser Ansatz richtig für optionales Argument? Funktioniert das für Oracle gleich?
Aus Gründen der Leistung ist es besser, logische Trennung zu machen. Beispiel: IF (@itemID IS NULL) BEGIN-Anweisung 1 END ELSE BEGIN Anweisung2 END –
Weitere Informationen hierzu finden Sie unter [Dynamische Suchbedingungen in T-SQL] (http://www.sommarskog.se/dyn-search-2008. html). [In einer früheren Antwort] (https://stackoverflow.com/a/18697104/1048425) Ich habe ein ausgearbeitetes Beispiel gemacht, das auf das eingeht, was Dmitrij über die Verwendung von "IF/EKSE" gesagt hat – GarethD