nvarchar(最大) として取得した連結文字列がありますが、9998文字のみを取得しています。大きな連結文字列を割り当ててSQL Server 2008で分割する方法
連結文字列に含まれるすべての文字を取得したいとします。
どのようにすべての文字を取得できますか?
ALTER function [utils].[udf_SplitString]
(
@iSearchText NVARCHAR(MAX)
,@iSearchExpr VARCHAR(10)
)
Returns @Results Table(id integer identity,SearchText NVARCHAR(MAX),ElementValue VARCHAR(max))
As
BEGIN
Insert into @Results
(SearchText,ElementValue)
------- Split........
SELECT SearchText,
NullIf(SubString(SearchExpr + SearchText + SearchExpr , PositionedAt , CharIndex(SearchExpr , SearchExpr + SearchText + SearchExpr , PositionedAt) - PositionedAt) , '') AS SearchText
FROM (select numberid PositionedAt from utils.numbers) Occurences,
(
select
@iSearchText as SearchText,
@iSearchExpr as SearchExpr
) dual
WHERE PositionedAt <= Len(SearchExpr + SearchText + SearchExpr) AND SubString(SearchExpr + SearchText + SearchExpr , PositionedAt - 1, 1) = SearchExpr
AND CharIndex(SearchExpr , SearchExpr + SearchText + SearchExpr , PositionedAt) - PositionedAt > 0
------------ End of Split
Return
End
私は前の質問で述べたように、**完全な**コードを表示するので、中間のデータ型を見ることができます。あなたは答えが欲しいのですか?私たちがあなたを助けるために必要なものを与えてください。 – gbn
ここでは、データ型にnvarchar(max)を指定していますが、入力に9998文字以上含まれています。私は上記のコードを使用する場合私は9998文字だけを取得することができます。入力文字列内のすべての文字を取得したい場合、どうすればよいですか? –
私は "フルコード"と言った。あなたは入力が9998バイトであることを私たちに見せていません:それは正しいかもしれません(それは8000を超えているので)。しかしスプリット値の追加から9998しか得られません。今、「分割」コードなしで私たちはあなたを助けることができません**あなたは理解していますか? – gbn