2014-01-09 50 views
-1

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

我的插入函数

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; 

插入查询

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

错误消息

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); 
     ^

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

我怎样才能增加明确的类型转换在postgresql中的这个函数?

回答

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'); 
+0

不喜欢工作这个相同的错误生成 –

+2

在你的函数定义 – cur4so

+0

中用'text'替换'字符变化',并且你不需要在那里指出名字 – cur4so