Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz 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 rozszerzenia języka programu SQL Server używa procedury składowanej systemu sp_execute_external_script jako interfejsu do wywoływania środowiska uruchomieniowego Języka 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.Przekaż skompilowane klasy w
.jarpliku i innych zależności do bazy danych przy użyciu zewnętrznej biblioteki DDL.
Uwaga / Notatka
Ogólnie rzecz biorąc, należy używać .jar plików, a nie pojedynczych .class plików. Jest to powszechna praktyka w języku Java i ułatwi ogólne środowisko pracy. Zobacz również Tworzenie pliku .jar Java z plików klas.
Używanie ścieżki klasy
Podstawowe zasady
Poniżej przedstawiono kilka podstawowych zasad wykonywania języka Java w programie SQL Server.
Skompilowane niestandardowe klasy języka Java muszą istnieć w
.classplikach lub.jarplikach w ścieżce klasy 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
Procedura składowana systemu sp_execute_external_script jest interfejsem używanym do wywoływania środowiska uruchomieniowego Java. W poniższym przykładzie pokazano sp_execute_external_script użycie rozszerzenia Java oraz parametry służące do określania ścieżki, skryptu i kodu niestandardowego.
Uwaga / Notatka
Nie trzeba definiować metody do wywołania. Domyślnie wywoływana jest metoda o nazwie execute . Oznacza to, że musisz postępować zgodnie z zestawem Microsoft Extensibility SDK dla języka Java dla programu SQL Server i zaimplementować metodę execute w 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 klasę 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 automatyczne znalezienie klas przez utworzenie bibliotek zewnętrznych i wskazanie biblioteki na plik 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 biblioteki DDL CREATE EXTERNAL LIBRARY .
Przykład przekazywania pliku z biblioteką zewnętrzną .jar :
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 (TWORZENIE BIBLIOTEKI ZEWNĘTRZNEJ).
Połączenie sprzężenia zwrotnego z programem SQL Server
Użyj połączenia sprzężenia zwrotnego, aby nawiązać połączenie z programem SQL Server za pośrednictwem protokołu JDBC w celu odczytu lub zapisu danych z języka Java wykonanego z programu sp_execute_external_script. Można tego użyć w przypadku używania InputDataSetsp_execute_external_script argumentów i OutputDataSet , które nie są możliwe.
Aby nawiązać połączenie sprzężenia zwrotnego w systemie Windows, użyj następującego przykładu:
jdbc:sqlserver://localhost:1433;databaseName=Adventureworks;integratedSecurity=true;
Aby nawiązać połączenie sprzężenia zwrotnego w systemie Linux, sterownik JDBC wymaga trzech właściwości połączenia zdefiniowanych w następującym certyfikacie:
Client-Certificate-Authentication