PostgreSQL 9.3:函数不是唯一的错误
PostgreSQL 9.3: Function is not unique error
我创建了以下带有 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'
如果您不小心创建了这些,只需删除不需要的即可。否则,转换您的参数以匹配您尝试调用的参数所期望的类型。
我创建了以下带有 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'
如果您不小心创建了这些,只需删除不需要的即可。否则,转换您的参数以匹配您尝试调用的参数所期望的类型。