The generic SQL parser accepts the following dialects of the SQL language:
- IBM DB2 Universal Database versions 4, 7, 8
- Oracle versions 8, 9, 10
- Sybase Adaptive Server Anywhere version 6
- Informix SQL versions 6, 7.2, 7.3
- Microsoft SQL Server 2005, Transact SQL (TSQL)
- MySQL
A separate SQL parser is available for TANDEM NonStop SQL.
The parsers build an abstract syntax tree that stores and represents the source program in memory. Optionally name analysis can be performed. The parsers can operate stand alone or they can be attached to the parsers for COBOL, PL/I and C in order to analyze embedded statements enclosed in EXEC SQL directives.
The generic SQL parser accepts plain SQL source code, only. CoCoLab provides auxiliary programs that extract embedded SQL from COBOL, PL/I, C source code and from shell scripts. The extracted SQL code can be processed by the generic SQL parser.
Notes
IBM DB2
The generic parser accepts all DML, DDL, and SDL statements of IBM Universal Database versions 4, 7 and 8 including PL/SQL. The following DB2 control commands are implemented: CATALOG, CREATE DATABASE, EXPORT, IMPORT, LOAD, REORG, RUNSTATS, UNCATALOG, UNLOAD, UPDATE.
Oracle and Informix
The SQL parser accepts all DML (Data Manipulation Language) statements and most DDL (Data Definition Language) statements. Oracle PL/SQL is supported.
Sybase
The SQL parser accepts all constructs from Sybase Adaptive Server Anywhere, version 6 with a few exceptions:
The following interactive GUI commands are not implemented: CLEAR, CONFIGURE, EXIT, Help, SYSTEM. The following commands are not implemented, because no precise syntax definition could be found in the manual: PARAMETERS, READ, READTEXT, WRITETEXT. The following command is not implemented, because it allows arbitrary C code: WHENEVER ... { C-code }.
Microsoft
The SQL parser accepts all DML (Data Manipulation Language) statements and all control flow statements.
References
IBM DB2
- DATABASE 2 for MVS/ESA, Version 4, DB2 for MVS/ESA: SQL Reference, Document Number SC26-3270-00, 1995
- IBM DB2 Universal Database, SQL Reference, Version 7, Document Number SC09-2947-00, SC09-2975-00, 2000
- IBM DB2 Universal Database for OS/390 and z/OS, SQL Reference, Version 7, Document Number SC26-9944-01, 2001
- DB2 Universal Database for OS/390 and z/OS: Utility Guide and Reference, Document Number SC26-9945-03, 2001, 4. Edition (October 2002)
- Application Development Guide, Version 7, Document number SC09-2949-00
- IBM DB2 Universal Database, Command Reference, Version 7, Document Number SC09-2951-00
- IBM DB2 Universal Database, Command Reference, Version 8.2, Document Number SC09-2951-00
- IBM DB2 Universal Database, SQL Reference, Version 8.2, Volume 1, Document Number SC09-4844-01, 2004
- IBM DB2 Universal Database, SQL Reference, Version 8.2, Volume 2, Document Number SC09-4845-01, 2004
- DB2 Universal Database for z/OS, SQL Reference, Version 8, Document Number SC18-7426-01, Second Edition (November 2004)
- DB2 Universal Database for OS390 and z/OS Version 7: SQL Reference SC26-9944-nn
- DB2 Universal Database for z/OS Version 8: SQL Reference SC18-7426-nn
Oracle
- SQL Reference, Release 2 (8.1.6), December 1999, Part No A7689-01
- SQL Reference, Release 3 (8.1.7), September 2000, Part No A85397-01
- SQL Reference, Release 1 (9.0.1), June 2001, Part No A90125-01
- SQL Reference, 10g Release 1 (10.1), December 2003, Part No B10759-01
- Pro*COBOL Precompiler, Programmers Guide, Release 8.1.6, December 1999, Part No. A76951-01
- Pro*C/C++ Precompiler, Programmers Guide, Release 8.1.6, December 1999, Part No. A76942-01
- PL/SQL, Users Guide and Reference, Release 8.1.6, December 1999, Part No. A77069-01
- PL/SQL, Users Guide and Reference, 10g Release 1 (10.1), December 2003, Part No. B10807-01
- SQL*Plus, User's Guide and Reference, Release 10.1, December 2003, Part No. B12170-01
Sybase
- Adaptive Server Anywhere, Reference, September 1999, Part Number CT75KNA, Version 6.0.3
- Adaptive Server Anywhere, Programming Interface Guide, September 1999, Part Number CT75NNA, Version 6.0.3
Informix
- The Informix Guide to SQL, Reference, Informix-Online 5.0, September 1992, Part No. 000-7193
- Informix Guide to SQL: Syntax Version 6.0, March 1994, Part No. 000-7597
- Informix Guide to SQL: Syntax, Version 7.1, Dec. 1994, Part No. 000-7633
- Informix Guide to SQL: Syntax, Version 7.2, April 1996, Part No. 000-7859A
- Informix Guide to SQL: Syntax, Informix Dynamic Server, Version 7.3 Informix Dynamic Server with Advanced Decision Support and Extended Parallel Options, Version 8.2, Informix Dynamic Server, Developer Edition, Version 7.3, Informix Dynamic Server, Workgroup Edition, Version 7.3, February 1998, Part No. 000-4367
- Informix Universal-Server, Informix Guide to SQL: Syntax, Version 9.1, March 1997, Part No. 000-3878
- IBM Informix Guide to SQL: Syntax, Informix Extended Parallel Server, Version 8.3, Informix Dynamic Server, Version 9.3, August 2001, Part No. 000-8354
- INFORMIX-ESQL/COBOL, Embedded SQL for COBOL Programmer's Manual, Version 7.2, April 1996, Part No. 000-7893A
- INFORMIX-ESQL/C, Programmer's Manual, Version 9.13, October 1997, Part No. 000-4161
Microsoft
- Microsoft: SQL Server/Transact-SQL Reference