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:
Java sınıf yolunuza veya
.jardosyaları yerleştirin.class.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ı değil dosyaları kullanın.jar. 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 yolu kullanma
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ı yordamdaki
scriptparametresinde sağlanmalıdır.Sınıf bir pakete aitse,
packageNamesağlanmalıdır.paramsbir Java sınıfına parametre geçirmek için kullanılır. Bağımsız değişken 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ın kullanıldığı ve sp_execute_external_script yol, betik ve özel kodunuzu belirtmek için 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 classpathbir .jar 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
Bir sistem ortam değişkeni oluşturabilir ve sınıflarını içeren dosyanızın yollarını sağlayabilirsiniz
.jar. adlıCLASSPATHbir sistem ortamı değişkeni oluşturun.
Dış kitaplığı kullanma
SQL Server 2019 (15.x) ve sonraki sürümlerinde, Windows ve Linux'ta Java dili için dış kitaplıkları kullanabilirsiniz.
CREATE EXTERNAL LIBRARY DDL kullanarak sınıflarınızı bir .jar dosyada derleyebilir ve dosyayı ve diğer bağımlılıkları veritabanına yükleyebilirsiniz.jar.
Dış kitaplığı olan bir .jar dosyayı 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 geri döngü bağlantısı
JDBC üzerinden SQL Server'a geri dönmek için geri döngü bağlantısı kullanarak java'dan yürütülen sp_execute_external_scriptverileri okuyun veya yazın. ve OutputDataSet bağımsız değişkenlerini sp_execute_external_script kullanırken InputDataSet 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ı