当前位置:  开发笔记 > 编程语言 > 正文

PostgreSQL 9.3:函数不是唯一错误

如何解决《PostgreSQL9.3:函数不是唯一错误》经验,为你挑选了1个好方法。

我用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.

我对此有两个问题:

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

第二:如何调试功能?(特别是必须处理此类错误)



1> Nick Barnes..:

function_TableDetails尽管某些参数的类型不同,但是您有两个或多个命名为并期望有11个参数的函数。您的字符串参数是无类型的,因此Postgres无法找出您想要的函数。

该查询将显示以下每个功能的签名:

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

如果您无意间创建了这些,只需删除不需要的即可。否则,请转换参数以匹配您要调用的参数所期望的类型。

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有