2016-09-25 10 views
0

私はすべてのデータとスキーマをMsSqlServerからOracleに移行するツールを作成しています。エンタープライズライブラリを使用してOracleにテーブルを作成できません

使用される.Netライブラリは、です。EntlibContrib.Data.OdpNetです。

それは、テーブルを作成、実行中:私はいくつかのトピックを検索しました

ORA-00931: missing identifier 
ORA-06512: at "SYS.DBMS_UTILITY", line 156 
ORA-06512: at line 1 

しかし

答えて

1

は、あなたがに表示される解決策を見つけることができませんでした:私は例外だ

OracleDatabase db = new OracleDatabase(connectionString); 
string createDDL = "CREATE TABLE APPInvoiceItems (ABC RAW(16));"; 
db.ExecuteNonQuery(createDDL); 

OracleDatabase.ExecuteNonQueryメソッドの間違ったオーバーロードを呼び出している可能性があります。

このメソッドには、すべてがthe superclass, Databaseから継承された5つのオーバーロードがあります。呼び出すオーバーロードには、ストアドプロシージャの名前と、ストアドプロシージャのパラメータのオブジェクト配列paramsがあります。 DDLステートメントがストアドプロシージャの有効な名前ではないため、エラーが発生します。

私は、次の過負荷が働い使用していることが見つかりました:

db.ExecuteNonQuery(CommandType.Text, createDDL); 

(。CommandTypeusing System.Dataが必要です)

また、あなたのDDL文の末尾にセミコロンを削除する必要があります。そうしないと、エラーORA-00911: invalid characterが返されます。

+0

あなたは正しいですが、十分ではありません。コマンドの最後にもTABLESPACEを追加する必要があります。ありがとうございました – phuongnd

関連する問題