0

C#.Netアプリケーションで次のコードを実行しましたが、エラーORA-01722:無効な番号が表示され続けます。同じSQLをPL/SQL Developerで直接実行すると、文句を言わずに私が要求したとおりに実行されます。

これを引き起こしている可能性がありますか?

OracleCommand command = connection.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "insert into my_table ( select i.*, null from my_view i where i.usr_id is not null )";
command.ExecuteNonQuery();

注:私はOracle.DataAccess.Clientを使用しています

4

2 に答える 2

2

問題が見つかりました。ビュー内の数値列の 1 つでコンマ (,) が小数点として使用されていましたが、テーブルではポイント (.) が必要でした。

助けてくれてありがとう。:)

于 2010-08-11T13:56:02.220 に答える
1

これが開発者とクライアントの間で異なる動作を引き起こすかどうかはわかりませんが、列の順序がビューとテーブルで同じであると仮定しています。可能性は低いですが、ビューの列からテーブルの数値フィールドに char データを異なる順序で挿入しようとしている可能性があります。挿入と選択の両方で列名を指定してみて、それが役立つかどうかを確認してください。また、日付形式の不一致があるかどうかも疑問に思いましたが、それが 1 つのステートメント内でどのように問題を引き起こすのかわかりません。これが単純化されたバージョンである場合、実際のバージョンにはパラメーターがありますか?

于 2010-08-11T12:38:13.050 に答える