Loading

Übergeben von mehreren Werten in einem Parameter zur Verwendung in benutzerdefiniertem SQL

Veröffentlichungsdatum: Jul 20, 2023
Aufgabe

Wie können mehrere Zeichenfolgen mithilfe eines Parameters in benutzerdefiniertem SQL übergeben werden? Gibt es eine Möglichkeit, kommagetrennte Werte an einen Parameter zu übergeben und in benutzerdefiniertem SQL zu verwenden?

 

Schritte

Die folgende Abfrage bezieht sich auf SQL für Oracle.

select * from tablename where name in (
select regexp_substr(<Parameters.Parameter1>,'[^,]+', 1, level) from dual
connect by regexp_substr(<Parameters.Parameter1>, '[^,]+', 1, level) is not null)


Die folgende Abfrage bezieht sich auf SQL für Microsoft SQL Server.

SELECT *
FROM Test.dbo.tablename a
JOIN (  
(SELECT Number = ROW_NUMBER() OVER (ORDER BY Number),  
        Item FROM (SELECT Number, Item = LTRIM(RTRIM(SUBSTRING(<Parameters.Parameter1>, Number,  
        CHARINDEX(',', <Parameters.Parameter1> + ',', Number) - Number)))  
    FROM (SELECT ROW_NUMBER() OVER (ORDER BY s1.[object_id])  
        FROM sys.all_objects AS s1 CROSS APPLY sys.all_objects) AS n(Number)  
    WHERE Number <= CONVERT(INT, LEN(<Parameters.Parameter1>))  
        AND SUBSTRING(',' + <Parameters.Parameter1>, Number, 1) = ','  
    ) AS y)) x on a.colname = x.Item

Zusätzliche Ressourcen
Ein Parameter ist normalerweise nur zur Aufnahme von jeweils einem Wert vorgesehen.
Nummer des Knowledge-Artikels

001456708

 
Laden
Salesforce Help | Article