我是Postgres和plpsql的新手,如果答案很明显,对不起。但是,我无法弄清楚我在做什么错。当我使用示例数据库函数时,一切都很好。当我尝试创建自己的应用程序时:
constructor()
该函数将执行,但是通过运行以下测试语句对其进行测试将失败:
CREATE OR REPLACE FUNCTION get_trans (p_param VARCHAR)
RETURNS TABLE (
amount money,
transactionId UUID
)
AS $$
BEGIN
RETURN QUERY SELECT
amount,
transactionId
FROM
transactions;
END; $$
LANGUAGE 'plpgsql';
,出现此错误:
SELECT *
FROM public.get_trans(
'bs'
)
这似乎是plpsql的一个非常常见的错误,而且我意识到我可能显然漏掉了一些东西,但到目前为止,对于我的情况,没有任何帮助。是目前仅具有主键的直接备用表。
任何提示都受到高度赞赏。
更新:因此,由于有了LD,我发现我的表尽管由于语法错误而在任何模式中都不存在。事实证明,正如我所认为的,postgres与MSSQL的区别更大,并且更难清除脚本错误。主要错误是-您不能在表或列定义中使用驼峰式大小写。一旦修复了这些问题并重新运行该功能,一切就好了。
答案 0 :(得分:1)
功能本身似乎还可以。 请通过使用(检查结果中的table_schema列)来确保表事务存在于公共架构中:
SELECT *
FROM information_schema.tables
WHERE table_name = 'transactions'