Обсуждение: query and stored procedures

Поиск
Список
Период
Сортировка

query and stored procedures

От
David Bear
Дата:
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"

Re: query and stored procedures

От
"Uwe C. Schroeder"
Дата:
-----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-----


Re: query and stored procedures

От
"Joshua D. Drake"
Дата:
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


Вложения