PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bisakah ekstensi bahasa JavaScript plv8 memanggil perpustakaan pihak ketiga?

Bahasa plv8 dipercaya sehingga tidak ada cara untuk memuat apa pun dari sistem file. Namun Anda dapat memuat modul dari database.

Buat tabel dengan kode sumber modul dan muat menggunakan select dan eval() . Contoh sederhana untuk mengilustrasikan ide:

create table js_modules (
    name text primary key,
    source text
);

insert into js_modules values
('test', 'function test() { return "this is a test"; }' );

Muat modul dari js_modules dalam fungsi Anda:

create or replace function my_function()
returns text language plv8 as $$
//  load module 'test' from the table js_modules
    var res = plv8.execute("select source from js_modules where name = 'test'");
    eval(res[0].source);
//  now the function test() is defined
    return test();
$$;

select my_function();

CREATE FUNCTION
  my_function   
----------------
 this is a test
(1 row) 

Anda dapat menemukan contoh yang lebih rumit dengan require() elegant yang elegan fungsi dalam posting ini:Mendalami PL/v8 . . Ini didasarkan pada plv8.start_proc (lihat juga contoh singkat di sini ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peningkatan Otomatis PostgreSQL

  2. Permintaan PostgreSQL untuk mengembalikan hasil sebagai daftar yang dipisahkan koma

  3. Indeks gabungan dengan tiga kunci, apa yang terjadi jika saya meminta melewatkan yang tengah?

  4. Migrasikan Akses MS ke PostgreSQL

  5. (Postgresql) membuat fungsi pemicu tabel memasukkan nilai ID dari baris yang diubah ke dalam tabel log, untuk replikasi khusus