Cita:
Iniciado por seyko No entiendo porque quieres hacer esto asi.
Lo normal seria tener una tabla intermedia servicios_x_facturas que relacione los servicios con las facturas.
Revisa tu diseño o da más información
Salu2
hola seyko lo que queria hacer ya lo logre programando mediante PHP y no pgplsql como queria :(
resulta q estoy haciendo un sistema para la asignatura base datos obviamente, y una nota se basa en aplicar plsql en el sistema de cada uno,ahora mi profesor es medio quisquilloso y ya que en el modelo estableci que la relacion factura con servicio es 1:N, no se justifica la creacion de una tabla intermedia.
el codigo en PHP (estoy programando en clases)
function IngresarFactura($datos_in, $datos_in2, $count){
for($i=0; $i<$count; $i=$i+1)
{
$sql="SELECT insertafactura($datos_in[0], $datos_in[1], $datos_in[2],$datos_in[3],$datos_in[4], $datos_in[5], $datos_in[6],$datos_in2[$i], $i)";
$this->id_consulta=pg_query($this->conexion,$sql);
}
donde datos_in es el vector que contiene los datos que iran a la tabla factura y datos_in2 es el vector con las ID's que se relacionaran con esa factura.
y mi funcion pgplsql es
CREATE OR REPLACE FUNCTION insertafactura(id_fac integer, dia_f integer, mes_f integer, ano_f integer, neto_f numeric, iva_f numeric, total_f numeric, id_serv integer, contador integer)
RETURNS void AS
$BODY$BEGIN
IF (contador = 0) THEN
insert into factura(id_factura,dia_fac,mes_fac,ano_fac,neto_fa c,iva_fac,total_fac,estado_fac)
values(id_fac,dia_f,mes_f,ano_f,neto_f,iva_f,total _f,'pendiente');
END IF;
UPDATE servicio
set id_factura=id_fac, pagoservicio='facturado'
where id_servicio=id_serv;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Bueno asi fue como lo resolvi, ahora si tu sabes como pasar un vector como argumento te agradeceria mucho
de antemano gracias...