Javaストアドプロシージャからのデータアクセス

Javaで書かれたストアドプロシージャハンドラーでデータにアクセスするには、Snowparkライブラリ APIs を使用します。

Javaストアドプロシージャへの呼び出しを処理する場合、Snowflakeは、Snowpark Session オブジェクトを作成し、そのオブジェクトをストアドプロシージャのメソッドに渡します。

他の言語のストアドプロシージャと同様、セッションのコンテキスト(権限、現在のデータベース、スキーマなど)は、ストアドプロシージャが呼び出し元の権限で実行されるか、所有者の権限で実行されるかによって決まります。詳細については、 セッション状態へのアクセスおよび設定 をご参照ください。

この Session オブジェクトを使用して、 Snowparkライブラリ の APIs を呼び出すことができます。たとえば、 テーブルの DataFrame を作成 したり、 SQL ステートメントを実行したりできます。

詳細については、 Java用Snowpark開発者ガイド をご参照ください。

注釈

データへのアクセスの制限など、制限については、 Java ストアドプロシージャの制限 をご参照ください。

データアクセスの例

以下の例では、Javaメソッドがあるテーブルから別のテーブルに指定された行数をコピーしています。このメソッドは次の引数を取ります。

  • Snowpark Session オブジェクト

  • 行をコピーするテーブルの名前

  • 行を保存するテーブルの名前

  • コピーする行の数。

この例のメソッドは文字列を返します。

import com.snowflake.snowpark_java.*;

public class MyClass
{
  public String myMethod(Session session, String fromTable, String toTable, int count)
  {
    session.table(fromTable).limit(count).write().saveAsTable(toTable);
    return "Success";
  }
}
Copy