Names for database objects, columns, variables etc.
| First character | Alphabetical | |
| Subsequent characters | Alphanumeric, _ (underscore), # (pound sign) and $ (dollar) | |
| Database links | Can contain @ (at sign) and . (period) | |
| Identifier quote character | " (double quotes) | |
Maximum length:
| Tables, columns, indexes, views, procedures, triggers, constraints | 30 |
| Databases | 8 |
| Database links | 128 |
Namespaces:
| Table constraints names | Must be unique within the schema |
Migrating database schema objects:
| Oracle | Microsoft SQL Server |
| Tables | Different data types, storage clauses |
| Materialized Views | |
| Sequences | Sequences are available since SQL Server 2012, syntax differences |
| Function-Based Indexes | Indexes on Computed Columns and Collation for Case-Insensitive Search |
| Triggers | PL/SQL to Transact-SQL conversion, significant redesign |
Converting Oracle SQL and PL/SQL language elements to SQL Server.
| Oracle | Microsoft SQL Server | ||
| Hexadecimal Constants | 0xhhhh | ||
| PRAGMA AUTONOMOUS_TRANSACTION | Loopback linked server |
Converting data definition (DDL) options and clauses from Oracle to SQL Server.
| Oracle | Microsoft SQL Server | ||
| DEFAULT | DEFAULT | Add DEFAULT to existing table |
|
Built-in SQL functions:
| Oracle | SQL Server | ||
| CAST | Convert one built-in data type into another | ||
| EMPTY_BLOB | Create an empty BLOB value | 0x Constant (Empty binary string) | |
| EMPTY_CLOB | Create an empty CLOB or NCLOB value | '' (Empty string) | |
| EXTRACT for Datetime | Extract day, month, year etc from datetime | ||
| INITCAP | Capitalize the first letter of each word | An user-defined function | |
| INSTR | Find position of substring in string | CHARINDEX | First occurrence only, different parameter order |
| LAST_DAY | Get last date of month | EOMONTH | Since SQL Server 2012 |
| LENGTH | Get string length in characters | LEN | CHAR handled differently, excludes trailing spaces |
| LPAD | Left-pad string to the specified length | Expression using REPLICATE, RIGHT and LEFT | |
| MOD | Get the remainder of division of one number by another | % Operator | |
| NVL | Replace NULL with expression | ISNULL | |
| TRANSLATE | One-to-one single-character substitution | Expressions using REPLACE or user-defined function | |
| TRIM | Trim leading or trailing characters | LTRIM and RTRIM | |
| UNISTR | Convert Unicode code points to characters | Expressions using NCHAR | |
SQL SELECT statement keywords and clauses:
| Oracle | SQL Server |
| Outer Join Operator (+) | LEFT OUTER JOIN and RIGHT OUTER JOIN |
SQL statements:
| Oracle | Microsoft SQL Server | ||
| 1 | COMMENT ON COLUMN | EXECUTE sp_addextendedproperty | |
| 2 | COMMENT ON TABLE | EXECUTE sp_addextendedproperty | |
| 3 | CREATE SEQUENCE | CREATE SEQUENCE | Available since SQL Server 2012 |
| 4 | CREATE TABLE | CREATE TABLE | |
| 5 | CREATE TRIGGER | CREATE TRIGGER | |
Data dictionary views:
| Oracle | Microsoft SQL Server | |
| 1 | ALL_TABLES, DBA_TABLES, USER_TABLES | sys.tables |
Error messages:
| Oracle | Microsoft SQL Server | ||
| 1 | ORA-00001 | Unique constraint violated | Msg 2627, Level 14 |
Data migration issues from Oracle to SQL Server:
Articles on various migration related topics.
Data
Security and Access Control