插入函数不在postgresql中执行

Ire*_*tel -1 sql postgresql

我在postgresql中创建插入函数,当此函数执行数据插入时,错误生成并在屏幕上显示此函数does not exit.查询中的数据插入有什么问题?

我的插入功能

CREATE OR REPLACE FUNCTION insertuserlogin(userloginidp integer, usercategoryidf integer, usertypeidf integer, usertypereferenceidf integer, loginname character varying, loginpassword character varying, menutypeidf integer, username character varying, dashboardconfig text, careprovideridf integer, isactive boolean)
  RETURNS void AS
$BODY$BEGIN
 INSERT INTO "tbuserlogin" VALUES (userloginidp,usercategoryidf,usertypeidf,usertypereferenceidf,loginname,loginpassword,menutypeidf,username,dashboardconfig,careprovideridf,isactive);
END$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION insertuserlogin(integer, integer, integer, integer, character varying, character varying, integer, character varying, text, integer, boolean)
  OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

插入查询

SELECT insertuserlogin(1,2,4,3,'fg','sdf',6,'err','fgsd',7);
Run Code Online (Sandbox Code Playgroud)

错误信息

function insertuserlogin(integer, integer, integer, integer, unknown, unknown, integer, unknown, unknown, integer) does not exist
LINE 1: SELECT insertuserlogin(1,2,4,3,'fg','sdf',6,'err','fgsd',7);
           ^
Run Code Online (Sandbox Code Playgroud)

暗示: No function matches the given name and argument types. You might need to add explicit type casts.

如何在postgresql中的此函数中添加显式类型转换?

cur*_*4so 5

你的原始函数有11个参数

SELECT insertuserlogin(1,2,4,3,'fg','sdf',6,'err','fgsd',7);

只有10.看起来你忘了设置isactive(是真还是假)尝试:

`SELECT insertuserlogin(1,2,4,3,'fg','sdf',6,'err','fgsd',7,'t');
Run Code Online (Sandbox Code Playgroud)

  • 在函数定义中用`text`替换`character varying` (2认同)