{"id":7676,"date":"2016-05-10T14:24:08","date_gmt":"2016-05-10T12:24:08","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/"},"modified":"2016-05-10T14:24:08","modified_gmt":"2016-05-10T12:24:08","slug":"connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/","title":{"rendered":"Connecting your PostgreSQL instance to a Microsoft SQL Server instance"},"content":{"rendered":"<p>In the last posts I looked at how you can connect <a href=\"http:\/\/dbi-services.com\/blog\/connecting-your-postgresql-instance-to-an-oracle-database-the-postgresql-9-5-way\/\" target=\"_blank\" rel=\"noopener\">Oracle<\/a> and <a href=\"http:\/\/dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-mariadbmysql-instance\/\" target=\"_blank\" rel=\"noopener\">MariaDB\/MySQL<\/a> to a PostgreSQL instance. In this post I&#8217;ll do the same with a MS SQL Server instance.<\/p>\n<p><!--more--><\/p>\n<p>What you need before you can start is a library that implements the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tabular_Data_Strea\" target=\"_blank\" rel=\"noopener\">Tabular Data Stream<\/a> protocol. For Linux based systems there is <a href=\"http:\/\/www.freetds.org\/\" target=\"_blank\" rel=\"noopener\">FreeTDS<\/a>. Installation is quite easy:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgreporting:\/var\/tmp\/ [pg952] wget ftp:\/\/ftp.freetds.org\/pub\/freetds\/stable\/freetds-patched.tar.gz\npostgres@pgreporting:\/var\/tmp\/ [pg952] ls\nfreetds-patched.tar.gz\npostgres@pgreporting:\/var\/tmp\/ [pg952] tar -axf freetds-patched.tar.gz\npostgres@pgreporting:\/var\/tmp\/freetds-0.95.95\/ [pg952] ls\naclocal.m4  CMakeLists.txt  configure     doc              INSTALL       m4           mkinstalldirs  samples      vms\nAUTHORS     compile         configure.ac  freetds.conf     install-sh    Makefile.am  NEWS           src          win32\nautogen.sh  config.guess    COPYING       freetds.spec     interfaces    Makefile.in  Nmakefile      tds.dox\nBUGS        config.rpath    COPYING.LIB   freetds.spec.in  locales.conf  misc         PWD.in         test-driver\nChangeLog   config.sub      depcomp       include          ltmain.sh     missing      README         TODO\npostgres@pgreporting:\/var\/tmp\/freetds-0.95.95\/ [pg952] .\/configure \npostgres@pgreporting:\/var\/tmp\/freetds-0.95.95\/ [pg952] make\npostgres@pgreporting:\/var\/tmp\/freetds-0.95.95\/ [pg952] sudo make install\n<\/pre>\n<p>At this point in time it is advisable to test the connection to the MS SQL Server instance. FreeTDS will install a default configuration which you can adjust to fit your environment:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgreporting:\/var\/tmp\/freetds-0.95.95\/ [pg952] cat \/usr\/local\/etc\/freetds.conf\n#   $Id: freetds.conf,v 1.12 2007-12-25 06:02:36 jklowden Exp $\n#\n# This file is installed by FreeTDS if no file by the same \n# name is found in the installation directory.  \n#\n# For information about the layout of this file and its settings, \n# see the freetds.conf manpage \"man freetds.conf\".  \n\n# Global settings are overridden by those in a database\n# server specific section\n[global]\n        # TDS protocol version\n;\ttds version = 4.2\n\n\t# Whether to write a TDSDUMP file for diagnostic purposes\n\t# (setting this to \/tmp is insecure on a multi-user system)\n;\tdump file = \/tmp\/freetds.log\n;\tdebug flags = 0xffff\n\n\t# Command and connection timeouts\n;\ttimeout = 10\n;\tconnect timeout = 10\n\t\n\t# If you get out-of-memory errors, it may mean that your client\n\t# is trying to allocate a huge buffer for a TEXT field.  \n\t# Try setting 'text size' to a more reasonable limit \n\ttext size = 64512\n\n# A typical Sybase server\n[egServer50]\n\thost = symachine.domain.com\n\tport = 5000\n\ttds version = 5.0\n\n# A typical Microsoft server\n[mssql]\n\thost = 192.168.22.102\n\tport = 1433\n        database = ds2\n\ttds version = 7.3\n<\/pre>\n<p>The last block specifies the parameters for connecting to my MS SQL Server instance. Lets try:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgreporting:\/home\/postgres\/ [pg952] tsql -I \/usr\/local\/etc\/freetds.conf -S mssql -U ds2user -P xxxxx -o v\nlocale is \"LC_CTYPE=en_US.UTF-8;LC_NUMERIC=de_CH.UTF-8;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=de_CH.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=de_CH.UTF-8;LC_NAME=de_CH.UTF-8;LC_ADDRESS=de_CH.UTF-8;LC_TELEPHONE=de_CH.UTF-8;LC_MEASUREMENT=de_CH.UTF-8;LC_IDENTIFICATION=de_CH.UTF-8\"\nlocale charset is \"UTF-8\"\nusing default charset \"UTF-8\"\n1&gt; select count(*) from sys.databases;\n2&gt; go\n\nusing TDS version 7.3\n5\n(1 row affected)\nusing TDS version 7.3\n<\/pre>\n<p>Cool, works. If you wonder where the ds2user comes from then <a href=\"http:\/\/dbi-services.com\/blog\/the-almost-same-sample-schema-for-all-major-relational-databases-4-mssql\/\" target=\"_blank\" rel=\"noopener\">check this post<\/a>.<\/p>\n<p>Once this works we can proceed with installing the foreign data wrapper for <a href=\"https:\/\/github.com\/tds-fdw\/tds_fdw\" target=\"_blank\" rel=\"noopener\">Sybase \/ MS SQL Server<\/a> which is quite easy as well:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgreporting:\/home\/postgres\/ [PGREP] git clone https:\/\/github.com\/tds-fdw\/tds_fdw.git\nCloning into 'tds_fdw'...\nremote: Counting objects: 588, done.\nremote: Compressing objects: 100% (27\/27), done.\nremote: Total 588 (delta 11), reused 0 (delta 0), pack-reused 561\nReceiving objects: 100% (588\/588), 242.61 KiB | 0 bytes\/s, done.\nResolving deltas: 100% (335\/335), done.\npostgres@pgreporting:\/home\/postgres\/ [PGREP] cd tds_fdw\npostgres@pgreporting:\/home\/postgres\/tds_fdw\/ [PGREP] PATH=$PGHOME:$PATH make USE_PGXS=1\ngcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fpic -I.\/include\/ -I. -I.\/ -I\/u01\/app\/postgres\/product\/95\/db_2\/include\/server -I\/u01\/app\/postgres\/product\/95\/db_2\/include\/internal -D_GNU_SOURCE -I\/usr\/include\/libxml2   -c -o src\/tds_fdw.o src\/tds_fdw.c\ngcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fpic -I.\/include\/ -I. -I.\/ -I\/u01\/app\/postgres\/product\/95\/db_2\/include\/server -I\/u01\/app\/postgres\/product\/95\/db_2\/include\/internal -D_GNU_SOURCE -I\/usr\/include\/libxml2   -c -o src\/options.o src\/options.c\ngcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fpic -I.\/include\/ -I. -I.\/ -I\/u01\/app\/postgres\/product\/95\/db_2\/include\/server -I\/u01\/app\/postgres\/product\/95\/db_2\/include\/internal -D_GNU_SOURCE -I\/usr\/include\/libxml2   -c -o src\/deparse.o src\/deparse.c\ngcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fpic -shared -o tds_fdw.so src\/tds_fdw.o src\/options.o src\/deparse.o -L\/u01\/app\/postgres\/product\/95\/db_2\/lib -Wl,--as-needed -Wl,-rpath,'\/u01\/app\/postgres\/product\/95\/db_2\/lib',--enable-new-dtags  -lsybdb \ncp sql\/tds_fdw.sql sql\/tds_fdw--2.0.0-alpha.1.sql\ncp README.md README.tds_fdw.md\npostgres@pgreporting:\/home\/postgres\/tds_fdw\/ [PGREP] sudo PATH=$PGHOME\/bin:$PATH make USE_PGXS=1 install\n\/bin\/mkdir -p '\/u01\/app\/postgres\/product\/95\/db_2\/lib'\n\/bin\/mkdir -p '\/u01\/app\/postgres\/product\/95\/db_2\/share\/extension'\n\/bin\/mkdir -p '\/u01\/app\/postgres\/product\/95\/db_2\/share\/extension'\n\/bin\/mkdir -p '\/u01\/app\/postgres\/product\/95\/db_2\/share\/doc\/extension'\n\/bin\/install -c -m 755  tds_fdw.so '\/u01\/app\/postgres\/product\/95\/db_2\/lib\/tds_fdw.so'\n\/bin\/install -c -m 644 .\/\/tds_fdw.control '\/u01\/app\/postgres\/product\/95\/db_2\/share\/extension\/'\n\/bin\/install -c -m 644 .\/\/sql\/tds_fdw--2.0.0-alpha.1.sql  '\/u01\/app\/postgres\/product\/95\/db_2\/share\/extension\/'\n\/bin\/install -c -m 644 .\/\/README.tds_fdw.md '\/u01\/app\/postgres\/product\/95\/db_2\/share\/doc\/extension\/'\n<\/pre>\n<p>Continue with the usual steps to create the extension in your PostgreSQL instance:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres= create extension tds_fdw;\nCREATE EXTENSION\npostgres= dx\n                                                List of installed extensions\n   Name    |    Version    |   Schema   |                                    Description                                    \n-----------+---------------+------------+-----------------------------------------------------------------------------------\n mysql_fdw | 1.0           | public     | Foreign data wrapper for querying a MySQL server\n plpgsql   | 1.0           | pg_catalog | PL\/pgSQL procedural language\n tds_fdw   | 2.0.0-alpha.1 | public     | Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)\n(3 rows)\n<\/pre>\n<p>If this succeeds we&#8217;ll need to create the foreign server and the user mapping:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres= create server mssql_svr foreign data wrapper tds_fdw options ( servername '192.168.22.102', port '1433',  database 'ds2', tds_version '7.3', msg_handler 'notice' );\nCREATE schema ds2_mssql;\nCREATE USER MAPPING FOR postgres SERVER mssql_svr  OPTIONS (username 'ds2user', password 'xxxxx');\n<\/pre>\n<p>As I am lazy I want to import the foreign the schema for not needing to specify each table on my own:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres=# IMPORT FOREIGN SCHEMA ds2 FROM SERVER mssql_svr into ds2_mssql;\nERROR:  foreign-data wrapper \"tds_fdw\" does not support IMPORT FOREIGN SCHEMA\n<\/pre>\n<p>Hm, not available. This is tracked <a href=\"https:\/\/github.com\/tds-fdw\/tds_fdw\/issues\/75\" target=\"_blank\" rel=\"noopener\">here<\/a> and might be available in future versions. No other choice than to do some hand work:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ncreate foreign table ds2_mssql.customers (\n CUSTOMERID            int\n,FIRSTNAME             varchar(50)\n,LASTNAME              varchar(50)\n,ADDRESS1              varchar(50)\n,ADDRESS2              varchar(50)\n,CITY                  varchar(50)\n,STATE                 varchar(50)\n,ZIP                   int\n,COUNTRY               varchar(50)\n,REGION                int\n,EMAIL                 varchar(50)\n,PHONE                 varchar(50)\n,CREDITCARDTYPE        int\n,CREDITCARD            varchar(50)\n,CREDITCARDEXPIRATION  varchar(50)\n,USERNAME              varchar(50)\n,PASSWORD              varchar(50)\n,AGE                   int\n,INCOME                int\n,GENDER                varchar(50))\nSERVER mssql_svr\n    OPTIONS (table 'dbo.customers', row_estimate_method 'showplan_all');\n<\/pre>\n<p>Lets see if it works:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres=# select count(*) from ds2_mssql.customers;\n count  \n--------\n 200000\n(1 row)\n<\/pre>\n<p>Perfect. Have fun getting data from MS SQL Server.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the last posts I looked at how you can connect Oracle and MariaDB\/MySQL to a PostgreSQL instance. In this post I&#8217;ll do the same with a MS SQL Server instance.<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[77],"type_dbi":[],"class_list":["post-7676","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Connecting your PostgreSQL instance to a Microsoft SQL Server instance - dbi Blog<\/title>\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.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Connecting your PostgreSQL instance to a Microsoft SQL Server instance\" \/>\n<meta property=\"og:description\" content=\"In the last posts I looked at how you can connect Oracle and MariaDB\/MySQL to a PostgreSQL instance. In this post I&#8217;ll do the same with a MS SQL Server instance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-10T12:24:08+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Connecting your PostgreSQL instance to a Microsoft SQL Server instance\",\"datePublished\":\"2016-05-10T12:24:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\"},\"wordCount\":244,\"commentCount\":0,\"keywords\":[\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\",\"name\":\"Connecting your PostgreSQL instance to a Microsoft SQL Server instance - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2016-05-10T12:24:08+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connecting your PostgreSQL instance to a Microsoft SQL Server instance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Connecting your PostgreSQL instance to a Microsoft SQL Server instance - dbi Blog","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.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/","og_locale":"en_US","og_type":"article","og_title":"Connecting your PostgreSQL instance to a Microsoft SQL Server instance","og_description":"In the last posts I looked at how you can connect Oracle and MariaDB\/MySQL to a PostgreSQL instance. In this post I&#8217;ll do the same with a MS SQL Server instance.","og_url":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/","og_site_name":"dbi Blog","article_published_time":"2016-05-10T12:24:08+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Connecting your PostgreSQL instance to a Microsoft SQL Server instance","datePublished":"2016-05-10T12:24:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/"},"wordCount":244,"commentCount":0,"keywords":["PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/","url":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/","name":"Connecting your PostgreSQL instance to a Microsoft SQL Server instance - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2016-05-10T12:24:08+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Connecting your PostgreSQL instance to a Microsoft SQL Server instance"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=7676"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7676\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=7676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=7676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=7676"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=7676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}