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";
}
}