Share via


rxSqlLibPaths: Search Paths for Packages in SQL compute context

Description

Gets the search path for the library trees for packages while executing inside the SQL Server, using RxInSqlServer compute context or using T-SQL script with sp_execute_external_script stored procedure with embedded R script.

Usage

  rxSqlLibPaths(connectionString)

Arguments

connectionString

a character connection string for the SQL Server. This should be a local connection string (external connection strings are not supported while executing on a SQL Server). You can also specify RxInSqlServer compute context object for input, from which the connection string will be extracted and used.

Details

For RxInSqlServer compute context, a user specified on the connection string must be a member of one of the following roles 'db_owner' 'rpkgs-shared', 'rpkgs-private' or 'rpkgs-private' in the database. When rxExec() function is called from a client machine with RxInSqlServer compute context to execute the rx function on SQL Server, the .libPaths() is automatically updated to include the library paths returned by this rxSqlLibPaths function.

Value

A character vector of the library paths containing both "shared" or "private" scope of the packages if the user specified in the connection string is allowed access. On access denied, it returns an empty character vector.

See Also

rxPackage, .libPaths, rxFindPackage, rxInstalledPackages, rxInstallPackages,
rxRemovePackages, rxSyncPackages, require

Examples


 ## Not run:

#
# An example sp_execute_external_script T-SQL code using rxSqlLibPaths()
#
declare @instance_name nvarchar(100) = @@SERVERNAME, @database_name nvarchar(128) = db_name();
exec sp_execute_external_script 
 @language = N'R',
 @script = N'
   connStr <- paste("Driver=SQL Server;Server=", instance_name, ";Database=", database_name, ";Trusted_Connection=true;", sep="");
   .libPaths(rxSqlLibPaths(connStr));
   print(.libPaths());
 ', 
 @input_data_1 = N'', 
 @params = N'@instance_name nvarchar(100), @database_name nvarchar(128)',
 @instance_name = @instance_name, 
 @database_name = @database_name;

## End(Not run)