問題タブ [camel-sql]

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.

0 投票する
1 に答える
5319 参照

java - Camel - useMessageBodyForSql を使用した camel-sql バッチ挿入

ここのドキュメントを読みました

「バッチが true に設定されている場合、受信メッセージ本文の解釈がわずかに変更されます。コンポーネントは、パラメーターのイテレーターではなく、パラメーター イテレーターを含むイテレーターを期待します。外側のイテレーターのサイズによってバッチ サイズが決まります。」

「Camel 2.16 以降では、メッセージ本文を SQL ステートメントとして使用できるようにするオプション useMessageBodyForSql を使用できます。その後、SQL パラメーターは、キー SqlConstants.SQL_PARAMETERS を含むヘッダーで提供する必要があります。これにより、SQL コンポーネントがより動的に動作できるようになります。 SQLクエリはメッセージ本文からのものです。」

私は次のルートを持っています:

本体は、パラメーター リストに一致するキー/値のマップです。

これは機能しますが、期待どおりではありません。

予想されるバッチ挿入ではなく、各行が 1 つずつ挿入されます。このオプションの組み合わせは可能ですか?

不可能な場合、これを達成するための代替方法は何ですか?

0 投票する
0 に答える
611 参照

java - キャメルSQLインサートビーン

Camel で Bean を使用して SQL に挿入しようとしています。camel sql コンポーネントの内部クラスに到達するときに sql が null であるため、詳細が欠落しているに違いありません。insertBean でマップを返すだけでは十分ではないでしょうか?

私のルートはこのように定義されています。

私の insertBean は文字列、オブジェクト マップのみを生成し、それを返します。

camel apache sqlの例に従いました

また、sql コンポーネントにuseMessageBodyForSqlや batch などのさまざまなオプション パラメータを設定しようとしましたが、結果は変わりませんでした。

stackTrace は、SQL が空であることを示しています。

前もって感謝します

0 投票する
1 に答える
1191 参照

database - Oracle データベースで camel SQL コンポーネントを使用して blob を挿入する方法

camel SQL コンポーネント ( http://camel.apache.org/sql-component.html )を使用して入力ストリームを挿入しようとしています。

Oracle Databaseに次の表があります。

そして次のルート:

次のコードを実行しようとすると:

私は常に種類の互換性のない 3 番目のパラメーター (入力ストリーム) を取得します。

MySQL データベースでは同じコードがエラーなしで実行されますが、Oracle ではうまく動作しません。

コンポーネントのキャメル SQL が、準備済みステートメントを使用するための戦略として次のコードを使用していることがわかりました。

しかし、この戦略は次のように準備ステートメントを使用していないようです:

代わりに次のコードを呼び出します

Oracle dbではうまく機能しないようです。

問題は、SQL camel コンポーネントで使用されているデフォルトの SQL プリペアド ステートメント戦略を変更するかどうかです。それとも他の方法がありますか?

0 投票する
1 に答える
761 参照

apache-camel - キャメルでは、結果セットの列を値に更新する方法

私の選択クエリは

私のルートは

私の豆は

結果セットの処理済み列を完了または何らかの値に更新したいと考えています。

私は試した

ただし、これはデータベース内の値を更新しません。なぜだめですか?

0 投票する
1 に答える
345 参照

apache-camel - 出力が繰り返されています。一度だけ印刷する必要があります

これは、mysql サーバーからの単純な select ステートメントであり、コンソールに出力を表示します。私はそのようなタイマーを使用していませんが、どういうわけか結果がループで印刷されています。

クライアントコードは次のとおりです。

0 投票する
2 に答える
794 参照

apache-camel - テーブルからファイルの場所を読み取り、pollEnrich() を使用して特定のフォルダーにコピーします

データベーステーブルを読み取って絶対ファイルパスのリストを取得し、それらのファイルを別のフォルダーにコピーするキャメルルートを作成しようとしています。ただし、元のコンテンツではなく、ファイル パスのみがコンテンツとして作成されます。

絶対ファイルパスを実際のファイルに変換するために、ここで何が欠けているのか教えてください。

更新 #1。

以下のスニペットは、pollEnrich() を呼び出しています。しかし、代わりに pollEnrich() は、以前の交換のファイル名に従ってではなく、SQL によって返された行の数に等しいファイルの数をコピーしています。

pollingEnrich() エンドポイントに渡された実際のファイル名をまだ取得できません。ヘッダーからだけでなく、本文からも抽出してみました。何がうまくいかなかったのでしょう。