Re: ERROR: there is no parameter $1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 7/19/2012 10:33 PM, Madhu.Lanka wrote:
Hi Friends

I am creating the function like

CREATE OR REPLACE FUNCTION getrowstest3(pname character varying,ppassword character varying)

   RETURNS SETOF getrows AS

$BODY$

declare

r getrows;

begin

for r in EXECUTE

'select u.role_id,u.user_id,p.name,p.creation_date,p.telephone_number,p.email,p.remarks,p.city,p.state,p.country,p.postal_address,p.company_name,p.department_name,p.contact_person,

p.role_group,p.role_description,p.first_name,p.last_name,p.pincode,p.status,p.department_id,p.designation_id,r.role_name,r.right_edit,r.right_filter,r.right_search,r.right_browse,

r.right_print,r.right_download,r.right_admin_user,r.right_image_creator,r.right_vector_download,r.right_wps,r.right_queries_filter,r.right_google_map,r.right_user_management,

r.right_route_analysis,r.right_legend,r.right_treeview,r.insert,r.update,r.delete,r.query,r.lock from ksdi.user_roles u,ksdi.principals p,ksdi.roles r where p.PRINCIPAL_ID = u.USER_ID and

r.role_id = u.role_id and p.name =$1  and p.password = $2;'

loop

return next r;

end loop;

return;

end

$BODY$

   LANGUAGE plpgsql VOLATILE

   COST 100

   ROWS 1000;

Where getrows is the type created by me;

It is created successfully.

I am trying to call the function I pgadmin with the following command

*select * from getrowstest2('general_user','aipl@123');*

**

I am getting the following error

ERROR:  there is no parameter $1

LINE 5: r.role_id = u.role_id and p.name= $1 and p.password = $2

                                           ^

QUERY:  select u.role_id,u.user_id,p.name,p.creation_date,p.telephone_number,p.email,p.remarks,p.city,p.state,p.country,p.postal_address,p.company_name,p.department_name,p.contact_person,

p.role_group,p.role_description,p.first_name,p.last_name,p.pincode,p.status,p.department_id,p.designation_id,r.role_name,r.right_edit,r.right_filter,r.right_search,r.right_browse,

r.right_print,r.right_download,r.right_admin_user,r.right_image_creator,r.right_vector_download,r.right_wps,r.right_queries_filter,r.right_google_map,r.right_user_management,

r.right_route_analysis,r.right_legend,r.right_treeview,r.insert,r.update,r.delete,r.query,r.lock from ksdi.user_roles u,ksdi.principals p,ksdi.roles r where p.PRINCIPAL_ID = u.USER_ID and

r.role_id = u.role_id and p.name= $1 and p.password = $2

CONTEXT:  PL/pgSQL function "getrowstest2" line 8 at FOR over EXECUTE statement

********** Error **********

ERROR: there is no parameter $1

SQL state: 42P02

Context: PL/pgSQL function "getrowstest2" line 8 at FOR over EXECUTE statement

Can anyone please help me to resolve the issue.

Thanks in Advance

Regards

Madhu.Lanka


You could shorten this right up and avoid the overhead of plpgsql by making it a pure SQL function without named parameters: (change VOLATILE to STABLE unless you are actually changing something by selecting on those tables)

CREATE OR REPLACE FUNCTION getrowstest3(character varying, character varying)

  RETURNS SETOF getrows AS

$BODY$
select u.role_id,u.user_id,p.name,p.creation_date,p.telephone_number,p.email,p.remarks,p.city,p.state,p.country,p.postal_address,p.company_name,p.department_name,p.contact_person,

p.role_group,p.role_description,p.first_name,p.last_name,p.pincode,p.status,p.department_id,p.designation_id,r.role_name,r.right_edit,r.right_filter,r.right_search,r.right_browse,

r.right_print,r.right_download,r.right_admin_user,r.right_image_creator,r.right_vector_download,r.right_wps,r.right_queries_filter,r.right_google_map,r.right_user_management,

r.right_route_analysis,r.right_legend,r.right_treeview,r.insert,r.update,r.delete,r.query,r.lock from ksdi.user_roles u,ksdi.principals p,ksdi.roles r where p.PRINCIPAL_ID = u.USER_ID and

r.role_id = u.role_id and p.name =$1  and p.password = $2
$BODY$

  LANGUAGE sql VOLATILE

  COST 100

  ROWS 1000;

--
Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux