Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri
SQL Server Dil Uzantıları özelliği, Java çalışma zamanını çağırmak için arabirim olarak sp_execute_external_script sistem saklı yordamını kullanır.
Bu nasıl yapılır makalesinde, SQL Server'da yürütülen Java sınıfları ve yöntemleri için uygulama ayrıntıları açıklanmaktadır.
Java sınıflarının yerleştirileceği yer
SQL Server'da Java sınıflarını çağırmak için iki yöntem vardır:
.classveya.jardosyalarını Java classpath'inize yerleştirin.Bir dosyadaki
.jarderlenmiş sınıfları ve diğer bağımlılıkları , dış kitaplık DDL'sini kullanarak veritabanına yükleyin.
Uyarı
Genel bir öneri olarak, tek tek .class dosyaları yerine .jar dosyalarını kullanın. Bu, Java'da yaygın bir uygulamadır ve genel deneyimi kolaylaştırır. Ayrıca bkz. Sınıf dosyalarından Java .jar dosyası oluşturma.
Sınıf yolunu kullan
Temel ilkeler
Sql Server'da Java yürütülürken bazı temel ilkeler aşağıdadır.
Derlenmiş özel Java sınıfları, Java sınıf yolunuzdaki
.classdosyalarda veya.jardosyalarda bulunmalıdır. CLASSPATH parametresi, derlenmiş Java dosyalarının yolunu sağlar.Çağırdığınız Java yöntemi, saklı yordamda
scriptparametresinde belirtilmelidir.Sınıf bir pakete aitse,
packageNamebelirtilmelidir.paramsbir Java sınıfına parametre geçirmek için kullanılır. Parametre gerektiren bir yöntemin çağrılması desteklenmez. Bu nedenle, bağımsız değişken değerlerini yönteminize geçirmenin tek yolu parametrelerdir.
Uyarı
Bu not, SQL Server 2019 (15.x) ve sonraki sürümlerde Java'ya özgü desteklenen ve desteklenmeyen işlemleri yeniden ifade eder. Saklı yordamda giriş parametreleri desteklenirken çıkış parametreleri desteklenmez.
Java sınıfını çağırma
sp_execute_external_script sistem saklı yordamı, Java çalışma zamanını çağırmak için kullanılan arabirimdir. Aşağıdaki örnekte, Java uzantısını kullanan bir sp_execute_external_script ile yol, betik ve özel kodunuzu belirtmeye yönelik parametreler gösterilmektedir.
Uyarı
Çağrılacak yöntemi tanımlamanız gerekmez. Varsayılan olarak, adlı execute bir yöntem çağrılır. Bu, SQL Server için Java için Microsoft Genişletilebilirlik SDK'sını izlemeniz ve Java sınıfınızda bir yürütme yöntemi uygulamanız gerektiği anlamına gelir.
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'i ayarlama
Java sınıfınızı veya sınıflarınızı derleyip Java'nızda .jarbir classpath dosya oluşturduktan sonra, SQL Server Java uzantısının yolunu sağlamak için iki seçeneğiniz vardır:
Dış kitaplıkları kullanma
En kolay seçenek, dış kitaplıklar oluşturup kitaplığı jar'a işaret ederek SQL Server'ın sınıflarınızı otomatik olarak bulmasını sağlamaktır. Java için dış kitaplıkları kullanma
Sistem ortam değişkenlerini kaydetme
Sistem ortam değişkeni oluşturabilir ve sınıfları içeren
.jardosyanızın yolunu belirtebilirsiniz. adlıCLASSPATHbir sistem ortamı değişkeni oluşturun.
Harici kitaplık kullan
SQL Server 2019 (15.x) ve sonraki sürümlerinde, Windows ve Linux'ta Java dili için dış kitaplıkları kullanabilirsiniz. Sınıflarınızı bir .jar dosyada derleyebilir ve DDL kullanarak .jar dosyayı ve diğer bağımlılıkları veritabanına yükleyebilirsinizCREATE EXTERNAL LIBRARY.
Harici kitaplık içeren bir .jar dosyasını karşıya yükleme örneği:
CREATE EXTERNAL LIBRARY myJar
FROM (CONTENT = '<local path to .jar file>')
WITH (LANGUAGE = 'Java');
GO
Bir dış kitaplık oluşturduğunda, SQL Server java sınıflarına otomatik olarak erişebilir ve sınıf yolu için özel izinler ayarlamanız gerekmez.
Aşağıdaki kod, dış kitaplık olarak karşıya yüklenen bir paketten bir sınıftaki bir yöntemi çağırma örneğidir:
EXECUTE sp_execute_external_script
@language = N'Java',
@script = N'MyPackage.MyCLass',
@input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS((column1 INT));
Daha fazla bilgi için bkz. CREATE EXTERNAL LIBRARY.
SQL Server'a loopback bağlantısı
sp_execute_external_script üzerinden yürütülen Java’dan veri okumak veya veri yazmak için, JDBC üzerinden SQL Server’a geri bağlanmak üzere bir loopback bağlantısı kullanın.
sp_execute_external_script öğesinin InputDataSet ve OutputDataSet argümanlarını kullanmak mümkün olmadığında bunu kullanabilirsiniz.
Windows'ta geri döngü bağlantısı oluşturmak için aşağıdaki örneği kullanın:
jdbc:sqlserver://localhost:1433;databaseName=Adventureworks;integratedSecurity=true;
Linux'ta geri döngü bağlantısı oluşturmak için JDBC sürücüsü, aşağıdaki Sertifikada tanımlanan üç bağlantı özelliği gerektirir:
İstemci-Sertifika-Kimlik Doğrulaması