Obsługiwane typy danych
Następująca tabela pokazuje obsługiwane typy danych źródłowych PostgreSQL oraz ich domyślne mapowanie na typy danych bramy Data Movement gateway.
Podczas replikacji do obiektu docelowego opartego na PostgreSQL typy danych źródłowych i docelowych są takie same oprócz wyjątków opisanych w temacie Replikacja jednorodna.
Aby uzyskać informacje o tym, jak wyświetlać typ danych mapowanych w miejscu docelowym, zobacz sekcję omawiającą łącznik używanego miejsca docelowego.
Typy danych PostgreSQL | Typy danych Data Movement gateway |
---|---|
INTEGER |
INT4 |
SMALLINT |
INT2 |
BIGINT |
INT8 |
NUMERIC |
NUMERIC(28,6) |
NUMERIC(p,s) |
Jeżeli precyzja =< 38, to: NUMERIC(p,s) Jeżeli precyzja => 39, to: STRING |
DECIMAL |
NUMERIC(28,6) |
DECIMAL(p,s) |
Jeżeli precyzja =< 38, to: NUMERIC(p,s) Jeżeli precyzja => 39, to: STRING |
REAL |
REAL4 |
DOUBLE |
REAL8 |
SMALLSERIAL |
INT2 |
SERIAL |
INT4 |
BIGSERIAL |
INT8 |
MONEY |
NUMERIC(38,4) Informacja
Typ danych MONEY jest mapowany na FLOAT w środowisku Microsoft SQL Server. |
CHAR |
WSTRING (1) |
CHAR(n) |
WSTRING (n) |
VARCHAR(n) Informacja
Typ VARCHAR bez długości (n) nie jest rozpoznawany jako prawidłowy typ danych przez docelowe punkty końcowe. W związku z tym, jeśli typ danych kolumny źródłowej jest ustawiony na VARCHAR bez jawnej długości, Data Movement gateway ustawi domyślną długość 8000 bajtów. Ustawienie domyślne można zmienić, ustawiając następujący parametr wewnętrzny na wymaganą długość: unboundedVarcharMaxSize Informacje na temat ustawiania parametrów wewnętrznych zawiera temat PostgreSQL. |
WSTRING (n) |
TEXT |
NCLOB |
BYTEA |
BLOB |
TIMESTAMP |
DATETIME |
TIMESTAMP (z) |
DATETIME |
DATE InformacjaData Movement gateway obsługuje tylko tekstowe formaty DATE w formacie ISO (domyślnie). W przypadku użycia innych formatów zostanie wygenerowany błąd. Format daty można zmienić w pliku postgresql.conf lub używając zmiennej środowiskowej PGDATESTYLE. Można także zmienić format daty na poziomie bazy danych.
|
DATE |
TIME |
TIME |
TIME (z) |
TIME |
INTERVAL |
STRING (128) - 1 YEAR, 2 MONTHS, 3 DAYS, 4 HOURS, 5 MINUTES, 6 SECONDS |
BOOLEAN |
BOOLEAN |
ENUM |
STRING (64) |
CIDR |
STRING (50) |
INET |
STRING (50) |
MACADDR |
STRING (18) |
BIT (n) |
STRING (n) |
BIT VARYING (n) |
STRING (n) |
UUID |
STRING |
TSVECTOR |
CLOB |
TSQUERY |
CLOB |
XML |
CLOB |
POINT |
STRING (255) "(x,y)" |
LINE |
STRING (255) "(x,y,z)" |
LSEG |
STRING (255) "((x1,y1),(x2,y2))" |
BOX |
STRING (255) "((x1,y1),(x2,y2))" |
PATH |
CLOB "((x1,y1),(xn,yn))" |
POLYGON |
CLOB "((x1,y1),(xn,yn))" |
CIRCLE |
STRING (255) "(x,y),r" |
JSON Informacja
Dane JSON są odczytywane i zapisywane przy użyciu ciągu szerokiego (w którym każdy znak zajmuje 2 bajty). W związku z tym podczas replikacji kolumn JSON do miejsca docelowego PostgreSQL należy ustawić ograniczony rozmiar obiektu LOB na dwukrotność maksymalnej długości JSON. Jeżeli na przykład dane JSON mają 4 KB, ustaw ograniczony rozmiar obiektu LOB na 8 KB. |
NCLOB |
JSONB Informacja
Dane JSONB są odczytywane i zapisywane przy użyciu ciągu szerokiego (w którym każdy znak zajmuje 2 bajty). W związku z tym podczas replikacji kolumn JSONB do miejsca docelowego PostgreSQL należy ustawić ograniczony rozmiar obiektu LOB na dwukrotność maksymalnej długości JSONB. Jeżeli na przykład dane JSONB mają 4 KB, ustaw ograniczony rozmiar obiektu LOB na 8 KB. |
NCLOB |
ARRAY |
NCLOB |
COMPOSITE |
NCLOB |
INT4RANGE | STRING (255) |
INT8RANGE | STRING (255) |
NUMRANGE | STRING (255) |
TSRANGE | STRING (255) |
INT4MULTIRANGE | STRING (255) |
INT8MULTIRANGE | STRING (255) |
NUMMULTIRANGE | STRING (255) |
TSMULTIRANGE | STRING (255) |
CHARACTER VARYING |
Jeśli określono długość: WSTRING (LENGTH) Jeśli nie określono długości: WSTRING (8000) |
TINTERVAL |
WSTRING(255) |