[pgsql-jp: 34236] PL/pgsqlでプログラム内テーブルを作成したい
oguri
oguri @ kawatetsu-systems.com
2004年 11月 2日 (火) 18:27:33 JST
はじめて投稿させて頂きます小栗です。
PL/pgsqlについての質問です。
複数表から読んだ結果よりプログラム内テーブルを作成したいのですが
どなたか良いアイディアはありませんでしょうか?
<背景>
PL/pgsqlで作成する元になったプログラムが別言語でプログラム内テーブル
を使用しているため、可能な限りロジックを変更したくない。
<現在の状況>
現在は、以下のように行っているが要求されるレスポンスにならない。
同一セッション内で複数回CALLするため、作成した一時テーブルを削除するが
PL/pgsqlは、削除前のOIDを参照するため動的SQLでの参照になる。
BEGIN
--**(1)一時テーブルを作成して
CREATE TEMP TABLE taPROC( --*lgalc 6step
taIDX INTEGER,
SEQ NUMERIC,
LINE CHAR(1),
TP CHAR(2)
);
--**(2)動的SQLでINSERTし
vSQLstmt := ''INSERT INTO taLIST ( '';
--*中略
EXECUTE vSQLstmt;
--**(3)動的SQLでSELECTしている。
OPEN taLIST_CURSOR FOR EXECUTE vSQLstmt;
LOOP
FETCH taLIST_CURSOR INTO taLIST_LINE, taLIST_TP, taLIST_P_PDATE,
--*中略
--**(4)処理終了で削除
DROP TABLE taPROC;
=以上=
pgsql-jp メーリングリストの案内