Jest sobie SQL Serwer 2000. Wyskrobalem taka oto procedurke, ktoora zamienia mi wszystkie polskie literki na angielskie odpowiedniki:

ALTER FUNCTION ReplacePL(@Str CHAR(1000))
RETURNS CHAR(1000)
AS
BEGIN
  DECLARE @TbPL CHAR(18), @TbEn CHAR(18)
  DECLARE @i INT
  SET @TbPl = 'ąĄćĆęĘłŁńŃóÓśŚżŻźŹ'
  SET @TbEn = 'aAcCeElLnNoOsSzZzZ'
  SET @i = 1
  WHILE(@i <= Len(@TbPl))
    BEGIN
      SET @Str = Replace(@Str, SubString(@TbPl, @i, 1), SubString(@TbEn, @i, 1))
      SET @i = @i + 1
    END
  RETURN(@Str)
END

Jakiego typu uzyc dla parametru i zwracanego przez funkcje ciagu, zeby uniezaleznic sie od dlugosci ciagu wejsciowego? Czy podac CHAR(maklsymalny_rozmiatr_char), czy jest cos innego, jakis taki String o zmiennej dlugosci?

// Dopisane

A czy da sie ustawic jakis parametr zeby funkcja Replace byla CASE-SENSITIVE? Bo w tej chili ignoruje duze i male litery, czego efekem jest ze jak wywolam funkcje:
ReplacePL('JABŁOŃSKI')
To mi zwroci:
ReplacePL('JABlOnSKI')
Moze jakis SET?