Limitações para Scala em procedimentos armazenados criados com SQL

Os procedimentos armazenados têm as seguintes limitações:

  • Não há suporte para simultaneidade. Por exemplo, de dentro de seu código, você não pode enviar consultas a partir de múltiplos threads. O código que emite simultaneamente múltiplas consultas produzirá um erro.

  • Se você estiver executando seu procedimento armazenado a partir de uma tarefa, você deve especificar um warehouse ao criar a tarefa. (Você não pode usar recursos de computação sem servidor para executar a tarefa.)

  • Considere as seguintes limitações para usar algumas APIs do Snowpark em seu procedimento armazenado.

    • Ao usar APIs para executar os comandos PUT e GET (incluindo Session.sql("PUT ...") e Session.sql("GET ...")), você só pode gravar no diretório /tmp no sistema de arquivos com suporte de memória fornecido para a consulta que chama o procedimento.

    • Não use APIs que criem novas sessões (por exemplo, Session.builder().configs(...).create()).

    • O uso de session.jdbcConnection (e da conexão retornada por ele) não é compatível porque pode resultar em comportamento inseguro.

  • A criação de objetos temporários nomeados não é suportada em um procedimento armazenado de direitos do proprietário. Um procedimento de armazenamento de direitos do proprietário é um procedimento armazenado que funciona com os privilégios do proprietário do procedimento armazenado. Para obter mais informações, consulte direitos do chamador ou direitos do proprietário.