Ruby PG 已提交 SQL
Ruby PG Submitted SQL
我正在寻找一种 PG
方法 returns 实际提交 SQL 查询到数据库。我已将此 params
语句发送到数据库:
resclose = conn.exec_params( %q{ SELECT * FROM alpha WHERE alpha.pname ILIKE ORDER BY id}, [submitted] )
这是一个简单的查询,带有一个名为 submitted
的参数。我的其他一些陈述要复杂得多。我想在数据库客户端中测试实际的 SQL
语句,看看我得到了我想要的东西。
PG
有我可以使用的方法吗?我似乎找不到 returns 实际查询的任何内容。
注意:PG
是 gem,并不意味着 postgresql
。 PG is here
没办法,因为conn.exec_params
是原生的C实现,返回的对象PG::Resul
t也没有办法显示SQL。如果您真的想查看查询,可以在您的 postgress 配置中打开语句日志记录并查看它
不过,您可能会尝试查看错误常量中是否有您可能会使用的信息,但您必须强制执行错误才能获取它(请注意,我更改了 table在 alpha_non_existent
的查询中强制出错):
begin
resclose = conn.exec_params( %q{ SELECT * FROM alpha_non_existent WHERE pname ILIKE ORDER BY id}, [submitted] )
rescue PG::Error => err
p [
err.result.error_field( PG::Result::PG_DIAG_SEVERITY ),
err.result.error_field( PG::Result::PG_DIAG_SQLSTATE ),
err.result.error_field( PG::Result::PG_DIAG_MESSAGE_PRIMARY ),
err.result.error_field( PG::Result::PG_DIAG_MESSAGE_DETAIL ),
err.result.error_field( PG::Result::PG_DIAG_MESSAGE_HINT ),
err.result.error_field( PG::Result::PG_DIAG_STATEMENT_POSITION ),
err.result.error_field( PG::Result::PG_DIAG_INTERNAL_POSITION ),
err.result.error_field( PG::Result::PG_DIAG_INTERNAL_QUERY ),
err.result.error_field( PG::Result::PG_DIAG_CONTEXT ),
err.result.error_field( PG::Result::PG_DIAG_SOURCE_FILE ),
err.result.error_field( PG::Result::PG_DIAG_SOURCE_LINE ),
err.result.error_field( PG::Result::PG_DIAG_SOURCE_FUNCTION ),
]
end
我正在寻找一种 PG
方法 returns 实际提交 SQL 查询到数据库。我已将此 params
语句发送到数据库:
resclose = conn.exec_params( %q{ SELECT * FROM alpha WHERE alpha.pname ILIKE ORDER BY id}, [submitted] )
这是一个简单的查询,带有一个名为 submitted
的参数。我的其他一些陈述要复杂得多。我想在数据库客户端中测试实际的 SQL
语句,看看我得到了我想要的东西。
PG
有我可以使用的方法吗?我似乎找不到 returns 实际查询的任何内容。
注意:PG
是 gem,并不意味着 postgresql
。 PG is here
没办法,因为conn.exec_params
是原生的C实现,返回的对象PG::Resul
t也没有办法显示SQL。如果您真的想查看查询,可以在您的 postgress 配置中打开语句日志记录并查看它
不过,您可能会尝试查看错误常量中是否有您可能会使用的信息,但您必须强制执行错误才能获取它(请注意,我更改了 table在 alpha_non_existent
的查询中强制出错):
begin
resclose = conn.exec_params( %q{ SELECT * FROM alpha_non_existent WHERE pname ILIKE ORDER BY id}, [submitted] )
rescue PG::Error => err
p [
err.result.error_field( PG::Result::PG_DIAG_SEVERITY ),
err.result.error_field( PG::Result::PG_DIAG_SQLSTATE ),
err.result.error_field( PG::Result::PG_DIAG_MESSAGE_PRIMARY ),
err.result.error_field( PG::Result::PG_DIAG_MESSAGE_DETAIL ),
err.result.error_field( PG::Result::PG_DIAG_MESSAGE_HINT ),
err.result.error_field( PG::Result::PG_DIAG_STATEMENT_POSITION ),
err.result.error_field( PG::Result::PG_DIAG_INTERNAL_POSITION ),
err.result.error_field( PG::Result::PG_DIAG_INTERNAL_QUERY ),
err.result.error_field( PG::Result::PG_DIAG_CONTEXT ),
err.result.error_field( PG::Result::PG_DIAG_SOURCE_FILE ),
err.result.error_field( PG::Result::PG_DIAG_SOURCE_LINE ),
err.result.error_field( PG::Result::PG_DIAG_SOURCE_FUNCTION ),
]
end