使用 SQL 创建的存储过程中 Scala 的限制

存储过程有以下限制:

  • 不支持并发。例如,在代码中,不能从多个线程提交查询。同时发出多个查询的代码将产生错误。

  • 如果从任务中执行存储过程,则必须在创建任务时指定仓库。(您不能使用无服务器计算资源来运行任务。)

  • 在存储过程中使用某些 Snowpark APIs 时,请注意以下限制。

    • 使用 :ref:` 执行 PUT 和 GET 命令的 APIs <label-snowpark_dataframe_stages_file_operation>` (包括 Session.sql("PUT ...")Session.sql("GET ..."))时,只能写入为调用该过程的查询提供的内存支持文件系统中的 /tmp 目录。

    • 请勿使用 :ref:` 创建新会话的 APIs <label-snowpark_creating_session>` (例如, Session.builder().configs(...).create())。

    • 不支持使用 session.jdbcConnection (以及从中返回的连接),因为它可能会导致不安全的行为。

  • 所有者权限存储过程不支持创建指定的临时对象。所有者权限存储过程是以存储过程所有者的权限运行的存储过程。有关更多信息,请参阅 :doc:` 调用方的权限或所有者的权限 </developer-guide/stored-procedure/stored-procedures-rights>`。

语言: 中文