Unsupported Grammar of various RDBMS

JSQLParser is a RDBMS agnostic parser with a certain focus on SQL:2016 Standard compliant Queries and the “Big Four” (Oracle, MS SQL Server, Postgres, MySQL/MariaDB). We would like to recommend writing portable, standard compliant SQL in general.

  • Oracle PL/SQL blocks are not support.

    DECLARE
        num NUMBER;
    BEGIN
        num := 10;
        dbms_output.put_line('The number is ' || num);
    END;
    
  • Oracle INSERT ALL … is not supported

    INSERT ALL
      INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
      INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
      INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
    SELECT * FROM dual;
    
  • DDL statements

    While JSQLParser provides a lot of generic support for DDL statements, it is possible that certain RDBMS specific syntax (especially about indices, encodings, compression) won’t be supported.

  • Interval Operators

    Anything like DAY HOUR MINUTE SECOND [TO HOUR MINUTE SECOND] is not supported.:

    values cast ((time '12:03:34' - time '11:57:23') minute to second as varchar(8));