a problem when poring from Oracle's PL/SQL to PLPGSQL

Started by billyover 17 years ago2 messages
#1billy
billywq@163.com

pgsql-hackers:

The following is Oracle's PL/SQL

if resTypeTableName is null
then
queryStr := 'select IntIID, Path FROM aaResourceData' || ' where ResType=''' || srcType || ''' and ResID=''' || srcID || '''';
else queryStr := 'select IntIID, Path FROM ' || resTypeTableName || ' where ResType=''' || srcType || ''' and ResID=''' ||
srcID || '''';
end if;

open cursorSrc for queryStr;

Here queryStr is a variable which type is TEXT OR VARCHAR or other string types.

But in PLPGSQL, we can only open a cursor this way:

open cursorSrc for select * from testtable;

We cannot substitude "select * from testtable" with a variable.

Is there another way to handle it?

Thank you for your help. :-)

        billy
        billywq@163.com
          2008-06-13

#2Mario Weilguni
mweilguni@sime.com
In reply to: billy (#1)
Re: a problem when poring from Oracle's PL/SQL to PLPGSQL

billy schrieb:

pgsql-hackers:

The following is Oracle's PL/SQL

if resTypeTableName is null
then
queryStr := 'select IntIID, Path FROM aaResourceData' || ' where ResType=''' || srcType || ''' and ResID=''' || srcID || '''';
else queryStr := 'select IntIID, Path FROM ' || resTypeTableName || ' where ResType=''' || srcType || ''' and ResID=''' ||
srcID || '''';
end if;

open cursorSrc for queryStr;

Here queryStr is a variable which type is TEXT OR VARCHAR or other string types.

But in PLPGSQL, we can only open a cursor this way:

open cursorSrc for select * from testtable;

We cannot substitude "select * from testtable" with a variable.

Is there another way to handle it?

Thank you for your help. :-)

open cursorSrc for execute queryStr; should work fine

Regards
Mario Weilguni