Files
sql-scripts/ADR REPO - script to integrate.sql
Schork Thierry (Galenica) 5a4f2784bb sync
2026-01-13 08:14:13 +01:00

91 lines
2.4 KiB
Transact-SQL

USE [ArizonaREP];
GO
/*=============================================================================
Re-implementation of SQL Server STRING_SPLIT() for older versions of SQL Server
Parameters
----------------------
@string NVARCHAR(MAX) The string to split
@delimiter NCHAR(1) The delimiter to split on
Returns a table with a single column "value" of type NVARCHAR(MAX)
Creation : 29.09.2025 / TSC
Modifications:
=============================================================================*/
CREATE OR ALTER FUNCTION [dbo].[fnSplitString] (
@string NVARCHAR(MAX),
@delimiter NCHAR(1)
)
RETURNS @output TABLE (
[value] NVARCHAR(MAX) NULL
)
BEGIN
DECLARE @start INT,
@end INT;
SELECT @start = 1,
@end = CHARINDEX(@delimiter, @string);
WHILE @start < LEN(@string) + 1
BEGIN
IF @end = 0
SET @end = LEN(@string) + 1;
INSERT INTO @output (
[value]
)
VALUES (
SUBSTRING(@string, @start, @end - @start)
);
SET @start = @end + 1;
SET @end = CHARINDEX(@delimiter, @string, @start);
END;
RETURN;
END;
GO
--#endregion fn_StringSplit()
--#region aps_get_address_authorization_granted_bulk
GO
/*=============================================================================
Parse a list of comma separated addresses_guid and check for each of them
if a charte has been approved.
Extension of the scalar function [aps_fn_Is_Address_Authorization_Granted] to allow
more than 1 address to be validated at once
Parameters
----------------------
@addresse_guid_list VARCHAR(MAX) A comma delimited list of GUID to be checked for chart validation
Context
----------------------
Deployed and used in the adresse repositories
Creation : 25.09.2025 / TSC
Modifications:
=============================================================================*/
CREATE OR ALTER PROCEDURE dbo.aps_get_address_authorization_granted_bulk
@addresse_guid_list VARCHAR(MAX)
AS
BEGIN
WITH [cteValues] AS (
--transform input values in a table
SELECT [value] AS [address_guid]
FROM [dbo].fnSplitString(@addresse_guid_list, ',')
)
SELECT
v.[address_guid]
, dbo.[aps_fn_Is_Address_Authorization_Granted](v.[address_guid],1,null) AS isGranted
FROM [cteValues] v;
END
GO
--#endregion aps_get_address_authorization_granted_bulk