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
.classvagy.jarfájlokat a Java-osztályúton.Töltsön fel lefordított osztályokat egy
.jarfájlba és más függőségeket az adatbázisba a külső DDL-kódtár 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ályút fájljaiban
.classvagy.jarfájljaiban 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.
packageNameparamsa 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 meghatároznia, hogy melyik metódust kell meghívnia. 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;
A 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 megoldás, ha az SQL Server automatikusan megkeresi az osztályokat külső kódtárak létrehozásával és a tár jarra mutatásával. 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 egy külső tárral rendelkező fájl feltöltésére .jar :
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ó: KÜLSŐ KÓDTÁR LÉTREHOZÁSA.
Visszacsatolási kapcsolat az SQL Serverrel
Visszacsatolási kapcsolat használatával JDBC-n keresztül csatlakozhat vissza az SQL Serverhez, hogy adatokat olvasson vagy írjon a Java-ból sp_execute_external_script. Ezt akkor használhatja, ha a InputDataSet nem lehetséges argumentumokat és OutputDataSet argumentumokat sp_execute_external_script használja.
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: