CREATE PROC dbo.GSTA_FuDaSCreditCartList
@StrWhere varchar(500)
AS
DECLARE @Sql varchar(8000)
SET @Sql='
SELECT DISTINCT
OM.OrderNo AS OrderNo,
OM.OName,
OM.TrsCode,
OM.RName,
OM.PayNo,
pay.Detail PayType,
CONVERT(VARCHAR(16),OM.CrTime,20) OrderTime,
PayAmount Amount,
(SELECT mi.Name FROM OrderStatusDef mi WHERE mi.StatusNo = OM.StatusNo) AS OrderStatus,
CASE WHEN CreditCardSupplyTime IS NULL THEN
''-''
ELSE
CONVERT(VARCHAR(16),CreditCardSupplyTime,20)
END AS CreditCardSupplyTime,
case when PayKinds=1 then ''未繳款(ATM)''
when PayKinds=2 then ''已入帳(ATM)''
when PayKinds=3 then ''待退款(ATM)''
when PayKinds=4 then ''退款完成(ATM)''
when PayKinds=5 then ''已授權(信用卡)''
when PayKinds=6 then ''取消授權(信用卡)''
when PayKinds=7 then ''已請款(信用卡)''
when PayKinds=8 then ''取消請款(信用卡)''
end as PayKinds,
CASE WHEN(OM.WithInvoice = 1)
THEN
case when InvoSendTime is null then
''''
else
''寄送''
end
ELSE
''寄送''
END AS WithInvoice
FROM
OrderM OM
INNER JOIN
OrderMkt OMkt
ON
OM.OrderNo = OMkt.OrderNo
Left JOIN
GemProduct.dbo.Market mkt
ON
mkt.MktID = OMkt.MktID
Left JOIN
GemSales.dbo.QueryMarket qmkt
ON
OMkt.MktID = qmkt.QueryMarketID
LEFT JOIN
GemProduct.dbo.MktPaytypeInfo pay
ON
pay.Paytype = OM.PayType
WHERE '+' OM.CTID=''939e7770-169b-4751-b460-c706e4b1ebd4'''+' ORDER BY
OM.SupplyDate DESC
'
EXEC sp_executesql @SQL
--endregion
exec GSTA_FuDaSCreditCartList @StrWhere = ' OM.CTID=''939e7770-169b-4751-b460-c706e4b1ebd4'''--报错 过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
--这是为什么啊?@statement是什么啊?
@StrWhere varchar(500)
AS
DECLARE @Sql varchar(8000)
SET @Sql='
SELECT DISTINCT
OM.OrderNo AS OrderNo,
OM.OName,
OM.TrsCode,
OM.RName,
OM.PayNo,
pay.Detail PayType,
CONVERT(VARCHAR(16),OM.CrTime,20) OrderTime,
PayAmount Amount,
(SELECT mi.Name FROM OrderStatusDef mi WHERE mi.StatusNo = OM.StatusNo) AS OrderStatus,
CASE WHEN CreditCardSupplyTime IS NULL THEN
''-''
ELSE
CONVERT(VARCHAR(16),CreditCardSupplyTime,20)
END AS CreditCardSupplyTime,
case when PayKinds=1 then ''未繳款(ATM)''
when PayKinds=2 then ''已入帳(ATM)''
when PayKinds=3 then ''待退款(ATM)''
when PayKinds=4 then ''退款完成(ATM)''
when PayKinds=5 then ''已授權(信用卡)''
when PayKinds=6 then ''取消授權(信用卡)''
when PayKinds=7 then ''已請款(信用卡)''
when PayKinds=8 then ''取消請款(信用卡)''
end as PayKinds,
CASE WHEN(OM.WithInvoice = 1)
THEN
case when InvoSendTime is null then
''''
else
''寄送''
end
ELSE
''寄送''
END AS WithInvoice
FROM
OrderM OM
INNER JOIN
OrderMkt OMkt
ON
OM.OrderNo = OMkt.OrderNo
Left JOIN
GemProduct.dbo.Market mkt
ON
mkt.MktID = OMkt.MktID
Left JOIN
GemSales.dbo.QueryMarket qmkt
ON
OMkt.MktID = qmkt.QueryMarketID
LEFT JOIN
GemProduct.dbo.MktPaytypeInfo pay
ON
pay.Paytype = OM.PayType
WHERE '+' OM.CTID=''939e7770-169b-4751-b460-c706e4b1ebd4'''+' ORDER BY
OM.SupplyDate DESC
'
EXEC sp_executesql @SQL
--endregion
exec GSTA_FuDaSCreditCartList @StrWhere = ' OM.CTID=''939e7770-169b-4751-b460-c706e4b1ebd4'''--报错 过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
--这是为什么啊?@statement是什么啊?
然后执行完,拷贝出@Sql内容,然后执行下内容就能发现错误了