-----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-----


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to