602SQL-Úplná dokumentace Index  

Znakové a binární řetězce (SQL)

Znakové řetězce

Znakové řetězce se v SQL zapisují v apostrofech. Pokud znakový řetězec má obsahovat znak apostrof, napíše se zdvojeně..

  SET DelimChars = '.,"()[]_-+';
  SET paper = 'Reader''s Digest';

Funkce, která vrátí zadaný řetězec obalený uvozovkami:

  FUNCTION Obal(IN str CHAR (100)) RETURNS CHAR(102);
  BEGIN 
   RETURN '"'||str||'"'; 
  END

Před prvním apostrofem může být uveden znak N. Signalizuje, že obsahem řetězce mohou být znaky v národním jazyce. V 602SQL se ignoruje.

Binární řetězce

Binární řetězce se zapisují buď hexadecimálně nebo bitově jako poslupnost bajtů uzavřená v apostrofech:

Oba příklady zapisují stejný řetězec o délce 2 bajty s hodnotami 193 a 5: X'C105', B'1100000100000101'.

Zápis po částech

Zápis řetězce může být ukončen apostrofem, za nim mohou následovat mezery a přechody na nový řádek, a pokud pak následuje opět apostrof, začíná jím pokračování stejného řetězce.

Např. zápis:

'To' 'je'
'ono!'
je ekvivalentní řetězci 'Tojeono'. Toho lze využít pro přehlednější zápis dlouhých řetězců.

Nezapsatelné znaky ve znakových řetězcích

Součástí znakového řetězce mohou být i znaky, které nelze do něj přímo napsat, protože na klávesnici chybí. Pro jejich zápis lze použít Unicode escape sekvenci, v níž se nezapsatelný znak nahradí svým kódem v Unicode.

Řetězec využívající Unicode escape sekvence musí být uvozen U&. Zápis znaku pomocí Unicode escape sekvence začíná znakem Unicode escape a za nim následují 4 hexadecimální číslice obsahující kód znaku.

Znakem Unicode Escape je implicitně obrácené lomítko ( \ ). Může jim být i jiný znak, ale pak na konci znakového řetězce je třeba jej popsat pomocí zápisu UESCAPE'znak_unicode_escape'.

Pokud se znak Unicode Escape má vyskytnout v řetězci ve svém původním významu, uvede se zdvojeně.


Příklady: zapsat 'pociąg', 'połowa'

U&'poci\0105g', U&'po*0142owa'UESCAPE'*'

Odchylky od Intermediate level směrem k Full level nebo k SQL 3

Rozšíření jazyka SQL proti normě

Zápisy v uvozovkách:

  SET DelimChars = ".,""()[]_-+";
  SET paper = "Reader's Digest";

Funkce, která vrátí zadaný řetězec obalený uvozovkami:

  FUNCTION Obal(IN str CHAR (100)) RETURNS CHAR(102);
  BEGIN 
   RETURN """"||str||""""; 
  END

Viz také Výrazy nad řetězci