{"id":12713,"date":"2019-08-07T16:43:25","date_gmt":"2019-08-07T14:43:25","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/"},"modified":"2023-07-17T11:17:10","modified_gmt":"2023-07-17T09:17:10","slug":"sql-server-2019-java-in-sql-server-hard-to-believe-no","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/","title":{"rendered":"SQL Server 2019: Java in SQL Server hard to believe, no?"},"content":{"rendered":"<p>It has already been a few months that we are testing the next version of SQL Server: SQL Server 2019.<br \/>\nI already blogged about a previous version of SQL Server supporting R and Python.<br \/>\nWith the new version of SQL Server 2019, Java will also be integrated.<br \/>\nThe Java runtime used is Zulu Open JRE and can be tested from the <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/sql-server\/sql-server-ver15-release-notes?view=sqlallproducts-allversions\" target=\"_blank\" rel=\"noopener noreferrer\">CTP3.2 of SQL Server 2019<\/a><\/p>\n<h3>Step 1: The installation<\/h3>\n<p>Like a lot of people, I use the GUI to install SQL Server.<br \/>\nOn the Feature Selection page, you can select Java in the Machine Learning and Language Extension.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33926 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_01.png\" alt=\"\" width=\"300\" height=\"169\" \/><br \/>\nWhy not only Machine Learning like the precedent version? Because Java is not a Machine Learning language and now you have this new category <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/language-extensions\/language-extensions-overview?view=sqlallproducts-allversions&amp;viewFallbackFrom=sql-server-2017\" target=\"_blank\" rel=\"noopener noreferrer\">&#8220;Language Extention&#8221;<\/a><\/p>\n<p>After checking Java, you have a &#8220;Java Install Location&#8221;.<br \/>\nAs written on the installation page, by default, it&#8217;s Zulu Open JRE 11.0.3 which is installed<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33915 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_03b.png\" alt=\"\" width=\"300\" height=\"227\" \/><br \/>\nbut you can try to install another one&#8230;<br \/>\nI tried to install from a local directory and I searched the Zulu package on the web through this link <a href=\"https:\/\/www.azul.com\/downloads\/zulu-community\/\" target=\"_blank\" rel=\"noopener noreferrer\"> here<\/a><\/p>\n<p>I copied the zip and unzipped it<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33925 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_02.png\" alt=\"\" width=\"300\" height=\"111\" \/><\/p>\n<p>I put the link into the<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33924 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_03.png\" alt=\"\" width=\"300\" height=\"227\" \/><\/p>\n<p>Now, just install it.<\/p>\n<p>After the installation finished, I had a look on the result file from the installationile.ini to see what the settings is to install it by script:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33923 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_04.png\" alt=\"\" width=\"300\" height=\"145\" \/><br \/>\nAs you can see, for scripting the installation, we need to use the label <strong>SQL_INST_JAVA<\/strong><\/p>\n<h3>Step 2: Configure Java<\/h3>\n<p>According to the documentation of Microsoft<\/p>\n<ul>\n<li>Add the JRE_HOME variable: create an environment variable JRE_HOME with the Path where jvm.dll is located<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33922 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_05.png\" alt=\"\" width=\"300\" height=\"56\" \/><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33921 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_06.png\" alt=\"\" width=\"300\" height=\"147\" \/><\/li>\n<li>Grant access to non-default JRE folder: Grant access to the SQLRUsergroup and SQL Service accounts with these commands:\n<ul>\n<li>icacls &#8220;&#8221; \/grant &#8220;SQLRUsergroup&#8221;:(OI)(CI)RX \/T<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33920 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_07.png\" alt=\"\" width=\"300\" height=\"111\" \/><br \/>\nIn my case, I used a named instance and the usergroup need to be adapted with the instance name<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">icacls \"C:\\Temp\\zulu11.33.15-ca-jdk11.0.4-win_x64\\zulu11.33.15-ca-jdk11.0.4-win_x64\" \/grant \"SQLRUsergroupSQL2019_CTP32\":(OI)(CI)RX \/T<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>icacls &#8220;&#8221; \/grant &#8220;ALL APPLICATION PACKAGES&#8221;:(OI)(CI)RX \/T<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33919 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_08.png\" alt=\"\" width=\"300\" height=\"98\" \/><\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">icacls \"C:\\Temp\\zulu11.33.15-ca-jdk11.0.4-win_x64\\zulu11.33.15-ca-jdk11.0.4-win_x64\" \/grant \"ALL APPLICATION PACKAGES\":(OI)(CI)RX \/T<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Step 3: Configure SQL Server Engine<\/h3>\n<p>First of all, we enable the usage of &#8220;external scripts&#8221; through the sp_configure<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT * FROM sys.configurations WHERE name= N'external scripts enabled'<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33918 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_09.png\" alt=\"\" width=\"300\" height=\"70\" \/><\/p>\n<p>If the result is 0, then enable it with:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">EXEC sp_configure 'external scripts enabled', 1\nRECONFIGURE WITH OVERRIDE<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33917 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_10.png\" alt=\"\" width=\"300\" height=\"58\" \/><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT * FROM sys.configurations WHERE name= N'external scripts enabled'<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33916 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_11.png\" alt=\"\" width=\"300\" height=\"72\" \/><br \/>\nAfter that, as you can see the is_dynamic column is 1 then you don\u2019t need to restart the SQL Server Engine to use it<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33914 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_12.png\" alt=\"\" width=\"300\" height=\"67\" \/><br \/>\nAs you can see with SELECT * FROM sys.external_language_files you don\u2019t see Java as external language<br \/>\nWe need to register the external language to our Database.<\/p>\n<p>To do this last step, use this command on a database:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">CREATE EXTERNAL LANGUAGE Java FROM (CONTENT = N'', FILE_NAME = 'javaextension.dll');<\/pre>\n<p>But first, we need to search the package with the javaextention.dll and copy it to another path.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33913 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_13.png\" alt=\"\" width=\"300\" height=\"112\" \/><\/p>\n<p>After that, you can register it<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33912 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_14.png\" alt=\"\" width=\"300\" height=\"58\" \/><\/p>\n<p>At the end, verify again with SELECT * FROM sys.external_language_files<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33911 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/SQL2019Java_15.png\" alt=\"\" width=\"300\" height=\"110\" \/><\/p>\n<p>You need to have a new line with the id <strong>65536<\/strong> and the <strong>javaextention.dll<\/strong><\/p>\n<p>The associated code:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT * FROM sys.external_language_files\nUSE Test\nGO\nCREATE EXTERNAL LANGUAGE Java FROM (CONTENT = N'C:\\Temp\\java-lang-extension.zip', FILE_NAME = 'javaextension.dll');\nSELECT * FROM sys.external_language_files<\/pre>\n<h3>Step 4: Test a java code<\/h3>\n<p>I created a little package called test.jar with the class Hello in the package sth printing \u201cHello World\u201d<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33928 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20.png\" alt=\"\" width=\"300\" height=\"133\" \/><br \/>\nBut this package will not work&#8230; \ud83d\ude41<br \/>\nTo execute under SQL Server, we need to <strong>load the library mssql-java-lang-extension into the Referenced Libraries from Eclipse,<\/strong> import the com.microsoft.sqlserver.javalangextension.* and use the execute method.<br \/>\nOne important point is also to create the default constructor with<\/p>\n<ul>\n<li>executorExtensionVersion = SQLSERVER_JAVA_LANG_EXTENSION_V1;<\/li>\n<li>executorInputDatasetClassName = PrimitiveDataset.class.getName();<\/li>\n<li>executorOutputDatasetClassName = PrimitiveDataset.class.getName();<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33907 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20b.png\" alt=\"\" width=\"300\" height=\"136\" \/><br \/>\nIt\u2019s just a little bit more complicated&#8230; \ud83d\ude15<br \/>\nExport the class as Runnable JAR and go back to SQL Server<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33906 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png\" alt=\"\" width=\"300\" height=\"244\" \/><\/p>\n<p>The next step is to register the javaSDK and my Runnable JAR test.jar with the command:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">CREATE EXTERNAL LIBRARY javaSDK FROM (CONTENT = 'C:\\Temp\\mssql-java-lang-extension.jar') WITH (LANGUAGE = 'Java');\nGO\nCREATE EXTERNAL LIBRARY test FROM (CONTENT = 'C:\\Temp\\test.jar') WITH (LANGUAGE = 'Java');\nGO<\/pre>\n<p>After the registration, you can execute the DMV sys.external_libraries to see if the registration successed:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT * FROM sys.external_libraries<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33927 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_21.png\" alt=\"\" width=\"300\" height=\"88\" \/><br \/>\nNow the last step is to execute my library and see \u201cHello World\u201d:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">EXEC sp_execute_external_script  @language = N'Java' , @script = N'sth.Hello'\nGO<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-33908 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_22.png\" alt=\"\" width=\"300\" height=\"123\" \/><\/p>\n<p>Et voila, my first Java test with SQL Server. Easy, no? \ud83d\ude0e<\/p>\n<p>Here you can find my test.jar file in <a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2019\/08\/test.zip\">this zip file<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It has already been a few months that we are testing the next version of SQL Server: SQL Server 2019. I already blogged about a previous version of SQL Server supporting R and Python. With the new version of SQL Server 2019, Java will also be integrated. The Java runtime used is Zulu Open JRE [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":12724,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[368,1320,99,48],"tags":[214,51,1457],"type_dbi":[],"class_list":["post-12713","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-performance","category-devops","category-sql-server","category-technology-survey","tag-java","tag-sql-server","tag-sql-server-2019"],"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>SQL Server 2019: Java in SQL Server hard to believe, no? - 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\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2019: Java in SQL Server hard to believe, no?\" \/>\n<meta property=\"og:description\" content=\"It has already been a few months that we are testing the next version of SQL Server: SQL Server 2019. I already blogged about a previous version of SQL Server supporting R and Python. With the new version of SQL Server 2019, Java will also be integrated. The Java runtime used is Zulu Open JRE [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-07T14:43:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-17T09:17:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1369\" \/>\n\t<meta property=\"og:image:height\" content=\"1115\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Haby\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Haby\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 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\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/\"},\"author\":{\"name\":\"St\u00e9phane Haby\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b\"},\"headline\":\"SQL Server 2019: Java in SQL Server hard to believe, no?\",\"datePublished\":\"2019-08-07T14:43:25+00:00\",\"dateModified\":\"2023-07-17T09:17:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/\"},\"wordCount\":649,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png\",\"keywords\":[\"Java\",\"SQL Server\",\"SQL Server 2019\"],\"articleSection\":[\"Development &amp; Performance\",\"DevOps\",\"SQL Server\",\"Technology Survey\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/\",\"name\":\"SQL Server 2019: Java in SQL Server hard to believe, no? - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png\",\"datePublished\":\"2019-08-07T14:43:25+00:00\",\"dateModified\":\"2023-07-17T09:17:10+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png\",\"width\":1369,\"height\":1115},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2019: Java in SQL Server hard to believe, no?\"}]},{\"@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\/d0bfb7484ae81c8980fc2b11334f803b\",\"name\":\"St\u00e9phane Haby\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"caption\":\"St\u00e9phane Haby\"},\"description\":\"St\u00e9phane Haby has more than ten years of experience in Microsoft solutions. He is specialized in SQL Server technologies such as installation, migration, best practices, and performance analysis etc. He is also an expert in Microsoft Business Intelligence solutions such as SharePoint, SQL Server and Office. Futhermore, he has many years of .NET development experience in the banking sector and other industries. In France, he was one of the first people to have worked with Microsoft Team System. He has written several technical articles on this subject. St\u00e9phane Haby is Microsoft Most Valuable Professional (MVP) as well as Microsoft Certified Solutions Associate (MCSA) and\u00a0Microsoft Certified Solutions Expert (MCSE) for SQL Server 2012. He is also Microsoft Certified Technology Specialist (MCTS) and Microsoft Certified IT Professional (MCITP) for SQL Server 2008 as well as ITIL Foundation V3 certified. He holds a Engineer diploma in industrial computing and automation from France. His branch-related experience covers Chemicals &amp; Pharmaceuticals, Banking \/ Financial Services, and many other industries.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/stephane-haby\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server 2019: Java in SQL Server hard to believe, no? - 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\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server 2019: Java in SQL Server hard to believe, no?","og_description":"It has already been a few months that we are testing the next version of SQL Server: SQL Server 2019. I already blogged about a previous version of SQL Server supporting R and Python. With the new version of SQL Server 2019, Java will also be integrated. The Java runtime used is Zulu Open JRE [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/","og_site_name":"dbi Blog","article_published_time":"2019-08-07T14:43:25+00:00","article_modified_time":"2023-07-17T09:17:10+00:00","og_image":[{"width":1369,"height":1115,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png","type":"image\/png"}],"author":"St\u00e9phane Haby","twitter_card":"summary_large_image","twitter_misc":{"Written by":"St\u00e9phane Haby","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/"},"author":{"name":"St\u00e9phane Haby","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b"},"headline":"SQL Server 2019: Java in SQL Server hard to believe, no?","datePublished":"2019-08-07T14:43:25+00:00","dateModified":"2023-07-17T09:17:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/"},"wordCount":649,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png","keywords":["Java","SQL Server","SQL Server 2019"],"articleSection":["Development &amp; Performance","DevOps","SQL Server","Technology Survey"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/","name":"SQL Server 2019: Java in SQL Server hard to believe, no? - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png","datePublished":"2019-08-07T14:43:25+00:00","dateModified":"2023-07-17T09:17:10+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/SQL2019Java_20c.png","width":1369,"height":1115},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-java-in-sql-server-hard-to-believe-no\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2019: Java in SQL Server hard to believe, no?"}]},{"@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\/d0bfb7484ae81c8980fc2b11334f803b","name":"St\u00e9phane Haby","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","caption":"St\u00e9phane Haby"},"description":"St\u00e9phane Haby has more than ten years of experience in Microsoft solutions. He is specialized in SQL Server technologies such as installation, migration, best practices, and performance analysis etc. He is also an expert in Microsoft Business Intelligence solutions such as SharePoint, SQL Server and Office. Futhermore, he has many years of .NET development experience in the banking sector and other industries. In France, he was one of the first people to have worked with Microsoft Team System. He has written several technical articles on this subject. St\u00e9phane Haby is Microsoft Most Valuable Professional (MVP) as well as Microsoft Certified Solutions Associate (MCSA) and\u00a0Microsoft Certified Solutions Expert (MCSE) for SQL Server 2012. He is also Microsoft Certified Technology Specialist (MCTS) and Microsoft Certified IT Professional (MCITP) for SQL Server 2008 as well as ITIL Foundation V3 certified. He holds a Engineer diploma in industrial computing and automation from France. His branch-related experience covers Chemicals &amp; Pharmaceuticals, Banking \/ Financial Services, and many other industries.","url":"https:\/\/www.dbi-services.com\/blog\/author\/stephane-haby\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12713","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\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12713"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12713\/revisions"}],"predecessor-version":[{"id":26714,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12713\/revisions\/26714"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/12724"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12713"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}