{"id":8738,"date":"2016-11-08T17:55:59","date_gmt":"2016-11-08T16:55:59","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/"},"modified":"2016-11-08T17:55:59","modified_gmt":"2016-11-08T16:55:59","slug":"oracle-12cr2-plsql-new-feature-tnsping-from-the-database","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/","title":{"rendered":"Oracle 12cR2 PL\/SQL new feature: TNSPING from the database"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\nDatabase links are resolved with the server TNS_ADMIN configuration (sqlnet.ora and tnsnames.ora). You can use tnsping to check the resolution, but it supposes that you are on the server and have set the same environment as the one which started the database.<br \/>\nIn 12.2 you have a new package to check that: DBMS_TNS. It&#8217;s the kind of little new features that make our life easier.<\/p>\n<p>The easy way to verify a connection string is to use tnsping. Here is an example with an EZCONNECT resolution:<\/p>\n<pre><code>\n[oracle@SE122 ~]$ tnsping \/\/10.196.234.38\/CDB1.opcoct.oraclecloud.internal\nTNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 08-NOV-2016 17:45:34\nCopyright (c) 1997, 2016, Oracle.  All rights reserved.\nUsed parameter files:\n\/u01\/app\/oracle\/product\/12.2.0\/dbhome_1\/network\/admin\/sqlnet.ora\nUsed EZCONNECT adapter to resolve the alias\nAttempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=CDB1.opcoct.oraclecloud.internal))(ADDRESS=(PROTOCOL=TCP)(HOST=10.196.234.38)(PORT=1521)))\nOK (0 msec)\n<\/code><\/pre>\n<p>The full connection description is displayed here before contacting the listener.<\/p>\n<p>This resolution is valid only with a specific TNS configuration (which is here \/u01\/app\/oracle\/product\/12.2.0\/dbhome_1\/network\/admin). However, you may have different configurations (using the TNS_ADMIN environment variable) and if it&#8217;s not set consistently, you may have different results.<br \/>\nBasically:<\/p>\n<ul>\n<li>When you connect locally to the server (no SQL*Net, no listener), the Oracle session inherits the client environment<\/li>\n<li>When you connect remotely to a service statically registered on the listener, the Oracle session inherits the environment which started the listener<\/li>\n<li>When you connect remotely to a service dynamically registered on the listener, the Oracle session inherits the environment which started the database<\/li>\n<\/ul>\n<h3>DBMS_TNS<\/h3>\n<p>So here is this new package:<\/p>\n<pre><code>\nSQL&gt; desc dbms_tns\nFUNCTION RESOLVE_TNSNAME RETURNS VARCHAR2\n Argument Name                  Type                    In\/Out Default?\n ------------------------------ ----------------------- ------ --------\n TNS_NAME                       VARCHAR2                IN\n<\/code><\/pre>\n<p>And you can run it when connected to the database to see how the name is resolved:<\/p>\n<pre><code>\nSQL&gt; select dbms_tns.resolve_tnsname('&amp;_connect_identifier') from dual;\nold   1: select dbms_tns.resolve_tnsname('&amp;_connect_identifier') from dual\nnew   1: select dbms_tns.resolve_tnsname('\/\/10.196.234.38\/CDB1.opcoct.oraclecloud.internal') from dual\n&nbsp;\nDBMS_TNS.RESOLVE_TNSNAME('\/\/10.196.234.38\/CDB1.OPCOCT.ORACLECLOUD.INTERNAL')\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=CDB1.opcoct.oraclecloud.internal)(CID=(PROGRAM=oracle)(HOST=SE122.compute-opcoct.oraclecloud.internal)(USER=oracle)))(ADDRESS=(PROTOCOL=TCP)(HOST=10.196.234.38)(PORT=1521)))\n<\/code><\/pre>\n<p>The resolution is done without attempting to contact the listener. This ip address do not exist on my network:<\/p>\n<pre><code>\nselect dbms_tns.resolve_tnsname('\/\/10.1.1.1\/XX') from dual;\n&nbsp;\nDBMS_TNS.RESOLVE_TNSNAME('\/\/10.1.1.1\/XX')\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=XX)(CID=(PROGRAM=oracle)(HOST=SE122.compute-opcoct.oraclecloud.internal)(USER=oracle)))(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.1.1)(PORT=1521)))\n<\/code><\/pre>\n<p>As you can see, the client identification is send here (PROGRAM and HOST).<\/p>\n<h3>Demo<\/h3>\n<p>I&#8217;ll use this new feature to prove my assumption above about which environment is used when connecting locally or through dynamic or static service.<\/p>\n<p>I create 3 directories with different names for the SERVICE_NAME in order to see which one is used:<\/p>\n<pre><code>\n mkdir -p \/tmp\/tns_lsnr ; echo \"NAMES.DIRECTORY_PATH=TNSNAMES\" &gt; \/tmp\/tns_lsnr\/sqlnet.ora ; echo \"XXX=(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_lsnr))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\" &gt; \/tmp\/tns_lsnr\/tnsnames.ora\n mkdir -p \/tmp\/tns_sess ; echo \"NAMES.DIRECTORY_PATH=TNSNAMES\" &gt; \/tmp\/tns_sess\/sqlnet.ora ; echo \"XXX=(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_sess))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\" &gt; \/tmp\/tns_sess\/tnsnames.ora\n mkdir -p \/tmp\/tns_inst; echo \"NAMES.DIRECTORY_PATH=TNSNAMES\" &gt; \/tmp\/tns_inst\/sqlnet.ora ; echo \"XXX=(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_inst))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\" &gt; \/tmp\/tns_inst\/tnsnames.ora\n<\/code><\/pre>\n<p>In addition, I&#8217;ll need a listener configuration with a static service, let&#8217;s call it STATIC:<\/p>\n<pre><code>\ncat &gt; \/tmp\/tns_lsnr\/listener.ora &lt;&lt;END\nLISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$HOSTNAME)(PORT=1521))))\nSID_LIST_LISTENER=(SID_LIST=(SID_DESC=(ORACLE_HOME=$ORACLE_HOME)(GLOBAL_DBNAME=STATIC)(SID_NAME=CDB1)))\nEND\n<\/code><\/pre>\n<p>Here&#8217;s a summary of the different configurations:<\/p>\n<pre><code>\n$ tail \/tmp\/tns*\/*\n&nbsp;\n==&gt; \/tmp\/tns_inst\/sqlnet.ora &lt;==\nNAMES.DIRECTORY_PATH=TNSNAMES\n====&gt; \/tmp\/tns_inst\/tnsnames.ora &lt;==\nXXX=(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_inst))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\n====&gt; \/tmp\/tns_lsnr\/listener.ora &lt;==\nLISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SE122.compute-opcoct.oraclecloud.internal)(PORT=1521))))\nSID_LIST_LISTENER=(SID_LIST=(SID_DESC=(ORACLE_HOME=\/u01\/app\/oracle\/product\/122EE)(GLOBAL_DBNAME=STATIC)(SID_NAME=CDB1)))\n====&gt; \/tmp\/tns_lsnr\/sqlnet.ora &lt;==\nNAMES.DIRECTORY_PATH=TNSNAMES\n====&gt; \/tmp\/tns_lsnr\/tnsnames.ora &lt;==\nXXX=(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_lsnr))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\n====&gt; \/tmp\/tns_sess\/sqlnet.ora &lt;==\nNAMES.DIRECTORY_PATH=TNSNAMES\n====&gt; \/tmp\/tns_sess\/tnsnames.ora &lt;==\nXXX=(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_sess))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\n<\/code><\/pre>\n<p>I start the listener and the instance with their own environment, and set the session one to another:<\/p>\n<pre><code>\nexport TNS_ADMIN=\/tmp\/tns_lsnr ; lsnrctl start\nexport TNS_ADMIN=\/tmp\/tns_inst ; sqlplus \/ as sysdba &lt;&lt;&lt; startup\nexport TNS_ADMIN=\/tmp\/tns_sess\n<\/code><\/pre>\n<p>Now it&#8217;s time to use this new DBMS_TNS when connecting locally, through the dynamic service (CDB1) and through the static service (STATIC):<\/p>\n<pre><code>\nSQL&gt; connect system\/oracle\nConnected.\n&nbsp;\nSQL&gt; select dbms_tns.resolve_tnsname('XXX') from dual;\n&nbsp;\nDBMS_TNS.RESOLVE_TNSNAME('XXX')\n-----------------------------------------------------------------------------------------------------------------------------------------------------------\n(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_sess)(CID=(PROGRAM=oracle)(HOST=SE122.compute-opcoct.oraclecloud.internal)(USER=oracle)))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\n<\/code><\/pre>\n<p>When connected locally the TNS_ADMIN from my shell environment running sqlplus is used.<\/p>\n<pre><code>\nSQL&gt; connect system\/oracle@\/\/localhost\/CDB1\nConnected.\n&nbsp;\nSQL&gt; select dbms_tns.resolve_tnsname('XXX') from dual;\n&nbsp;\nDBMS_TNS.RESOLVE_TNSNAME('XXX')\n-----------------------------------------------------------------------------------------------------------------------------------------------------------\n(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_inst)(CID=(PROGRAM=oracle)(HOST=SE122.compute-opcoct.oraclecloud.internal)(USER=oracle)))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\n<\/code><\/pre>\n<p>When connected to dynamic service, the TNS_ADMIN used to startup the instance is used.<\/p>\n<pre><code>\nSQL&gt; connect system\/oracle@\/\/localhost\/STATIC\nConnected.\n&nbsp;\nSQL&gt; select dbms_tns.resolve_tnsname('XXX') from dual;\n&nbsp;\nDBMS_TNS.RESOLVE_TNSNAME('XXX')\n-----------------------------------------------------------------------------------------------------------------------------------------------------------\n(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=from_lsnr)(CID=(PROGRAM=oracle)(HOST=SE122.compute-opcoct.oraclecloud.internal)(USER=oracle)))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))\n<\/code><\/pre>\n<p>When connected to static service, the TNS_ADMIN used to startup the listener is used.<\/p>\n<h3>So what?<\/h3>\n<p>You should use a consistent environment setting in order to be sure that all sessions will use the same name resolution. But if you have a doubt about it, DBMS_TNS can help to troubleshoot. It&#8217;s better than DBMS_SYSTEM.GET_ENV as it does the name resolution rather than just showing the environment variables.<\/p>\n<p>Want to know quickly where all database links are going? Here it is:<\/p>\n<pre><code>\nSQL&gt; select username,dbms_tns.resolve_tnsname(host) from cdb_db_links;\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . Database links are resolved with the server TNS_ADMIN configuration (sqlnet.ora and tnsnames.ora). You can use tnsping to check the resolution, but it supposes that you are on the server and have set the same environment as the one which started the database. In 12.2 you have a new package to check [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[656,43,209],"type_dbi":[],"class_list":["post-8738","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-12-2","tag-listener","tag-oracle-12c"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle 12cR2 PL\/SQL new feature: TNSPING from the database - 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\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle 12cR2 PL\/SQL new feature: TNSPING from the database\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . Database links are resolved with the server TNS_ADMIN configuration (sqlnet.ora and tnsnames.ora). You can use tnsping to check the resolution, but it supposes that you are on the server and have set the same environment as the one which started the database. In 12.2 you have a new package to check [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-08T16:55:59+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\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\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Oracle 12cR2 PL\\\/SQL new feature: TNSPING from the database\",\"datePublished\":\"2016-11-08T16:55:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/\"},\"wordCount\":504,\"commentCount\":0,\"keywords\":[\"12.2\",\"Listener\",\"Oracle 12c\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/\",\"name\":\"Oracle 12cR2 PL\\\/SQL new feature: TNSPING from the database - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2016-11-08T16:55:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle 12cR2 PL\\\/SQL new feature: TNSPING from the database\"}]},{\"@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\\\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/oracle-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle 12cR2 PL\/SQL new feature: TNSPING from the database - 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\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/","og_locale":"en_US","og_type":"article","og_title":"Oracle 12cR2 PL\/SQL new feature: TNSPING from the database","og_description":"By Franck Pachot . Database links are resolved with the server TNS_ADMIN configuration (sqlnet.ora and tnsnames.ora). You can use tnsping to check the resolution, but it supposes that you are on the server and have set the same environment as the one which started the database. In 12.2 you have a new package to check [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/","og_site_name":"dbi Blog","article_published_time":"2016-11-08T16:55:59+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Oracle 12cR2 PL\/SQL new feature: TNSPING from the database","datePublished":"2016-11-08T16:55:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/"},"wordCount":504,"commentCount":0,"keywords":["12.2","Listener","Oracle 12c"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/","url":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/","name":"Oracle 12cR2 PL\/SQL new feature: TNSPING from the database - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2016-11-08T16:55:59+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12cr2-plsql-new-feature-tnsping-from-the-database\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle 12cR2 PL\/SQL new feature: TNSPING from the database"}]},{"@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\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/8738","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\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=8738"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/8738\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=8738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=8738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=8738"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=8738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}