我正在try 手动执行SQL命令,以便访问NuoDB中的过程.

我正在使用Ruby on Rails,并使用以下命令:

ActiveRecord::Base.connection.execute("SQL query")

"SQL查询"可以是任何SQL命令.

例如,我有一个名为"反馈"的表,当我执行命令时:

ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`")

这只会返回一个"true"响应,而不是向我发送所有请求的数据.

这是Rails控制台上的输出:

SQL (0.4ms)  SELECT `feedbacks`.* FROM `feedbacks`
 => true

我想用它来调用NuoDB中的存储过程,但在调用这些过程时,它也会返回一个"true"响应.

我是否可以执行SQL命令并获取请求的数据,而不是得到"true"响应?

推荐答案

我用来执行自定义SQL语句的工作命令是:

results = ActiveRecord::Base.connection.execute("foo")

其中"foo"是sql语句(即"SELECT*FROM table").

此命令将以哈希形式返回一组值,并将它们放入results变量中.

因此,在我的rails应用程序上,我的控制器.我补充说:

def execute_statement(sql)
  results = ActiveRecord::Base.connection.execute(sql)

  if results.present?
    return results
  else
    return nil
  end
end

使用execute_语句将返回找到的记录,如果没有,则返回nil.

这样我就可以在rails应用程序的任何地方调用它,例如:

records = execute_statement("select * from table")

"execute_statement"还可以调用NuoDB过程、函数以及数据库视图.

Sql相关问答推荐

如何使用PostGIS从单个表中 Select 所有相交面组

使用`lag()`获取上一个时间戳

Access 365将文本转换回BigInt

基于多列比较连接两个表

检索上一个星期四和上一个星期三

按日期时间(不包括秒)连接表

我需要一个regexp_like来只验证字母D或T、数字和管道

如何在Hive SQL中分别按多列进行分组?

Postgresql 生成器列导致语法错误

使用SQLAlchemy和Postgres数据库创建新行时,为什么我的创建日期比更新日期晚?

一次 Select 语句中按组累计的SQL累计数

基于 Snowflake 的最大值创建新列

如何在插入时将字符串'03-January-2023'转换为日期时间

Postgresql 需要一个查询,为我提供所有没有具有特定状态值的子元素的父母

PlSql 陷入死循环

SQL 查询以填充单个列中的所有值

SQL中所有先前日期的累计总和

从多个连接返回 1 行到同一个表 - SQL Server

SQL - 汇总多个表的结果

第一个非 Null 值(有序)聚合函数