Skip to main content
1 of 4
jyao
  • 3.1k
  • 1
  • 13
  • 27

SQL Server 2016 bug for sp_execute_external_script

I think I encountered a bug with sp_execute_external_script, so here is the replay

I will get an error if I run the following script

-- error occurs
exec sp_execute_external_script @language=N'R'
, @script = N' result <- as.data.frame(c(i, j));'
, @params = N'@i varchar(100), @j varchar(100)'
, @i = 'hello'
, @j = 'world'
, @output_data_1_name = N'result' -- the position of this param caused problem
with result sets ((test varchar(100)));

I will get an error

Msg 8144, Level 16, State 2, Line 1
Procedure or function  has too many arguments specified.

However, if I just move up the @output_data_1_name like the following

-- NO error occurs
exec sp_execute_external_script @language=N'R'
, @script = N' result <- as.data.frame(c(i, j));'
, @output_data_1_name = N'result' -- this position in front of @parms caused NO problem
, @params = N'@i varchar(100), @j varchar(100)'
, @i = 'hello'
, @j = 'world'
with result sets ((test varchar(100)));

and I will get

enter image description here

Does anyone know whether I am doing something wrong or it indeed could be a bug of sql server 2016?

My environment is (by select @@version):

Microsoft SQL Server 2016 (SP1-CU1) (KB3208177) - 13.0.4411.0 (X64) 
    Jan  6 2017 14:24:37 
    Copyright (c) Microsoft Corporation
    Developer Edition (64-bit) on Windows 10 Pro 6.3 <X64> (Build 14393: )
jyao
  • 3.1k
  • 1
  • 13
  • 27