PostgreSQL 9.3: 函数不唯一错误[英] PostgreSQL 9.3: Function is not unique error

本文是小编为大家收集整理的关于PostgreSQL 9.3: 函数不唯一错误的处理方法,想解了PostgreSQL 9.3: 函数不唯一错误的问题怎么解决?PostgreSQL 9.3: 函数不唯一错误问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我创建了如下函数,有 11 个参数,如下所示:

函数调用:

SELECT * FROM function_TableDetails
(
    NULL::Type_Table,
    '2671ffdb-28a4-4ce4-a226-e5a21d66509e',
    'D09636DC-0185-4FFC-AEDD-63895B445CD8',
    'Xyz',
    'Cola',
    '20028243-52c2-4d23-a6fe-c3694aab84a2',
    '01-01-2000',
    '01-01-2016',
    '00:00:01',
    '23:59:59',
    'Al'
);

遇到以下错误:

ERROR:  function function_TableDetails(Type_Table, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown) is not unique
LINE 1: SELECT * FROM function_TableDetails
              ^
HINT:  Could not choose a best candidate function. You might need to add explicit type casts.

对此我有两个问题:

第一:如何解决上述错误?(因为它甚至没有进入函数内部并且没有显示错误的确切位置)

第二:如何调试功能?(特别要处理这种类型的错误)

推荐答案

您有两个或多个名为 function_TableDetails 的函数,需要 11 个参数,尽管某些参数的类型不同.您的字符串参数是无类型的,因此 Postgres 无法确定您想要哪个函数.

此查询将显示以下每个函数的签名:

SELECT oid::regprocedure
FROM pg_proc
WHERE proname = 'function_tabledetails'

如果您无意中创建了这些,只需删除您不想要的.否则,请将您的参数转换为与您尝试调用的参数所期望的类型相匹配.

本文地址:https://www.itbaoku.cn/post/1763847.html