Unterstützte und nicht unterstützte SQL-Anweisungen
Der SQL-Übersetzungsdienst ist konform mit ANSI Level 2. Diese Einrichtung unterstützt viele, aber nicht alle SQL-Anweisungen. Der Reporting Server und bestimmte RDBMS-Engines können auch die alpha1 CONCAT alpha2-Syntax unterstützen. Siehe Unterstützte SQL-Anweisungen und Nicht unterstützte SQL-Anweisungen.
Viele der unterstützten SQL-Anweisungen sind Kandidaten für Dialect Translation. Dieses Feature ermöglicht es einem Server, eingehende SQL-Anfragen an SQL-fähige Subserver und Datenadapter weiterzuleiten, wenn möglich. Dialect Translation umgeht die Übersetzung in die Data Manipulation Language (DML) des Reporting Servers und hält die Ortstransparenz der Daten aufrecht. Sie wandelt eine standardmäßige SQL-Anweisung in eine Anweisung um, die von der Ziel-SQL-Engine verarbeitet werden kann, wobei die semantische Bedeutung der Anweisung beibehalten wird.
Hinweis: Da der SQL Translator mit ANSI Level 2 kompatibel ist, werden einige Anfragen, die in älteren Versionen gültig waren, möglicherweise nicht mehr erkannt.
x
Referenz: Unterstützte SQL-Anweisungen
Der SQL-Übersetzungsdienst unterstützt Folgendes:
- SELECT, einschließlich SELECT ALL und SELECT DISTINCT.
- CREATE TABLE. Es werden die folgenden Datentypen für CREATE TABLE unterstützt: REAL, DOUBLE PRECISION, FLOAT, INTEGER, DECIMAL, CHARACTER, SMALLINT, DATE, TIME und TIMESTAMP.
- INSERT, UPDATE und DELETE für relationale, IMS- und FOCUS-Datenquellen.
- Equijoins und Nicht-Equijoins.
- Äußere Joins, die bestimmten Beschränkungen unterliegen. Siehe SQL-Joins.
- CREATE VIEW und DROP VIEW.
- PREPARE und EXECUTE.
- Begrenzte Identifikatoren für Tabellennamen und Spaltennamen. Tabellen- und Spaltennamen, die eingebettete Leerzeichen oder andere Sonderzeichen in der SELECT-Liste enthalten, sollten in doppelte Anführungszeichen gesetzt werden.
- Spaltennamen, die durch Tabellennamen oder Tabellen-Tags qualifiziert sind.
- Die Operatoren UNION [ALL], INTERSECT [ALL] und EXCEPT [ALL].
- Nicht korrelierte Unteranfragen für alle Anfragen im WHERE-Prädikat und in der FROM-Liste.
- Korrelierte Unteranfragen für Anfragen, die Kandidaten für Dialect Translation in eine RDBMS sind, die dieses Feature unterstützt. Beachten Sie, dass korrelierte Unteranfragen für FOCUS und andere nicht relationale Datenquellen nicht unterstützt sind.
- Numerische Konstanten, Literale und Formeln in der SELECT-List.
- Skalarfunktionen für Abfragen, die Kandidaten für Dialect Translation sind, falls die RDBMS-Engine Skalarfunktionen unterstützt. Hierzu gehören: ABS, CHAR, CHAR_LENGTH, CONCAT, COUNTBY, DATE, DAY, DAYS, DECIMAL, EDIT, EXTRACT, FLOAT, HOUR, IF, INT, INTEGER, LCASE, LENGTH, LOG, LTRIM, MICROSECOND, MILLISECOND, MINUTE, MONTH, POSITION, RTRIM, SECOND, SQRT, SUBSTR (oder SUBSTRING), TIME, TIMESTAMP, TRIM, VALUE, UCASE und YEAR.
- Der Verkettungsoperator '||', der mit Literalen oder alphanumerischen Spalten verwendet wird.
- Die folgenden Aggregatsfunktionen: COUNT, MIN, MAX, SUM und AVG.
- Es können die folgenden Formeln in Bedingungen angezeigt werden: CASE, NULLIF und COALESCE.
- Datum-, Zeit- und Zeitstempel-Literale verschiedener Formate. Siehe SQL Translator-Unterstützung für Datums-, Zeit- und Zeitstempelfelder.
- Alle Anfragen, die ANY, SOME und ALL enthalten und nicht =ALL, <>ANY und <>SOME.
- =ALL, <>ANY und <>SOME für Anfragen, die Kandidaten für Dialect Translation sind, wenn die RDBMS-Engine quantifizierte Unterabfragen unterstützt.
- Die besonderen Register USER, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_EDASQLVERSION und CURRENT_TIMEZONE.
- NULL- und NOT NULL-Prädikate.
- LIKE- und NOT LIKE-Prädikate.
- IN- und NOT IN-Prädikate.
- Datum und Uhrzeit-Arithmetik.
- EXISTS- und NOT EXISTS-Prädikate.
- GROUP BY-Klauseln, die mit expliziten Spaltennamen ausgedrückt werden.
- ORDER BY-Klauslent, die mit expliziten Spaltennamen oder Spaltennummern ausgedrückt werden.
- FOR FETCH ONLY-Feature, um das Sperren von Datensätzen zu umgehen.
- Kontinentale Dezimalschreibweise (CDN), wenn die CDN-Variable eingestellt ist.
- Landessprachlicher Support (NLS).
x
Referenz: Nicht unterstützte SQL-Anweisungen
Der SQL-Übersetzungsdienst unterstützt Folgendes nicht:
- Mehr als 15 Joins pro SELECT. Diese Begrenzung ist durch SQL eingestellt. FOCUS unterstützt bis zu 16 Joins.
- ALIAS-Namen in Masterdateien und die Verwendung von Formatierungsoptionen für die Formatierung der Ausgabe.
- Eindeutiges Abschneiden von Spaltennamen.
- Temporäre definierte Spalten. Permanent definierte Spalten, die im Reporting Server Dynamic Catalog oder in der Masterdatei definiert sind, werden unterstützt.
- Korrelierte Unteranfragen für die DML-Generation.
x
Referenz: Vorbehaltene Wörter für SQL Translator
Die folgenden Wörter können als Feldnamen in einer Masterdatei nicht verwendet werden, die mit dem SQL Translator verwendet wird:
- ALL
- COUNT
- SUM
- MAX
- MIN
- AVG
- CURRENT
- DISTINCT
- USER