Yeah banyak sekali trouble yang saya hadapi sebagai tantangan dalam riset saya. Salah satunya adalah kekurangan regexp_replace pada PostgreSQL

berawal dari kebutuhan saya menggunakan engine regex untuk Unicode yang tidak bisa terpenuhi menggunakan fungsi bawaan PostgreSQL yaitu regexp_replace. Akhirnya saya terpaksa menggunakan engine regex milik Perl yang yang harus diinstal sebelum menggunakannya.

Instalnya cukup mudah, cukup dengan menjalankan perintah > createlang plperl dbname. Sebenarnya pada distribusinya PostgreSQL sudah menambahkan PL/PgSQL, PL/Tcl, PL/Perl, and PL/Python.  Dan masing masing database akan ikut diinstalkan jika menggunakan “template1”. Namun karena saya menggunakan “template0” yang berarti kosong, jadi saya harus menjalankan perintah > createlang plperl dbname.

Permasalahannya adalah muncul error berikut :

createlang: language installation failed: ERROR:  could not load library “C:/Program Files (x86)/PostgreSQL/9.0/lib/plperl.dll”: The specified module could not be found.

Ya eror ini muncul karena dua kemungkinan, yaitu :

  • Belum diInstall-nya Pearl Itu sendiri
  • ATAU plperl.dll membutuhkan perl versi khusus.(Manja banget sih -_-!)

Hal yang harus dilakukan adalah dengan melihan ketergantungan si plperl.dll dengan menggunakan software Dependency walker dan lihat kebutuhan yang kurang. Pada komputer saya yang kurang adalah perl510.dll dan posgres.exe


Untuk Postgres.exe, caranya cukup mudah yaitu dengan memasukkan PATH “C:\Program Files (x86)\PostgreSQL\9.0\bin” pada “environment variables” di Windows. Berarti sekarang sisa yang bermasalah adalah versi Perl saya, sekarang saya harus menginstal versi yang sesuai, yaitu 5.10. Setelah mencari, akhirnya saya menemukan Strawberry Perl 5.10. Yeah, Instal dan jangan lupa restart database server anda dan jalankan kembali perintah > createlang plperl dbname. InsyaAllah semua akan berjalan lancar tanpa error.

Pesan : Software Dependency walker dapat anda gunakan untuk melihat ketergantungan dari plperl.dll, yang mungkin akan berbeda-beda untuk setiap kasus/versi dari PostgreSQL. Silahkan lihat apa yang kurang dan cari sendiri versi Perl yang sesuai.

Semoga bermanfaat

Ahmad Fathi hadi