Changes in SQLines SQL Converter tool.
In progress. Please contact us at support@sqlines.com for updates, improvements and new features.
Converting TO_CHAR(
exp, 'YYYY/MM/DD HH24:MI:SS') to REPLACE(CONVERT(VARCHAR(19),
exp, 20), '-', '/') (Oracle to
SQL Server)
Converting IIF function to CASE expression (
SQL Server to Synapse)
Converting DATEDIFF(YEAR,
dt1, dt2) to EXTRACT(YEAR FROM AGE(
dt2, dt1)) (
SQL Server to PostgreSQL)
Commenting ALTER TABLE
table CHECK CONSTRAINT
constraint (
SQL Server to MariaDB)
Commenting CONNECT TO statement (from IBM DB2)
Converting CREATE SEQUENCE statement (IBM DB2 to Snowflake)
Converting string1 CONCAT string2 operator to || operator (IBM DB2 to PostgreSQL, Redshift)
Converting VALUES c1, c2, … INTO v1, v2, … to individual v1 := c1; v2 := c2; … assignment statements (from IBM DB2)
Commenting FULLTEXT INDEX in CREATE TABLE (from MySQL, MariaDB)
Converting ENUM data type to VARCHAR with CHECK constraint (from MySQL, MariaDB)
Converting SET data type to VARCHAR (from MySQL, MariaDB)
Commenting ON UPDATE CASCADE clause in FOREIGN KEY constraint (MySQL, MariaDB to Oracle)
Adding CHAR length semantics specifier explicitly when converting CHAR(n) and VARCHAR(n) data types (MySQL, MariaDB to Oracle)
Bug fix - ALTER TABLE tab ALTER COLUMN col RESTART WITH num conversion for PostgreSQL 10 and later (IBM DB2 to PostgreSQL)
Bug fix -
string+LEFT/RIGHT() expression conversion (
SQL Server to PostgreSQL)
Bug fix - DAY function conversion with string literal, adding DATE before the literal (
SQL Server to PostgreSQL)
Bug fix - When converting DATEDIFF enclose expression with () before casting to TIMESTAMP like
f() + … to (
f() || … )::TIMESTAMP (
SQL Server to PostgreSQL)
Bug fix - Parsing ON UPDATE CURRENT_TIMESTAMP() in CREATE TABLE (from MySQL, MariaDB)
Bug fix - Converting CURRENT_TIMESTAMP() to CURRENT_TIMESTAMP (from MySQL, MariaDB to Oracle)
Bug fix - Parsing storage options for CREATE TABLE (ENGINE, AUTO_INCREMENT, CHARSET etc.) (from MariaDB)
Released on September 10, 2023.
Converting
LISTAGG function to STRING_AGG function supporting ORDER BY conversion (Oracle to PostgreSQL)
Converting
FROM_TZ function to AT TIME ZONE expression (Oracle to
SQL Server)
AT TIME ZONE timezone name conversion support i.e. 'EST' to 'Eastern Standard Time' (Oracle, PostgreSQL to
SQL Server)
Removing 'NLS_DATE_LANGUAGE = language' when converting TO_DATE and TO_CHAR functions (from Oracle)
Converting TRUNC(
exp, 'MI') to CONVERT(DATETIME, CONVERT(VARCHAR(16),
exp, 120) + ':00') (from Oracle to
SQL Server)
Converting TRUNC(
exp, 'MONTH') and TRUNC(
exp, 'MON') to CONVERT(DATETIME, CONVERT(VARCHAR(7),
exp, 120) + '-01') (from Oracle to
SQL Server)
Converting EXTRACT(HOUR FROM
datetime) function to DATEPART(HOUR,
datetime) (Oracle to
SQL Server)
Converting EXTRACT(MINUTE FROM
datetime) function to DATEPART(MINUTE,
datetime) (Oracle to
SQL Server)
Converting TO_CHAR(
exp, 'MON-YYYY') to REPLACE(RIGHT(CONVERT(VARCHAR(11),
exp, 106), 8), ' ', '-') (Oracle to
SQL Server)
Converting TO_CHAR(
exp, 'MM/DD/YYYY') to CONVERT(VARCHAR(10),
exp, 101) (Oracle to
SQL Server)
Converting INSERT
table statement to INSERT INTO
table statement (
SQL Server, MySQL to Oracle, IBM DB2)
Converting positional GROUP BY 1, 2, 3 to GROUP BY with SELECT expressions (to
SQL Server)
Converting specific
OUTER join to ANSI
SQL LEFT OUTER JOIN (from Informix)
Converting PRIMARY KEY (c1, c2, …) CONSTRAINT schema.name to CONSTRAINT name PRIMARY KEY (c1, c2, …) (from Informix)
Bitwise BITAND function to & (AND) operator conversion (Oracle to
SQL Server)
Removing NO ORDER clause from GENERATED AS IDENTITY (from IBM DB2)
Removing ORGANIZE BY ROW clause in CREATE TABLE (from IBM DB2)
Removing INCLUDE NULL KEYS from CREATE INDEX options (from IBM DB2)
Removing the schema name when converting CREATE INDEX statement (to PostgreSQL)
Bug fix - Parsing 'NLS_DATE_LANGUAGE = language' in TO_CHAR function (from Oracle)
Bug fix - Converting TO_TIMESTAMP(
string, 'YYYY-MM-DD HH24:MI:SS.FF3') to CONVERT(DATETIME,
string) (Oracle to
SQL Server)
Bug fix - Converting TO_DATE(
string, 'MM/DD/YYYY') to CONVERT(DATETIME,
string) (Oracle to
SQL Server)
Bug fix - CROSS JOIN clause parser
Bug fix - Convering AFTER UPDATE, INSERT, DELETE events to AFTER UPDATE OR INSERT OR DELETE in triggers (
SQL Server to PostgreSQL)
Bug fix - Moving ON
table AFTER INSERT after the trigger event AFTER INSERT ON
table in CREATE TREIGGER conversion (
SQL Server to PostgreSQL)
Bug fix - Adding FOR EACH ROW when converting triggers (
SQL Server to PostgreSQL)
Released on July 25, 2023.
Converting JSON_VALUE function to JSONB_PATH_QUERY function (Oracle to PostgreSQL)
Using TRIM available since
SQL Server 2017 by default and convert to RTRIM(LTRIM(
string) is version is lower than 2017 (to
SQL Server)
Converting TRUNC(datetime) to DATE_TRUNC('day', datetime) (Oracle to PostgreSQL)
Parsing CONNECT_BY_ROOT and CONNECT_BY_ISLEAF hierarchical query functions (from Oracle)
Conversion errors section conversion_errors in the assessment report template sqlines_report.tpl
Conversion warnings section conversion_warnings in the assessment report template sqlines_report.tpl
Converting STRING data type to TEXT (Hive to PostgreSQL)
Parsing STORED AS type clause (from Hive)
Converting FROM_UNIXTIME(epoch) function to TO_TIMESTAMP(epoch) (Hive, Spark to Snowflake)
Converting LIMIT offset, rows to OFFSET offset ROWS FETCH NEXT rows ROWS ONLY (MySQL to Oracle)
Parsing UPDATE t INNER JOIN t2 ON … SET … WHERE statement (from MySQL)
Converting UPDATE t INNER JOIN … statement to UPDATE FROM (MySQL to PostgreSQL)
Converting MERGE to MERGE INTO statement (
SQL Server to PostgreSQL)
Converting
DATEPART function to DATE_PART (
SQL Server to PostgreSQL)
Bug fix - Not adding an alias for FROM (t1 JOIN t2 …) clauses (Oracle to
SQL Server, PostgreSQL)
Bug fix - Redundant ( could be added when converting MONTHS_BETWEEN to DATEDIFF(MONTH, …) when
-udf_months_between=no is set (Oracle to
SQL Server)
Bug fix - Converting SYSDATE to CURRENT_TIMESTAMP(0), was CURRENT_TIMESTAMP (Oracle to PostgreSQL)
Bug fix - Converting CONNECT BY PRIOR with preceeding UNION ALL clause (from Oracle)
Bug fix - Converting DECODE with NULL condition to searched CASE expression (from Oracle)
Bug fix - SELECT statements in SELECT expression list of other SELECT statements were reported as standalone SELECT statements (Assessment Report)
Bug fix - Converting session variables @var to local variables v_var when there are no any declaration in source procedure (from MySQL)
Bug fix - Parsing qualified identifiers having spaces around dot (.)
Bug fix - Determing object type (procedure or function) when converting DENY EXECUTE to REVOKE EXECUTE ON PROCEDURE | FUNCTION (
SQL Server to PostgreSQL)
Bug fix - DATEADD to INTERVAL expression conversion if an expression is added (not a single number) (
SQL Server to PostgreSQL)
Bug fix - DATEADD to INTERVAL expression conversion for
ss and
mi units (
SQL Server to PostgreSQL)
Released on July 09, 2023.
Converting
JSON_TABLE function (Oracle to PostgreSQL)
Converting
PIVOT clause to CASE expressions with aggregations (
SQL Server to PostgreSQL)
Converting
CONNECT BY with multiple tables to recursive CTE (from Oracle)
Converting EXCEPTION WHEN NO_DATA_FOUND to IF @@FETCH_STATUS <> 0 BEGIN … END block (Oracle to
SQL Server)
Parsing CREATE FUNCTION with optional BEGIN-END keywords (from Sybase ASE)
Converting AUTO_INCREMENT to GENERATED ALWAYS AS IDENTITY by default (MySQL to PostgreSQL)
Convering CALL sp_name from another stored procedure to PERFORM sp_name (MySQL to PostgreSQL)
Converting session variables @var to local variables if they are initialized within the stored procedure (MySQL to PostgreSQL)
Removing alias when converting simple form of UPDATE
tab alias SET
alias.col… WHERE
alias.col… (Oracle to
SQL Server)
Removing NO ALLOW REVERSE SCANS from CREATE INDEX (from IBM DB2)
Converting SET CURRENT SCHEMA = name to SET SCHEMA 'name' (IBM DB2 to PostgreSQL)
Converting SET CURRENT PATH to SET search_path TO (IBM DB2 to PostgreSQL)
Converting SIGNAL SQLSTATE 'sqlstate' ('message') to RAISE EXCEPTION SQLSTATE 'sqlstate' USING MESSAGE = 'message' (IBM DB2 to PostgreSQL)
Removing NO CASCADE option in CREATE TRIGGER (from IBM DB2)
Converting PRINT statement to RAISE NOTICE (
SQL Server to PostgreSQL)
Converting EXEC sp_executesql to EXECUTE USING (
SQL Server to PostgreSQL)
Converting BREAK statement to exit from a loop to EXIT (
SQL Server to Oracle, PostgreSQL)
Using smaller number of REFCURSOR when converting result sets in IF ELSE branches (
SQL Server to PostgreSQL)
-column_name_quotes option to quote column identifiers
-object_name_quotes option to quote object name identifiers (schemas, tables, views, aliases etc.)
-object_name_case option to convert object names (tables i.e.) to upper or lower case in DDL scripts
-column_name_case option to convert column names to upper or lower case in DDL scripts
-pg_use_function_single_result_set option to convert result sets returned from stored procedure to RETURN QUERY (
SQL Server, Sybase, MySQL to PostgreSQL)
Parsing PRINT statement with format and parameters (from Sybase)
Parsing READ_ONLY option in DECLARE CURSOR (from
SQL Server)
Converting GETUTCDATE() to CURRENT_TIMESTAMP(3) AT TIME ZONE 'UTC' (
SQL Server to PostgreSQL)
Converting DENY EXECUTE ON
name TO
role to REVOKE EXECUTE ON PROCEDURE
name FROM
role (
SQL Server to PostgreSQL)
Parsing PIVOT clause (from
SQL Server)
Bug fix - SELECT … INTO
var conversion to SELECT
@var = … (wrong location of variable) (Oracle to
SQL Server)
Bug fix - Adding (cur REFCURSOR) when a stored procedure has empty parameter list () (MySQL to PostgreSQL)
Bug fix - Adding END at the end of trigger block to single statement triggers (to PostgreSQL)
Bug fix - Adding () around parameters when converting EXECUTE
sp_name @parm = @value with single parameter (
SQL Server to PostgreSQL)
Bug fix - Parsing SELECT
@var = (…) for non-SELECT assignment expressions starting with open parenthesis (from
SQL Server, Sybase)
Bug fix - Outer join (+) conversion for 3 and more table when condition goes right after WHERE clause (from Oracle)
Released on June 26, 2023.
Converting
CASE statement to IF statement (from IBM DB2, Oracle to
SQL Server)
Converting
HEX function to CONVERT expressions (from IBM DB2 to
SQL Server)
Converting
TRANSLATE function changing the order of parameters and dealing with short replacement string (IBM DB2 to
SQL Server)
Converting
LISTAGG function STRING_AGG (Oracle to
SQL Server)
Converting CHAR(
string, num) function to CAST(
string AS CHAR(
num)) (IBM DB2 to
SQL Server)
Converting ROUND(
num) with single parameter to ROUND(
num, 0) (to
SQL Server)
Converting EXTRACT(SECOND FROM
datetime) to DATEPART(SECOND,
datetime) (Oracle to
SQL Server)
Converting TO_CHAR(expr) without format to expr::text (Oracle to PostgreSQL)
Converting
STR function to TO_CHAR with the corresponding format (
SQL Server to Oracle, PostgreSQL)
Converting NOCACHE, NOORDER, NOCYCLE and MAXVALUE options of
CREATE SEQUENCE statement (Oracle to
SQL Server)
Removing () when converting INSERT … (SELECT …) (from Oracle to
SQL Server)
Parsing DENY EXECUTE ON statement (from
SQL Server)
Bug fix - Converting parameters to
@param if they were defined as
“param” but later referenced as
param (to
SQL Server)
Bug fix - Parsing SELECT
@ret = exp FROM … assignment (from Sybase
SQL Anywhere)
Bug fix - Parsing legacy outer join operators *= and =* in WHERE clause (from Sybase
SQL Anywhere)
Bug fix - Parsing ORDER BY clause in XMLAGG function (from IBM DB2, Oracle)
Bug fix - Parsing INHERIT ISOLATION LEVEL WITH | WITHOUT LOCK REQUEST clause in CREATE FUNCTION (from IBM DB2)
Bug fix - Parsing CONVERT(FLOAT,
expr) function (from
SQL Server)
Bug fix - Parsing CONVERT(DECIMAL(
p,s,
expr) function (from
SQL Server)
Bug fix - Converting CONVERT(DATETIME,
expr) to CAST(
expr AS TIMESTAMP(3)) (
SQL Server to PostgreSQL)
Bug fix - Converting CONVERT(BIT,
expr) to CAST(
expr AS BOOLEAN) (
SQL Server to PostgreSQL)
Bug fix - Redandant END IF was added for IF … ELSE IF … conversion (
SQL Server to PostgreSQL)
Released on May 29, 2023.
Converting STUFF function with SELECT … FOR
XML PATH to GROUP_CONCAT (
SQL Server to MariaDB, MySQL) and LISTAGG (
SQL Server to Oracle)
Converting BEGIN CATCH to DECLARE CONTINUE HANDLER FOR SQLEXCEPTION (
SQL Server to MariaDB, MySQL)
Remove options NOKEEP, NOSCALE, GLOBAL from CREATE SEQUENCE (Oracle to PostgreSQL)
Converting sequence options for GENERATED AS IDENTITY in CREATE TABLE statement (Oracle to PostgreSQL)
Converting conditional predicate UPDATING to TG_OP = 'UPDATE' in CREATE TRIGGER (Oracle to PostgreSQL)
Converting REFERENCING NEW AS … OLD AS … to REFERENCING NEW TABLE AS … OLD TABLE AS … (Oracle to PostgreSQL)
Not adding
p_ parameter prefix when converting parameters starting from
@p_ (from
SQL Server, Sybase)
Parsing standalone hint specified without WITH keword i.e.
SELECT * FROM orders (NOLOCK) (from
SQL Server)
Converting date and time literals TIMESTAMP '2023-05-23 09:30:00' to { ts '2023-05-23 09:30:00' } (Oracle to
SQL Server)
Removing OR REPLACE and terminating / when converting CREATE OR REPLACE TYPE statement (Oracle to PostgreSQL)
-udf_months_between option to define whether to use UDF to implement Oracle MONTHS_BETWEEN function in
SQL Server or simplified conversion to DATEDIFF(MONTH, …) that produces different result (Oracle to
SQL Server)
Removing WITH READ ONLY clause from CREATE VIEW (Oracle to MariaDB Oracle compatibility mode)
Bug fix - Removing constraint name for inline named NOT NULL constraints in CREATE TABLE (Oracle to MariaDB Oracle compatibility mode)
Bug fix - Oracle (+) outer join conversion when the order of tables/columns in FROM and WHERE clauses is different and LEFT/RIGHT join type was not correct (from Oracle)
Bug fix - Changing column reference in trigger for redefined NEW i.e. from :NEWROW.c1 to NEWROW.c1 (Oracle to PostgreSQL)
Bug fix - Scanning sub-directories for searching files specified by -in option
Bug fix - Removing MAX when converting CONVERT(NVARCHAR(MAX),
string) to CONVERT(
string, CHAR) (from
SQL Server to MariaDB, MySQL)
Bug fix - Converting CURRENT_DATE that includes time part (Oracle to
SQL Server)
Bug fix - Convertng TRUNC(CURRENT_DATE) expression (Oracle to
SQL Server)
Bug fix - Converting TRUNC(
number) to FLOOR (Oracle to
SQL Server)
Bug fix - Fixing IF BEGIN … END; ELSE IF … parser when END followed by optional semicolon (;) (from
SQL Server)
Bug fix - Replacing PL/
SQL delimiter / with // and resetting DELIMITER ; in CREATE PROCEDURE (Oracle to MariaDB Compatibility mode)
Bug fix - Fixing error “Error writing output” when converting a single file and -out specifies the existing directory
Released on March 22, 2023.
Generating function that RETURNS TRIGGER when converting CREATE TRIGGER (Oracle to PostgreSQL)
Converting RAISE_APPLICATION_ERROR to RAISE EXCEPTION (Oracle to PostgreSQL)
Converting GETDATE() + 1.1 (decimal expressions) to INTERVAL expressions (
SQL Server to MySQL, MariaDB, SingleStore)
Converting SELECT statements returning result sets in stored procedures to DECLARE CURSOR WITH RETURN and OPEN cursor statements (
SQL Server, Sybase, MySQL to DB2)
Recognizing pattern IF EXISTS (SELECT * FROM sysobjects WHERE … OBJECTPROPERTY(id, N'ISPROCEDURE') = 1) DROP PROCEDURE (from
SQL Server)
Recognizing pattern IF EXISTS (SELECT * FROM sysobjects WHERE … OBJECTPROPERTY(id, N'ISVIEW') = 1) DROP VIEW (from
SQL Server)
Adding explicit casting when converting '0' < 1 string-number comparison (Oracle to PostgreSQL)
Adding Azure Synapse as target database
Adding code snippets for non-
ASCII identifiers in the assessment report
Converting RPAD function (Oracle, MySQL, PostgreSQL, Netezza to
SQL Server, Synapse)
Converting PRIMARY KEY to PRIMARY KEY NONCLUSTERED NOT ENFORCED (to Synapse)
Converting UNIQUE constraint to UNIQUE NOT ENFORCED (to Synapse)
Removing schema name in DROP TRIGGER and CREATE TRIGGER statements (to PostgreSQL)
Adding table name to DROP TRIGGER (to PostgreSQL)
Converting SQLCODE to SQLSTATE (Oracle to PostgreSQL)
Converting conditional predicate INSERTING to TG_OP = 'INSERT' in CREATE TRIGGER (Oracle to PostgreSQL)
Converting DATETIME2(
p) to TIMESTAMP(
p) (
SQL Server to Snowflake)
Parsing and commenting ORGANIZATION EXTERNAL clause in CREATE TABLE (from Oracle)
Commenting GLOBAL TEMPORARY in CREATE TABLE (to
SQL Server)
Moving NOT NULL constraint from ALTER TABLE … MODIFY (
column NOT NULL ENABLE) to CREATE TABLE statement (Oracle to
SQL Server)
Renaming primary constraint name if it is the same as an index name defined on the table (to
SQL Server)
Changing the data type of the foreign key column to match the data type of the primary key column (to
SQL Server)
Adding NOT NULL constraints explicitly for primary key columns (Oracle to
SQL Server)
Bug fix - Parsing declaration block in CREATE TRIGGER (Oracle to PostgreSQL)
Bug fix - Not specifying INTERVAL DAY literal precision when used in PL/
SQL code (to Oracle)
Bug fix - Converting DATEADD(HH,
datetime) function (
SQL Server, Sybase to Oracle, PostgreSQL)
Bug fix - Removing function name after END function if CREATE FUNCTION has the qualified name schema.function (Oracle to PostgreSQL)
Bug fix - Handling UTF-8 0xC2A0 sequence (non-breaking space) in the source scripts as it broke the
SQL parser
Bug fix - Converting :NEW.column and :OLD.column references to NEW.column and OLD.column in CREATE TRIGGER (Oracle to PostgreSQL)
Bug fix - Adding PERFORM for procedure call within a trigger (Oracle to PostgreSQL)
Bug fix - Converting enclosed [
schema]] name (
SQL Server to Snowflake)
Bug fix - Removing schema name from index when the schema name mapping is applied (to
SQL Server, MariaDB, MySQL)
Bug fix - Parsing USING INDEX for primary key columns (from Oracle)
Released on February 15, 2023.
Dynamic
SQL conversion referenced in EXEC statements (from
SQL Server, Sybase)
Moving in-place declarations to DECLARE section of BEGIN-END block (to Oracle)
Converting BEGIN CATCH to EXCEPTION WHEN OTHERS block (
SQL Server to SingleStore)
Converting RAISERROR function to RAISE USER_EXCEPTION (
SQL Server to SingleStore)
Convert FORMAT function to DATE_FORMAT (
SQL Server to MySQL, MariaDB, SingleStore)
Commenting SET XACT_ABORT ON statement in stored procedures (
SQL Server to Singlestore)
Commenting SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED | COMMITTED in stored procedures (
SQL Server to Singlestore)
Converting EXEC
sp_name params procedure call into
sp_name(params) (
SQL Server, Sybase to Oracle)
Parsing FORWARD_ONLY and STATIC cursor options in DECLARE CURSOR statement (from
SQL Server)
Converting pattern IF EXISTS (SELECT * FROM sys.objects … ) DROP TRIGGER (from
SQL Server)
Converting patterns IF EXISTS (SELECT * FROM sysobjects … ) DROP … (from
SQL Server)
Converting
SQL*Plus EXECUTE to CALL statement with named parameters (Oracle to PostgreSQL)
Parsing ALTER TABLE ADD column for adding multiple columns in single statement (from Oracle)
Parsing FOREIGN KEY
name (
columns) syntax (from DB2 z/
OS)
Allowing to define empty prefix for -tsql_parameters_prefix option by specifying ”” or '' value
Commenting COLLATE
name clause for expressions (from
SQL Server)
Bug fix - Not adding FROM
dual when converting SELECT
@var=expr to
v_var := expr (
SQL Server, Sybase to Oracle)
Bug fix - Removing constraint name for inline named NOT NULL constraints in CREATE TABLE (Oracle to MySQL)
Bug fix - Converting DECLARE
@tab AS TABLE to CREATE GLOBAL TEMPORARY TABLE (
SQL Server to Oracle)
Bug fix - Replace comma (,) with semicolon (;) when converting SELECT
@var = exp, @var2 = exp2, … to
var := exp; @var2 = exp2 (
SQL Server, Sybase to Oracle, PostgreSQL)
Bug fix - Parsing CROSS APPLY join when AS keyword is not specified before the alias (from any database supporting CROSS APPLY)
Bug fix - DATEADD(
dd, num, exp) conversion - replace DD with DAY in interval expression (
SQL Server, Sybase to Oracle)
Bug fix - Parsing ELSE clause when converting IF @@ERROR <> 0 to EXCEPTION block (
SQL Server to Oracle)
Bug fix - Removing DEALLOCATE cursor statement if semicolon (;) follows CLOSE
cursor (from
SQL Server)
Bug fix - Parsing WITH (NOLOCK) for multi-table FROM without table aliases (from
SQL Server)
Bug fix - Converting
#tmp.column identifiers referencing temporary tables (from
SQL Server, Sybase)
Bug fix - Converting enclosed table alias
[alias] (from
SQL Server, Sybase)
Bug fix - Adding semicolon (;) when converting END CATCH to END; (
SQL Server to SingleStore)
Bug fix - Converting enclosed identifiers for temporary tables
[#tmp] (from
SQL Server)
Bug fix - Parsing SELECT * INTO
table FROM
table2 for non-temporary tables (from
SQL Server, Sybase)
Released on February 07, 2023.
-ident option to transform the identifiers using the specified template
Converting INSTR function with 4 parameters to CHARINDEX if the 4th parameter has value of 1 (i.e. to find the first occurrence) (Oracle to
SQL Server)
Outer join syntax (+) conversion for more than 2 tables (from Oracle)
Data type mapping (sqlines_dtmap.txt) for various combinations of length and scale for numeric data types
Reporting syntax errors with code snippets in sqlines_report.html file when -a assessment option is specified
Adding OR REPLACE when converting CREATE PROCEDURE statement (to SingleStore)
Removing IN, commenting OUT parameter specifiers for stored procedures (MySQL to SingleStore)
Removing LANGUAGE
SQL, NOT DETERMINISTIC, READS
SQL DATA and COMMENT clauses when converting stored procedures and user-defined functions (from MySQL)
Moving declarations before BEGIN-END block (MySQL to SingleStore)
Converting USE
db_name to SET SCHEMA
name (
SQL Server to DB2)
Removing GO statement from CREATE PROCEDURE (
SQL Server to DB2)
Converting IDENTITY property to GENERATED ALWAYS AS IDENTITY (
SQL Server, Sybase to DB2)
Removing ASC, DESC column sorting from PRIMARY KEY constraints (
SQL Server to DB2)
Parsing SELECT … FROM … WHERE … INTO variables clause (INTO at the end of statement) (from MySQL)
Converting SELECT statements returning result sets to ECHO SELECT (
SQL Server, MySQL to SingleStore)
Released on January 31, 2023.
-remd option to remove database name in 3-part identifiers (from
SQL Server, Sybase)
Commenting foreign key constraints in CREATE TABLE (to SingleStore)
Converting _utf8mb4'string' string literals to _utf8'string' (MySQL to SingleStore)
COMMENT ON TABLE conversion (to
SQL Server)
Bug fix:
INSTR to dbo.INSTR4 UDF conversion (Oracle to
SQL Server)
Bug fix: FOR i IN k..m range loop (from Oracle)
Bug fix:
-smap schema mapping option
Bug fix: ALTER TABLE
name ADD
col type - removing GO (from
SQL Server)
Bitwise & (AND) operator to BITAND function (
SQL Server to Oracle)
Bug fix: DROP FUNCTION statement parser
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'FN' …) DROP FUNCTION pattern recognition (from
SQL Server)
Bug fix: NVARCHAR(MAX) to NCLOB conversion (
SQL Server to Oracle)
Bug fix: Removing size for NVARCHAR(n) in parameters for procedures and functions (to Oracle)
Bug fix: Parser CREATE FUNCTION … RETURNS @tab TABLE (cols) column definitions (from
SQL Server)
Removing WITH ENCRYPTION, SCHEMABINDING options in CREATE FUNCTION (from
SQL Server)
Bug fix: Parser rules fix - OPEN keyword cannot be an column alias (from
SQL Server)
Removing OPTION (MAXRECURSION
num) query hint (from
SQL Server)
Parsing ENUM data type (from MySQL)
Parsing SET data type (from MySQL)
Parsing FULLTEXT index in CREATE TABLE (from MySQL)