相关疑难解决方法(0)

没有函数匹配给定的名称和参数类型

我的功能是:

 CREATE OR REPLACE FUNCTION FnUpdateSalegtab09
(
 iacyrid Integer,iRepId Integer,iDrId Integer,ivrid Integer,imode smallint,itrno 
varchar,itrdate timestamp,iacid Integer,ivrno varchar,iSuppId Integer,icustname 
varchar,inetamt money,idisrate real,idisamt money,iRoundOff real,ijrmid integer,iuserid 
integer,iuserdtm timestamp,iVSNo integer,iRecdAmt money,icstrate real,icstsaleamt 
money,icstamt money,itdrate real,itdamt money,icdrate real,icdamt money,iCessRate 
real,iCessAmt money,iodesc1 varchar,ioamt1 money,iCashCredit boolean,iOrderNo 
varchar,iOrderDate timestamp,iCustAdd2 varchar,iRemarks varchar,iWhoRetSl boolean,iPatName 
varchar,iDrName varchar,iFormId integer,iSalesMan varchar,iCFMode smallint,iPatId 
integer,iStkPtId integer,iDisType smallint,iBranchID integer
)
RETURNS void AS
'BEGIN 
INSERT INTO gtab09 
(
acyrid, RepId, DrId, vrid, mode, trno, trdate, acid, vrno, SuppId, custname, netamt,
disrate, disamt, RoundOff, jrmid, userid, …
Run Code Online (Sandbox Code Playgroud)

postgresql types casting function plpgsql

16
推荐指数
2
解决办法
8万
查看次数

有没有办法在Postgres中禁用函数重载

我的用户和我不使用PL/pgSQL中的函数重载.我们每个(模式,名称)元组总是有一个函数.因此,我们只想按名称删除函数,更改其签名而不必先删除它等.例如,考虑以下函数:

CREATE OR REPLACE FUNCTION myfunc(day_number SMALLINT)
RETURNS TABLE(a INT)
AS
$BODY$
BEGIN
  RETURN QUERY (SELECT 1 AS a);
END;
$BODY$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

为了节省时间,我们想按如下方式调用它,而不用限定1 ::SMALLINT,因为只有一个名为myfunc的函数,它只有一个名为day_number的参数:

SELECT * FROM myfunc(day_number := 1)
Run Code Online (Sandbox Code Playgroud)

没有歧义,值1与SMALLINT类型一致,但PostgreSQL抱怨:

SELECT * FROM myfunc(day_number := 1);
Run Code Online (Sandbox Code Playgroud)
ERROR:  function myfunc(day_number := integer) does not exist
LINE 12: SELECT * FROM myfunc(day_number := 1);
                       ^
HINT:  No function matches the given name and argument types.
You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

当我们从Python调用这些函数时,我们使用一个包装器来查找函数的签名并使用类型限定参数.这种方法有效,但似乎有可能改进.

有没有办法完全关闭功能重载?

postgresql types casting plpgsql postgresql-9.3

3
推荐指数
1
解决办法
1238
查看次数

标签 统计

casting ×2

plpgsql ×2

postgresql ×2

types ×2

function ×1

postgresql-9.3 ×1