問題タブ [batch-updates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ストアド プロシージャを使用したデータベースへの C# バッチ更新
update ストアド プロシージャを実行して、テーブル内の 2 つの列だけを更新したいと考えています (このテーブルには他にも多くの列があります)。
現在、私は次のように実装しています-
したがって、上記のコードは、コレクション内の各オブジェクトに対してデータベースを呼び出しています。
「C# から SQL Server へのバッチ更新」のリンクをいくつか参照しましたが、これらのリンクのほとんどは、C# コード内でテーブルをロードし、テーブルの行を更新してから、DataAdapter.Update() を呼び出すことを提案しています。
ただし、このシナリオを別の方法で処理する他の既知の方法があるかどうか疑問に思っています。つまり、他の多くの列データも持っているため、テーブル全体をメモリにロードしたくないということです。
ガイドしてください。
spring - Spring JdbcTemplate の batchUpdate 処理の例外
現在、コードは JdbcTemplate の batchUpdate メソッドを使用してバッチ挿入を行います。
私の質問は、更新のいずれかで例外が発生した場合にそれを処理する方法 (ログを追加するだけであると仮定) であり、次の更新 SQL ステートメントを続行しますか?
また、JdbcTemplate の batchUpdate() メソッドはどのように例外を処理しますか?
ここにスニペット。
wcf - Entity Framework 4.0を使用して、WCFレイヤーの背後からWindowsフォーム上のデータグリッドビューを編集する
WCFレイヤー全体からの自己追跡エンティティを使用して、Windowsフォームアプリケーションでデータグリッドビューをバインドしています。すべて正常に動作しています。
私の問題は、セルを編集しているときに、移動した瞬間(cellendedit)に行がきれいに表示されることです。編集中に行が汚れていることを示すこの小さなアイコンがあり、データを保存するまで汚れていることを示し続ける必要があります。
基本的に、セルから移動した瞬間に、ダーティ状態の変更が失われます。これで、更新されたオブジェクトのリストを作成し、それらをループで更新することにより、実際に手動で変更を更新することができます。ただし、EFですぐに使用できるバッチ更新を可能にするよりクリーンなアプローチがあるかどうかを知りたいです。
私に知らせてください。
oracle - Oracle での遅いバッチ更新
古いOracleサーバー(私が言われたように8iです)でJDBCを使用すると、非常に紛らわしく奇妙な問題があります。そこに、約10列、数値、varchar、raw(255)、およびいくつかの日付を含むテーブルを用意しました。制限もキーもありません。その側では、おそらくすべてが高速です。その後、私のアプリケーションは非常に遅いように見えました (約 30 ~ 50 秒で 25,000 個のデータを挿入しています...)。私の環境は、10.2.0 Oracle のほぼ最新の 1.6 JDK、ojdbc14 ドライバーです。そこで、そのコード部分を切り取り、これらを個別にテストしました。コードに関するいくつかの背景情報、ここにその重要な部分があります
これは非常に簡単だと思います。また、これをローカルの H2 DB で試してみました。これは非常に高速で、同じ構造に挿入するのに 500,000 データでも 0 ミリ秒かかりました (明らかに 0 ミリ秒ではなく、測定できないほど速かっただけです)。今日は ojdbc6 と新しいオラクルを試してみます。私の疑いは、ojdbc14 ドライバーと jdk 1.6.idontknow が互いに問題を抱えていることです。
FINEST レベルのexecuteBatchで作業しているときに ojdbc14 を追跡したところ、 oracle.jdbc.driver.DBConversion.stringToDriverCharBytesなど、何千もの変換があったと思います。ほとんどの時間はこれらのコードと共に過ぎ、私が見たように最後のコマンドだけが「本物」でした。コミット、pstmt のパラメータ設定などは遅くなく、executeBatch だけでした。
参考までに、この古い jdbc ドライバーを使用した読み取りは高速でしたが、挿入だけは恐ろしく遅かったです。
それで、あなたの中にアイデアがありますか?これらを高速化し、少なくともいくつかの基本的な操作で利用可能なすべての DB と互換性を持たせるために、どのようなドライバーを使用できますか?
mysql - バッチ更新クエリ (Java、MySQL) で自動インクリメント値を取得するにはどうすればよいですか?
Spring-Jdbc テンプレート (最初のタイマー) を使用して MySql リポジトリを作成しています。AutoIncrement 列を主キーとして使用するテーブルがあります。
バッチ作成ステートメントが成功するたびに、新しく生成された ID (autoInc) を取得する方法があるのだろうか?
ポインタやサンプルは非常に役立ちます。
ありがとうパンクス
java - 選択クエリからJavaの別のテーブルに行を動的に挿入するにはどうすればよいですか?
結果セットを返すselectクエリ(プリペアドステートメントを使用)があります。たとえば、クエリは次のようになります。
このクエリの結果を別のテーブルに挿入したいのですが、selectクエリはデータベースに保存され、通常は結合クエリになるため、テーブルの列を正確に把握していません。次の形式で挿入行を作成する結果セット:
sql - How can I find the values causing BatchUpdateException?
I am using Spring JDBCTemplate to perform a batchUpdate (insert) of a few thousand rows into an Oracle 10g database. To test my error handling, I made sure I get an exception about maximum length.
I get the following (expected) exception:
Caused by: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO colleagues (col_id, col_code, col_description, pers_id) VALUES (?, ?, ?, ?)]; SQL state [72000]; error code [12899]; ORA-12899: value too large for column "MYSCHEMA"."COLLEAGUES"."COL_DESCRIPTION" (actual: 57, maximum: 40);
nested exception is java.sql.BatchUpdateException: ORA-12899: value too large for column "MYSCHEMA"."COLLEAGUES"."COL_DESCRIPTION" (actual: 57, maximum: 40)
My question is, what is the value of col_description causing this exception? As you can see, the query does not show the actual values but only the ? of the prepared statement.
java - ORA 000001 ユニーク制約違反
dep_id と emp_id の主キーを持つテーブルへの Insert ステートメントがあります。私の Java プログラムは、新しいレコードの新しい emp_id を生成して挿入します。たとえば、dep_id = 100 および emp_id = 25 の場合、dep_id = 100 および emp_id = 26 のレコードを挿入できませんが、dep_id = 100 および emp_id = 27 の場合は挿入できます。その組み合わせ (dep_id = 100 および emp_id = 26) の何かが存在する場合、ステートメントを選択します。そのようなものは何もありません。私はまだ dep_id = 100 および emp_id = 26 から DELETE を実行し、念のためコミットしてから挿入しようとしましたが、それでも機能しません。何が間違っている可能性がありますか? コードは次のとおりです。変更された DDL および Insert ステートメント (Eclipse コンソールから取得)
)
Insert ステートメント自体には、値として別の Insert ステートメントがあることに注意してください。この Insert ステートメント (メインのステートメント) は、アプリの他の多くの場所で使用されます。また、私が使用する dep_id 100 はテスト用の dep_id です。私以外誰も使っていません。
android - 2 つのフィールドに基づく contentProvider による一括挿入/更新
私は contentProvider を作成しています。複数の DB レコード (contentValues) を送信して、単一のバッチ操作を使用して単一のテーブルに挿入または更新できるようにしたいと考えています。
それ、どうやったら出来るの?
batchInsert は の挿入のみを目的としていますが、既に存在するものを挿入しても何も起こらないということではないでしょうか?
また、更新操作で特別な制約を使用する方法はありますか? たとえば、主キーを無視し、一緒に一意である他の 2 つのフィールドに基づいて更新する必要があります。
ado.net - バッチ更新で失敗した行更新を追跡する方法
try catchブロックを使用してADO.NET2.0を使用してバッチ更新を実行しています。UpdateBatchSizeは500に設定されています。例外をキャッチできることがよくありますが、どの行の更新が失敗したかわかりません。取得する方法はありますか。実際に失敗した行?