PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie liest man den Inhalt einer .sql-Datei in ein R-Skript ein, um eine Abfrage auszuführen?

Ich hatte selbst Probleme beim Lesen von SQL-Dateien und habe festgestellt, dass die Syntax häufig beschädigt wird, wenn in der SQL einzeilige Kommentare vorhanden sind. Da Sie in R die SQL-Anweisung als einzeilige Zeichenfolge speichern, wird bei doppelten Bindestrichen in der SQL im Wesentlichen jeder Code nach dem doppelten Bindestrich auskommentiert.

Dies ist eine Funktion, die ich normalerweise verwende, wenn ich eine .sql-Datei einlese, die in R verwendet werden soll.

getSQL <- function(filepath){
  con = file(filepath, "r")
  sql.string <- ""

  while (TRUE){
    line <- readLines(con, n = 1)

    if ( length(line) == 0 ){
      break
    }

    line <- gsub("\\t", " ", line)

    if(grepl("--",line) == TRUE){
      line <- paste(sub("--","/*",line),"*/")
    }

    sql.string <- paste(sql.string, line)
  }

  close(con)
  return(sql.string)
}