Discussions
Categories
- 196.8K All Categories
- 2.2K Data
- 238 Big Data Appliance
- 1.9K Data Science
- 450.3K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 544 SQLcl
- 4K SQL Developer Data Modeler
- 187K SQL & PL/SQL
- 21.3K SQL Developer
- 295.8K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.5K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 437 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 Portuguese
Changing function show effect only after re-connect

Hi MLE team,
It seems that if we change the function behaviour (with create or replace) the already connected users do not run the new code until they reconnect.
Here is an example (from this which I wrote for PI-Day: https://medium.com/@FranckPachot/oracle-multi-lingual-engine-7ce6414aa6c4
SQL> grant dba to demo identified by demo;
Grant succeeded.
SQL> connect demo/[email protected]//localhost/pdb1
Connected.
SQL>
SQL> connect demo/[email protected]//localhost/pdb1
Connected.
SQL> create javascript source named "test1.js" as
2 module.exports.PI=function (d) {
3 return Math.round(10**d*Math.PI)/10**d;
4 }
5 /
Function ( compiled
SQL> create function PI(decimals in number)
2 return number as language javascript
3 name 'test1\.js.PI(decimals number) return number';
4 /
Function PI compiled
SQL> select PI(2) from dual;
PI(2)
----------
3.14
SQL>
SQL>
SQL> create or replace javascript source named "test1.js" as
2 module.exports.PI=function (d) {
3 return 1+Math.round(10**d*Math.PI)/10**d;
4 }
5 /
Function null compiled
SQL> create or replace function PI(decimals in number)
2 return number as language javascript
3 name 'test1\.js.PI(decimals number) return number';
4 /
Function PI compiled
SQL> select PI(2) from dual;
PI(2)
----------
3.14
SQL> connect demo/[email protected]//localhost/pdb1
Connected.
SQL> select PI(2) from dual;
PI(2)
----------
4.14
I have changed the code (create or replace javascript source) to add one to the result, and recompiled the function (create or replace function). Next execution has executed the old code. After re-connect I run the new code.
Regards,
Franck.
Regards,
Franck.
Answers
-
I wish there was a date for "Last updated" on the one site.
It looks like this is (now) a Known Issue (3rd bullet point)
https://oracle.github.io/oracle-db-mle/release_notes/
That "Last updated" would have told me if you (re)discovered this bug or not. (were you the one that caused them to add that bullet point or did the MLE team already know about it?)