Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
672 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Stored Procedure: Wie varchar iterieren?

  Alt 18. Dez 2016, 08:36
Diese Version trennt Klein- und Großschreibung weil explizite Nutzung collate unicode ohne ci

Code:
create or alter procedure REPL (
    VAL varchar(10))
returns (
    RES varchar(10))
as
declare variable C char(1) character set utf8 collate unicode;
begin
  res='';
  while (char_length(val)>0) do
  begin
    c=substring(val from 1 for 1);
    val=substring(val from 2 for 10);
    if (c='A') then c='1'; else
    if (c='C') then c='3';
    res=res||c;
  end
  suspend;
end
Und diese Version unterscheidet das nicht. Wenn die DB mit Default UTF8 Charset
und Default Collation Unicode_ci angelegt wurde, würde das so auch funktionieren,
wenn man keine explizite Angaben dafür aufnimmt. In so einer DB kann man
das dann aber trotzdem wie oben für diesen Zweck überschreiben.

Code:
create or alter procedure REPL (
    VAL varchar(10))
returns (
    RES varchar(10))
as
declare variable C char(1) character set utf8 collate unicode_ci;
begin
  res='';
  while (char_length(val)>0) do
  begin
    c=substring(val from 1 for 1);
    val=substring(val from 2 for 10);
    if (c='A') then c='1'; else
    if (c='C') then c='3';
    res=res||c;
  end
  suspend;
end
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat