2016-08-22 6 views
1

私はオープンアダプター技術を使用しており、日付形式の私のSQLテーブル列に日付を挿入する必要があります。私はSQLにDB2の日付形式としてCSVから抽出した私の日付を渡しています。私はjaの日付をjava形式に変換するためにjavascript rhino(openadaptorスクリプトプロセッサ)を使用します。To_DateなしでOracleテーブルに日付を挿入

var val1=oa_data.get('UPDATED ON DATE TIME'); //Extracts date from csv 
var dateJava = new java.util.Date(); 
dateJava = java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(val1)); 

私はこのスクリプトを実行する上で、次の例外を取得:

java.sql.SQLDataException: ORA-01843: not a valid month 

はJavaScriptを使用してSQLでTO_DATEメソッドを使用せずに日付を挿入する方法はあります..

+5

このようにフォーマットされた文字列リテラルを送る前に、 'alter session set nls_date_format = ...'を使ってデフォルトの日付書式を変更する必要があります。 –

+0

あなたは正しいです。 sqlにnlsの日付形式を設定することで、日付を直接挿入することができます。しかし、私は準備されたステートメントを介して挿入中に同じ例外が発生しています。 –

答えて

0

あなたのコードです不完全な。おそらく、挿入を実行しているJavaのpreparedstatementがあり、それを実行する前に変数をそのステートメントにバインドしていると思われます。

このバインディングは文字列ではなく日付として行う必要があります。

+0

ありがとうございます、あなたは部分的に正しいです。準備されたステートメントは、開いているアダプターによって作成されています。しかし、すべての変数は、データベースライターによって文字列型として送信されている、それは問題です。 –

関連する問題