невозможно записать данные MySQL в CSV-файл с помощью сценария R - PullRequest
0 голосов
/ 04 февраля 2019

Здесь я использую следующий внешний R-скрипт для написания таблицы базы данных sql csv.

Я знаю, как экспортировать данные с помощью мастера экспорта и импорта.

, но мне нужно экспортироватьданные с использованием сценариев.

        declare @file_path varchar(300)
        select @file_path = 'C:/NB/DATA/DB/arima.csv' 
        EXEC sp_execute_external_script
            @language = N'R'
            ,@script = N'
             write.csv(data,file=file_path,row.names=FALSE);'
            ,@input_data_1_name = N'data'
            ,@input_data_1= N'select * from [dbo].[fcst_model]'
            ,@params = N'@file_path varchar(300)' 
            ,@file_path = @file_path;

примечание:

  1. fcst_model - это таблица базы данных
  2. , которая имеет два столбца

при выполнениискрипт Я получил следующую ошибку.

Msg 39004, Level 16, State 20, Line 305
A 'R' script error occurred during execution of 'sp_execute_external_script' 
with HRESULT 0x80004004.
Msg 39019, Level 16, State 2, Line 305
An external script error occurred: 
Error in file(file, ifelse(append, "a", "w")) : 
cannot open the connection
Calls: source ... write.csv -> eval.parent -> eval -> eval -> write.table -> 
file
In addition: Warning message:
In file(file, ifelse(append, "a", "w")) :
cannot open file 'C:/NB/DATA/DB/arima.csv': Permission denied

Может кто-нибудь помочь мне решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 11 февраля 2019
drop proc if exists to_csv;
go
create proc to_csv(@param1 varchar(MAX))
as
begin
    exec sp_execute_external_script
    @language =  N'R'
    ,@script = N'           
                write.csv(df,output_path)'
    ,@input_data_1 = N'select * from fcst_data1'
    ,@input_data_1_name=N'df'
    ,@params = N'@output_path varchar(MAX) '
    ,@output_path = @param1;
end;
go

exec to_csv "C:\\NB\\DB\\SQL_R\\data\\data.csv"
...