특정 필드의 긴문자열을 여러 로우로 분리하기 질문입니다.
SMS 보내는데 MMS로 보내수가 없는 환경입니다.
80바이트가 넘으면 여러 문자로 보내달라고 하네요.
보낼 문자를 콘솔이나 배치파일로 불러들여서 C#에서 처리하면 되겠지만
먼저 쿼리로 할 수 있나 궁금해서 아시는분들께 질문 드립니다.
특정 필드의 긴문자열을 여러 로우로 분리하기 질문입니다.
SMS 보내는데 MMS로 보내수가 없는 환경입니다.
80바이트가 넘으면 여러 문자로 보내달라고 하네요.
보낼 문자를 콘솔이나 배치파일로 불러들여서 C#에서 처리하면 되겠지만
먼저 쿼리로 할 수 있나 궁금해서 아시는분들께 질문 드립니다.
as ( select '특정 필드의 긴문자열을 여러 로우로 분리하기 질문입니다.
SMS 보내는데 MMS로 보내수가 없는 환경입니다.
80바이트가 넘으면 여러 문자로 보내달라고 하네요. ' mms_txt )
select DATALENGTH(a.mms_txt) [byte], len(a.mms_txt) [글자수], CEILING(DATALENGTH(a.mms_txt) / 80.) , CEILING (len(mms_txt) / CEILING(DATALENGTH(mms_txt) / 80.)) , no
, no * CEILING (len(mms_txt) / CEILING(DATALENGTH(mms_txt) / 80.)) + 1 s_no
, (no + 1) * CEILING (len(mms_txt) / CEILING(DATALENGTH(mms_txt) / 80.)) e_no
, SUBSTRING(mms_txt , no * CEILING (len(mms_txt) / CEILING(DATALENGTH(mms_txt) / 80.)) + 1 , (no + 1) * CEILING (len(mms_txt) / CEILING(DATALENGTH(mms_txt) / 80.)) )
from res a
cross apply
( select number no
from master.dbo.spt_values
where type = 'P'
and number < CEILING(DATALENGTH(mms_txt) / 80.) ) as B