Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2019 (15.x) i nowsze wersje
Funkcja SQL Server Language Extensions używa systemowej procedury składowanej sp_execute_external_script jako interfejsu do wywoływania środowiska uruchomieniowego Java.
W tym artykule z instrukcjami opisano szczegóły implementacji dla klas i metod Języka Java wykonywanych w programie SQL Server.
Gdzie umieścić klasy Języka Java
Istnieją dwie metody wywoływania klas Języka Java w programie SQL Server:
Umieść
.classpliki lub.jarw ścieżce klasy Java.Prześlij skompilowane klasy w pliku
.jaroraz inne zależności do bazy danych za pomocą instrukcji DDL biblioteki zewnętrznej.
Uwaga / Notatka
Ogólnie rzecz biorąc, należy używać .jar plików, a nie pojedynczych .class plików. To powszechna praktyka w Javie i sprawi, że całość będzie łatwiejsza. Zobacz również Tworzenie pliku .jar Java z plików klas.
Użyj classpath
Podstawowe zasady
Poniżej przedstawiono kilka podstawowych zasad wykonywania języka Java w programie SQL Server.
Skompilowane niestandardowe klasy Java muszą znajdować się w plikach
.classlub.jarw ścieżce klas języka Java. Parametr CLASSPATH udostępnia ścieżkę do skompilowanych plików Java.Wywoływana metoda Java musi być podana w parametrze
scriptprocedury składowanej.Jeśli klasa należy do pakietu, należy podać wartość
packageName.paramssłuży do przekazywania parametrów do klasy Języka Java. Wywoływanie metody wymagającej argumentów nie jest obsługiwane. W związku z tym parametry są jedynym sposobem przekazywania wartości argumentów do metody.
Uwaga / Notatka
Ta uwaga umożliwia odtworzenie obsługiwanych i nieobsługiwanych operacji specyficznych dla języka Java w programie SQL Server 2019 (15.x) i nowszych wersjach. W procedurze składowanej parametry wejściowe są obsługiwane, a parametry wyjściowe nie są obsługiwane.
Wywoływanie klasy Java
Systemowa procedura składowana sp_execute_external_script służy do wywoływania środowiska uruchomieniowego Java. Poniższy przykład przedstawia element sp_execute_external_script korzystający z rozszerzenia Java oraz parametry umożliwiające określenie ścieżki, skryptu i kodu niestandardowego.
Uwaga / Notatka
Nie trzeba określać, którą metodę wywołać. Domyślnie wywoływana jest metoda o nazwie execute . Oznacza to, że musisz postępować zgodnie z pakietem Microsoft Extensibility SDK for Java for SQL Server i zaimplementować metodę execute w swojej klasie Java.
DECLARE @param1 AS INT;
SET @param1 = 3;
EXECUTE sp_execute_external_script
@language = N'Java',
@script = N'<packageName>.<ClassName>',
@input_data_1 = N'<Input Query>',
@param1 = @param1;
Ustaw zmienną CLASSPATH
Po skompilowaniu klasy lub klas Języka Java i utworzeniu .jar pliku w języku Java classpathdostępne są dwie opcje udostępniania ścieżki do rozszerzenia JAVA programu SQL Server:
Korzystanie z bibliotek zewnętrznych
Najprostszą opcją jest sprawienie, aby SQL Server automatycznie odnalazł Twoje klasy przez utworzenie bibliotek zewnętrznych i wskazanie w bibliotece pliku JAR. Używanie bibliotek zewnętrznych dla języka Java
Rejestrowanie zmiennej środowiskowej systemu
Możesz utworzyć zmienną środowiskową systemu i podać ścieżki do
.jarpliku zawierającego klasy. Utwórz systemową zmienną środowiskową o nazwieCLASSPATH.
Korzystanie z biblioteki zewnętrznej
W programie SQL Server 2019 (15.x) i nowszych wersjach można używać bibliotek zewnętrznych dla języka Java w systemach Windows i Linux. Klasy można skompilować do .jar pliku i przekazać .jar plik i inne zależności do bazy danych przy użyciu CREATE EXTERNAL LIBRARY języka DDL.
Przykład przesyłania pliku .jar za pomocą biblioteki zewnętrznej:
CREATE EXTERNAL LIBRARY myJar
FROM (CONTENT = '<local path to .jar file>')
WITH (LANGUAGE = 'Java');
GO
Podczas tworzenia biblioteki zewnętrznej program SQL Server automatycznie ma dostęp do klas Języka Java i nie trzeba ustawiać żadnych specjalnych uprawnień do ścieżki klas.
Poniższy kod to przykład wywoływania metody w klasie z pakietu przekazanego jako biblioteka zewnętrzna:
EXECUTE sp_execute_external_script
@language = N'Java',
@script = N'MyPackage.MyCLass',
@input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS((column1 INT));
Aby uzyskać więcej informacji, zobacz CREATE EXTERNAL LIBRARY.
Połączenie typu loopback z serwerem SQL Server
Użyj połączenia zwrotnego, aby połączyć się z serwerem SQL Server przez JDBC i odczytywać lub zapisywać dane z poziomu kodu Java uruchamianego z sp_execute_external_script. Można tego użyć, gdy nie można użyć argumentów InputDataSet i OutputDataSet elementu sp_execute_external_script.
Aby utworzyć połączenie w pętli zwrotnej w systemie Windows, skorzystaj z poniższego przykładu:
jdbc:sqlserver://localhost:1433;databaseName=Adventureworks;integratedSecurity=true;
Aby nawiązać połączenie typu loopback w systemie Linux, sterownik JDBC wymaga trzech właściwości połączenia określonych w poniższym certyfikacie:
Uwierzytelnianie za pomocą certyfikatu klienta