방금 테스트 해본 결과 문제가 결과를 검토하는 방법과 관련 있다고 생각하게되었습니다. 쿼리 분석기에서 제대로 작동합니다 (MS SQL을 사용한다고 가정). 아래 스크립트는 100,000 자의 문자열 ('-'문자는 '0'숯)을 생성 한 다음 마지막 문자가 무엇인지 확인합니다.
declare @longstring varchar(max)
declare @lastchar varchar(1)
declare @i int
set @longstring = ''
set @lastchar = ''
set @i = 1
while @i <= 100000
begin
set @longstring = @longstring + '-'
set @i = @i + 1
end
set @longstring = @longstring + '0'
print 'Original long string: ' + @longstring
set @lastchar = SUBSTRING(@longstring, LEN(@longstring), 1)
print 'Last character before substring: ' + @lastchar
--Last character before substring: 0
set @longstring = SUBSTRING(@longstring, 0, len(@longstring) - 1)
set @lastchar = SUBSTRING(@longstring, LEN(@longstring), 1)
print 'Long string after substring: ' + @longstring
print 'Last character after substring: ' + @lastchar
--Last character after substring: -
검색 문자열을 어떻게 선언합니까? 더블 바이트 문자 세트 데이터로 작업 할 수 있는지 궁금합니다. –
어떤 데이터베이스를 사용하고 있습니까? SQL Server Management Studio를 사용하고 거기에 반환 된 문자열을보고있는 경우 최대 값은 약 43KB입니다. 마지막 문자가 대체되는지는 알 수 없습니다. –