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 select
và eval()
. 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
).