0

私は springsource が初めてで、これが私の最初のプロジェクトです。フラット ファイルを読み取って MS SQL Server 2008 テーブルに保存していますが、以下のコマンドは正しくありません。モデルとして使用している同様のプロジェクトで動作します (コンポーネントをコピーし、独自の入力ファイル形式と独自の SQL サーバー テーブルを読み取るようにコマンドを変更しました)。

プロジェクト用に作成したテーブルとモデルのテーブルの違いは、ソース モデルのように、出力テーブルには主キーが 1 つしかないため、テーブルには主キーと副キーが 1 つずつ含まれていることです。以下は「悪い」挿入文です。どんな助けでも大歓迎です。

String sql = "insert into dbo.IN136_DMV_USED_CAR_SALES (EXT_INF_LOAD_ID, IN136_ID, " + 
                        "DEALER_NUM, " +
                        "VSL_PURCHASE_DATE," +
                        "OWNERSHIP_ISSUED_DATE, " +
                        "LAST_TRANSFER_DATE, " +
                        "ODOMETER_CURRENT_DATE, " +
                        "WORK_DATE, " +
                        "PURCHASE_PRICE, " +
                        "VIN_HIN, " +
                        "CURRENT_LICENSE, " +
                        "REG_OWNER_NAME, " +
                        "REG_OWNER_ADDRESS2, " +
                        "REG_OWNER_ADDRESS3, " +
                        "REG_OWNER_CITY_OR_STATE) values (?, NEWID(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

コンソールから見える唯一のものは次のとおりです。

counter is=1 IN136DataRecod=boe.eai.provider.dmv.IN136DataRecord@d5c0f9and sql が失敗しようとしています/support/sql-error-codes.xml] logger.debug DMVErr, e=org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [insert into dbo.IN136_DMV_USED_CAR_SALES (EXT_INF_LOAD_ID, IN136_ID, DEALER_NUM, VSL_PURCHASE_DATE,OWNERSHIP_ISSUED_DATE, LAST_TRANSFER_DATE, ODOMETER_CURRENT_DATE, WORK_DATE, PURCHASE_PRICE, VIN_HIN, CURRENT_LICENSE, REG_OWNER_NAME, REG_OWNER_ADDRESS2, REG_OWNER_ADDRESS3, REG_OWNER_CITY_OR_STATE) values (?, NEWID(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; ネストされた例外は java.sql.SQLException: Invalid parameter index 15 です。

よろしくお願いいたします。

4

1 に答える 1

0

問題はあなたの書き方にあると思います。

dboに挿入します。IN136_DMV_USED_CAR_SALES

スキーマ名を削除してみてください。

于 2013-03-22T15:34:27.453 に答える