2015-03-29 4 views
4

сказать, что я следующий POSTGRESQL композитного типа:POSTGRES составного типа на узел-Postgres

CREATE TYPE myType AS(
    id bigint, 
    name text, 
); 

и хранимая процедура, которая excepts этого типа:

CREATE FUNCTION myFunction(mt myType){ 
//do some stuff 
} 

Я хотел бы назвать эту процедуру из Узел-js с использованием модуля node-postgres.

var pg = require('pg'); 
var connectionString = "connection string"; 
pg.connect(connectionString, function(err, client, done) { 
    client.query('SELECT myFunction($1)', [some value], 
     function(err, result) { 
     // do stuff 
     done(); 
    }); 
}); 

Как создать такой тип в JS? Есть ли способ передать тип из узла в хранимую процедуру Postgres?

ответ

2

После некоторой дополнительной работы я нашел решение этой проблемы.

var pg = require('pg'); 
var connectionString = "connection string"; 

var myType = [ 
    12345, 
    'you' 
]; 
pg.connect(connectionString, function(err, client, done) { 
    client.query('SELECT myFunction($1::myType)', 
    ['(' + myType.join(',') + ')' ], 
    function(err, result) { 
     // do stuff 
    done(); 
    }); 
}); 

Объединение вернет это: 12345,you. При добавлении прицветников он создаст строку, которая будет выглядеть так: '(12345,'you')', в DB Postgres он будет добавлен к myType.

+0

хороший вопрос. Я написал такой же пример, чтобы опубликовать его, но я увидел ваш вопрос и получил все – Nulik

Смежные вопросы