2017-02-19 4 views
0

Ich versuche, sp zu schreiben, die unterschiedliche Anzahl von Parametern erhalten, aber jedes Mal haben einige der Parameter Wert und andere sind null.Wie Speichervorgang mit unbekannter Anzahl von Parametern schreiben?

Dieser sp wird geschrieben, um in db zu suchen und gibt das Ergebnis basierend auf der Variantenanzahl der Parameter zurück (die Variation der Parameter bedeutet die Variation der zu berücksichtigenden Felder).

+0

auf Sie u eine formatierte XML als Eingabe verwenden können dann diese XML lesen n die erforderliche SQL –

+0

Standard verwenden tun Werte. –

+1

In Postgres können Sie einen 'variadic' Parameter verwenden. Welches DBMS benutzt du? Postgres? Orakel? –

Antwort

0

Das ist, was ich in der Vergangenheit getan habe, wo Parameter dynamisch sind Ich erstelle ein XML in C# und übergab das Xml in Proc. In der proc lese ich diese XML und dann basierend auf den XML-Werten können Sie die Abfrage schreiben. Bitte beachten Sie yo aktualisiert haben, um die Prozedur für jeden neuen Parameter später fügen Sie Ihrer Anfrage depends korrekt arbeiten machen

DECLARE @FileXML XML = '<?xml version="1.0"?> 
    <Parameters> 
     <Parameter name ="para1" value="1"/> 
     <Parameter name ="para2" value="4"/> 

    </Parameters>'; 

    --CREATE PROCEDURE dbo.ParseDynamicXML 
    -- @XML XML 
    --AS 
    BEGIN 

     SELECT 
     Parameters.value('@name','NVARCHAR(100)') AS name, 
     Parameters.value('@value','NVARCHAR(100)') AS value 


     FROM @FileXML.nodes('Parameters/Parameter')Catalog(Parameters) 

    RETURN; 
    END; 
Verwandte Themen