ALTER PROCEDURE [XXXXXX].[xxx_xxx_xxxxxxx]
@SearchCriteria NVARCHAR(max)
AS
---------------------------
-- EF use for Dynamic SQL
---------------------------
IF ( @SearchCriteria IS NULL )
BEGIN
SELECT
CAST(NULL AS NVARCHAR(5) ) AS Category,
CAST(NULL AS NVARCHAR(100)) AS FinancialInstitution,
CAST(NULL AS NVARCHAR(50)) AS CompanyType,
CAST(NULL AS NVARCHAR(10)) AS Redeemable,
CAST(NULL AS NVARCHAR(10)) AS CompoundFreq,
CAST(NULL AS NVARCHAR(10)) AS PaymentFreq,
CAST(NULL AS DECIMAL(12,2)) AS MinAmount,
CAST(NULL AS DECIMAL(12,2) ) AS MaxAmount,
CAST(NULL AS DECIMAL(5,2)) AS TERM,
CAST(NULL AS DECIMAL(8,4) ) AS Rate
END
BEGIN
DECLARE @termVal DECIMAL(5,2);
DECLARE @termDY NVARCHAR(300);
DECLARE @termDYSelectedTogether NVARCHAR(400) = '';
--TermTarget
DECLARE @termTarget NVARCHAR(5) = '';
DECLARE @minDeposit NVARCHAR(200);
DECLARE @minDepositSelectedTogether NVARCHAR(260) = '';
DECLARE @interestRate DECIMAL(8,4);
DECLARE @companySelected NVARCHAR(max) ;
DECLARE @companySelectedTogether NVARCHAR(max) = '';
DECLARE @companyTypeSelected NVARCHAR(max) ;
DECLARE @companyTypeSelectedTogether NVARCHAR(max) = '';
DECLARE @redeemSelected NVARCHAR(25) ;
DECLARE @redeemSelectedTogether NVARCHAR(25) = '';
DECLARE @taxIndicatorSelected NVARCHAR(25) ;
DECLARE @taxIndicatorSelectedTogether NVARCHAR(25) = '';
DECLARE @compoundFreqSelected NVARCHAR(50) ;
DECLARE @compoundFreqSelectedTogether NVARCHAR(50) = '';
DECLARE @PaymtFreqSelected NVARCHAR(80) ;
DECLARE @PaymtFreqSelectedTogether NVARCHAR(80) = '';
DECLARE @tbl TABLE
( id int, name NVARCHAR(255), value NVARCHAR(max), errcnt int,msg varchar(8000)
);
INSERT INTO
@tbl
SELECT
id,
name,
value,
errcnt,
msg
FROM
dbo.fn_SplitJson2(@SearchCriteria,null);
------------------------------
--Term
------------------------------
SELECT
@termTarget = value
FROM
@tbl
WHERE
name = 'TermTarget'
IF @termTarget <> ''
BEGIN
SELECT
@termVal = value
FROM
@tbl
WHERE
name = 'Months'
END
ELSE
BEGIN
SELECT
@termDY = value
FROM
@tbl
WHERE
name = 'Months'
--@termDYSelectedTogether
IF @termDY <> 'ALL'
BEGIN
IF @termDY <> ''
BEGIN
SELECT
@termDYSelectedTogether=
CASE WHEN COALESCE(@termDYSelectedTogether,'')=''
THEN QUOTENAME(value,'''')
ELSE @termDYSelectedTogether+',' + QUOTENAME(value,'''')
END
FROM
dbo.fn_SplitJson2(
@termDY,NULL
)
END
ELSE
BEGIN
SELECT @termDYSelectedTogether= ''
END
END
END
------------------------------
--Deposit
------------------------------
SELECT
@minDeposit = value
FROM
@tbl
WHERE
name = 'Deposit'
IF @minDeposit <> 'ALL'
BEGIN
IF @minDeposit <> ''
BEGIN
SELECT
@minDepositSelectedTogether=
CASE WHEN COALESCE(@minDepositSelectedTogether,'')=''
THEN QUOTENAME(value,'''')
ELSE @minDepositSelectedTogether+',' + QUOTENAME(value,'''')
END
FROM
dbo.fn_SplitJson2(
@minDeposit,NULL
)
END
ELSE
BEGIN
SELECT @minDepositSelectedTogether= ''
END
END
------------------------------
--Rate
------------------------------
SELECT
@interestRate = value
FROM
@tbl
WHERE
name = 'Rate'
.......
.......
Sunday, August 17, 2014
JSON string as stored proc parameter
Thanks to the article converts a JSON string into a table, I am able to send JSON directly to Stored Proc as input param:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment