{"id":21049,"date":"2026-07-25T16:02:15","date_gmt":"2026-07-25T14:02:15","guid":{"rendered":"https:\/\/www.salvis.com\/blog\/?p=21049"},"modified":"2026-07-25T16:50:41","modified_gmt":"2026-07-25T14:50:41","slug":"the-return-of-sqlcls-script-command","status":"publish","type":"post","link":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/","title":{"rendered":"The Return of SQLcl&#8217;s SCRIPT Command"},"content":{"rendered":"\n<h2 id=\"introduction\" class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>script<\/code> command was introduced with SQLcl 4.2. It is based on JSR 223, the Java Scripting API, and makes it possible to run JavaScript from SQLcl. This adds client-side control flow, file access, better control of host commands and access to Java classes and JavaScript libraries. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JDK 8 was the latest and greatest back in 2015 when Kris Rice promoted this feature on his <a href=\"https:\/\/krisrice.io\/2015-10-13-sqlcl-oct-13th-edition\/\" target=\"_blank\" rel=\"noreferrer noopener\">blog<\/a>. The <code>script<\/code> command worked out of the box because JDK 8 included the Nashorn JavaScript engine. Nashorn was deprecated in JDK 11 and removed in JDK 15. The current version 26.2 of SQLcl requires JDK 11 or newer, but does not include a JavaScript engine. Therefore, <code>script<\/code> no longer works with a modern standard JDK.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/sql-developer-command-line\/26.2\/sqcug\/working-sqlcl.html\" target=\"_blank\" rel=\"noreferrer noopener\">documented solution<\/a> is to use GraalVM and install its JavaScript engine using the command <code>gu install js<\/code>. However, <code>gu<\/code> has been removed from more recent GraalVM distributions. Applications requiring a JavaScript engine must therefore provide the necessary Maven dependencies themselves.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Furthermore, the SQL Developer extension for VS Code comes with its own JDK 25. We cannot simply replace it with an older GraalVM JDK since some components require a JDK 25 and are therefore incompatible with older JDK versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>script<\/code> command does not work in SQLcl embedded in SQL Developer for VS Code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s change that.<\/p>\n\n\n\n<h2 id=\"patching-sqlcl-in-sql-developer-for-vs-code\" class=\"wp-block-heading\">Patching SQLcl in SQL Developer for VS Code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I experimented with various approaches. The result is <a href=\"https:\/\/github.com\/PhilippSalvisberg\/sqlcl-js-patch\/blob\/main\/sqlcl-js-patch.sh\" data-type=\"link\" data-id=\"https:\/\/github.com\/PhilippSalvisberg\/sqlcl-js-patch\" target=\"_blank\" rel=\"noreferrer noopener\">sqlcl-js-patch.sh<\/a>. The idea is to download the missing JavaScript engine and its dependencies from Maven Central and add them to an SQLcl installation. This shell script supports GraalJS and Nashorn on JDK 17 and newer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For SQL Developer for VS Code, I prefer Nashorn. It is compatible with the behaviour we had with JDK 8 and JDK 11 and produces no warnings when SQLcl starts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Close all SQLcl sessions in VS Code. Then run the following command in a macOS, Linux or Git Bash shell:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">1) Patch SQLcl with Nashorn JavaScript engine<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>curl --fail --location --silent --show-error \\\n  https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh |\n  sh -s -- add nashorn \"sqlcl_home=$HOME\/.vscode\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">curl<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--fail<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--location<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--silent<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--show-error<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #D7BA7D\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #CE9178\">https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh<\/span><span style=\"color: #D4D4D4\"> |<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">sh<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">-s<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">add<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">nashorn<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;sqlcl_home=<\/span><span style=\"color: #9CDCFE\">$HOME<\/span><span style=\"color: #CE9178\">\/.vscode&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Downloading nashorn-core-15.7.jar\nDownloading asm-7.3.1.jar\nDownloading asm-commons-7.3.1.jar\nDownloading asm-analysis-7.3.1.jar\nDownloading asm-tree-7.3.1.jar\nDownloading asm-util-7.3.1.jar\nNo matching libraries found in \/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib.\nInstalled nashorn-core-15.7.jar\nInstalled asm-commons-7.3.1.jar\nInstalled asm-7.3.1.jar\nInstalled asm-analysis-7.3.1.jar\nInstalled asm-util-7.3.1.jar\nInstalled asm-tree-7.3.1.jar\nNo nashorn.args VM option found in macOS\/Linux launcher; skipped Nashorn launcher patch.\nInstalled nashorn libraries in \/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib.<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">Downloading nashorn-core-15.7.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading asm-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading asm-commons-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading asm-analysis-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading asm-tree-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading asm-util-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">No matching libraries found in \/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed nashorn-core-15.7.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed asm-commons-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed asm-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed asm-analysis-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed asm-util-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed asm-tree-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">No nashorn.args VM option found in macOS\/Linux launcher; skipped Nashorn launcher patch.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed nashorn libraries in \/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The patch script locates the most recent Oracle SQL Developer extension in the <code>$HOME\/.vscode\/extensions<\/code> directory. It adds the necessary JAR files to the embedded SQLcl, whose directory structure differs from that of standalone SQLcl.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now start a new SQLcl session in VS Code and run:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">2) Test script command<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>script\nprint('Hello from Nashorn');\n\/<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #9CDCFE\">script<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;Hello from Nashorn&#39;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SQLcl: Release 26.2 Production on Sat Jul 25 13:19:46 2026\n\nCopyright (c) 1982, 2026, Oracle.  All rights reserved.\n\nConnected to:\nOracle AI Database 26ai Free Release 23.26.2.0.0 - Develop, Learn, and Run for Free\nVersion 23.26.2.0.0\n\nHello from Nashorn\nSQL> <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">SQLcl: Release 26.2 Production on Sat Jul 25 13:19:46 2026<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Copyright (c) 1982, 2026, Oracle.  All rights reserved.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Connected to:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Oracle AI Database 26ai Free Release 23.26.2.0.0 - Develop, Learn, and Run for Free<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Version 23.26.2.0.0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">Hello from Nashorn<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">SQL&gt; <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This does not work when the code is executed directly in a SQL Developer worksheet. It works when you select <strong>Run in SQLcl<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s it. The <code>script<\/code> command is back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please note that updating the SQL Developer extension installs a new embedded SQLcl. In that case, run the patch command again.<\/p>\n\n\n\n<h2 id=\"does-it-work-with-graaljs\" class=\"wp-block-heading\">Does It Work With GraalJS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Just pass <code>graaljs<\/code> instead of <code>nashorn<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">3) Patch SQLcl with GraalJS JavaScript engine<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>curl --fail --location --silent --show-error \\\n  https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh |\n  sh -s -- add graaljs \"sqlcl_home=$HOME\/.vscode\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">curl<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--fail<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--location<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--silent<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--show-error<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #D7BA7D\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #CE9178\">https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh<\/span><span style=\"color: #D4D4D4\"> |<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">sh<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">-s<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">add<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">graaljs<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;sqlcl_home=<\/span><span style=\"color: #9CDCFE\">$HOME<\/span><span style=\"color: #CE9178\">\/.vscode&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Downloading collections-25.1.3.jar\nDownloading icu4j-25.1.3.jar\nDownloading jniutils-25.1.3.jar\nDownloading js-language-25.1.3.jar\nDownloading js-scriptengine-25.1.3.jar\nDownloading nativeimage-25.1.3.jar\nDownloading polyglot-25.1.3.jar\nDownloading regex-25.1.3.jar\nDownloading truffle-api-25.1.3.jar\nDownloading truffle-compiler-25.1.3.jar\nDownloading truffle-runtime-25.1.3.jar\nDownloading word-25.1.3.jar\nDownloading xz-25.1.3.jar\nDeleted nashorn-core-15.7.jar\nDeleted asm-commons-7.3.1.jar\nDeleted asm-7.3.1.jar\nDeleted asm-analysis-7.3.1.jar\nDeleted asm-util-7.3.1.jar\nDeleted asm-tree-7.3.1.jar\nDeleted asm-commons-7.3.1.jar\nDeleted asm-analysis-7.3.1.jar\nDeleted asm-tree-7.3.1.jar\nDeleted asm-util-7.3.1.jar\nInstalled collections-25.1.3.jar\nInstalled regex-25.1.3.jar\nInstalled truffle-compiler-25.1.3.jar\nInstalled polyglot-25.1.3.jar\nInstalled truffle-api-25.1.3.jar\nInstalled jniutils-25.1.3.jar\nInstalled truffle-runtime-25.1.3.jar\nInstalled js-language-25.1.3.jar\nInstalled xz-25.1.3.jar\nInstalled word-25.1.3.jar\nInstalled icu4j-25.1.3.jar\nInstalled js-scriptengine-25.1.3.jar\nInstalled nativeimage-25.1.3.jar\nInstalled graaljs libraries in \/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib.<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">Downloading collections-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading icu4j-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading jniutils-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading js-language-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading js-scriptengine-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading nativeimage-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading polyglot-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading regex-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading truffle-api-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading truffle-compiler-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading truffle-runtime-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading word-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Downloading xz-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted nashorn-core-15.7.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-commons-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-analysis-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-util-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-tree-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-commons-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-analysis-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-tree-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Deleted asm-util-7.3.1.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed collections-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed regex-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed truffle-compiler-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed polyglot-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed truffle-api-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed jniutils-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed truffle-runtime-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed js-language-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed xz-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed word-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed icu4j-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed js-scriptengine-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed nativeimage-25.1.3.jar<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Installed graaljs libraries in \/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s start a new SQLcl session in VS Code and run:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">4) Test script command<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>script\nprint('Hello from GraalJS');\n\/<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #9CDCFE\">script<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;Hello from GraalJS&#39;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Show\/hide output<\/summary>\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SQLcl: Release 26.2 Production on Sat Jul 25 12:20:22 2026\n\nCopyright (c) 1982, 2026, Oracle.  All rights reserved.\n\nWARNING: A restricted method in java.lang.System has been called\nWARNING: java.lang.System::load has been called by com.oracle.truffle.polyglot.JDKSupport in module org.graalvm.truffle (file:\/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib\/truffle-api-25.1.3.jar)\nWARNING: Use --enable-native-access=org.graalvm.truffle to avoid a warning for callers in this module\nWARNING: Restricted methods will be blocked in a future release unless native access is enabled\n\n&#91;To redirect Truffle log output to a file use one of the following options:\n* '--log.file=&lt;path>' if the option is passed using a guest language launcher.\n* '-Dpolyglot.log.file=&lt;path>' if the option is passed using the host Java launcher.\n* Configure logging using the polyglot embedding API.&#93;\n&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.\nExecution without runtime compilation will negatively impact the guest application performance.\nThe following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.\nFor more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.\nTo disable this warning use the '--engine.WarnInterpreterOnly=false' option or the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.\n&#91;To redirect Truffle log output to a file use one of the following options:\n* '--log.file=&lt;path>' if the option is passed using a guest language launcher.\n* '-Dpolyglot.log.file=&lt;path>' if the option is passed using the host Java launcher.\n* Configure logging using the polyglot embedding API.&#93;\n&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.\nExecution without runtime compilation will negatively impact the guest application performance.\nThe following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.\nFor more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.\nTo disable this warning use the '--engine.WarnInterpreterOnly=false' option or the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.\nWARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nWARNING: sun.misc.Unsafe::objectFieldOffset has been called by com.oracle.truffle.api.strings.TStringUnsafe (file:\/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib\/truffle-api-25.1.3.jar)\nWARNING: Please consider reporting this to the maintainers of class com.oracle.truffle.api.strings.TStringUnsafe\nWARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\n&#91;To redirect Truffle log output to a file use one of the following options:\n* '--log.file=&lt;path>' if the option is passed using a guest language launcher.\n* '-Dpolyglot.log.file=&lt;path>' if the option is passed using the host Java launcher.\n* Configure logging using the polyglot embedding API.&#93;\n&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.\nExecution without runtime compilation will negatively impact the guest application performance.\nThe following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.\nFor more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.\nTo disable this warning use the '--engine.WarnInterpreterOnly=false' option or the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.\n&#91;To redirect Truffle log output to a file use one of the following options:\n* '--log.file=&lt;path>' if the option is passed using a guest language launcher.\n* '-Dpolyglot.log.file=&lt;path>' if the option is passed using the host Java launcher.\n* Configure logging using the polyglot embedding API.&#93;\n&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.\nExecution without runtime compilation will negatively impact the guest application performance.\nThe following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.\nFor more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.\nTo disable this warning use the '--engine.WarnInterpreterOnly=false' option or the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.\n&#91;To redirect Truffle log output to a file use one of the following options:\n* '--log.file=&lt;path>' if the option is passed using a guest language launcher.\n* '-Dpolyglot.log.file=&lt;path>' if the option is passed using the host Java launcher.\n* Configure logging using the polyglot embedding API.&#93;\n&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.\nExecution without runtime compilation will negatively impact the guest application performance.\nThe following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.\nFor more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.\nTo disable this warning use the '--engine.WarnInterpreterOnly=false' option or the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.\nConnected to:\nOracle AI Database 26ai Free Release 23.26.2.0.0 - Develop, Learn, and Run for Free\nVersion 23.26.2.0.0\n\n&#91;To redirect Truffle log output to a file use one of the following options:\n* '--log.file=&lt;path>' if the option is passed using a guest language launcher.\n* '-Dpolyglot.log.file=&lt;path>' if the option is passed using the host Java launcher.\n* Configure logging using the polyglot embedding API.&#93;\n&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.\nExecution without runtime compilation will negatively impact the guest application performance.\nThe following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.\nFor more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.\nTo disable this warning use the '--engine.WarnInterpreterOnly=false' option or the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.\nHello from GraalJS\nSQL> <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">SQLcl: Release 26.2 Production on Sat Jul 25 12:20:22 2026<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Copyright (c) 1982, 2026, Oracle.  All rights reserved.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: A restricted method in java.lang.System has been called<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: java.lang.System::load has been called by com.oracle.truffle.polyglot.JDKSupport in module org.graalvm.truffle (file:\/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib\/truffle-api-25.1.3.jar)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: Use --enable-native-access=org.graalvm.truffle to avoid a warning for callers in this module<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: Restricted methods will be blocked in a future release unless native access is enabled<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;To redirect Truffle log output to a file use one of the following options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;--log.file=&lt;path&gt;&#39; if the option is passed using a guest language launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;-Dpolyglot.log.file=&lt;path&gt;&#39; if the option is passed using the host Java launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* Configure logging using the polyglot embedding API.&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Execution without runtime compilation will negatively impact the guest application performance.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">The following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">For more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">To disable this warning use the &#39;--engine.WarnInterpreterOnly=false&#39; option or the &#39;-Dpolyglot.engine.WarnInterpreterOnly=false&#39; system property.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;To redirect Truffle log output to a file use one of the following options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;--log.file=&lt;path&gt;&#39; if the option is passed using a guest language launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;-Dpolyglot.log.file=&lt;path&gt;&#39; if the option is passed using the host Java launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* Configure logging using the polyglot embedding API.&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Execution without runtime compilation will negatively impact the guest application performance.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">The following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">For more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">To disable this warning use the &#39;--engine.WarnInterpreterOnly=false&#39; option or the &#39;-Dpolyglot.engine.WarnInterpreterOnly=false&#39; system property.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: A terminally deprecated method in sun.misc.Unsafe has been called<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: sun.misc.Unsafe::objectFieldOffset has been called by com.oracle.truffle.api.strings.TStringUnsafe (file:\/Users\/phs\/.vscode\/extensions\/oracle.sql-developer-26.2.0-darwin-arm64\/dbtools\/sqlcl\/lib\/truffle-api-25.1.3.jar)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: Please consider reporting this to the maintainers of class com.oracle.truffle.api.strings.TStringUnsafe<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;To redirect Truffle log output to a file use one of the following options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;--log.file=&lt;path&gt;&#39; if the option is passed using a guest language launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;-Dpolyglot.log.file=&lt;path&gt;&#39; if the option is passed using the host Java launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* Configure logging using the polyglot embedding API.&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Execution without runtime compilation will negatively impact the guest application performance.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">The following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">For more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">To disable this warning use the &#39;--engine.WarnInterpreterOnly=false&#39; option or the &#39;-Dpolyglot.engine.WarnInterpreterOnly=false&#39; system property.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;To redirect Truffle log output to a file use one of the following options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;--log.file=&lt;path&gt;&#39; if the option is passed using a guest language launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;-Dpolyglot.log.file=&lt;path&gt;&#39; if the option is passed using the host Java launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* Configure logging using the polyglot embedding API.&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Execution without runtime compilation will negatively impact the guest application performance.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">The following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">For more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">To disable this warning use the &#39;--engine.WarnInterpreterOnly=false&#39; option or the &#39;-Dpolyglot.engine.WarnInterpreterOnly=false&#39; system property.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;To redirect Truffle log output to a file use one of the following options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;--log.file=&lt;path&gt;&#39; if the option is passed using a guest language launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;-Dpolyglot.log.file=&lt;path&gt;&#39; if the option is passed using the host Java launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* Configure logging using the polyglot embedding API.&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Execution without runtime compilation will negatively impact the guest application performance.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">The following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">For more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">To disable this warning use the &#39;--engine.WarnInterpreterOnly=false&#39; option or the &#39;-Dpolyglot.engine.WarnInterpreterOnly=false&#39; system property.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Connected to:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Oracle AI Database 26ai Free Release 23.26.2.0.0 - Develop, Learn, and Run for Free<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Version 23.26.2.0.0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;To redirect Truffle log output to a file use one of the following options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;--log.file=&lt;path&gt;&#39; if the option is passed using a guest language launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* &#39;-Dpolyglot.log.file=&lt;path&gt;&#39; if the option is passed using the host Java launcher.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">* Configure logging using the polyglot embedding API.&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;engine&#93; WARNING: The polyglot engine uses a fallback runtime that does not support runtime compilation to native code.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Execution without runtime compilation will negatively impact the guest application performance.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">The following cause was found: JVMCI is not enabled for this JVM. Enable JVMCI using -XX:+EnableJVMCI.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">For more information see: https:\/\/www.graalvm.org\/latest\/reference-manual\/embed-languages\/#runtime-optimization-support.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">To disable this warning use the &#39;--engine.WarnInterpreterOnly=false&#39; option or the &#39;-Dpolyglot.engine.WarnInterpreterOnly=false&#39; system property.<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">Hello from GraalJS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">SQL&gt; <\/span><\/span><\/code><\/pre><\/div>\n<\/details>\n\n\n\n<p class=\"wp-block-paragraph\">After several warnings, the expected result appears at the end.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I explained the <a href=\"https:\/\/github.com\/PhilippSalvisberg\/sqlcl-js-patch\/tree\/main#graaljs-related-warnings\" target=\"_blank\" rel=\"noreferrer noopener\">GraalJS-related warnings<\/a> in my GitHub repository. The following environment setting will suppress most of the warnings. Where you define this variable depends on your operating system and shell. In any case, the environment variable must be visible before you start VS Code.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">5) Non-breaking JDK_JAVA_OPTIONS to suppress warnings<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>export JDK_JAVA_OPTIONS=\"-Dpolyglot.engine.WarnInterpreterOnly=false -Dpolyglot.js.nashorn-compat=true\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">export<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">JDK_JAVA_OPTIONS<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;-Dpolyglot.engine.WarnInterpreterOnly=false -Dpolyglot.js.nashorn-compat=true&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">If you are only using JDK 24 or newer on your system, you can disable all warnings as follows. However, be aware that any JDK version below 24 will no longer work, because the Java runtime stops with an error when passing unknown JVM arguments.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">6) Breaking JDK_JAVA_OPTIONS to suppress warnings<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>export JDK_JAVA_OPTIONS=\"--illegal-native-access=allow --sun-misc-unsafe-memory-access=allow -Dpolyglot.engine.WarnInterpreterOnly=false -Dpolyglot.js.nashorn-compat=true\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">export<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">JDK_JAVA_OPTIONS<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;--illegal-native-access=allow --sun-misc-unsafe-memory-access=allow -Dpolyglot.engine.WarnInterpreterOnly=false -Dpolyglot.js.nashorn-compat=true&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 id=\"can-i-also-use-this-for-standalone-sqlcl\" class=\"wp-block-heading\">Can I Also Use This for Standalone SQLcl?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pass the SQLcl installation directory instead of the VS Code configuration directory:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">7) Patch standalone SQLcl with Nashorn JavaScript engine (macOS\/Linux only)<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>curl --fail --location --silent --show-error \\\n  https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh |\n  sh -s -- add nashorn \"sqlcl_home=\/path\/to\/sqlcl\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">curl<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--fail<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--location<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--silent<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--show-error<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #D7BA7D\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #CE9178\">https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh<\/span><span style=\"color: #D4D4D4\"> |<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">sh<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">-s<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">add<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">nashorn<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;sqlcl_home=\/path\/to\/sqlcl&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This works very well on macOS and Linux. Besides installing the Nashorn libraries, the patch removes the following option from the <code>bin\/sql<\/code> launcher:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>-Dnashorn.args=--no-deprecation-warning<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">-<\/span><span style=\"color: #9CDCFE\">Dnashorn<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">args<\/span><span style=\"color: #D4D4D4\">=--no-deprecation-warning<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The standalone Nashorn engine does not support this option. It throws an exception while the engine is initialised, and SQLcl consequently reports <code>JavaScript engine not found.<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On Windows, <code>bin\/sql.exe<\/code> is a binary executable. The patch script cannot modify it. It can add the Nashorn libraries when run from Git Bash, but it cannot apply the necessary launcher workaround. Therefore, Nashorn does not work with standalone SQLcl on Windows. GraalJS does not need this launcher change and is therefore the only option supported by the patch script on Windows:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">8) Patch standalone SQLcl with GraalJS JavaScript engine<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>curl --fail --location --silent --show-error \\\n  https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh |\n  sh -s -- add graaljs \"sqlcl_home=\/path\/to\/sqlcl\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">curl<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--fail<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--location<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--silent<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--show-error<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #D7BA7D\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #CE9178\">https:\/\/raw.githubusercontent.com\/PhilippSalvisberg\/sqlcl-js-patch\/refs\/heads\/main\/sqlcl-js-patch.sh<\/span><span style=\"color: #D4D4D4\"> |<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">sh<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">-s<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">add<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">graaljs<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;sqlcl_home=\/path\/to\/sqlcl&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This raises an interesting question. SQL Developer for VS Code also includes a Windows <code>bin\/sql.exe<\/code> that the patch script cannot modify. So why does Nashorn work there?<\/p>\n\n\n\n<h2 id=\"but-why-does-nashorn-work-in-embedded-sqlcl\" class=\"wp-block-heading\">But Why Does Nashorn Work in Embedded SQLcl?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I mentioned before that the embedded SQLcl version has a different folder structure (there is no <code>lib\/ext<\/code> folder for third-party libraries). But that&#8217;s not the only difference. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The launcher is also different. Neither <code>bin\/sql<\/code> nor <code>bin\/sql.exe<\/code> includes the <code>-Dnashorn.args=--no-deprecation-warning<\/code> JVM option.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> As a result, the Nashorn JavaScript engine works in the embedded SQLcl version of SQL Developer for VS Code.<\/p>\n\n\n\n<h2 id=\"outlook\" class=\"wp-block-heading\">Outlook<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I hope this helps you bring the SQLcl <code>script<\/code> command back to life in your environments, especially in SQL Developer for VS Code, where using another Java runtime is not a practical option.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, I also hope that we will not have to run <code>sqlcl-js-patch.sh<\/code> for every new SQLcl or SQL Developer extension version until the end of time. The patch consists mainly of adding libraries that are available from Maven Central. It would be great if the Oracle SQL Developer team included these libraries in a future update and made the <code>script<\/code> command work out of the box again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The script command was introduced with SQLcl 4.2. It is based on JSR 223, the Java Scripting API, and makes it possible to run JavaScript from SQLcl. This adds client-side control flow, file access, better control of host commands and access to Java classes and JavaScript libraries. JDK 8 was the<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":1,"featured_media":21109,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[135,87,126],"class_list":["post-21049","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-javascript","tag-sql-developer","tag-sqlcl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Return of SQLcl&#039;s SCRIPT Command - Philipp Salvisberg&#039;s Blog<\/title>\n<meta name=\"description\" content=\"Restore the SQLcl SCRIPT command in SQL Developer for VS Code and standalone SQLcl using Nashorn or GraalJS.\" \/>\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.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Return of SQLcl&#039;s SCRIPT Command - Philipp Salvisberg&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"Restore the SQLcl SCRIPT command in SQL Developer for VS Code and standalone SQLcl using Nashorn or GraalJS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/\" \/>\n<meta property=\"og:site_name\" content=\"Philipp Salvisberg&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-25T14:02:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-25T14:50:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/07\/sqlcl-script-command-featured-concept-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Philipp Salvisberg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@phsalvisberg\" \/>\n<meta name=\"twitter:site\" content=\"@phsalvisberg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Philipp Salvisberg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/\"},\"author\":{\"name\":\"Philipp Salvisberg\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"headline\":\"The Return of SQLcl&#8217;s SCRIPT Command\",\"datePublished\":\"2026-07-25T14:02:15+00:00\",\"dateModified\":\"2026-07-25T14:50:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/\"},\"wordCount\":890,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"image\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/sqlcl-script-command-featured-concept-3.png\",\"keywords\":[\"JavaScript\",\"SQL Developer\",\"SQLcl\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/\",\"name\":\"The Return of SQLcl's SCRIPT Command - Philipp Salvisberg&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/sqlcl-script-command-featured-concept-3.png\",\"datePublished\":\"2026-07-25T14:02:15+00:00\",\"dateModified\":\"2026-07-25T14:50:41+00:00\",\"description\":\"Restore the SQLcl SCRIPT command in SQL Developer for VS Code and standalone SQLcl using Nashorn or GraalJS.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/sqlcl-script-command-featured-concept-3.png\",\"contentUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/sqlcl-script-command-featured-concept-3.png\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/07\\\/25\\\/the-return-of-sqlcls-script-command\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Return of SQLcl&#8217;s SCRIPT Command\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/\",\"name\":\"Philipp Salvisberg&#039;s Blog\",\"description\":\"Database-centric development\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\",\"name\":\"Philipp Salvisberg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"contentUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"width\":400,\"height\":400,\"caption\":\"Philipp Salvisberg\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.salvis.com\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Return of SQLcl's SCRIPT Command - Philipp Salvisberg&#039;s Blog","description":"Restore the SQLcl SCRIPT command in SQL Developer for VS Code and standalone SQLcl using Nashorn or GraalJS.","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.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/","og_locale":"en_US","og_type":"article","og_title":"The Return of SQLcl's SCRIPT Command - Philipp Salvisberg&#039;s Blog","og_description":"Restore the SQLcl SCRIPT command in SQL Developer for VS Code and standalone SQLcl using Nashorn or GraalJS.","og_url":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/","og_site_name":"Philipp Salvisberg&#039;s Blog","article_published_time":"2026-07-25T14:02:15+00:00","article_modified_time":"2026-07-25T14:50:41+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/07\/sqlcl-script-command-featured-concept-3.png","type":"image\/png"}],"author":"Philipp Salvisberg","twitter_card":"summary_large_image","twitter_creator":"@phsalvisberg","twitter_site":"@phsalvisberg","twitter_misc":{"Written by":"Philipp Salvisberg","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#article","isPartOf":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/"},"author":{"name":"Philipp Salvisberg","@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"headline":"The Return of SQLcl&#8217;s SCRIPT Command","datePublished":"2026-07-25T14:02:15+00:00","dateModified":"2026-07-25T14:50:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/"},"wordCount":890,"commentCount":0,"publisher":{"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"image":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/07\/sqlcl-script-command-featured-concept-3.png","keywords":["JavaScript","SQL Developer","SQLcl"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/","url":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/","name":"The Return of SQLcl's SCRIPT Command - Philipp Salvisberg&#039;s Blog","isPartOf":{"@id":"https:\/\/www.salvis.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#primaryimage"},"image":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/07\/sqlcl-script-command-featured-concept-3.png","datePublished":"2026-07-25T14:02:15+00:00","dateModified":"2026-07-25T14:50:41+00:00","description":"Restore the SQLcl SCRIPT command in SQL Developer for VS Code and standalone SQLcl using Nashorn or GraalJS.","breadcrumb":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#primaryimage","url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/07\/sqlcl-script-command-featured-concept-3.png","contentUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/07\/sqlcl-script-command-featured-concept-3.png","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.salvis.com\/blog\/2026\/07\/25\/the-return-of-sqlcls-script-command\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.salvis.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Return of SQLcl&#8217;s SCRIPT Command"}]},{"@type":"WebSite","@id":"https:\/\/www.salvis.com\/blog\/#website","url":"https:\/\/www.salvis.com\/blog\/","name":"Philipp Salvisberg&#039;s Blog","description":"Database-centric development","publisher":{"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.salvis.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515","name":"Philipp Salvisberg","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","contentUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","width":400,"height":400,"caption":"Philipp Salvisberg"},"logo":{"@id":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg"},"sameAs":["http:\/\/www.salvis.com\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/21049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/comments?post=21049"}],"version-history":[{"count":42,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/21049\/revisions"}],"predecessor-version":[{"id":21116,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/21049\/revisions\/21116"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/media\/21109"}],"wp:attachment":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/media?parent=21049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/categories?post=21049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/tags?post=21049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}