我用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'
如果您无意间创建了这些,只需删除不需要的即可。否则,请转换参数以匹配您要调用的参数所期望的类型。