我正在使用RRPostgreSQL
包通过R访问我的PostgreSQL数据库(9.3)。我有一些非常长且较大的sql查询(从raster2pgsql生成的几个MB大。)。
如何在R中以语句形式发送/执行sql查询文件?
正常方式
\i query.sql
似乎无法通过来工作dbSendQuery
。我试图通过读取整个sql文件作为字符向量readLines
,但是这也失败了,因为dbSendQuery显然仅支持单个命令?
dbSendQuery
或dbGetQuery
仅用于“ SQL”部分,而不是psql命令(例如)\i
。
在您的情况下,实际上最简单的方法就是使用readLines
它,然后包装dbGetQuery
一个sapply
调用。
con <- dbConnect(...) #Fill this as usual
queries <- readLines("query.sql")
sapply(queries, function(x) dbGetQuery(con,x))
dbDisconnect(con)
由于我经常使用它,因此我在.Rprofile
文件中有一个快捷方式:
dbGetQueries<-function(con,queries)sapply(queries,function(x)dbGetQuery(con,x))
当然,您也可以system
这样做:
system("psql -U username -d database -h 127.0.0.1 -p 5432 -f query.sql") #Remember to use your actual username, database, host and port
问题内容: 我有一个sql脚本文件,我需要通过java执行其中的命令。我在互联网上搜索了相同的内容,得到了一些定义解析器的代码以拆分SQL语句并执行该代码。但是它们都不适合我的sql脚本文件。因为我的脚本文件同时包含create语句和alter语句,但不带分号[相反,它具有GO]有人可以建议一种执行脚本文件的解决方案吗?谢谢,Mahesh 问题答案: 对于简单的脚本,我通常使用ibatis- Sc
Query 也可以直接执行一个SQL查询,即Select命令。在Postgres中支持原始SQL语句中使用 ` 和 ? 符号。 sql := "select * from userinfo" results, err := engine.Query(sql) 当调用 Query 时,第一个返回值 results 为 []map[string][]byte 的形式。 Query 的参数也允许传
问题内容: 我需要从批处理文件执行SQL。我正在执行以下操作以连接到Postgres并从表中选择数据 我能够连接到数据库,但是出现错误 “选择”不被识别为内部或外部命令,可操作程序或批处理文件。 有没有人遇到过这样的问题? 这是我正在尝试的查询之一,在shell脚本中也有类似的工作,(如果有查询,请忽略查询中的语法错误) 问题答案: 您可以将其管道传输到psql 当右括号是SQL查询的一部分时,必
问题内容: 我有以下方法: 在这里,我依次调用三种方法,这依次命中数据库并获取我的结果,然后对从数据库命中获得的结果进行后处理。我知道如何通过使用并发调用这三种方法。但是我想用Java 8 来实现。有人可以指导我如何通过并行流实现相同目标吗? 编辑 我只想通过Stream并行调用方法。 问题答案: 您可以利用这种方式:
问题内容: 设想: 我有3个表需要连接在一起,where子句用于限制结果集,并且从每个表中只选择了几列。简单的。但是,执行此操作的查询不是很漂亮,并且在数据库和应用程序之间使用ORM时,就像试图将方形钉放入圆孔中一样。 解决这个问题的方法是创建一个包含查询的视图,现在我的应用程序模型直接映射到数据库中的一个视图。不再疯狂地映射ORM层。 问题:假设这里没有其他因素起作用, 如果直接执行SQL语句
问题内容: 所涉及的rdms是oracle错误是 我想用这个查询做的是: 阈值表包含列阈值类型,其中包含现金交易表的列名称 对于阈值表中的每个记录,我们需要根据现金交易表中的阈值类型来比较总和(金额)组。 并将获取的数量与阈值表的threshold_amount比较 我需要选择threshold_id 阈值表: 现金交易表: 期望的输出: 让我们进行第一个提取:阈值表中的第一个记录 1.现在thr