Com a introdução do recurso Python fornecido com o SQL Server 2017, gostaria de saber se alguém conseguiu usar o SSMS v17.xe executar um script python que exija uma entrada do usuário. Aqui está um exemplo de script básico:
execute sp_execute_external_script @language = N'Python',
@script =N' print ("This is a PYTHON test")
userinput = int(input ("Enter LBs to convert to KG"))
converted = userinput * 0.453592
print (converted) '
O script é executado infinitamente no SSMS enquanto se fosse apenas uma instrução de impressão; que é concluído com êxito e produz o resultado da impressão.
Eu sei que posso usar um console Python IDE como o Pycharm, mas estou me perguntando se o SSMS ainda possui esses recursos. Minha pesquisa na internet não foi tão frutífera. A maior parte do uso do Python está relacionada à modelagem e análise.
Não consigo ver nenhuma maneira possível de isso funcionar, pois o script está sendo enviado por meio de um serviço de back-end onde não há contexto de usuário (ou seja, exibição, etc). O SSMS não está executando nada. Ele está apenas enviando essas instruções para o SQL Server que lida com a execução (mesmo que o SQL Server passe para outra coisa).
A única possibilidade potencial de contornar isso, e é
éteria sido um tiro no escuro e provavelmente não seria uma solução prática, mesmo quefazfuncionou, é executar esta instrução no SQL Server Express LocalDB. Como o LocalDB é executado no modo de usuário (não é um serviço NT), ele tem acesso ao console/display. Eu sei disso porque consegui abrir uma caixa de diálogo/confirmação do Windows via SQLCLR ao usar o LocalDB :-D.No entanto, eu apenas tentei e não consegui nem fazer o
print
trabalho. Portanto, verifiquei a lista de recursos suportados ( Edições e recursos suportados do SQL Server 2017 ) eR
nemPython
estão disponíveis no Express Edition e, portanto, não no LocalDB. :-(