| 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")
)