PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tiện ích mở rộng ngôn ngữ JavaScript plv8 có thể gọi các thư viện của bên thứ ba không?

Ngôn ngữ plv8 được tin cậy nên không có cách nào để tải bất kỳ thứ gì từ hệ thống tệp. Tuy nhiên, bạn có thể tải các mô-đun từ cơ sở dữ liệu.

Tạo một bảng với mã nguồn của mô-đun và tải nó bằng cách sử dụng selecteval() . Một ví dụ đơn giản để minh họa ý tưởng:

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

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

Tải mô-đun từ js_modules trong chức năng của bạn:

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) 

Bạn có thể tìm thấy một ví dụ phức tạp hơn với require() thanh lịch chức năng trong bài đăng này: Đi sâu vào PL / v8 . . Nó dựa trên plv8.start_proc (xem thêm ví dụ ngắn tại đây ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phản chiếu các bảng cụ thể trong postgreSQL

  2. Sequelize Lỗi tải háo hức khi bao gồm mô hình liên quan

  3. Gỡ lỗi SQL trong pgAdmin khi SQL chứa các biến

  4. Lỗi không tìm thấy tệp PGXS Makefile khi cài đặt PostGis trên Debian

  5. truyền tham số Ngày để tạo truy vấn phạm vi ngày