دید ما در SQLj این است که در اصل جاوا مینویسیم، بعد برنامه جاواییمون رو به عنوان procedure یا function به دیتابیس معرفی میکنیم. خب با زبانی مانند جاوا دست شما بسیار بازتر از PL/SQL است.
در حقیقت میتوان تو سطح خود دیتابیس اوراکل میشه procedure یا function نوشت که از spring ioc استفاده کند. پس میتوان از تمام کتابخانهها، فریمورکها، ابزارهای جاوا در داخل اوراکل استفاده کرد.
حتی میتوان تو سطح خود اوراکل RMI سرور راهاندازی کرد و از بیرون innovaction رو انجام داد و اصلاً از JDBC استفاده نکرد. فقط مدل کانکشن شما عوض میشه و دیگه به صورت jdbc:oracle:thin:@localhost:1521 نیست و باید به صورت Internal Connection به دیتابیس وصل شوید. (jdbc:default)
بعد زیر ساخت خود اوراکل هم SQL-j است یعنی خیلی از functionهای رمزنگاری و Hashingای که خود اوراکل استفاده میکنه SQL-j است.
باید توجه داشته باشید که در خیلی از پروژهها PL/SQL راهکار مناسبی ارائه نمیدهد و حتماً باید از SQLj استفاده کرد:
مثال راهاندازی کلاستر دستی (نه خود دیتابیس اوراکل رو کلاستر کنید) و load balancer ایجاد کنید نمیتوانید از PL/SQL استفاده کنید و حتماً باید از SQL-j استفاده کنید.
همچنین به عنوان مثال میتوان از Hibernate در خود دیتابیس استفاده کرد.
همچنین در DB2 ما Store Procedure و SQL-j را داریم و جالبه بدونید SQL-j محصول شرکت IBM است.