Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Sprachelemente » Konstante

 

Binäre Literale

Ein binäres Literal ist eine Sequenz von hexadezimalen Zeichen, die aus den Ziffern 0-9 und den Buchstaben A-F in Groß- und Kleinschreibung bestehen. Wenn Sie Binärdaten als Literale eingeben, muss den Daten ein 0x (eine Null, gefolgt von einem x) vorangestellt werden, und rechts von diesem Präfix muss eine gerade Anzahl von Ziffern sein. Beispiel: Das hexadezimale Äquivalent von 39 ist 0027 und wird als 0x0027 ausgedrückt.

Die hexadezimalen Konstanten in der Form 0x12345678 werden als Binärzeichenfolgen behandelt. Eine unbegrenzte Anzahl von Ziffern kann nach 0x eingefügt werden.

Ein binäres Literal wird auch als "binäre Konstante" bezeichnet. In SQL Anywhere ist der bevorzugte Ausdruck "binäres Literal".

Konvertierung in und aus hexadezimalen Werten

Sie können die Funktionen CAST, CONVERT, HEXTOINT und INTTOHEX verwenden, um eine Binärzeichenfolge in eine Ganzzahl zu konvertieren. Die Funktionen CAST und CONVERT konvertieren hexadezimale Konstante in TINYINT, 32-Bit-Ganzzahlen mit oder ohne Vorzeichen, 64-Bit-Ganzzahlen mit oder ohne Vorzeichen, NUMERIC, etc. Die Funktion HEXTOINT konvertiert nur eine hexadezimale Konstante in eine 32-Bit-Ganzzahl mit Vorzeichen.

Der von der CAST-Funktion zurückgegebene Wert darf 8 Ziffern nicht überschreiten. Werte über 8 Ziffern geben einen Fehler zurück. Bei Werten mit weniger als 8 Ziffern werden links Nullen eingefügt. Die folgende Anweisung gibt beispielsweise den Wert -2,147,483,647 zurück:

SELECT CAST ( 0x0080000001 AS INT );

Das folgende Argument gibt einen Fehler zurück, weil der 10-stellige Wert nicht als 32-Bit-Ganzzahl mit Vorzeichen dargestellt werden kann:

SELECT CAST ( 0xff80000001 AS INT );

Der von der HEXTOINT-Funktion zurückgegebene Wert kann 8 Ziffern übersteigen, wenn der Wert als 32-Bit-Ganzzahl mit Vorzeichen dargestellt werden kann. Die HEXTOINT-Funktion akzeptiert Zeichenfolgenliterale oder Variable, die ausschließlich aus Ziffern und den groß- oder kleingeschriebenen Buchstaben A-F mit oder ohne 0x-Präfix bestehen. Der hexadezimale Wert ist eine negative Ganzzahl, wenn die 8. Ziffer von rechts die Ziffer 8 oder 9 oder einer der Buchstaben A bis F ist oder die davor stehenden Stellen ein oder mehrere F oder f sind.

Die folgenden Argumente geben den Wert --2,147,483,647 zurück:

SELECT HEXTOINT( '0xFF80000001' );
SELECT HEXTOINT( '0x80000001' );
SELECT HEXTOINT ( '0xFFFFFFFFFFFFFFFF80000001' );

Das folgende Argument gibt einen Fehler zurück, weil das Argument einen positiven Ganzzahlwert darstellt, der nicht als 32-Bit-Ganzzahl mit Vorzeichen dargestellt werden kann:

SELECT HEXTOINT( '0x0080000001' );
Siehe auch