2017-03-08 8 views
-1

次のクエリを実行しながら、私は例外を取得しています:OracleのSQL無効な数の書式例外

String queryString="select CONCAT(CONCAT(invoicingCollection.settleNo, '- '),((invoicingCollection.netAmountTcy - invoicingCollection.setlAmountTcy)+(invoicingCollection.taxAmountTcy-invoicingCollection.setlTax‌AmountTcy))) from InvoicingCollection as " + "invoicingCollection where invoicingCollection.portfolio in (:portfolio)"; 

Query query = _em.createQuery(queryString); 
query.setParameter("portfolio",portfolio); 
List<String> querylist=query.getResultList(); 

私は取得していますエラーは次のとおりです。

ORA-01722:ORA-01722無効な番号

誰もこのエラーの修正方法を知っていますか?

P.S. SQL Developerで同じコードを実行すると、結果が得られます。

+0

は、この更新された文字列で検索してください。これはあなたの現在の問題を解決しないかもしれませんが、プログラムのコンパイルの問題を防ぐ必要があります。 –

+0

完全なスタックトレースと 'column6'の値とともに、' queryString'を生成する実際のコードを表示します。 –

+0

コメントに追加情報を投稿しないでください。元の投稿を[編集]して、そこに情報を追加してください。その後、コメントを削除します。 –

答えて

1

ORA-01722は無効な番号のエラーです。明示的または暗黙的に文字列を数値に変換しようとしましたが、失敗しています。

クエリにも問題があります。オラクル社では、SELECTリストの表の別名ASはサポートしていますが、FROMのリストには含まれていません。あなたも「セミコロンの欠落」タイポエラーが発生している

String queryString="SELECT Concat(Concat(invoicingcollection.settleno, '- '), ((invoicingcollection.netamounttcy - invoicingcollection.setlamounttcy) + (invoicingcollection.taxamounttcy - invoicingcollection.setltax‌amounttcy))) FROM invoicingcollection invoicingCollection WHERE invoicingcollection.portfolio IN (:portfolio) "; 
+0

ありがとうございました。ur編集もうまくいきました。私は別の方法も見つけました。私はネイティブクエリーとしてクエリーを実行しました。 –

関連する問題