SnowConvert: Validierung mehrdeutiger Kommentare

Beschreibung

Dieser Validierungsschritt prüft, ob der Eingabecode eine Zeichenfolge enthält, die zu mehrdeutigen Kommentaren führen kann (/*/).

Wenn der Eingabecode einen mehrdeutigen Kommentar enthält, wird ein Fenster mit einer Warnung wie der folgenden angezeigt:

Ambiguous Comment Validation Failed

Außerdem finden Sie in dem Bericht ScopeValidation Informationen über die fehlgeschlagene(n) Datei(en).

ScopeValidation.csv

Warum ist er mehrdeutig?

Der Blockkommentare in SQL beginnen mit /* und enden mit */. Wenn die Zeichenfolge /*/ verwendet wird, kann sie, je nach Ausgangssprache, eine Verschachtelung innerhalb des Blockkommentars beginnen oder den gesamten Block beenden.

Hier ist ein Beispiel für gültige Anweisungen mit /*/.

select col1,
  /*Some comment/*/ */*/
  col2,
  col3
from
  table1;
Copy
select col1,
  /*Some comment/*/
  col2,
  col3
from
  table1;
Copy
select col1,
  /*Some comment/*/ */*/
  col2,
  col3
from
  table1;
Copy
select col1,
  /*Some comment/*/
  col2,
  col3
from
  table1;
Copy

Wie Sie sehen können, verhält sich der Kommentar in Teradata und SQL Server anders als in Oracle und Snowflake. Auch in Teradata gibt es eine andere Behandlung für BTEQ und andere Skriptsprachen.

Auflösen der Mehrdeutigkeit

Wenn Sie in Snowflake in Ihrem Code auf die Sequenz /*/ stoßen, endet damit normalerweise ein Blockkommentar. Wenn Sie ihn jedoch in Ihrem Quellcode anders verwenden, sollten Sie ihn entsprechend anpassen.