Type: | Package |
Title: | Collection of 'SQL' Utilities for 'T-SQL' and 'Postgresql' |
Version: | 0.1.2 |
Description: | Includes functions for interacting with common meta data fields, writing insert statements, calling functions, and more for 'T-SQL' and 'Postgresql'. |
License: | GPL (≥ 3) |
Encoding: | UTF-8 |
Depends: | data.table, toolbox |
Imports: | DBI, odbc, parallel, stringi |
RoxygenNote: | 7.2.0 |
NeedsCompilation: | no |
Packaged: | 2023-10-14 19:34:56 UTC; tim |
Author: | Timothy Conwell [aut, cre] |
Maintainer: | Timothy Conwell <timconwell@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2023-10-14 19:50:02 UTC |
Call a SQL function/procedure.
Description
Call a SQL function/procedure.
Usage
call_function(con, schema, function_name, args, dialect = "T-SQL", cast = TRUE)
Arguments
con |
A database connection. |
schema |
A string, the schema to query. |
function_name |
A string, the function/procedure to query. |
args |
A named list or vector, names are the parameter names and values are the parameter values. |
dialect |
A string, "T-SQL" or "Postgresql"., |
cast |
TRUE/FALSE, if TRUE, will add SQL to cast the parameters to the specified type. |
Value
A data.table.
Examples
call_function(con = NULL)
Connect to a database using a connection string via DBI/odbc.
Description
Connect to a database using a connection string via DBI/odbc.
Usage
connect(
con_str = "Driver={PostgreSQL ANSI};Host=localhost;Port=5432;Database=postgres;"
)
Arguments
con_str |
A database connection string. |
Value
A database connection.
Examples
connect(NULL)
Generate a CREATE TABLE statement based on a data.frame, optionally execute the statement if con is not NULL.
Description
Generate a CREATE TABLE statement based on a data.frame, optionally execute the statement if con is not NULL.
Usage
create_table_from_data_frame(x, table_name, con = NULL)
Arguments
x |
A data.frame. |
table_name |
A string, the name of the SQL table to create. |
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
Value
A string, the CREATE TABLE statement; or the results retrieved by DBI::dbSendQuery after executing the statement.
Examples
create_table_from_data_frame(x = iris, table_name = "test")
Generate a DROP TABLE statement, optionally execute the statement if con is not NULL.
Description
Generate a DROP TABLE statement, optionally execute the statement if con is not NULL.
Usage
drop_table(args, con = NULL)
Arguments
args |
A string, the arguments to add to the DROP TABLE statement. |
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
Value
A string, the DROP TABLE statement; or the results retrieved by DBI::dbSendQuery after executing the statement.
Examples
drop_table("sample")
Retrieve the columns/types in a table.
Description
Retrieve the columns/types in a table.
Usage
fetch_columns(con, schema, table)
Arguments
con |
A database connection. |
schema |
A string, the schema to query. |
table |
A string, the table to query. |
Value
A data.table.
Examples
fetch_columns(con = NULL)
Retrieve the definition of a function/procedure.
Description
Retrieve the definition of a function/procedure.
Usage
fetch_function_definition(con, schema, function_name, type = "FUNCTION")
Arguments
con |
A database connection. |
schema |
A string, the schema to query. |
function_name |
A string, the function/procedure to query. |
type |
A string, "FUNCTION" or "PROCEDURE". |
Value
A data.table.
Examples
fetch_function_definition(con = NULL)
Retrieve the output parameters of a function/procedure.
Description
Retrieve the output parameters of a function/procedure.
Usage
fetch_function_output_parameters(con, schema, function_name, type = "FUNCTION")
Arguments
con |
A database connection. |
schema |
A string, the schema to query. |
function_name |
A string, the function/procedure to query. |
type |
A string, "FUNCTION" or "PROCEDURE". |
Value
A data.table.
Examples
fetch_function_output_parameters(con = NULL)
Retrieve the input parameters of a function/procedure.
Description
Retrieve the input parameters of a function/procedure.
Usage
fetch_function_parameters(con, schema, function_name, type = "FUNCTION")
Arguments
con |
A database connection. |
schema |
A string, the schema to query. |
function_name |
A string, the function/procedure to query. |
type |
A string, "FUNCTION" or "PROCEDURE". |
Value
A data.table.
Examples
fetch_function_parameters(con = NULL)
Retrieve the tables in a schema
Description
Retrieve the tables in a schema
Usage
fetch_tables(con, schema)
Arguments
con |
A database connection. |
schema |
A string, the schema to query. |
Value
A data.table.
Examples
fetch_tables(con = NULL)
Helper function for INSERT
Description
Helper function for INSERT
Usage
insert_batch_chunker(x, n_batches, batch_size)
Arguments
x |
A vector of data to insert. |
n_batches |
Integer, the number of batches needed to insert the data. |
batch_size |
Integer, the size of each batch. |
Value
A list.
Examples
insert_batch_chunker(c(1, 2, 3), 1, 100)
Generate a INSERT statement, optionally execute the statement if con is not NULL.
Description
Generate a INSERT statement, optionally execute the statement if con is not NULL.
Usage
insert_values(
x = NULL,
schema = NULL,
table,
returning = NULL,
quote_text = TRUE,
cast = TRUE,
types = NULL,
batch_size = 1000,
con = NULL,
table_is_temporary = FALSE,
retain_insert_order = FALSE,
n_cores = 1,
connect_db_name = NULL,
dialect = "T-SQL"
)
Arguments
x |
A list, data.frame or data.table, names must match the column names of the destination SQL table. |
schema |
A string, the schema name of the destination SQL table. |
table |
A string, the table name of the destination SQL table. |
returning |
A vector of character strings specifying the SQL column names to be returned by the INSERT statement. |
quote_text |
TRUE/FALSE, if TRUE, calls quoteText() to add single quotes around character strings. |
cast |
TRUE/FALSE, if TRUE, will add SQL to cast the data to be inserted to the specified type. |
types |
A vector of types to use for casting columns. If blank, will look at meta data about table to decide types. |
batch_size |
Integer, the maximum number of records to submit in one statement. |
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
table_is_temporary |
TRUE/FALSE, if TRUE, prevents parallel processing. |
retain_insert_order |
TRUE/FALSE, if TRUE, prevents parallel processing. |
n_cores |
A integer, the number of cores to use for parallel forking (passed to parallel::mclapply as mc.cores). |
connect_db_name |
The name of the database to pass to connect() when inserting in parallel. |
dialect |
A string, "T-SQL" or "Postgresql". |
Value
A string, the INSERT statement; or the results retrieved by DBI::dbGetQuery after executing the statement.
Examples
insert_values(
x = list(col1 = c("a", "b", "c"), col2 = c(1, 2, 3)),
schema = "test",
table = "table1",
types = c("VARCHAR(12)", "INT")
)
Add single quotes to strings using stringi::stri_join, useful for converting R strings into SQL formatted strings.
Description
Add single quotes to strings using stringi::stri_join, useful for converting R strings into SQL formatted strings.
Usage
quoteText2(x, char_only = TRUE, excluded_chars = c("NULL"))
Arguments
x |
A string. |
char_only |
TRUE/FALSE, if TRUE, adds quotes only if is.character(x) is TRUE. |
excluded_chars |
A character vector, will not add quotes if a value is in excluded_chars. |
Value
A string, with single quotes added to match SQL string formatting.
Examples
quoteText2("Sample quotes.")
Convert a column name into a SQL compatible name.
Description
Convert a column name into a SQL compatible name.
Usage
sqlizeNames(x, dialect = "T-SQL")
Arguments
x |
A string, a column name. |
dialect |
A string, "T-SQL" or "Postgresql". |
Value
A string, a SQL compatible column name.
Examples
sqlizeNames("column 100 - sample b")
Get the equivalent SQL data type for a given R object.
Description
Get the equivalent SQL data type for a given R object.
Usage
sqlizeTypes(x, dialect = "T-SQL")
Arguments
x |
A R object. |
dialect |
A string, "T-SQL" or "Postgresql". |
Value
A string, the equivalent SQL data type for x.
Examples
sqlizeTypes(100.1209)
Generate a BULK INSERT statement, optionally execute the statement if con is not NULL.
Description
Generate a BULK INSERT statement, optionally execute the statement if con is not NULL.
Usage
t_sql_bulk_insert(file, schema = NULL, table, con = NULL, ...)
Arguments
file |
A string, the file path to the file with data to insert. |
schema |
A string, the schema name of the destination SQL table. |
table |
A string, the table name of the destination SQL table. |
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
... |
named arguments are passed to the WITH statement. |
Value
A string, the BULK INSERT statement; or the results retrieved by DBI::dbGetQuery after executing the statement.
Examples
t_sql_bulk_insert(
file = tempfile(),
schema = "test",
table = "table1",
format = 'CSV',
first_row = 2,
)
Generate a CREATE TABLE statement for an existing table in Microsoft SQL Server.
Description
Generate a CREATE TABLE statement for an existing table in Microsoft SQL Server.
Usage
t_sql_script_create_table(con, table)
Arguments
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
table |
A string, the schema qualified table name of an existing SQL table. |
Value
A data table, contains the DDL scripts for creating a table.
Examples
t_sql_script_create_table(con = NULL)
Fetch the object definition of a proc in Microsoft SQL Server.
Description
Fetch the object definition of a proc in Microsoft SQL Server.
Usage
t_sql_script_proc_definition(con, proc)
Arguments
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
proc |
A string, the database and schema qualified table name of an existing SQL stored procedure. |
Value
A string, contains the script for defining a stored procedure.
Examples
t_sql_script_proc_definition(con = NULL)
Generate a TRUNCATE TABLE statement, optionally execute the statement if con is not NULL.
Description
Generate a TRUNCATE TABLE statement, optionally execute the statement if con is not NULL.
Usage
truncate_table(args, con = NULL)
Arguments
args |
A string, the arguments to add to the TRUNCATE TABLE statement. |
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
Value
A string, the TRUNCATE TABLE statement; or the results retrieved by DBI::dbGetQuery after executing the statement.
Examples
truncate_table(args = "table1")
Generate a UPDATE statement, optionally execute the statement if con is not NULL.
Description
Generate a UPDATE statement, optionally execute the statement if con is not NULL.
Usage
update_values(
x,
schema = NULL,
table,
where = NULL,
returning = NULL,
quote_text = TRUE,
cast = TRUE,
types = NULL,
con = NULL,
dialect = "T-SQL"
)
Arguments
x |
A list, data.frame or data.table, names must match the column names of the destination SQL table. |
schema |
A string, the schema name of the destination SQL table. |
table |
A string, the table name of the destination SQL table. |
where |
A string, conditions to add to a WHERE statement. |
returning |
A vector of character strings specifying the SQL column names to be returned by the UPDATE statement. |
quote_text |
TRUE/FALSE, if TRUE, calls quoteText() to add single quotes around character strings. |
cast |
TRUE/FALSE, if TRUE, will add SQL to cast the data to be inserted to the specified type. |
types |
A vector of types to use for casting columns. If blank, will look at meta data about table to decide types. |
con |
A database connection that can be passed to DBI::dbSendQuery/DBI::dbGetQuery. |
dialect |
A string, "T-SQL" or "Postgresql". |
Value
A string, the UPDATE statement; or the results retrieved by DBI::dbGetQuery after executing the statement.
Examples
update_values(
x = list(col1 = c("a"), col2 = c(1)),
schema = "test",
table = "table1",
where = "1=1",
types = c("VARCHAR(12)", "INT")
)