2016-05-04 4 views
0

oracle 11gに表を作成しようとしていますが、存在しない場合と同じように初めて作成する必要があります。存在する場合は、テーブルを作成すべきではありません。oracle-ORAで表の問合せを作成00922

create table IF NOT EXISTS sample_temp 
(
    SFL_ID number(10) not null, 
    STM_ID number(10) not null, 
    FIL_ID number(10) not null, 
    SYSTEM_GENERATED_FL char null , 
    SFL_DELETE_FL char not null, 
    SFL_VERSION_ID number(10) not null, 
    PTN_ID number(10) not null); 

これは、ORA-00922エラーを示し、「そうでなければ」という単語の近くで構文エラーを通知します。私は間違って何をしていますか?オラクルでサポートされていない場合、「存在しない場合」ですか?私はそれをどうやってやるべきですか?私は実際にjdbc経由でこれを作成しようとしています。

+0

[Oracleマニュアル](https://docs.oracle.com/database/121/SQLRF/toc.htm)には、「存在しない」オプションがありますか? –

+0

http://stackoverflow.com/search?q=[oraacle++create+table+if+not+exists –

答えて

0

Oracleは、IF NOT EXISTS構文をサポートしていません。最も簡単な解決策は、別のクエリを実行して、データベースのスキーマにテーブルがすでに存在するかどうかを確認することです。

ユーザーorclとして接続されている、とあなたが作成しようとしているテーブルは、同じスキーマにあることを行っている場合はカウントはあなたがして、1を返した場合、その後、あなたはこの

select count(*) from user_tables where table_name=upper('yourtable'); 

を行うことができますがテーブルが存在することを確認し、テーブル作成プロセスをスキップすることができます。それ以外の場合は、テーブルを作成します。

0

「存在しない場合は」コマンドを使用することはできません。テーブルがすでに存在するかどうか再確認します。 1つのことを行うことができます。クエリUSER_TABLESまたはDBA_TABLESを使用してテーブルが存在するかどうかを確認できます。存在する場合は実行し、存在しない場合は新しいテーブルを作成できます。

0

CREATE TABLE文をOracleエンジンに送信するだけで済みます。テーブルが存在する場合は、テーブルがすでに存在することを示すエラーが返されます。これをコードでさらに処理する必要がある場合は、このエラーメッセージをキャプチャできます。

関連する問題