Обсуждение: query and stored procedures
I'm so totally new to postgresql that I'm not sure how to word this. I want to create a query, that does two things 1) take input in the form of a string of numbers, and test if a) is ssn b) or internal id if the string is an ssn, make a second query to another data base, asking it to convert the ssn to our internal id otherwise, 2) use the id given to query an existing table I'm not sure what feature/function postgresql has to help me do this. I'd like to stick with using python as my language, and I'm guessing this would be stored procedure, but I'm too new to know. Please point me to some good reading. -- David Bear phone: 480-965-8257 fax: 480-965-9189 College of Public Programs/ASU Wilson Hall 232 Tempe, AZ 85287-0803 "Beware the IP portfolio, everyone will be suspect of trespassing"
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Well, I'd use pgsql - as a quick idea you could use something like: CREATE OR REPLACE FUNCTION checkssn(varchar) RETURNS SETOF whatever_your_table AS ' DECLARE incoming_ssn ALIAS FOR $1; result whatever_your_table%ROWTYPE; my_internal_id VARCHAR; BEGIN -- check if this is a ssn or internal id SELECT INTO my_internal_id internal_id FROM whatever_your_table WHERE internal_id=incoming_ssn; IF NOT FOUND THEN -- probably a ssn, so the above doesnt hit anything SELECT INTO my_internal_id internal_id FROM other_table WHERE ssn=incoming_ssn; IF NOT FOUND THEN RAISE EXCEPTION ''SSN not found!''; END IF; END IF; -- since this one returns SETOF you have to loop over the result, even if its just one FOR result IN SELECT * FROM whatever_your_table WHERE internal_id=my_internal_id LOOP RETURN NEXT result; END LOOP; RETURN; END; ' LANGUAGE 'plpgsql' VOLATILE; Hope that helps UC On Wednesday 05 January 2005 04:50 pm, David Bear wrote: > I'm so totally new to postgresql that I'm not sure how to word this. > > I want to create a query, that does two things > > 1) take input in the form of a string of numbers, and test if > a) is ssn > b) or internal id > > if the string is an ssn, make a second query to another data base, > asking it to convert the ssn to our internal id > > otherwise, > > 2) use the id given to query an existing table > > I'm not sure what feature/function postgresql has to help me do this. > I'd like to stick with using python as my language, and I'm guessing > this would be stored procedure, but I'm too new to know. > > Please point me to some good reading. - -- Open Source Solutions 4U, LLC 2570 Fleetwood Drive Phone: +1 650 872 2425 San Bruno, CA 94066 Cell: +1 650 302 2405 United States Fax: +1 650 872 2417 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQFB3J6YjqGXBvRToM4RAi1MAJ4oNUtL1AXq90c5OCYvcECAn22O9ACgshMB jT19mmCz4nHRbCjy07/wCq0= =DVA8 -----END PGP SIGNATURE-----
David Bear wrote: >I'm so totally new to postgresql that I'm not sure how to word this. > > > What you want to do is create a function (store procedure)... You can use plpythonu to do what you want. So you could create something like this: create or replace function check_id(text) returns integer as ... Sincerely, Joshua D. Drake >I want to create a query, that does two things > >1) take input in the form of a string of numbers, and test if > a) is ssn > b) or internal id > >if the string is an ssn, make a second query to another data base, >asking it to convert the ssn to our internal id > >otherwise, > >2) use the id given to query an existing table > >I'm not sure what feature/function postgresql has to help me do this. >I'd like to stick with using python as my language, and I'm guessing >this would be stored procedure, but I'm too new to know. > >Please point me to some good reading. > > > -- Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC Postgresql support, programming shared hosting and dedicated hosting. +1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com PostgreSQL Replicator -- production quality replication for PostgreSQL