
Error en función la consulta no tiene un destino para los datos de resultado
Publicado por Jorge Gonzalez (1 intervención) el 05/07/2016 02:26:40
Estoy creando una función para que me devuelva el nombre de un cliente según un código de cliente dado como parametro de entrada:
CREATE OR REPLACE FUNCTION retornanombrecliente(ccodigo character(6), OUT cnombre character(100))RETURNS character AS
$BODY$
BEGIN
SELECT clientes.rsocial_cliente FROM clientes WHERE codigo_cliente=ccodigo;
cnombre:=rsocial_cliente;
END;
$BODY$
LANGUAGE plpgsql
Y cuando ejecuto el mismo:
SELECT * from retornanombrecliente('000001');
Me da el siguiente error:
ERROR: la consulta no tiene un destino para los datos de resultado
HINT: Si quiere descartar los resultados de un SELECT, utilice PERFORM.
CONTEXT: función PL/pgSQL retornanombrecliente(character) en la línea 3 en sentencia SQL
********** Error **********
ERROR: la consulta no tiene un destino para los datos de resultado
SQL state: 42601
Hint: Si quiere descartar los resultados de un SELECT, utilice PERFORM.
Context: función PL/pgSQL retornanombrecliente(character) en la línea 3 en sentencia SQL
Me dice que el error está en la función no encuentro dicho error.
Ahora bien he cambiado el comando utilizando el perform
CREATE OR REPLACE FUNCTION retornanombrecliente(ccodigo character(6), OUT cnombre character(100))RETURNS character AS
$BODY$
BEGIN
PERFORM clientes.rsocial_cliente FROM clientes WHERE codigo_cliente=ccodigo;
cnombre:=rsocial_cliente;
END;
$BODY$
LANGUAGE plpgsql;
y me da el siguiente error:
ERROR: no existe la columna «rsocial_cliente»
LINE 1: SELECT rsocial_cliente
^
QUERY: SELECT rsocial_cliente
CONTEXT: función PL/pgSQL retornanombrecliente(character) en la línea 4 en asignación
********** Error **********
ERROR: no existe la columna «rsocial_cliente»
SQL state: 42703
Context: función PL/pgSQL retornanombrecliente(character) en la línea 4 en asignación
CREATE OR REPLACE FUNCTION retornanombrecliente(ccodigo character(6), OUT cnombre character(100))RETURNS character AS
$BODY$
BEGIN
SELECT clientes.rsocial_cliente FROM clientes WHERE codigo_cliente=ccodigo;
cnombre:=rsocial_cliente;
END;
$BODY$
LANGUAGE plpgsql
Y cuando ejecuto el mismo:
SELECT * from retornanombrecliente('000001');
Me da el siguiente error:
ERROR: la consulta no tiene un destino para los datos de resultado
HINT: Si quiere descartar los resultados de un SELECT, utilice PERFORM.
CONTEXT: función PL/pgSQL retornanombrecliente(character) en la línea 3 en sentencia SQL
********** Error **********
ERROR: la consulta no tiene un destino para los datos de resultado
SQL state: 42601
Hint: Si quiere descartar los resultados de un SELECT, utilice PERFORM.
Context: función PL/pgSQL retornanombrecliente(character) en la línea 3 en sentencia SQL
Me dice que el error está en la función no encuentro dicho error.
Ahora bien he cambiado el comando utilizando el perform
CREATE OR REPLACE FUNCTION retornanombrecliente(ccodigo character(6), OUT cnombre character(100))RETURNS character AS
$BODY$
BEGIN
PERFORM clientes.rsocial_cliente FROM clientes WHERE codigo_cliente=ccodigo;
cnombre:=rsocial_cliente;
END;
$BODY$
LANGUAGE plpgsql;
y me da el siguiente error:
ERROR: no existe la columna «rsocial_cliente»
LINE 1: SELECT rsocial_cliente
^
QUERY: SELECT rsocial_cliente
CONTEXT: función PL/pgSQL retornanombrecliente(character) en la línea 4 en asignación
********** Error **********
ERROR: no existe la columna «rsocial_cliente»
SQL state: 42703
Context: función PL/pgSQL retornanombrecliente(character) en la línea 4 en asignación
Valora esta pregunta


0