ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

DataMapperのSQL発行文字長制限について

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2012-8-30 16:31
takafu  新米   投稿数: 10
お世話になります。

現在、DataMapperでSQLを発行しようとしております。

どうも、256桁を超えた文字列でSQLを発行しようとすると、
文字列が256桁〜が切られてしまうようです。

何か、対処方法は無いでしょうか。

よろしくお願いいたします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012-8-30 17:37
takafu  新米   投稿数: 10
追加情報です。

256桁がキーワードだと考えていたのですが、
Mapper.logに発行SQLを出力して確認してみたところ、
副問い合わせのFROM句以降が切られているようです。

発行しているSQLは以下のようなものです。
実際のSQLは、ほげの部分は日本語です。
見やすいように改行を入れております。実際には改行は入っておりません。

Insert into ほげほげ
Select TBL01.ほげ,・,・,・,・
From
(
Select ほげ1.ほげ,・,・,・,・
From ほげ1
Where ほげ1.ほげ=1000
) TBL01
Inner join
(
Select ほげ2.ほげ,・,・,・,・
From ほげ2
Where ほげ2.ほげ=2000
) TBL02
On TBL01.ほげ=TBL02.ほげ

1個目の副問い合わせで230文字〜260文字程度になります。
全文では600桁程度です。
上記SQLの「From ほげ1」〜後ろの文が切られてしまいます。

256桁が良くないのかと思い、文字列を少なくしてみましたが、
同じ結果となりました。

何か、良い対処方法は無いでしょうか。

よろしくお願いいたします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-30 18:43
Jiro123  長老   投稿数: 271
jBOLTのDataMapperの送り先で、
DBオペレーションのInsert、Updateでは、副問合せをサポートしていません。

副問合せを利用したいのであれば、DBオペレーションをDeleteにして、試されては如何でしょうか。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-31 9:44
jBOLTer  一人前   投稿数: 82
DBオペレーションをDeleteにして、SQL欄にSQL文を記述すると、そのまま発行してくれます。副問い合せも大丈夫なはずです。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012-8-31 17:17
takafu  新米   投稿数: 10
皆様ご意見ありがとうございます。

DBオペレーションはDeleteにして実行しています。
Deleteにして何度実施しても副問い合わせのFROM句以降が切れてしまいます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-31 18:41
Jiro123  長老   投稿数: 271
そうなると、ストアドプロシージャを作成して、そちらで、行いたい処理を実装し、それを、jBOLTから起動(実行)する、ということを検討されてはいかがでしょうか。

ストアドプロシージャを実行するには、送り元側で、DBオペレーションはDeleteで、SQLを記述します。

ご参考になれば。。。


投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-31 21:12
takafu  新米   投稿数: 10
ご意見ありがとうございます。

ストアドや外部で実行する手段を考えてみます。
もし、マッパーで実現できそうならそちらも検討してみます。

ありがとうございました。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約