602SQL-Úplná dokumentace Index  

Výrazy nad znakovými a binárními řetězci (SQL)

Pokud oba znakové řetězce v operaci (spojování, porovnání) mají specifikovanou množinu znaků a třídění, pak musí být u obou řetězců stejná.

Spojování řetězců

Znakové řetězce lze spojovat operátorem zřetězení ||. Je-li alespoň jeden operand zřetězení v UNICODE, pak výsledek bude také v UNICODE. Má-li alespoň jeden znakový řetězec specifikovanou množinu znaků a třídění, pak výsledný řetězec bude mít stejnou množinu znaků a stejné třídění. Výsledný řetězec bude mít příznak ignorování velikosti písmen, pokud alespoň jeden z operandů má příznak ignorování velikosti písmen. Pokud alespoň jeden z operátorů je typu CLOB nebo pokud součet maximálních délek spojovaných řetězců přesahuje maximální možnou délku řetězce, pak výsledek je typu CLOB. Jinak maximální délka spojeného řetězce je součtem maximálních délek obou operandů.

Také binární řetězce lze spojovat operátorem zřetězení ||. Spojení vždy probíhá po celých bajtech. Pokud alespoň jeden z operátorů je typu BLOB nebo pokud součet délek spojovaných binárních řetězců přesahuje maximální možnou délku binárního řetězce, pak výsledek je typu BLOB. Jinak délka spojeného binárního řetězce je součtem délek obou operandů.

Porovnání řetězců

Pro porovnání hodnot znakových nebo binárních řetězců slouží operátory >, <, =, <=, >= a <>. Při porovnávání znakových řetězců se ignoruje velikost písmen, pokud alespoň jeden z operandů má příznak ignorování velikosti písmen. Má-li alespoň jeden znakový řetězec specifikovanou množinu znaků a třídění, pak se porovnává podle tohoto třídění, jinak se porovnává podle hodnot interních kódů znaků.


Odchylky od Intermediate level směrem k Entry level

Implementací definované vlastnosti SQL ve 602SQL

Příklad:

IF res<>0 THEN  
  CALL Log_write('Chyba inicializace pošty č. '||Int2str(res)); 
ELSE
...