Zeichenfolgenfunktionen

In der folgenden Tabelle sind Zeichenfolgenmanipulationsfunktionen aufgeführt. Eine Anwendung kann bestimmen, welche Zeichenfolgenfunktionen von einem Treiber unterstützt werden, indem SQLGetInfo mit einem Informationstyp von SQL_STRING_FUNCTIONS aufgerufen wird.

Hinweise

Argumente, die als string_exp bezeichnet werden, können der Name einer Spalte, eines Zeichenfolgenliterals oder das Ergebnis einer anderen skalaren Funktion sein, wobei der zugrunde liegende Datentyp als SQL_CHAR, SQL_VARCHAR oder SQL_LONGVARCHAR dargestellt werden kann.

Argumente, die als character_exp bezeichnet werden, sind eine Zeichenfolge mit variabler Länge.

Argumente, die als Anfang, Länge oder Anzahl bezeichnet werden, können ein numerisches Literal oder das Ergebnis einer anderen skalaren Funktion sein, wobei der zugrunde liegende Datentyp als SQL_TINYINT, SQL_SMALLINT oder SQL_INTEGER dargestellt werden kann.

Die hier aufgeführten Zeichenfolgenfunktionen sind 1-basiert; d. h. das erste Zeichen in der Zeichenfolge ist Zeichen 1.

Die Funktionen BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, OCTET_LENGTH und POSITION-Zeichenfolgenskaer wurden in ODBC 3.0 hinzugefügt, um sie an SQL-92 auszurichten.

Funktion Beschreibung
ASCII( string_exp ) (ODBC 1.0) Gibt den ASCII-Codewert des äußerst linken Zeichens von string_exp als ganze Zahl zurück.
BIT_LENGTH( string_exp ) (ODBC 3.0) Gibt die Länge des Zeichenfolgenausdrucks in Bits zurück.

Funktioniert nicht nur für Zeichenfolgendatentypen, sondern konvertiert nicht implizit string_exp in eine Zeichenfolge, sondern gibt stattdessen die (interne) Größe des angegebenen Datentyps zurück.
CHAR( Code ) (ODBC 1.0) Gibt das Zeichen zurück, das den ASCII-Codewert enthält, der durch Code angegeben ist. Der Codewert sollte zwischen 0 und 255 sein. Andernfalls ist der Rückgabewert datenquellenabhängig.
CHAR_LENGTH( string_exp ) (ODBC 3.0) Gibt die Länge des Zeichenfolgenausdrucks in Zeichen zurück, wenn der Zeichenfolgenausdruck den Zeichenfolgendatentyp aufweist. Anderenfalls wird die Länge des Zeichenfolgenausdrucks in Byte zurückgegeben (die kleinste ganze Zahl, die nicht weniger als die Anzahl von Bits ist, dividiert durch 8). (Diese Funktion entspricht der CHARACTER_LENGTH-Funktion.)
CHARACTER_LENGTH( string_exp ) (ODBC 3.0) Gibt die Länge des Zeichenfolgenausdrucks in Zeichen zurück, wenn der Zeichenfolgenausdruck den Zeichenfolgendatentyp aufweist. Anderenfalls wird die Länge des Zeichenfolgenausdrucks in Byte zurückgegeben (die kleinste ganze Zahl, die nicht weniger als die Anzahl von Bits ist, dividiert durch 8). (Diese Funktion ist identisch mit der funktion CHAR_LENGTH.)
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Gibt eine Zeichenfolge zurück, die das Ergebnis der Verkettung von string_exp2 mit string_exp1 ist. Die Ergebniszeichenfolge hängt vom DBMS ab. Wenn beispielsweise die durch string_exp1 dargestellte Spalte einen NULL-Wert enthielt, würde DB2 NULL zurückgeben, sql Server würde jedoch die Zeichenfolge ungleich NULL zurückgeben.
UNTERSCHIED( string_exp1,string_exp2) (ODBC 2.0) Gibt einen ganzzahligen Wert zurück, der den Unterschied zwischen den werten angibt, die von der FUNKTION SOUNDEX für string_exp1 und string_exp2 zurückgegeben werden.
INSERT( string_exp1, Start, Länge, string_exp2) (ODBC 1.0) Gibt eine Zeichenfolge zurück, in der Längenzeichen von string_exp1 gelöscht wurden, beginnend am Anfang und wo string_exp2 in string_exp eingefügt wurde, beginnend am Anfang.
LCASE( string_exp ) (ODBC 1.0) Gibt eine Zeichenfolge zurück, die in string_exp entspricht, wobei alle Großbuchstaben in Kleinbuchstaben konvertiert werden.
LEFT( string_exp, Count) (ODBC 1.0) Gibt die am weitesten links gezählten Zeichen von string_exp zurück.
LENGTH( string_exp ) (ODBC 1.0) Gibt die Anzahl der Zeichen in string_exp zurück, ohne nachfolgende Leerzeichen.

