¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¿Cómo llamar a un procedimiento almacenado de Hana desde Java que acepta una cadena como entrada y devuelve una cadena?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 96 Vistas
0
Cargando...

Estoy intentando llamar a un procedimiento almacenado de Hana desde Java que acepta un valor de cadena como entrada y devuelve una cadena. Pero la llamada al paso del procedimiento de Hana devuelve un valor nulo con el siguiente mensaje:

WARN  CallMetaDataProviderFactory:91 - HDB no es una de las bases de datos completamente admitidas para llamadas de procedimiento -- las admitidas son: [Apache Derby, DB2, MySQL, Microsoft SQL Server, Oracle, PostgreSQL, Sybase]

WARN  CallMetaDataProviderFactory:95 - Procesamiento de metadatos deshabilitado - debe especificar todos los parámetros explícitamente

JdbcTemplate:1194 - Se agregó el parámetro predeterminado SqlReturnResultSet llamado #result-set-1

null

Pregunta: ¿cuál es la mejor manera de pasar un parámetro de cadena y obtener el resultado del procedimiento almacenado y almacenarlo en una variable de Java?

A continuación se muestra el procedimiento almacenado:

CREATE

PROCEDURE TEST.GETCITY( IN NAME VARCHAR (20)) LANGUAGE SQLSCRIPT AS

BEGIN

SELECT TOP 1 CITY

FROM TEST1.CUSTOMER

WHERE :NAME=CUSTOMERNAME

ORDER BY INSERT_DTTM DESC

; END;

Al ejecutar el procedimiento almacenado en Hana:  CALL TEST.GETCITY('SAM')  devuelve el resultado como BERLÍN

este comando cuando se usa en Java no parece funcionar

A continuación se muestra cómo llamo al procedimiento almacenado:


private DataSource dataSource ;

private SimpleJdbcCall simpleJdbcCall ;

private JdbcTemplate jdbcTemplate = new JdbcTemplate();


private String sprocname =

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Hola Usha,

No estás utilizando solo JAVA o JDBC, sino el framework Spring (por lo que parece).

Ahí es donde recibes la advertencia, ¡esto no proviene de JDBC o JAVA puro!

Ahora, el mensaje dice que Spring puede averiguar automáticamente los parámetros para llamadas a procedimientos utilizando los metadatos proporcionados por los controladores JDBC de algunas plataformas de DBMS.

Para todas las demás plataformas no está claro (visto desde ese framework) si los metadatos estarán disponibles, correctos, completos...

De todos modos, para las plataformas de DBMS que no son reconocidas por Spring para la determinación automática de parámetros, necesitas proporcionar todos los parámetros manualmente.

Y todos los parámetros incluyen los parámetros de retorno de tu procedimiento.

El hecho de que no hayas especificado explícitamente un parámetro OUT no elimina el conjunto de resultados de retorno implícito.

Desafortunadamente, no conozco el framework Spring, así que aquí termina mi sabiduría y necesitas averiguar cómo especificar el parámetro de conjunto de resultados de retorno.

Saludos,

Lars

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?