Java вызов хранимой процедуры с типом параметра varbinary - PullRequest
0 голосов
/ 08 апреля 2020

Хотел бы спросить, есть ли у кого-нибудь идеи, как вызвать хранимую процедуру с тремя параметрами (первые два - varchar, а третий - varbinary) в java, я пытался вызвать его через nativequery jpa

хранимый скрипт вызова процедуры с SQL сервера

DECLARE @userSid as VARBINARY(100)
SET @test_id = SUSER_SID('test_account')
select @test_id;

EXEC dbo.testUser 'test','test',@test_id

Ниже я попытался выполнить хранимую процедуру так далеко от nativequery

@Query(value = "{call testUser(:name,:Application,:test_id)}",nativeQuery=true)
    public Object callTestProcedure(@Param("name") String name,@Param("Application") String Application,@Param("test_id") byte[] test_id); 

Попытался вызвать ее, как показано ниже ..

callTestProcedure("Truview","TruViewDataHub",Base64.decodeBase64("0x01050000000000051500000011D81D73D36F037181499C550F1A0000"))

Но это не работает, любая помощь будет оценена .. спасибо

обновлено .. также попытался преобразовать в HEX, как показано ниже

String hex=String.format("%040x", new BigInteger(1, "0x01050000000000051500000011D81D73D36F037181499C550F1A0000".getBytes("UTF-8")));
callTestProcedure("Truview","TruViewDataHub",hex);

, который будет вызвать другую ошибку "Неявное преобразование из типа данных nvarchar в varbinary не разрешено. Используйте функцию CONVERT для выполнения этого запроса."

...