منبع اصلی نوشتار زیر در این لینک قرار دارد

تفاوت SQLj و PL/SQL

دید ما در SQLj این است که در اصل جاوا می‌نویسیم، بعد برنامه جاوایی‌مون رو به عنوان procedure یا function به دیتابیس معرفی می‌کنیم. خب با زبانی مانند جاوا دست شما بسیار بازتر از PL/SQL است.

در حقیقت می‌توان تو سطح خود دیتابیس اوراکل میشه procedure یا function نوشت که از spring ioc استفاده کند. پس می‌توان از تمام کتابخانه‌ها، فریم‌ورک‌ها، ابزارهای جاوا در داخل اوراکل استفاده کرد.

حتی می‌توان تو سطح خود اوراکل RMI سرور راه‌اندازی کرد و از بیرون innovaction رو انجام داد و اصلاً از JDBC استفاده نکرد. فقط مدل کانکشن شما عوض میشه و دیگه به صورت jdbc:oracle:thin:@localhost:1521 نیست و باید به صورت internal connection به دیتابیس وصل شوید. (jdbc:default)

بعد زیر ساخت خود اوراکل هم SQLj است یعنی خیلی از functionهای رمزنگاری و Hashing ای که خود اوراکل استفاده می‌کنه SQLj است.

باید توجه داشته باشید که در خیلی از پروژه‌ها PL/SQL راهکار مناسبی ارائه نمی‌دهد و حتماً باید از SQLj استفاده کرد:

مثال راه‌اندازی کلاستر دستی (نه خود دستابیس اوراکل رو کلاستر کنید) و load balancer ایجاد کنید نمی‌توانید از PL/SQL استفاده کنید و حتماً باید از SQLj استفاده کنید. 

همچنین در DB2 ما Store Procedure و SQLj را داریم و جالبه بدونید SQLj محصول شرکت IBM است.