Declaraciones SQL admitidas y no admitidas
SQL Translation Services cumple con ANSI Nivel 2. Esta función soporta la mayoría de las declaraciones SQL, pero no todas. El Servidor de informes y determinados motores RDBMS podrían dar admitir la sintaxis alpha1 CONCAT alpha2. Consulte Declaraciones de SQL admitidas y Declaraciones de SQL no admitidas.
Muchas de las declaraciones SQL admitidas son candidatos para Dialect Translation. Esta característica le permite a un servidor dirigir las solicitudes entrantes de SQL hacia subservidores y adaptadores de datos con capacidad para manejar SQL, siempre y cuando esto sea posible. Dialect Translation evita la traducción al Lenguaje de manipulación de datos (DML) del servidor de informes, al tiempo que mantiene transparencia en la ubicación de los datos. Transforma una declaración estándar de SQL en una declaración que pueda procesar el motor de SQL de destino, mientras preserva el sentido semántico de la declaración.
Nota: Debido a que el SQL Translator cumple con el nivel 2 de ANSI, algunas solicitudes que funcionaron en versiones anteriores tal vez no funcionen.
x
Referencia: Declaraciones de SQL admitidas
SQL Translation Services admite lo siguiente:
- SELECT, incluyendo SELECT ALL y SELECT DISTINCT.
- CREATE TABLE. Los siguientes tipos de datos se admiten para CREATE TABLE: REAL, DOUBLE PRECISION, FLOAT, INTEGER, DECIMAL, CHARACTER, SMALLINT, DATE, TIME, y TIMESTAMP.
- INSERT, UPDATE, y DELETE para relacional, IMS, y orígenes de datos FOCUS.
- Equijoins y no equijoins.
- Los joins externos están sujetos a determinadas restricciones. Consulte Joins SQL.
- CREATE VIEW y DROP VIEW.
- PREPARE y EXECUTE.
- Identificadores delimitados de nombres de tablas y nombres de columnas. Los nombres de tabla y columna que contengan espacios en blanco insertados u otro tipo de caracteres especiales en la lista SELECT se deben poner entre comillas dobles.
- Los nombres de columna cualificados por nombres o etiquetas de tabla.
- Los operadores UNION [ALL], INTERSECT [ALL], y EXCEPT [ALL].
- Las subconsultas no correlacionadas para todas las solicitudes en el predicado WHERE y en la lista FROM.
- Las subconsultas correlacionadas para solicitudes que Dialect Translation pueda manejar hechas a un RDBMS que admita esta característica. Tenga en cuenta que no se admiten subconsultas correlacionadas en FOCUS ni en otros orígenes de datos no relacionales.
- Las constantes numéricas, los literales y las expresiones en la lista SELECT.
- Las funciones de escala para consultas que Dialect Translation pueda manejar, siempre y cuando el motor RDBMS admita el tipo de función de escala. Estos incluyen: 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 (o SUBSTRING), TIME, TIMESTAMP, TRIM, VALUE, UCASE, y YEAR.
- El operador de concatenación, '||', utilizado con literales o columnas alfanuméricas.
- Las siguientes funciones de añadir: COUNT, MIN, MAX, SUM, y AVG.
- Las siguientes expresiones pueden aparecer en condiciones: CASE, NULLIF, y COALESCE.
- Los literales de fecha, hora y marca de hora de diferentes formatos. Consulte Compatibilidad con campos de fecha, hora y de marca de hora en SQL Translator.
- Todos las solicitudes que contienen ANY, SOME, y ALL que no contienen =ALL, <>ANY, y <>SOME.
- =ALL, <>ANY y <>SOME para solicitudes que Dialect Translation pueda manejar, siempre que el motor de RDBMS admita subconsultas cuantificadas.
- Los registros especiales USER, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_EDASQLVERSION, y CURRENT_TIMEZONE.
- Predicados NULL y NOT NULL.
- Predicados LIKE y NOT LIKE.
- Predicados IN y NOT IN.
- Aritmética de fecha y hora.
- Predicados EXISTS y NOT EXISTS.
- Las cláusula GROUP BY expresadas con nombres de columnas explícitas.
- Las cláusulas ORDER BY expresadas con nombres de columnas explícitas o con números de columna.
- La característica FOR FETCH ONLY para burlar el bloqueo de registros.
- La notación decimal continental (CDN), cuando se ha establecido la variable CDN.
- Soporte de idiomas nacionales (NLS, por sus siglas en inglés).
x
Referencia: Declaraciones de SQL no admitidas
SQL Translation Services no admite lo siguiente:
- Más de 15 joins por SELECT. El límite lo establece SQL. FOCUS admite hasta 16 joins.
- Los nombres ALIAS de archivos máster y el uso de opciones para dar formato a la salida.
- Los truncamientos únicos de nombres de columna.
- Columnas definas temporales Se admiten las columnas definidas permanentes, definidas en el Catálogo dinámico del servidor de informes o en el archivo máster.
- Las subconsultas correlacionadas para generación de DML.
x
Referencia: Palabras reservadas de SQL Translator
Las palabras que siguen no pueden utilizarse como nombres de campo en un archivo máster que se utilice con SQL Translator:
- prefijo ALL
- COUNT
- SUM
- MAX
- MIN
- AVG
- CURRENT
- DISTINCT
- USER