The following bug has been logged on the website:

Bug reference:      7784
Logged by:          Santiago Matiz Vasquez
Email address:      sma...@hotmail.com
PostgreSQL version: 9.2.2
Operating system:   MAC LION 10.7.4
Description:        


CREATE OR REPLACE FUNCTION financiero.marchar(pidproducto int,pcant
int,pnrocuenta int,pcedula character varying(20)) RETURNS character
varying(100) AS $$
DECLARE
 valores inventarios.productos%ROWTYPE;
 mesa general.mesa%ROWTYPE;
 
 nromesa int;
 valorTOTAL real;
 valorIVA integer;

 salida character varying(100);
BEGIN

/* 
Busca dentro de la tabla de numero de cuenta la asociacion con la mesa
   si no la encuentra pone 0
*/
SELECT * INTO mesa FROM general.mesa WHERE nrocuenta = pnrocuenta;
IF (mesa.nrocuenta IS NULL) THEN
  nromesa := 0;
ELSE
  nromesa := mesa.nrocuenta;
END IF;

/* consulta el valor del producto */
 SELECT INTO valores * FROM inventarios.productos  WHERE
idproducto=pidproducto;

RAISE NOTICE 'valores.iva (%)', valores.iva;

 valorTOTAL := valores.valor * valores.iva * pcant;
 


salida := cast(valores.idproducto  as character varying(5))|| '|' ||
valores.nombre || '|' || CAST(valores.valor AS character varying(10)) || '|'
|| CAST(pcant  AS character varying(10)) ;


/*crea el cargo*/
INSERT INTO
financiero.cargos(valoru,idmesa,cedula,idproducto,cant,nrocuenta,valor_iva,iva)
VALUES
(valorTOTAL,nromesa,pcedula,pidproducto,pcant,pnrocuenta,0,valores.iva);


    RETURN salida;

    
END;
$$ LANGUAGE plpgsql;


execute : 
select financiero.marchar(1,1,1,'1');


result:
ERROR:  missing FROM-clause entry for table "valores"
LINE 1: SELECT valores.iva
               ^
QUERY:  SELECT valores.iva
CONTEXT:  PL/pgSQL function
financiero.marchar(integer,integer,integer,character varying) line 31 at
RAISE


********** Error **********

ERROR: missing FROM-clause entry for table "valores"
SQL state: 42P01
Context: PL/pgSQL function
financiero.marchar(integer,integer,integer,character varying) line 31 at
RAISE



table :


CREATE TABLE inventarios.productos
(
  idproducto integer NOT NULL,
  nombre character varying(200),
  valor integer,
  iva real DEFAULT 1.16,
  CONSTRAINT pk_producto PRIMARY KEY (idproducto)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE inventarios.productos
  OWNER TO dba;





-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to