SnowConvert: PostgreSQL-Probleme¶
SSC-EWI-PG0003¶
Schweregrad¶
Niedrig
Beschreibung¶
PostgreSQL unterstützt Tabellenvererbung, aber dieses Feature ist in Snowflake nicht verfügbar. Weitere Informationen über die Vererbung von PostgreSQL-Tabellen finden Sie hier.
Codebeispiel¶
Eingabecode:¶
ALTER TABLE Table1
ADD CONSTRAINT const3 UNIQUE (zip);
Ausgabecode:¶
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0003 - TABLE INHERITANCE IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
ALTER TABLE Table1
ADD CONSTRAINT const3 UNIQUE (zip);
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0013¶
Schweregrad¶
Medium
Beschreibung¶
Dieser Fehler tritt auf, wenn Sie eine RAISE-Ausnahme in eine benutzerdefinierte gespeicherte Prozedur konvertieren.
Bitte beachten Sie, dass das Auslösen von Ausnahmen außerhalb eines Ausnahmeblocks in Snowflake nicht unterstützt wird. Das liegt daran, dass Snowflake nur die Erstellung neuer Ausnahmen mit Literalmeldungen erlaubt und die Erstellung benutzerdefinierter Ausnahmen auf der Grundlage dynamischer Daten nicht unterstützt.
Codebeispiel¶
Eingabecode:¶
CREATE FUNCTION FunctionName1() RETURNS void
AS
$$
DECLARE
v_var1 character varying(50);
v_var2 character varying(50);
BEGIN
v_var1 := 'exception1';
v_var2 := 'exception2';
RAISE EXCEPTION 'Exception %',v_var1;
EXCEPTION
WHEN OTHERS THEN
RAISE EXCEPTION '%',v_var2;
RETURN;
END;
$$
LANGUAGE plpgsql NO SQL;
Ausgabecode:¶
!!!RESOLVE EWI!!! /*** SSC-EWI-GP0002 - NON-RETURNING FUNCTION TRANSLATED TO STORED PROCEDURE ***/!!!
CREATE OR REPLACE PROCEDURE FunctionName1 () RETURNS STRING
LANGUAGE SQL
AS
$$
DECLARE
v_var1 character varying(50);
v_var2 character varying(50);
BEGIN
v_var1 := 'exception1';
v_var2 := 'exception2';
LET SC_RAISE_MESSAGE VARCHAR;
SC_RAISE_MESSAGE := STRING_FORMAT_UDF('Exception %', array_construct(:v_var1));
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0013 - RAISE EXCEPTION TRANSLATED TO USER-DEFINED STORED PROCEDURE CALL. ***/!!!
CALL RAISE_MESSAGE_UDF('EXCEPTION', :SC_RAISE_MESSAGE);
RETURN 'SUCCESS';
EXCEPTION
WHEN OTHER THEN
SC_RAISE_MESSAGE := STRING_FORMAT_UDF('%', array_construct(:v_var2));
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0013 - RAISE EXCEPTION TRANSLATED TO USER-DEFINED STORED PROCEDURE CALL. ***/!!!
CALL RAISE_MESSAGE_UDF('EXCEPTION', :SC_RAISE_MESSAGE);
RAISE;
RETURN;
END;
$$;
Die folgenden benutzerdefinierten Funktionen (User-Defined Functions, UDFs) werden während des Transformationsprozesses verwendet:
CREATE OR REPLACE FUNCTION STRING_FORMAT_UDF(PATTERN VARCHAR, ARGS VARIANT)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "udf", "convertedOn": "09/09/2024" }}'
AS
$$
var placeholder_str = "{%}";
var result = PATTERN.replace(/(?<!%)%(?!%)/g, placeholder_str).replace("%%","%");
for (var i = 0; i < ARGS.length; i++)
{
result = result.replace(placeholder_str, ARGS[i]);
}
return result;
$$;
CREATE OR REPLACE PROCEDURE RAISE_MESSAGE_UDF(LEVEL VARCHAR, MESSAGE VARCHAR)
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "udf", "convertedOn": "09/09/2024" }}'
AS
$$
BEGIN
RETURN 'Logged message: ' || LEVEL || ' - ' || MESSAGE;
END;
$$;
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0006¶
Schweregrad¶
Medium
Beschreibung¶
Dieser Fehler tritt auf, wenn eine Variable in einer FOR-Schleife über einen Beschriftungsnamen referenziert wird. Snowflake lässt nicht zu, dass in FOR-Schleifen Variablen mit qualifizierten Namen referenziert werden.
Codebeispiel¶
Eingabecode:¶
CREATE OR REPLACE PROCEDURE procedure1(out result VARCHAR(100))
LANGUAGE plpgsql
AS $$
BEGIN
result := '<';
<<outer_loop>>
for i in 1..3 loop
<<inner_loop>>
for i in 4..6 loop
result := result || '(' || outer_loop.i || ', ' || i || ')';
end loop inner_loop;
end loop outer_loop;
result := result || '>';
END;
$$;
Ausgabecode:¶
CREATE OR REPLACE PROCEDURE procedure1 (result VARCHAR(100))
RETURNS VARIANT
LANGUAGE SQL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "redshift", "convertedOn": "02/16/2025", "domain": "test" }}'
AS $$
BEGIN
result := '<';
for i in 1 TO 3 loop
for i in 4 TO 6 loop
result := result || '(' ||
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0006 - REFERENCE TO A VARIABLE USING THE LABEL IS NOT SUPPORTED BY SNOWFLAKE. ***/!!! outer_loop.i || ', ' || i || ')';
end loop inner_loop;
end loop outer_loop;
result := result || '>';
RETURN OBJECT_CONSTRUCT('result', :result);
END;
$$;
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0002¶
Schweregrad¶
Niedrig
Beschreibung¶
Die folgenden Indexparameter in Einschränkungen sind nicht mit Snowflake kompatibel.
INCLUDE: Fügt zusätzliche Daten oder Objekte zur aktuellen Operation hinzu
WITH: Gibt zusätzliche Eigenschaften oder Bedingungen an
USING INDEX TABLESPACE: Definiert den Tablespace, in dem die Indizes gespeichert werden
Codebeispiel¶
Eingabecode:¶
CREATE TABLE Table1 (
code char(5),
date_prod date,
CONSTRAINT production UNIQUE(date_prod) INCLUDE(code)
);
CREATE TABLE Table2 (
name varchar(40),
UNIQUE(name) WITH (fillfactor=70)
);
CREATE TABLE Table3 (
name varchar(40),
PRIMARY KEY(name) USING INDEX TABLESPACE tablespace_name
);
Ausgabecode:¶
CREATE TABLE Table1 (
code char(5),
date_prod date,
CONSTRAINT production UNIQUE(date_prod)
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0002 - INCLUDE PARAMETER NOT APPLICABLE. CONSTRAINT INDEX PARAMETERS ARE NOT SUPPORTED IN SNOWFLAKE. ***/!!! INCLUDE(code)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "postgresql", "convertedOn": "09/17/2024" }}';
CREATE TABLE Table2 (
name varchar(40),
UNIQUE(name)
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0002 - WITH PARAMETER NOT APPLICABLE. CONSTRAINT INDEX PARAMETERS ARE NOT SUPPORTED IN SNOWFLAKE. ***/!!! WITH (fillfactor=70)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "postgresql", "convertedOn": "09/17/2024" }}';
CREATE TABLE Table3 (
name varchar(40),
PRIMARY KEY(name)
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0002 - USING PARAMETER NOT APPLICABLE. CONSTRAINT INDEX PARAMETERS ARE NOT SUPPORTED IN SNOWFLAKE. ***/!!! USING INDEX TABLESPACE tablespace_name
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "postgresql", "convertedOn": "09/17/2024" }}';
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0012¶
Beschreibung¶
Die Option NOT VALID
, die das Hinzufügen oder Ändern von Einschränkungen ohne Validierung bestehender Daten ermöglicht, ist in Snowflake nicht verfügbar. Mit diesem Feature von PostgreSQL können Sie Einschränkungen hinzufügen und dabei die Validierung bestehender Datensätze überspringen.
Codebeispiel¶
Eingabecode:¶
ALTER TABLE Table1 *
ADD CONSTRAINT const UNIQUE (zip) NOT VALID;
Ausgabecode:¶
ALTER TABLE Table1
ADD CONSTRAINT const UNIQUE (zip)
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0012 - NOT VALID CONSTRAINT OPTION IS NOT SUPPORTED BY SNOWFLAKE. ***/!!! NOT VALID;
Empfehlungen¶
Sie müssen nichts unternehmen.
Wenn Sie zusätzliche Unterstützung benötigen, kontaktieren Sie uns bitte unter snowconvert-support@snowflake.com
SSC-EWI-PG0009¶
Schweregrad¶
Niedrig
Beschreibung¶
Kommentare können zu verschiedenen Objekten im ursprünglichen Code hinzugefügt werden. Da einige dieser Objekte in Snowflake jedoch nicht existieren, ist es nicht möglich, ihnen Kommentare hinzuzufügen. Um Fehler zu vermeiden, wurde der Code, der diese nicht unterstützten Kommentarszenarien behandelt, deaktiviert.
Codebeispiel¶
Eingabecode:¶
COMMENT ON RULE rule_name on TABLE_NAME IS 'this is a comment';
Ausgabecode:¶
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0009 - COMMENT ON 'RULE' IS NOT SUPPORTED BY SNOWFLAKE. ***/!!!
COMMENT ON RULE rule_name on TABLE_NAME IS 'this is a comment';
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0008¶
Schweregrad¶
Hoch
Beschreibung¶
Die Funktion to_char
in Snowflake unterstützt beim Konvertieren von Datums- und Zeitdatentypen in das Textformat nicht den Parameter interval
.
Codebeispiel¶
Eingabecode:¶
SELECT to_char(interval '15h 2m 12s', 'HH24:MI:SS');
Ausgabecode:¶
SELECT to_char(INTERVAL '15h, 2m, 12s', 'HH24:MI:SS') !!!RESOLVE EWI!!! /*** SSC-EWI-PG0008 - THE USE OF INTERVAL WITHIN TO_CHAR IS NOT SUPPORTED BY SNOWFLAKE. ***/!!!;
Weitere Informationen finden Sie in:
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0005¶
Schweregrad¶
Medium
Beschreibung¶
Dieser Fehler tritt auf, weil Snowflake in bestimmten Funktionen andere Anforderungen an das Datums- und Zahlenformat hat als die Ausgangssprache.
Die folgenden Datums- und Uhrzeitformatelemente funktionieren in Snowflake möglicherweise anders als in anderen Datenbanken:
Date / Time¶
Format Element | Description |
---|---|
HH | Hour of day (01–12). |
MS | Millisecond (000–999). |
US | Microsecond (000000–999999). |
SSSS, SSSSS | Seconds past midnight (0–86399). |
Y,YYY | Year (4 or more digits) with comma. |
YYY | Last 3 digits of year. |
Y | Last digit of year. |
IYYY | ISO 8601 week-numbering year(4 or more digits). |
IYY | Last 3 digits of ISO 8601 week-numbering year. |
IY | Last 2 digits of ISO 8601 week-numbering year. |
I | Last digit of ISO 8601 week-numbering year. |
BC, bc, AD or ad | Era indicator (without periods). |
B.C., b.c., A.D. or a.d. | Era indicator (with periods). |
MONTH | Full upper case month name (blank-padded to 9 chars). |
Month | Full capitalized month name (blank-padded to 9 chars). |
month | Full lower case month name (blank-padded to 9 chars). |
DAY | Full upper case day name (blank-padded to 9 chars). |
Day | Full capitalized day name (blank-padded to 9 chars). |
day | Full lower case day name (blank-padded to 9 chars). |
DDD | Day of year (001–366). |
IDDD | Day of ISO 8601 week-numbering year (001–371; day 1 of the year is Monday of the first ISO week). |
D | Day of the week, Sunday (1) to Saturday (7). |
ID | ISO 8601 day of the week, Monday (1) to Sunday (7). |
W | Week of month (1–5) (the first week starts on the first day of the month). |
WW | Week number of year (1–53) (the first week starts on the first day of the year). |
IW | Week number of ISO 8601 week-numbering year (01–53; the first Thursday of the year is in week 1). |
CC | Century (2 digits) (the twenty-first century starts on 2001-01-01). |
J | Julian Date. |
Q | Quarter. |
RM | Month in upper case Roman numerals (I–XII; I=January). |
rm | Month in lower case Roman numerals (i–xii; i=January). |
TZ | Upper case time-zone abbreviation (only supported in to_char ). |
tz | Lower case time-zone abbreviation (only supported in to_char ). |
TZH | Time-zone hours. |
TZM | Time-zone minutes. |
OF | Time-zone offset from UTC (only supported in to_char ). |
FM prefix | Fill mode (suppress leading zeroes and padding blanks). |
TH suffix | Upper case ordinal number suffix. |
th suffix | Lower case ordinal number suffix. |
FX prefix | Fixed format global option (see usage notes). |
TM prefix | Translation mode (use localized day and month names based on lc_time). |
SP suffix | Spell mode. |
Weitere Einzelheiten finden Sie in der Dokumentation der PostgreSQL Datums-/Uhrzeitformate.
Die Transformation der TO_CHAR-Funktion unterstützt die meisten Formatelemente. Eine vollständige Liste der unterstützten Formatelemente und ihrer entsprechenden Zuordnungen finden Sie in der Übersetzungsspezifikation
Numerisch ¶
Muster |
Beschreibung |
---|---|
PR |
Negativer Wert in spitzen Klammern |
RN |
Römische Ziffer (Eingabe zwischen 1 und 3999) |
TH oder th |
Ordnungszahlsuffix |
V |
Verschieben einer bestimmten Anzahl von Ziffern (siehe Anmerkungen) |
EEEE |
Exponent für wissenschaftliche Notation |
Weitere Einzelheiten finden Sie in der Dokumentation PostgreSQL numerischer Formate.
Codebeispiel¶
Eingabecode:¶
SELECT
DATE_TRUNC('decade', TIMESTAMP '2017-03-17 02:09:30'),
DATE_TRUNC('century', TIMESTAMP '2017-03-17 02:09:30'),
DATE_TRUNC('millennium', TIMESTAMP '2017-03-17 02:09:30');
Ausgabecode:¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0005 - DECADE FORMAT IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
DATE_TRUNC('decade', TIMESTAMP '2017-03-17 02:09:30'),
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0005 - CENTURY FORMAT IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
DATE_TRUNC('century', TIMESTAMP '2017-03-17 02:09:30'),
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0005 - MILLENNIUM FORMAT IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
DATE_TRUNC('millennium', TIMESTAMP '2017-03-17 02:09:30');
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0015¶
Schweregrad¶
Medium
Beschreibung¶
In PostgreSQL können Sie eine FETCH Anweisung verwenden, um abgerufene Zeilenwerte direkt in der Konsole anzuzeigen, ohne eine INTO-Klausel zu verwenden. Bei der Verwendung von Snowflake muss die FETCH-Anweisung jedoch eine INTO-Klausel enthalten, um die Variablen anzugeben, in denen die abgerufenen Werte gespeichert werden sollen.
Wenn SnowConvert auf eine FETCH-Anweisung ohne eine INTO-Klausel stößt, erzeugt es eine EWI-Meldung (Error, Warning, Information), um den Benutzer darüber zu informieren, dass diese FETCH-Syntax nicht unterstützt wird.
Codebeispiel¶
Eingabecode:¶
FETCH PRIOR FROM cursor1;
Ausgabecode:¶
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0015 - FETCH CURSOR WITHOUT TARGET VARIABLES IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
FETCH PRIOR FROM cursor1;
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.
SSC-EWI-PG0001¶
Schweregrad¶
Medium
Beschreibung¶
Dieser Fehler tritt auf, weil SnowConvert die Funktion age()
nicht unterstützt.
Codebeispiel¶
Eingabecode:¶
SELECT
age(date1::date, date2::date)
FROM
Table1;
Ausgabecode:¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0001 - AGE IS NOT SUPPORTED ON SNOWFLAKE. ***/!!!
age(date1::date, date2::date)
FROM
Table1;
Empfehlungen¶
Die Funktion
Datediff
hilft bei der Berechnung von Zeitunterschieden zwischen Datumsangaben. Sie können damit zwar bestimmte Datumsbereiche abrufen, aber Sie müssen die Implementierung für jeden Anwendungsfall anpassen. Ausführliche Informationen finden Sie in der Snowflake-Dokumentation zu Datediff.Wenn Sie weitere Hilfe benötigen, kontaktieren Sie uns unter snowconvert-support@snowflake.com
SSC-EWI-PG0011¶
Schweregrad¶
Niedrig
Beschreibung¶
PostgreSQL-Sequenzanweisungen haben bestimmte Optionen, die nicht mit der Funktionalität von Snowflake kompatibel sind.
Die folgenden Features werden derzeit nicht unterstützt:
Unlogged: Sequenzen werden nicht in das Write-Ahead-Protokoll (WAL) geschrieben
AS <data_type>: Gibt den Datentyp der Sequenz an
MinValue: Legt den Mindestwert für die Sequenz fest
MaxValue: Legt den maximalen Wert für die Sequenz fest
No MinValue: Entfernt die Mindestwertbegrenzung
No MaxValue: Entfernt die Höchstwertbegrenzung
Cache: Legt fest, wie viele Sequenznummern im Speicher vorab reserviert werden sollen
Cycle: Ermöglicht einen Neustart der Sequenz, wenn ihre Begrenzung erreicht wurde
Owner By: Weist die Eigentümerschaft der Sequenz einem bestimmten Benutzer zu
Codebeispiel¶
Eingabecode:¶
CREATE UNLOGGED SEQUENCE sequence_name;
Ausgabecode:¶
--** SSC-FDM-PG0009 - THE SEQUENCE NEXTVAL PROPERTY SNOWFLAKE DOES NOT GUARANTEE GENERATING SEQUENCE NUMBERS WITHOUT GAPS. **
CREATE UNLOGGED !!!RESOLVE EWI!!! /*** SSC-EWI-PG0011 - 'UNLOGGED' IS NOT SUPPORTED BY SNOWFLAKE. ***/!!! SEQUENCE sequence_name;
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, kontaktieren Sie uns bitte unter snowconvert-support@snowflake.com
SSC-EWI-PG0010¶
Schweregrad¶
Niedrig
Beschreibung¶
Wenn PostgreSQL eine temporäre Sequenz erstellt, existiert diese nur während der aktuellen Sitzung und wird automatisch entfernt, wenn die Sitzung endet. Da Snowflake keine temporären Sequenzen unterstützt, wandelt SC sie in reguläre Sequenzen um. Dies kann zu Namenskonflikten führen, wenn eine Sequenz mit demselben Namen bereits in Snowflake vorhanden ist, was zu einem Fehler führt.
Codebeispiel¶
Eingabecode:¶
CREATE TEMPORARY SEQUENCE sequence1;
CREATE TEMP SEQUENCE sequence2;
Ausgabecode:¶
--** SSC-FDM-PG0009 - THE SEQUENCE NEXTVAL PROPERTY SNOWFLAKE DOES NOT GUARANTEE GENERATING SEQUENCE NUMBERS WITHOUT GAPS. **
CREATE TEMPORARY !!!RESOLVE EWI!!! /*** SSC-EWI-PG0010 - CREATE TEMPORARY SEQUENCE IS NOT SUPPORTED BY SNOWFLAKE. ***/!!! SEQUENCE sequence1;
--** SSC-FDM-PG0009 - THE SEQUENCE NEXTVAL PROPERTY SNOWFLAKE DOES NOT GUARANTEE GENERATING SEQUENCE NUMBERS WITHOUT GAPS. **
CREATE TEMP !!!RESOLVE EWI!!! /*** SSC-EWI-PG0010 - CREATE TEMPORARY SEQUENCE IS NOT SUPPORTED BY SNOWFLAKE. ***/!!! SEQUENCE sequence2;
Empfehlungen¶
Wenn Sie bei der Erstellung Probleme haben, versuchen Sie, die Sequenz umzubenennen, um Namenskonflikte zu vermeiden.
Wenn Sie weitere Hilfe benötigen, kontaktieren Sie uns bitte unter snowconvert-support@snowflake.com.
SSC-EWI-PG0004¶
Schweregrad¶
Medium
Beschreibung¶
Die EXCLUDE-Einschränkung, die in PostgreSQL verfügbar ist, wird derzeit in Snowflake nicht unterstützt.
Codebeispiel¶
Eingabecode:¶
CREATE TABLE Table1 (
id int,
EXCLUDE USING gist (id WITH &&)
);
Ausgabecode:¶
CREATE TABLE Table1 (
id int,
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0004 - EXCLUDE CONSTRAINT IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
EXCLUDE USING gist (id WITH &&)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "postgresql", "convertedOn": "09/17/2024" }}';
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, kontaktieren Sie uns bitte unter snowconvert-support@snowflake.com
SSC-EWI-PG0014¶
Schweregrad¶
Moderat
Beschreibung¶
In Snowflake ruft die Anweisung FETCH cursor die nächste Zeile aus einem Cursor ab. Bei der Konvertierung von Code transformiert SnowConvert Cursor-Navigationsbefehle, die FETCH NEXT entsprechen, da sie in Snowflake die gleiche Funktion ausführen.
FETCH NEXT
: Ruft die nächste Zeile aus dem Resultset abFETCH FORWARD
: Bewegt sich vorwärts, um die nächste Zeile abzurufenFETCH RELATIVE 1
: Bewegt sich von der aktuellen Position aus eine Zeile weiterFETCH
(ohne Richtungsangabe): Verwendet die Standard-Vorwärtsbewegung, um die nächste Zeile abzurufen
Andere Ausrichtungen als die Standardausrichtung werden nicht unterstützt. Falls verwendet, wird die FETCH-Anweisung mit einer EWI-Meldung (Error, Warning, Information) markiert.
Codebeispiel¶
Eingabecode:¶
CREATE OR REPLACE PROCEDURE cursor_test()
AS $$
BEGIN
FETCH FORWARD FROM cursor1 INTO my_var;
FETCH FIRST FROM cursor1 INTO my_var;
FETCH LAST FROM cursor1 INTO my_var;
END;
$$;
Ausgabecode:¶
CREATE OR REPLACE PROCEDURE cursor_test ()
RETURNS VARCHAR
AS $$
BEGIN
FETCH
cursor1 INTO my_var;
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0014 - SNOWFLAKE SCRIPTING CURSORS DO NOT SUPPORT FETCH ORIENTATION. ***/!!!
FETCH FIRST FROM cursor1 INTO my_var;
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0014 - SNOWFLAKE SCRIPTING CURSORS DO NOT SUPPORT FETCH ORIENTATION. ***/!!!
FETCH LAST FROM cursor1 INTO my_var;
END;
$$;
Empfehlungen¶
Wenn Sie zusätzliche Unterstützung benötigen, wenden Sie sich bitte an unser Support-Team unter snowconvert-support@snowflake.com.