KB4577594 – RJEŠENJE: dodavanje direktorija jezika i proširenja varijabli okruženja PATH u SQL Server 2019

Primjenjuje se na
SQL Server 2019 on Linux SQL Server 2019 on Windows

Simptomi

Kada pokrenete proširenje za vanjski jezik drugog proizvođača koje ovisi o drugoj zajedničkoj biblioteci, možda će vam se prikazati poruka o pogrešci.

Pogreška Biblioteka nije pronađena

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Rješenje

Taj je problem riješen u sljedećem kumulativnom ažuriranju za SQL Server:

O kumulativnim ažuriranjima za SQL Server:

Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:

Zaobilazno rješenje

U sustavu Windows:

Da biste zaobišli taj problem, izričito dodajte sljedeće:

  • put do biblioteka zavisnosti ako ZIP jezičnog proširenja ne sadrži biblioteku zavisnosti ILI
  • direktorije jezika i proširenja Ako ZIP jezičnog proširenja uz samo proširenje sadrži i biblioteku ovisnosti

varijabli okruženja PATH sustava tako da se mogu pronaći biblioteke ovisnosti.

Na primjer:

1. scenarij:

  1. imate jezični nastavak s bibliotekom zavisnosti na lokaciji: C:\\Users\\admin\\Documents\\dependency.dll.
  2. language-extension.zip sadrži samo languageExtension.dll.
  3. Zatim provjerite je li put do ovisnosti dodan u varijablu okruženja PATH sustava. Primjerice C:\\Korisnici\\administrator\\Dokumenti.

CREATE EXTERNAL LANGUAGE [mylanguage]

FROM (CONTENT = N'C:\\Users\\admin\\Documents\\language-extension.zip', FILE_NAME = 'languageExtension.dll')

GO

2. scenarij:

  1. Ako language-extension.zip sadrži i languageExtension.dll proširenja i biblioteku ovisnosti – dependency.dll, najprije pronađite sljedeći ID jezika počevši od 65536 tako da pokrenete sljedeći prikaz kataloga u odgovarajućoj bazi podataka i dodate 1 najvišem ID-u instaliranog jezika koji je veći od 65536. Za glavnu bazu podataka, primjerice, "ODABERI * FROM master.sys.external_languages".
  2. Generirajte put do direktorija jezika tako da naziv instance, database_id i next_language_id zamijenite sljedećim putem: C:\\Program Files\\Microsoft SQL Server\\MSSQL15. MSSQLSERVER\\MSSQL\\ExternalLanguages\\<database_id>\\sljedeći< ID> jezika.
  3. Zatim vanjski jezik stvorite na sljedeći način:

CREATE EXTERNAL LANGUAGE [mylanguage]

FROM (CONTENT = N'C:\\Users\\admin\\Documents\\language-extension.zip', FILE_NAME = 'languageExtension.dll',

ENVIRONMENT_VARIABLES = N'{"PATH":"C:\\ProgramFiles\\Microsoft SQLServer\\MSSQL15. MSSQLSERVER\\MSSQL\\ExternalLanguages\\1\\65536"}');

GO

Za Linux:
      

Nema popravka i uvijek biste trebali dodati ${ORIGIN} u opciju poveznika rpath kada kompajlrate proširenja.

Na primjer: set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath,'${ORIGIN}'")

Reference

Saznajte više o terminologiji koju Microsoft upotrebljava za opisivanje softverskih ažuriranja.