LENGTH akzeptiert nur Zeichenfolgen. Daher wird implizit string_exp in eine Zeichenfolge konvertiert und die Länge dieser Zeichenfolge (nicht die interne Größe des Datentyps) zurückgegeben.
LOCATE( string_exp1, string_exp2[, Start]) (ODBC 1.0) Gibt die Anfangsposition des ersten Vorkommens von string_exp1 innerhalb string_exp2 zurück. Die Suche nach dem ersten Vorkommen von string_exp1 beginnt mit der ersten Zeichenposition in string_exp2 , es sei denn, das optionale Argument, Start, wird angegeben. Wenn start angegeben ist, beginnt die Suche mit der Zeichenposition, die durch den Wert des Anfangswerts angegeben ist. Die erste Zeichenposition in string_exp2 wird durch den Wert 1 angegeben. Wenn string_exp1 nicht innerhalb string_exp2 gefunden wird, wird der Wert 0 zurückgegeben.

Wenn eine Anwendung die LOCATE-Skalarfunktion mit den string_exp1, string_exp2 und Startargumenten aufrufen kann, gibt der Treiber SQL_FN_STR_LOCATE zurück, wenn SQLGetInfo mit einer Option von SQL_STRING_FUNCTIONS aufgerufen wird. Wenn die Anwendung die LOCATE-Skalarfunktion nur mit den argumenten string_exp1 und string_exp2 aufrufen kann, gibt der Treiber SQL_FN_STR_LOCATE_2 zurück, wenn SQLGetInfo mit einer Option von SQL_STRING_FUNCTIONS aufgerufen wird. Treiber, die das Aufrufen der LOCATE-Funktion mit zwei oder drei Argumenten unterstützen, geben sowohl SQL_FN_STR_LOCATE als auch SQL_FN_STR_LOCATE_2 zurück.
LTRIM( string_exp ) (ODBC 1.0) Gibt die Zeichen von string_exp zurück, wobei führende Leerzeichen entfernt wurden.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Gibt die Länge des Zeichenfolgenausdrucks in Bytes zurück. Das Ergebnis ist die kleinste ganze Zahl, die nicht kleiner ist als die Anzahl der Bits dividiert durch 8.

Funktioniert nicht nur für Zeichenfolgendatentypen, sondern konvertiert nicht implizit string_exp in eine Zeichenfolge, sondern gibt stattdessen die (interne) Größe des angegebenen Datentyps zurück.
POSITION( character_exp IN character_exp) (ODBC 3.0) Gibt die Position des ersten Zeichenausdrucks im zweiten Zeichenausdruck zurück. Das Ergebnis ist eine genaue Zahl mit einer implementierungsdefinierten Genauigkeit und einer Skalierung von 0.
REPEAT( string_exp, Count) (ODBC 1.0) Gibt eine Zeichenfolge zurück, die aus string_exp wiederholten Zählungszeiten besteht.
REPLACE( string_exp1, string_exp2, string_exp3) (ODBC 1.0) Suchen Sie string_exp1 Forokcurrences von string_exp2, und ersetzen Sie sie durch string_exp3.
RIGHT( string_exp, Count) (ODBC 1.0) Gibt die am weitesten rechts gezählten Zeichen von string_exp zurück.
RTRIM( string_exp ) (ODBC 1.0) Gibt die Zeichen von string_exp zurück, wobei nachfolgende Leerzeichen entfernt wurden.
SOUNDEX( string_exp ) (ODBC 2.0) Gibt eine datenquellenabhängige Zeichenfolge zurück, die den Sound der Wörter in string_exp darstellt. SQL Server gibt z. B. einen 4-stelligen SOUNDEX-Code zurück; Oracle gibt eine phonetische Darstellung jedes Worts zurück.
SPACE( Anzahl ) (ODBC 2.0) Gibt eine Zeichenfolge zurück, die aus Anzahl leerzeichen besteht.
SUBSTRING( string_exp, start, length**)** (ODBC 1.0) Gibt eine Zeichenfolge zurück, die von string_exp abgeleitet wird, beginnend mit der Durchbruchposition angegebenen Zeichenposition.
UCASE( string_exp ) (ODBC 1.0) Gibt eine Zeichenfolge zurück, die in string_exp entspricht, wobei alle Kleinbuchstaben in Großbuchstaben konvertiert wurden.