【发布时间】:2016-12-28 23:20:06
【问题描述】:
我有一个 Firebird 查询,我应该将它重写为 PostgreSQL 代码。
SELECT TRIM(RL.RDB$RELATION_NAME), TRIM(FR.RDB$FIELD_NAME), FS.RDB$FIELD_TYPE
FROM RDB$RELATIONS RL
LEFT OUTER JOIN RDB$RELATION_FIELDS FR ON FR.RDB$RELATION_NAME = RL.RDB$RELATION_NAME
LEFT OUTER JOIN RDB$FIELDS FS ON FS.RDB$FIELD_NAME = FR.RDB$FIELD_SOURCE
WHERE (RL.RDB$VIEW_BLR IS NULL)
ORDER BY RL.RDB$RELATION_NAME, FR.RDB$FIELD_NAME
我了解 SQL,但不知道如何使用此系统表,如 RDB$RELATIONS 等。如果有人帮我解决这个问题,那就太好了,但即使是与此表解释的一些链接也可以。
这条查询是用 C++ 代码编写的,当我尝试这样做时:
pqxx::connection conn(serverAddress.str());
pqxx::work trans(conn);
pqxx::result res(trans.exec(/*there is this SQL query*/));//and there is a mistake
它写道:
RDB$RELATIONS 不存在。
【问题讨论】:
-
老实说,您当前的查询看起来像有效的 SQL,除了表和列名语法。你能发布你的表schema(表名加上列名/类型)吗?
-
@TimBiegeleisen 我对问题文本添加了一些更改。
标签: sql postgresql firebird code-translation