V MariaDB UNCOMPRESS() je vestavěná funkce, která dekomprimuje řetězec, který byl zkomprimován pomocí COMPRESS() funkce.
Syntaxe
Syntaxe vypadá takto:
UNCOMPRESS(string_to_uncompress)
Kde string_to_uncompress je řetězec, který chcete dekomprimovat.
Příklad
Zde je základní příklad:
SELECT UNCOMPRESS(COMPRESS('Marching on')); Výsledek:
+-------------------------------------+
| UNCOMPRESS(COMPRESS('Marching on')) |
+-------------------------------------+
| Marching on |
+-------------------------------------+ Kontrola velikosti
Zde je základní příklad:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed"; Výsledek:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Zde jsem použil LENGTH() funkce k získání délky v bajtech nekomprimovaného a komprimovaného řetězce. Použil jsem REPEAT() funkci opakovat stejné písmeno 50krát před jeho komprimací.
Zde je další příklad, který používá symbol autorských práv (© ), což je dvoubajtový znak:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed"; Výsledek:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Zde je jeden, který používá tříbajtový znak:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed"; Výsledek:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Nulové argumenty
Předávání null vrátí null :
SELECT UNCOMPRESS(null); Výsledek:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Chybí argument
Volání UNCOMPRESS() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT UNCOMPRESS(); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Zkontrolujte kompresi
UNCOMPRESS() funkce vyžaduje, aby MariaDB byla zkompilována s kompresní knihovnou, jako je zlib. Pokud MariaDB nebyla zkompilována s takovou knihovnou komprese, UNCOMPRESS() vrátí null .
Můžete zkontrolovat have_compress systémové proměnné, abyste viděli, zda je kompresní knihovna zlib pro server přístupná:
SELECT @@have_compress; Výsledek:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
V tomto případě je kompresní knihovna zlib přístupná serveru a výsledek je YES .
Pokud kompresní knihovna zlib není pro server přístupná, výsledek bude NO .