OracleモードでH2を使用しています。テーブルfoo
に列bar
を追加して値を入力しました。今私は戻って列にNOT NULL
の制約を与えたい。 ALTER TABLE
のためのいくつかのold Oracle docs見れH2は、Oracle構文を使用してNOT NULL制約表の列を追加することをサポートします。
は、私が最初にこれを試してみました:
ALTER TABLE foo ALTER COLUMN bar NOT NULL;
H2私に語った、Unknown data type: "NOT" …
。
は、だから私はALTER TABLE
構文については、いくつかのmore recent Oracle documentationを見て、これを試してみました:
ALTER TABLE foo MODIFY (bar VARCHAR2(255) NOT NULL);
(私はタイプを変更する必要はありませんが、生産図はそれが必要だということを示していると思われます。
H2がSyntax error in SQL statement "ALTER TABLE FOO MODIFY ([*]BAR VARCHAR2(255) NOT NULL) " …
は、私がここで間違って何をしているのですか?、私に語ったが、これはH2のOracleモードのバグです、または(可能性が高い)私は構文で決定的な何かが足りないのですか?(私は実際に試していませんオラクで私は、OracleのH2モードでサポートされている基本的なものを考え出しました。)
人は、質問をお読みください!のOracle構文が必要です。はい、H2に対してテストしています。H2がOracle構文をサポートしているかどうかを知りたいからです。あなたが私にH2構文を教えたら、H2がOracle構文をサポートしているかどうかはどのように分かりますか?
H2を使用している場合は、Oracleマニュアルではなく[H2マニュアル](http://h2database.com/html/grammar.html)を参照してください。 「オラクル・モード」は、いくつかの非常に基本的なOracle構文部分をシミュレートします。 H2はOracleのように動作しません –
Oracleと同じように動作します。 OracleモードでOracleに似ていない場合は、OracleモードでOracleのように動作するように、H2を修正するためにチケットを登録したり、リソースを提供したりする必要があります。したがって、問題は、上記のいずれかのSQLコマンドが有効なOracle構文であるかどうかです。私はSQLを使い果たしたので、またはH2がこの構文をサポートしていないので、それらは機能しませんか? (はい、私はH2マニュアルを読んでいますが、正しいOracle構文があるかどうか最初に明確にしたいと思います) –
これは意味をなさないものです。なぜOracleを使用しないのですか? –