2017-05-30 12 views
0

データで満たされ、後でWHERE句に使用されるGTTがいくつかあります(WHERE x in (SELECT * FROM gtt))。しかし、時には私は一時テーブル用のデータを持っていないか、それによってフィルタリングしたくありません。空白oracle where句のグローバルテンポラリテーブル

私が正しく理解していれば、何かを挿入するとGTTがインスタンス化され、そのセッションのために存在します。空のテーブルをインスタンス化する方法があるので、WHERE IN SELECTを使用してエラーをスローしません(これは現在行われています)。 または、IFを使用してSELECTステートメントを作成して、使用すべきgttsのWHEREを選択しなければなりませんか?

現在の構造は、次のようになります(複数のCisco ITPの初期導入用)

IF(data) 
INSERT INTO GTT1 SELECT ... 
END IF; 

SELECT x.data, x.more, a.a, a.b 
FROM table1 x, table2 a 
WHERE x.key in (SELECT * From gtt1) AND x.a = a.a; 
+0

エラーは何ですか? ANDの代わりに – Nitish

+0

とWHはWHEREを使用する必要があります。 SELECT x.data、x.more、aa、ab FROM table x、table2 a where(SELECT * from gtt1 WHERE xa = aa; –

+0

)明らかに機密情報を削除するようにコードを編集しています。しかし、私たちが何が起こっているのかを理解するのに十分な情報を保持するように注意する必要があります。たとえば、サンプルSELECTはコンパイルされません。 – APC

答えて

0

あなたは何の行が見つからないことをごINSERT INTO GTTなのWHERE句を変更することができます。