Oracle PLSQL içerisinden Java sınıfı çağırma (Call the a Java Method From PLSQL)

Bazı durumlarda plsql üzerinden işlem yaptırmak yerine java dosyasından yapmak daha efektif olmaktadır. Örnek olarak şifre çözme,casting yada webservis çağırma gibi. Bunların plsql üzerinden yapılmalarıda mümkündür fakat bazen tercih edilmezler. Bu ihtiyaca göre şekillenebilir.

 

Öncelikle CallJava_AliKeskin.java dosyası oluşturuyoruz. Ardından aşağıdaki gibi içerisinde bir static bir sınıfı yaratıyoruz.

Daha sonra bu dosyayı server üzerinde bir dizine atıyoruz. Ben örnek olarak $JAVA_TOP ‘ı seçtim. Sebebi classpathlerin çoğu burada direkt tanımlı olduğu için derleme esnasında sıkıntı çıkarmamasıdır.

SecureCRT yada Putty gibi uzak yönetim ile komut satırında sunucuya bağlanıyoruz. Aynı zamanda FileZilla yada benzeri bir programlada sunucuya bağlanıyoruz. CallJava_AliKeskin.java dosyasını FTP ‘den $JAVA_TOP dizinin altına atıyoruz. Sonra aynı dizine komut ekranında gidiyoruz.

 

Buradan itibaren iki yöntem var ikisini de söyleyeceğim ama tavsiye ettiğim yöntem birinci yöntemdir.

1.Yöntem 

Sonrasında şu kodu çalıştırarak, derleme ve import yapılır.

 

2. Yöntem 

Aşağıdaki komut ile java dosyası derlenir.

Sonrasında şu kodu çalıştırarak, daha önce derlenen class dosyası içeriye import edilir.

NOT: Burada önemli bir nokta şudur siz javac ile derleme yaptığınızda application makinesinin java sürümü ile derleme yaparsınız fakat içeriye import edildiğinde database makinesinin java sürüme uyumluluğu denetlenir. Yüksek ihtimalle versiyon uyumluluk hatası alırsınız. Bu yüzden 1. Yöntem kesin çözümdür.

 

Bu adımdan sonrası iki yöntem içinde aynıdır.

Kontrol etmek istenirse database üzerinden şu sorgu ile kontrol edilebilir.

Çıktı

Bir problem yaşandığında yada redeploy yapılmak istenirse öncelikle java dosyası drop edilmelidir. Yine sunucu üzerinde aşağıdaki iki kodu teker teker çalıştırarak yapabilirsiniz.

 

 

 

Başarılı bir şekilde java dosyası deploy edildiğinde database üzerinde bir function tanımlanır. Şu kod ile tanımlayabilirsiniz.

Başarılı bir şekilde fonksiyonda oluştuktan sonra şu kod ile çalışabilirliğini test edebilirsiniz.

Çıktı

İşlem bu kadar, iyi çalışmalar.

 

 

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.