-
CREATE PROCEDURE [usp_TE_getBOAcctLookUp]
-
(
-
@AccountNum VARCHAR(50)
-
)
-
AS
-
DECLARE @vTypeList VARCHAR(500),
-
@vMatchResult VARCHAR(10),
-
@vMatchList VARCHAR(500),
-
@vPos INT,
-
@vEntry_ID INT,
-
@vRegExMatch VARCHAR(30),
-
@vSQLQuery NVARCHAR(4000)
-
-- get a possbile list of account types to match
-
SELECT @vTypeList = COALESCE(@vTypeList + ',', '') + CAST(Entry_ID AS VARCHAR)
-
FROM TEBORAcctRegEx
-
WHERE RegExMatch IS NOT NULL
-
SELECT @vMatchList = ''
-
SELECT @vTypeList = @vTypeList + ','
-
--loop through request list
-
WHILE CHARINDEX(',', @vTypeList) > 0
-
BEGIN
-
--get next comma position for of the list
-
SELECT @vPOS = CHARINDEX(',', @vTypeList)
-
-
--get values to be used in queries below
-
SELECT @vEntry_ID = LEFT(@vTypeList,@vPOS - 1)
-
-
SELECT @vRegExMatch = RegExMatch
-
FROM TEBORAcctRegEx
-
WHERE Entry_ID = @vEntry_ID
-
EXEC master.dbo.xp_regex_match @AccountNum,@vRegExMatch,@vMatchResult OUTPUT
-
-
-- if it matches then add entry id to list of matched values
-
IF @vMatchResult = 'Matched'
-
BEGIN
-
SELECT @vMatchList = @vMatchList + CAST(@vEntry_ID AS VARCHAR) + ','
-
END
-
SELECT @vTypeList = STUFF(@vTypeList,1,@vPOS,'')
-
END
-
-- remove the last comma
-
SELECT @vMatchList = LEFT(@vMatchList,LEN(@vMatchList)-1)
-
-- create dynamic query to query db for list of possible matches
-
SELECT @vSQLQuery = '
-
SELECT Company,
-
Biller_ID,
-
BillerName,
-
AccountExample,
-
AccountExplanation,
-
ContactEMail,
-
ContactPhone,
-
ContactFax,
-
ContactInfo
-
FROM TEBORAcctRegEx
-
WHERE Entry_ID IN ('+ @vMatchList+')
-
ORDER BY BillerName
-
'
-
-- execute dynamic query
-
EXEC sp_executesql @vSQLQuery
-
GO