Zugriff auf Daten aus einer gespeicherten Java-Prozedur¶
Um mit einem in Java geschriebenen Stored Procedure Handler auf Daten zuzugreifen, verwenden Sie die Snowpark-Bibliothek-APIs.
Bei der Verarbeitung eines Aufrufs Ihrer gespeicherten Java-Prozedur erstellt Snowflake ein Snowpark-Session
-Objekt und übergibt das Objekt an die Methode für Ihre gespeicherte Prozedur.
Wie bei gespeicherten Prozeduren in anderen Sprachen wird der Kontext für die Sitzung (z. B. die Berechtigungen, die aktuelle Datenbank, das aktuelle Schema usw.) dadurch bestimmt, ob die gespeicherte Prozedur mit Aufruferrechten oder mit Eigentümerrechten ausgeführt wird. Weitere Details dazu finden Sie unter Zugriff auf und Einstellung des Sitzungsstatus.
Sie können dieses Session
-Objekt verwenden, um APIs in der Snowpark-Bibliothek aufzurufen. Sie können zum Beispiel einen DataFrame für eine Tabelle erstellen oder eine SQL-Anweisung ausführen.
Weitere Informationen dazu finden Sie im Snowpark-Entwicklerhandbuch für Java.
Bemerkung
Weitere Informationen zu Einschränkungen, einschließlich Einschränkungen beim Zugriff auf Daten, finden Sie unter Beschränkungen von gespeicherten Java-Prozeduren.
Beispiel für Datenzugriff¶
Es folgt ein Beispiel, in dem eine Java-Methode eine bestimmte Anzahl von Zeilen aus einer Tabelle in eine andere Tabelle kopiert. Der Methode werden die folgenden Argumente übergeben:
Ein Snowpark-
Session
-ObjektDer Name der Tabelle, aus der die Zeilen kopiert werden sollen
Der Name der Tabelle, in der die Zeilen gespeichert werden sollen
Die Anzahl der zu kopierenden Zeilen
Die Methode in diesem Beispiel gibt eine Zeichenfolge zurück.
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";
}
}