We use cookies to optimize our website and our service.
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
The technical storage or access that is used exclusively for statistical purposes.
The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Hi Mike
I’m not quite clear on which version will introduce the “Deprecation of SQLJ Inside the Server”.
If I refer to https://docs.oracle.com/database/121/UPGRD/deprecated.htm#UPGRD60075, this seems to be deprecated in 12.1.
I’d appreciate your input to understand this. Does it mean there’s no fix on this from 12.1 and it will not work anymore at all from 12.2.0.1?
Keeping 12.1 means we can still use SQLJ in OJVM till Jul 2021 if we pay extended support ?
Vielen Dank
Jerome
Hi Jerome,
I tried to explain here what DEPRECATED really means:
https://mikedietrichde.com/2016/03/23/what-does-deprecated-mean-and-desupported/
So basically in this case it means that we won’t develop it further – but it is fully supported and you get bug fixes and such. And you don’t have to pay extended support – but if you demand ERROR CORRECTION (aka bug fixes) after the Premier Support has ended (and the already announced first year of free extended support has ended as well) then you need to sign a contract for “paid” Extended Support. But without it you still get support but no NEW fixes.
Now coming back to SQLJ in Oracle Database 12.2:
http://docs.oracle.com/database/122/UPGRD/desupported-features-oracle-database-12c-r2.htm#UPGRD-GUID-219C5674-6F2C-4051-A61B-919DA4FF3CB6
There it is now DESUPPORTED meaning for Oracle Database 12.2 you won’t get fixes anymore. You can use the feature on your own risk but Support may refuse to assist you with 12.2 (!!! not 12.1 !!!) in case of issues.
Hope this helps – cheers
Mike
Hi Mike
Thanks a lot for your answer.
So, if I’m not mistaken, I don’t have any interest (considering SQLJ situation) to upgrade from my actual 11.2.0.4 to 12.1 or 12.2 (perhaps 12.1 to keep support) as long as I don’t change my code to use generic JDBC, ins’t it ?
Vielen Dank
Jerome
Jerome,
with an upgrade to 12.1.0.2 nothing seems to change for you. Only in 12.2 you may get in trouble due to the “not supported anymore” situation.
Cheers
Mike
Hi Mike,
our java classes and sources became INVALID after 12.2.0.1 upgrade.
import oracle.sqlj.runtime.Oracle; lines are giving me error cannot find symbol errors.
is this something fixable? Or do we need to contact the vendor to give us the new code?
Hi Bilegt,
thanks a lot for your comment – and glad to hear that you’ve upgraded to 12.2.0.1.
With the issue, I have to confess that I have no idea how to solve it. Contacting the vendor would be a good idea, involving Oracle Support via a Service Request is something I’d do as well.
Thanks
Mike
Hi Mike, thank you for your reply.
Oracle confirmed it as a bug and provided some fix, which is nothing but grant java permissions to schema and re-compile invalid objects. Since SQLJ is no longer supported in 12.2.0.1, I really did not get why they are not just saying it is unsupported and advise me to go for earlier version rather than providing some scripts.
Thanks, Bilegt
Thanks for your feedback, Bilegt. Did you get a bug number from Oracle Support? If yes, would you mind to post it here?
Thanks in advance and kind regards
Mike
Hi Mike and Bilegt Bat-Ochir,
We upgrade our development database from 12.1.0.2 to 12.2.0.1 recently.
We meet an issue with the sqlj classes, especially this instruction doesn’t compile :
sqlj.runtime.ref.DefaultContext defc = sqlj.runtime.ref.DefaultContext.getDefaultContext();
We get this error :
error: cannot find symbol
[Error] (0: 0): sqlj.runtime.ref.DefaultContext defc = sqlj.runtime.ref.DefaultContext.getDefaultContext();
When I compare the java class objects starting with sqlj exiting in the two databases, i get this result :
select *
from dba_objects
where object_type LIKE ‘%JAVA%’
and object_name like ‘sqlj%’;
12.1 : 90 objects in schema SYS
12.2 : 0 objects
So it’s normal that the java classes referencing sqlj in 12.2 became invalid.
My question is :
Is there any mean to have the sqlj classes installed in the 12.2 databases?
Thank you in advance.
Mohand
Mohand,
do you intend to reinstall the missing libs?
SQLJ sources can’t be compiled in 12.2 anymore.
As far as I know there’s no way of moving anything to 12.2 which allows you to have the functionality of 12.1 or before.
Cheers,
Mike
Hi Mike,
Thank you for the answer.
I have no idea about what to do in order to have SQLJ classes appearing in the SYS schema of the 12.2 database.
I open an SR at the Oracle Support in order to have a the answer to the above question. If it’s impossible to compile Java Classes using SQLJ in 12.2 in the server, I hope, they can give us a workaround.
Regards
Mohand