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 |