Avalados por :

Como chamar um procedimento armazenado do Hana de Java que aceita uma string como entrada e retorna uma string?

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

Estou tentando chamar um procedimento armazenado do Hana a partir do Java que aceita um valor de string como entrada e retorna uma string. No entanto, a chamada para o procedimento do Hana retorna um valor nulo com a seguinte mensagem:

WARN CallMetaDataProviderFactory:91 - HDB não é um dos bancos de dados totalmente suportados para chamadas de procedimento - os suportados são: [Apache Derby, DB2, MySQL, Microsoft SQL Server, Oracle, PostgreSQL, Sybase]

WARN CallMetaDataProviderFactory:95 - Processamento de metadados desabilitado - deve especificar todos os parâmetros explicitamente

JdbcTemplate:1194 - Foi adicionado o parâmetro padrão SqlReturnResultSet chamado #result-set-1

null

Pergunta: Qual é a melhor maneira de passar um parâmetro de string e obter o resultado do procedimento armazenado e armazená-lo em uma variável Java?

Abaixo está o procedimento armazenado:

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;

Ao executar o procedimento armazenado no Hana: CALL TEST.GETCITY('SAM') retorna o resultado como BERLIM

este comando quando usado em Java não parece funcionar

Abaixo está como chamo o procedimento armazenado:


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...

Olá Usha,

Você não está usando apenas JAVA ou JDBC, mas o framework Spring (pelo que parece).

É aí que você está recebendo o aviso, isso não vem do JDBC ou JAVA puro!

Agora, a mensagem diz que o Spring pode automaticamente descobrir os parâmetros para chamadas de procedimentos usando os metadados fornecidos pelos controladores JDBC de algumas plataformas de DBMS.

Para todas as outras plataformas, não está claro (visto desse framework) se os metadados estarão disponíveis, corretos, completos...

De qualquer forma, para as plataformas de DBMS que não são reconhecidas pelo Spring para a determinação automática de parâmetros, você precisa fornecer todos os parâmetros manualmente.

E todos os parâmetros incluem os parâmetros de retorno do seu procedimento.

O fato de você não ter especificado explicitamente um parâmetro OUT não elimina o conjunto de resultados de retorno implícito.

Infelizmente, não conheço o framework Spring, então aqui termina minha sabedoria e você precisa descobrir como especificar o parâmetro de conjunto de resultados de retorno.

Saudações,

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?