У меня есть хранимая процедура со следующим sql
EXECUTE xp_CMDShell
'\\gissrv\data\BroadSpectrumSQLTreeExtract\ogr2ogr_reproject.bat'
, который предназначен для запуска командного файла, содержащего
pushd \\gissrv\data\BroadSpectrumSQLTreeExtract\ogr2ogr
ogr2ogr -f "MSSQLSpatial"
"MSSQL:server=gissrv;database=Infrastructure;trusted_connection=yes"
"MSSQL:server=gissrv;database=Infrastructure;trusted_connection=yes" -sql
"SELECT * FROM [Infrastructure].[dbo].[BS_Trees_Line_Shire_Inv]" -t_srs
"EPSG:28355" -lco "GEOM_TYPE=geometry" -lco "GEOM_NAME=GEOMETRY_SPA" -nln
"BS_Trees_Line_Shire_Inv_reprojected2"
popd \\gissrv\data\BroadSpectrumSQLTreeExtract\ogr2ogr
Pushd создает временный диск Z для доступа к ogr2ogr.exe, а затем перепроектирует данные SQL в новую таблицу. Это работает, когда я запускаю его, но не с SQL. Я получаю следующее.
ERROR 1: Can't load requested DLL:
Z:\BroadSpectrumSQLTreeExtract\ogr2ogr\gdalplugins\ogr_MSSQLSpatial.dll
126: The specified module could not be found.
Я дал папке «SQL Service» разрешения (полный контроль). Я также попытался дать разрешения в командном файле. xp_CMDShell также был настроен на сервере. Можете ли вы запустить такой скрипт из SQL Server?