SQLines tools can help you transfer data, convert database schema (DDL), views, stored procedures, functions, triggers, queries and SQL scripts from SAP Sybase SQL Anywhere, Sybase Adaptive Server Anywhere (ASA) to PostgreSQL (Postgres).
Databases:
Operators:
| Sybase SQL Anywhere | PostgreSQL | |||
| 1 | str1 || str2 || ... | String concatenation, NULLs ignored | CONCAT(str1, str2, ...) | str1 || str2 || ... |
Date and time data types:
| Sybase SQL Anywhere | PostgreSQL | ||
| 1 | DATE | Date (year, month and day) | DATE |
| 2 | DATETIME | Date and time with fraction | TIMESTAMP |
| 3 | DATETIMEOFFSET | Date and time with fraction and time zone | TIMESTAMP WITH TIME ZONE |
| 4 | SMALLDATETIME | Date and time with fraction | TIMESTAMP |
| 5 | TIME | Time (hour, minute, second and fraction) | TIME |
| 6 | TIMESTAMP | Date and time with fraction (microseconds) | TIMESTAMP(p) |
| 7 | TIMESTAMP WITH TIME ZONE | Date and time with fraction and time zone | TIMESTAMP WITH TIME ZONE |
Converting data types:
Other data types:
| Sybase SQL Anywhere | PostgreSQL | ||
| 1 | BIT | 0, 1 or NULL | BOOLEAN, BOOL |
| 2 | BIT VARYING(n) | Variable-length bit array, 1 ⇐ n ⇐ 32767 | BIT VARYING(n) |
| 3 | UNIQUEIDENTIFIER | 16-byte GUID (UUID) data | CHAR(16) |
| 4 | UNIQUEIDENTIFIERSTR | GUID (UUID) data in string format | UUID |
| 5 | VARBIT(n) | Variable-length bit array, 1 ⇐ n ⇐ 32767 | VARBIT(n) |
| 6 | XML | XML data | XML |
Converting table definitions:
| Sybase SQL Anywhere | PostgreSQL | |||
| 1 | DEFAULT AUTOINCREMENT | Autoincrement column | GENERATED BY DEFAULT AS IDENTITY | |
| 2 | AUTOINCREMENT on DECIMAL and NUMERIC columns | IDENTITY on integer columns only |
||
| 3 | DEFAULT TIMESTAMP | Auto-updated timestamp column | DEFAULT CLOCK_TIMESTAMP() and update trigger | |
Converting stored procedures:
| Sybase SQL Anywhere | PostgreSQL | ||
| 1 | CREATE ORE REPLACE PROCEDURE name | CREATE OR REPLACE PROCEDURE name | |
| 2 | IN | OUT | INOUT param datatype DEFAULT exp | IN | OUT | INOUT param datatype DEFAULT exp | |
| 3 | () required when no parameters | () required when no parameters | |
| 4 | RESULT(col datatype, ...) | Result set columns | Defined by result set query and REFCURSOR |
| 5 | Standalone SELECT | Return result set | OPEN cursor FOR SELECT |
For further information, see Conversion of Procedural Statements.
Converting user-defined functions:
| Sybase SQL Anywhere | PostgreSQL | ||
| 1 | CREATE FUNCTION name | CREATE OR REPLACE FUNCTION name | |
| 2 | (IN param datatype(length) DEFAULT default, …) | (IN param datatype(length) DEFAULT default, …) | |
| 3 | RETURNS datatype(len) | RETURNS datatype(len) | |
For further information, see Conversion of Procedural Statements.
Cursor declaration and operations:
| Sybase SQL Anywhere | PostgreSQL | |||
| 1 | FOR rec CURSOR FOR SELECT ... DO ... END FOR | Cursor loop | FOR rec IN SELECT ... LOOP ... END LOOP | |
Flow-of-control statements:
| Sybase SQL Anywhere | PostgreSQL | |||
| 1 | IF … THEN … ELSEIF … ELSE … END IF | IF statement | IF … THEN … ELSEIF … ELSE … END IF | |
Temporary tables:
| Sybase SQL Anywhere | PostgreSQL | |||
| 1 | DECLARE LOCAL TEMPORARY TABLE name (columns) | CREATE TEMPORARY TABLE name (columns) | ||
| 2 | ON COMMIT DELETE ROW | PRESERVE ROWS | ON COMMIT DELETE ROW | PRESERVE ROWS | ||
| 3 | NOT TRANSACTIONAL | Always transactional | ||
Error handling:
| Sybase SQL Anywhere | PostgreSQL | |||
| 1 | RAISERROR error_num text | Raise an error | RAISE EXCEPTION '%', text USING ERRCODE = error_num | |
Other statements:
| Sybase SQL Anywhere | PostgreSQL | |||
| 1 | MESSAGE text TYPE type TO destination | Send a message | RAISE NOTICE '%', text | |