Ich habe SQL Server gespeicherte Prozeduren geschrieben mit R-Funktionen. Alle arbeiten ohne Problem von Sql Server Management Studio mit einer Ausnahme.Sql Server Gespeicherte Prozedur Aufruf saisonale Paket in R
Ich möchte das saisonale Paket verwenden, aber der Code in Sql Server Management Studio schlägt fehl. Derselbe Code funktioniert absolut gut in R (C: \ Programme \ Microsoft SQL Server \ MSSQL 13.SQLEXPRESS \ R_SERVICES \ bin).
Sys.setenv("X13_PATH" = "C:/Program Files/Microsoft SQL Server/MSSQL13.SQLEXPRESS/R_SERVICES/library/x13binary/bin");
require(seasonal);
seasonal::checkX13()
(Ich habe die X13_PATH hier enthalten, wie es für die SQL Server-R notwendig ist, zu arbeiten - es ist nicht erforderlich, wenn von meinem Desktop R laufen).
Die Fehlermeldung angezeigt wird:
STDERR message(s) from external script:
Loading required package: seasonal
X-13 installation test:
- X13_PATH correctly specified
- binary executable file found
- command line test run successful
- command line test produced HTML output
Error : seasonal test run failed, with the message:
Error : X-13 has run but produced no data
Error details:
- X13_PATH: C:/Program Files/Microsoft SQL Server/MSSQL13.SQLEXPRESS/R_SERVICES/library/x13binary/bin
- Full binary path: "C:/Program Files/Microsoft SQL Server/MSSQL13.SQLEXPRESS/R_SERVICES/library/x13binary/bin/x13ashtml.exe"
- Platform: x86_64-w64-mingw32
- R-Version: R version 3.2.2 (2015-08-14)
- seasonal-Version: 1.1.0
Genau die gleiche Code läuft von R in dem SQL-Verzeichnis zurückkehrt:
X-13 installation test:
- X13_PATH correctly specified
- binary executable file found
- command line test run successful
- command line test produced HTML output
- seasonal test run successful
Congratulations! 'seasonal' should work fine!
ich Berechtigungen für diese Ordner für Vollzugriff gewährt (für R, für R-Bibliotheksordner, für den X13-Binärordner), in der Hoffnung, dass dies das Problem lösen würde, aber es immer noch fehlschlägt ...
Irgendwelche Ideen, wie Sie das bitte zu lösen?
Ursache: Die Datendatei, die durch Ausführen des externen R-Skripts in SQL Server als temporäre Datei erstellt wurde, hat einen sehr LANGEN Namen. Dieser Pfad wird in der .spc-Datei angegeben, die vom x13ashtml.exe-Prozess gelesen wird und den Grenzwert für den Datendateinamen auf 133 festlegt. –
Erstellen Sie eine symbolische Verknüpfung zum ExtensibilityData-Ordner mklink/dc: \ extensibilitydata- "C: \ Programme \ Microsoft SQL Server \ MSSQL13.MSQLSERVER \ MSSQL \ ExtensibilityData" z mklink /dc:\extensibilitydata-MSSQL13.MSSQLSERVER "C: \ Programme \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ ExtensibilityData" Bearbeiten Sie C: \ Programme \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ rlauncher.config, Setzen Sie WORKING_DIRECTORY auf diese neu erstellte symbolische Verbindung. z.B. WORKING_DIRECTORY = C: \ Erweiterbarkeitsdatensatz-MSSQL13.MSSQLSERVER –
Starten Sie den Sql Server Launchpad-Dienst neu. In einer erhöhten Eingabeaufforderung ausführen: net stop mssqllaunchpad & net starten mssqllaunchpad –