1

グローバル一時テーブルを作成しました。コードを個別のスクリプトとして実行すると、正常に機能します。しかし、TOADで単一のスクリプトとして実行すると、レコードは作成されませんでした。空のグローバル一時テーブルがありました。

例えば。

CREATE GLOBAL TEMPORARY TABLE TEMP_TRAN
(
COL1 NUMBER(9),
COL2 VARCHAR2(30),
COL3 DATE
) ON COMMIT PRESERVE ROWS
/

INSERT INTO TEMP_TRAN VALUES(1,'D',sysdate);
/
INSERT INTO TEMP_TRAN VALUES(2,'I',sysdate);
/
INSERT INTO TEMP_TRAN VALUES(3,'s',sysdate);
/
COMMIT;

上記のコードを一度に1つのステートメントで実行すると、正常に機能します。しかし、スクリプトとして実行すると正常に実行されますが、一時テーブルにレコードがありませんでした。

誰かがこれについて私を助けてくれますか?

4

2 に答える 2

2

明示的に述べON COMMIT PRESERVE ROWSたので、行が「消える」ように見える唯一の理由は、TOADが複数のセッションを使用していることです(つまり、セッションAでスクリプトを実行し、セッションBでテーブルをクエリしています。空のテーブル)。

私はToadをあまり使用していませんが、このツールを使用していくつかの独立したセッションを開くことができることは知っています。

SELECT * FROM TEMP_TRAN;コミット直後にスクリプトの最後にクエリを配置するとどうなりますか?

于 2010-04-22T14:32:07.543 に答える
0

場合によっては、Toad内のデータ表示を更新して、[データ]タブページの下のテーブル内の変更を表示する必要があります。

于 2010-04-22T14:37:24.537 に答える