Skip to Content
-1

Mostrar parametro recibidos en procedimiento hana

Hola a todos.

Esto puede pareserles muy fácil, tengo un procedimiento que es llamado con un parámetro, pero al parecer no lo reconoce ya que dentro del el procedimiento hago un select con DUMMY al parametro me arroja un "?"y no muestra nada.

lo llamo asi:

call sp_cursor_doc_cancelados (25712);

el código del procedimiento es el siguiente:

alter PROCEDURE sp_cursor_doc_cancelados( IN v_numero_doc INT)
LANGUAGE SQLSCRIPT
   AS
   v_monto_doc varchar(20);
   v_id_socio varchar(20);
   v_numero_doc varchar(20);
   v_totalAlternativo varchar(100);
   CNTR INT := v_numero_doc;
  
 CURSOR select_docuntos_cancelados FOR 
	SELECT detalle_pago."SumApplied",pagos."CardCode",facturas."FolioNum"
	FROM ovpm  AS pagos --En esta etapa selecciono los datos del documento de pago y no de la factura,esto es porque quiero ver que pasa cuando se paga algo que no es factura
	INNER JOIN vpm2 AS detalle_pago --ahora es left join,para que me seleccione aunque no encuentre facturas y sea otro tipo de documento el que se halla cancelado
	on (pagos."DocEntry"=detalle_pago."DocNum" )
	left join	OPCH AS facturas 
	on (facturas."DocEntry"=detalle_pago."DocEntry" and detalle_pago."InvType"=18)  
	where pagos."DocNum"= :v_numero_doc
  LIMIT 10;
  
  
   BEGIN
   
   --SELECCIONO EL PARAMETRO PERO NO MUESTRA NADA, POR ENEDE LA CONSULTA QU DEBE RECORRER EL CURSOR NO FUNCIONA
   select :v_numero_doc as "numero" FROM DUMMY;
  
   --En cada iteracion busco los documentos cancelados,relacionado a cada pago
				Open select_docuntos_cancelados;
					Fetch select_docuntos_cancelados into v_monto_doc,v_id_socio,v_numero_doc;
				While not select_docuntos_cancelados::NOTFOUND do 
				
				 if v_numero_doc is null then
	    			v_numero_doc:='1';
	 			 END IF;
	 			 /*linea 240*/
				v_totalAlternativo = cast(replace(v_monto_doc,'.000000','')as int) || v_totalAlternativo;
				
				Fetch select_docuntos_cancelados 
				Into 
				v_monto_doc,
				v_id_socio,
				v_numero_doc;
			end while;
			select * from mi_tabla_temporal;
			Close select_docuntos_cancelados;
			/* Elimino la tabla temporal que guarda la informacion del procedimiento*/
			/*drop table mi_tabla_temporal;*/
  end;


Add a comment
10|10000 characters needed characters exceeded

Related questions

1 Answer

  • Posted on Aug 22, 2018 at 12:52 PM

    The reason that you get a ? (null value) from the query

    select :v_numero_doc as "numero" FROM DUMMY;
    

    back, is, that you have declared a local variable v_numbero_doc - same name than your parameter - which has a null value assigned. As the select considers the local variable instead of the same named parameter, you do not get the expected integer value you pass to the function.

    Please adjust your coding that you have different names for the local variable and the parameter.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.