Der plv8-Sprache wird vertraut, daher gibt es keine Möglichkeit, etwas aus dem Dateisystem zu laden. Sie können jedoch Module aus der Datenbank laden.
Erstellen Sie eine Tabelle mit Quellcode eines Moduls und laden Sie diese mit select
und eval()
. Ein einfaches Beispiel zur Veranschaulichung der Idee:
create table js_modules (
name text primary key,
source text
);
insert into js_modules values
('test', 'function test() { return "this is a test"; }' );
Laden Sie das Modul aus js_modules
in Ihrer Funktion:
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)
Ein ausführlicheres Beispiel finden Sie mit einem eleganten require()
Funktion in diesem Beitrag:A Deep Dive into PL/v8 .
. Es basiert auf plv8.start_proc
(Siehe auch ein kurzes Beispiel hier
).