{"id":494,"date":"2010-07-28T21:17:35","date_gmt":"2010-07-29T02:17:35","guid":{"rendered":"http:\/\/www.dpriver.com\/blog\/?p=494"},"modified":"2011-09-26T21:48:27","modified_gmt":"2011-09-27T02:48:27","slug":"datetypes-conversion-between-oracle-and-sql-server","status":"publish","type":"post","link":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/","title":{"rendered":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings"},"content":{"rendered":"<p>Datatypes translation is one of the most important things you need to consider when migrate your application from one database to the other.  This is one of the series of articles that we talking about <a href=\"http:\/\/www.dpriver.com\/blog\/list-of-demos-illustrate-how-to-use-general-sql-parser\/translate-sql-query-between-different-databases\/\">translate SQL query among different databases.<\/a><\/p>\n<p>\nThis article will focused on conversion of those datatypes: character, binary strings between Oracle and SQL Server. We will talk about conversion of other datatypes such as nunber, float, date and etc in other articles later.\n<\/p>\n<p>\nWhen you convert character datatypes from Oracle to SQL Server or vice verse, you not only need to find corresponding datatype name but also need to find out how string was stored in database. Is this string stored in  character or byte? and you must be aware of the maximum length of datatype in source and target databases.\n<\/p>\n<p>\nIn SQL Server, char [ ( n ) ] is fixed-length, non-Unicode character data with a length of n bytes. n must be a value from 1 through 8,000. You can easily find corresponding datatype name &#8220;char&#8221; in Oracle, but char in oracle with a maximum length of 2000 bytes. So you can&#8217;t  migrate char(2048) in your SQL Server script to  Oracle without any changes, you should use clob instead if n > 2000.\n<\/p>\n<p>\nIn Oracle database, char[(size)] can be also be used in fixed-length character data of length size in characters. When you use char qualifier, for example char(10 char), then you supply the column length in characters. A character is technically a code point of the database character set. Its size can range from 1 byte to 4 bytes, depending on the database character set. When translate this datatype to SQL Server, target datatype can be char(10) or char(40) depends on the database character set in source database(Oracle).\n<\/p>\n<p>\nDetailed information about <a href=\"http:\/\/www.dpriver.com\/blog\/list-of-demos-illustrate-how-to-use-general-sql-parser\/translate-sql-query-between-different-databases\/oracle-datatypes\/\">Oracle datatypes<\/a> and <a href=\"http:\/\/www.dpriver.com\/blog\/list-of-demos-illustrate-how-to-use-general-sql-parser\/translate-sql-query-between-different-databases\/sql-server-datatypes\/\">SQL Server datatypes<\/a>:  including datatype name, description and what&#8217;s the corresponding datatype in other databases.\n<\/p>\n<p>\nBelow are summary tables show how Character and binary string datatypes translated from Oracle to SQL Server and vice verse.\n<\/p>\n<div id=\"comparet\">\n<table>\n<tr>\n<td>Oracle(source)<\/td>\n<td>SQL Server(target)<\/td>\n<\/tr>\n<tr>\n<td>CHAR [(size [BYTE | CHAR])]<\/td>\n<td>char[(size)]<\/td>\n<\/tr>\n<tr>\n<td>VARCHAR2(size [BYTE | CHAR])<\/td>\n<td>varchar(size)<\/td>\n<\/tr>\n<tr>\n<td>NCHAR[(size)]<\/td>\n<td>nchar[(size)]<\/td>\n<\/tr>\n<tr>\n<td>NVARCHAR2(size)<\/td>\n<td>nvarchar(size)<\/td>\n<\/tr>\n<tr>\n<td>long<\/td>\n<td>varchar(max)<\/td>\n<\/tr>\n<tr>\n<td>long raw<\/td>\n<td>varbinary(max)<\/td>\n<\/tr>\n<tr>\n<td>raw(size)<\/td>\n<td>varbinary(size)<\/td>\n<\/tr>\n<tr>\n<td>blob<\/td>\n<td>varbinary(max)<\/td>\n<\/tr>\n<tr>\n<td>clob<\/td>\n<td>varchar(max)<\/td>\n<\/tr>\n<tr>\n<td>nclob<\/td>\n<td>ntext<\/td>\n<\/tr>\n<tr>\n<td>bfile<\/td>\n<td>N\/A<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>\nHow Character and binary string datatypes translated from SQL Server to Oracle.\n<\/p>\n<div id=\"comparet\">\n<table>\n<tr>\n<td>SQL Server(source)<\/td>\n<td>Oracle(target)<\/td>\n<\/tr>\n<tr>\n<td>char [ ( n ) ] <\/td>\n<td>char[(n)], 1<=n<=2000; clob, n>2000<\/td>\n<\/tr>\n<tr>\n<td>varchar [ ( n | max ) ] <\/td>\n<td>varchar2(n), 1<=n<=4000; clob (n>4000)<\/td>\n<\/tr>\n<tr>\n<td>text<\/td>\n<td>clob<\/td>\n<\/tr>\n<tr>\n<td>nchar [ ( n ) ] <\/td>\n<td>nchar[(n)], 1<=n<=2000; nclob(n>2000)<\/td>\n<\/tr>\n<tr>\n<td>nvarchar [ ( n | max ) ]<\/td>\n<td>nvarchar2[(n)], 1<=n<=4000; nclob( n>4000 )<\/td>\n<\/tr>\n<tr>\n<td>ntext<\/td>\n<td>nclob<\/td>\n<\/tr>\n<tr>\n<td>binary [ ( n ) ]<\/td>\n<td>raw(1)(n was omitted); raw(n), 1<=n<=2000; blob(n>2000)<\/td>\n<\/tr>\n<tr>\n<td>varbinary [ ( n | max) ] <\/td>\n<td>raw(1)(n was omitted); raw(n), 1<=n<=2000; blob(n>2000)<\/td>\n<\/tr>\n<tr>\n<td>image<\/td>\n<td>blob<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>\n&nbsp;<br \/>\nReference:<br \/>\n1. <a href=\"http:\/\/www.dpriver.com\/blog\/list-of-demos-illustrate-how-to-use-general-sql-parser\/translate-sql-query-between-different-databases\/oracle-datatypes\/\">Oracle datatypes<\/a><br \/>\n2. <a href=\"http:\/\/www.dpriver.com\/blog\/list-of-demos-illustrate-how-to-use-general-sql-parser\/translate-sql-query-between-different-databases\/sql-server-datatypes\/\">SQL Server datatypes<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Datatypes translation is one of the most important things you need to consider when migrate your application from one database to the other. This is one of the series of articles that we talking about translate SQL query among different databases. This article will focused on conversion of those datatypes: character, binary strings between Oracle and SQL Server. We will talk about conversion of other datatypes such as nunber, float, date and etc in other articles later. When you convert character datatypes from Oracle to SQL Server or vice verse, you not only need to find corresponding datatype name but\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16,25,17],"tags":[23],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Datatypes translation between Oracle and SQL Server part 1: character, binary strings<\/title>\n<meta name=\"description\" content=\"Datatypes translation between Oracle and SQL Server part 1: character, binary strings\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datatypes translation between Oracle and SQL Server part 1: character, binary strings\" \/>\n<meta property=\"og:description\" content=\"Datatypes translation between Oracle and SQL Server part 1: character, binary strings\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL and Data Blog\" \/>\n<meta property=\"article:published_time\" content=\"2010-07-29T02:17:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-09-27T02:48:27+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\",\"name\":\"SQL and Data Blog\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"contentUrl\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"width\":251,\"height\":72,\"caption\":\"SQL and Data Blog\"},\"image\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"name\":\"SQL and Data Blog\",\"description\":\"SQL related blog for database professional\",\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/\",\"name\":\"Datatypes translation between Oracle and SQL Server part 1: character, binary strings\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\"},\"datePublished\":\"2010-07-29T02:17:35+00:00\",\"dateModified\":\"2011-09-27T02:48:27+00:00\",\"description\":\"Datatypes translation between Oracle and SQL Server part 1: character, binary strings\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.dpriver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Datatypes translation between Oracle and SQL Server part 1: character, binary strings\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7\"},\"headline\":\"Datatypes translation between Oracle and SQL Server part 1: character, binary strings\",\"datePublished\":\"2010-07-29T02:17:35+00:00\",\"dateModified\":\"2011-09-27T02:48:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/\"},\"wordCount\":406,\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"keywords\":[\"sql translate\"],\"articleSection\":[\"reference\",\"sql\",\"translation\"],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/www.dpriver.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings","description":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings","og_description":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings","og_url":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/","og_site_name":"SQL and Data Blog","article_published_time":"2010-07-29T02:17:35+00:00","article_modified_time":"2011-09-27T02:48:27+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.dpriver.com\/blog\/#organization","name":"SQL and Data Blog","url":"https:\/\/www.dpriver.com\/blog\/","sameAs":[],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","contentUrl":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","width":251,"height":72,"caption":"SQL and Data Blog"},"image":{"@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.dpriver.com\/blog\/#website","url":"https:\/\/www.dpriver.com\/blog\/","name":"SQL and Data Blog","description":"SQL related blog for database professional","publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/","url":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/","name":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/#website"},"datePublished":"2010-07-29T02:17:35+00:00","dateModified":"2011-09-27T02:48:27+00:00","description":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings","breadcrumb":{"@id":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dpriver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings"}]},{"@type":"Article","@id":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/#article","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/"},"author":{"name":"admin","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7"},"headline":"Datatypes translation between Oracle and SQL Server part 1: character, binary strings","datePublished":"2010-07-29T02:17:35+00:00","dateModified":"2011-09-27T02:48:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dpriver.com\/blog\/datetypes-conversion-between-oracle-and-sql-server\/"},"wordCount":406,"publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"keywords":["sql translate"],"articleSection":["reference","sql","translation"],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/www.dpriver.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/494"}],"collection":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/comments?post=494"}],"version-history":[{"count":34,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/494\/revisions"}],"predecessor-version":[{"id":1015,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/494\/revisions\/1015"}],"wp:attachment":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media?parent=494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/categories?post=494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/tags?post=494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}