Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók
Az SQL Server Language Extensions szolgáltatás a sp_execute_external_script rendszer által tárolt eljárást használja interfészként a Java-futtatókörnyezet meghívásához.
Ez az útmutató ismerteti az SQL Serveren futó Java-osztályok és metódusok implementálási részleteit.
Java-osztályok helye
A Java-osztályok meghívásának két módja van az SQL Serveren:
Helyezze a
.classvagy.jarfájlokat a Java classpathjába.Töltsön fel lefordított osztályokat egy
.jarfájlban és egyéb függőségeket az adatbázisba a külső könyvtár DDL használatával.
Megjegyzés:
Általános javaslatként használjon .jar fájlokat, és ne egyéni .class fájlokat. Ez a Java általános gyakorlata, és megkönnyíti az általános élményt. Lásd még: Java-.jar-fájl létrehozása osztályfájlokból.
Az osztályút használata
Alapelvek
A Java SQL Serveren való végrehajtásakor az alábbiak néhány alapelvet követnek.
A lefordított egyéni Java-osztályoknak a Java-osztályelérési útvonalon található
.classvagy.jarfájlokban kell lenniük. A CLASSPATH paraméter megadja a lefordított Java-fájlok elérési útját.A meghívandó Java-metódust meg kell adni a
scripttárolt eljárás paraméterében.Ha az osztály egy csomaghoz tartozik, meg kell adni a
packageNameelemet.paramsa paraméterek Java-osztályba való továbbítására szolgál. Az argumentumokat igénylő metódus meghívása nem támogatott. Ezért a paraméterek az egyetlen módja annak, hogy argumentumértékeket adjanak át a metódusnak.
Megjegyzés:
Ez a megjegyzés az SQL Server 2019 -ben (15.x) és újabb verziókban a Java-ra vonatkozó támogatott és nem támogatott műveleteket ismerteti. A tárolt eljárásban a bemeneti paraméterek támogatottak, míg a kimeneti paraméterek nem támogatottak.
Java-osztály meghívása
A sp_execute_external_script rendszer által tárolt eljárás a Java-futtatókörnyezet meghívására használt felület. Az alábbi példa egy sp_execute_external_script Java-bővítményt, valamint az elérési út, a szkript és az egyéni kód megadására szolgáló paramétereket mutatja be.
Megjegyzés:
Nem kell megadnia, hogy melyik metódust kell meghívni. Alapértelmezés szerint a rendszer meghív egy metódust execute . Ez azt jelenti, hogy követnie kell a Microsoft Extensibility SDK for Java for SQL Servert , és implementálnia kell egy végrehajtási metódust a Java-osztályban.
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;
CLASSPATH beállítása
Miután lefordította a Java-osztályt vagy -osztályokat, és létrehozott egy .jar fájlt a Javában classpath, két lehetősége van az SQL Server Java-bővítmény elérési útjának megadására:
Külső kódtárak használata
A legegyszerűbb lehetőség az, hogy az SQL Server automatikusan megtalálja az osztályokat külső függvénytárak létrehozásával, és a függvénytárat egy JAR-fájlra irányítva. Külső kódtárak használata Java-hoz
Rendszerkörnyezeti változó regisztrálása
Létrehozhat egy rendszerkörnyezeti változót, és megadhatja az
.jarosztályokat tartalmazó fájl elérési útját. Hozzon létre egy rendszerkörnyezeti változót .CLASSPATH
Külső kódtár használata
Az SQL Server 2019 (15.x) és újabb verzióiban külső kódtárakat használhat a Java nyelvhez Windowson és Linuxon. Az osztályokat lefordíthatja egy .jar fájlba, és feltöltheti a .jar fájlt és más függőségeket az adatbázisba a CREATE EXTERNAL LIBRARY DDL használatával.
Példa arra, hogyan tölthet fel egy .jar fájlt külső könyvtár használatával:
CREATE EXTERNAL LIBRARY myJar
FROM (CONTENT = '<local path to .jar file>')
WITH (LANGUAGE = 'Java');
GO
Külső kódtár létrehozásakor az SQL Server automatikusan hozzáfér a Java-osztályokhoz, és nem kell külön engedélyeket beállítania az osztályúton.
Az alábbi kód egy példa egy osztály metódusának meghívására egy csomagból, külső kódtárként feltöltve:
EXECUTE sp_execute_external_script
@language = N'Java',
@script = N'MyPackage.MyCLass',
@input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS((column1 INT));
További információért lásd CREATE EXTERNAL LIBRARY.
Visszacsatolási kapcsolat az SQL Serverrel
Hurkolt kapcsolat használatával JDBC-n keresztül visszacsatlakozhat az SQL Serverhez, hogy adatokat olvasson vagy írjon a(z) sp_execute_external_script felől futtatott Java használatával. Ezt akkor használhatja, ha nem lehetséges a sp_execute_external_scriptInputDataSet és OutputDataSet argumentumának használata.
Ha visszacsatolási kapcsolatot szeretne létesíteni a Windowsban, használja a következő példát:
jdbc:sqlserver://localhost:1433;databaseName=Adventureworks;integratedSecurity=true;
A visszacsatolási kapcsolat Linuxon való létrehozásához a JDBC-illesztőnek három kapcsolati tulajdonságra van szüksége, amelyek a következő tanúsítványban vannak definiálva: