[seasar-dotnet:1573] Re: DBの日本語表記でのエラー について

kubo [E-MAIL ADDRESS DELETED]
2010年 3月 8日 (月) 19:14:16 JST


久保(jflute)です。

>><1>
> 検索はテーブル名をダブルコーテーションで囲むことで動作しています。
了解しました。

>><2>
>>S2経由じゃないやり方で、検索・更新ができますでしょうか?
>>SQLツール(SQL*Plus)、そして、ADO.NET直接利用の場合。
> 検索・更新処理ともに問題なくできます。
> ちなみにツールは「Object Browser for Oracle Ver.11.0.0.0」を使用しています。
これはダブルコーテーションを囲ったら実行できたということでしょうか?
(それともObject Browserが気を利かせて内部的に囲ってるとか!?)
引き続き、ADO.NET直接利用をお願いします。

>><4>
>>シノニムを作って、シノニム経由で実行できるかどうか
>>お試し下さい。もし、それで実行できるなら回避方法の
>>一つになるかと思います。(後はビューもですね)
> ビューを使用して行いましたが、実行できませんでした。
> (「T_ユーザーマスタ」を「V_USER」にして実行)
なるほど、そうですか。
引き続き、シノニムのお願いします。(ダメそうだなぁ...)


とにかくダブルクォーテーションで囲うことで回避ができるなら、
登録も更新も外だしSQLで回避することができるかと思います。
(もちろん、テーブル数が多いとかなり面倒ですが...)

もしくは、テーブル属性の値にダブルクォーテーション入りの
テーブル名を入れることで回避できるかもしれません。
(すいませんが試していませんので単なる推測です)
昔Java版のS2Daoでそういう話があって
対応してたようなしてないような...


2010/3/8  <[E-MAIL ADDRESS DELETED]>:
> 久保様
>
> お世話になります。大塚です。
> 下記について回答いたします。
> 取り急ぎ、現在確認できる範囲を記載いたしました。
>
>><1>
>>発生するのは、更新処理だけでしょうか?
>>(検索や登録はうまく動作しますか?)
> 検索はテーブル名をダブルコーテーションで囲むことで動作しています。
> (SQL例:SELECT * FROM "T_ユーザーマスタ")
> ダブルコーテーションで囲まないと、データがうまく取得できなかったためです。
> (最初のメールで記載しておらず、すいません)
>
> また、登録処理については更新時と同じエラーとなり実行できませんでした。
>
>><2>
>>S2経由じゃないやり方で、検索・更新ができますでしょうか?
>>SQLツール(SQL*Plus)、そして、ADO.NET直接利用の場合。
>
> 検索・更新処理ともに問題なくできます。
> ちなみにツールは「Object Browser for Oracle Ver.11.0.0.0」を使用しています。
>
>><3>
>>ODPのバージョンって最新でしょうか?
>>もし、最新じゃないなら最新でお試し下さい。
> 現在、すぐに確認できる状態にできませんので、確認後、改めて返信したく思います。
>
>><4>
>>シノニムを作って、シノニム経由で実行できるかどうか
>>お試し下さい。もし、それで実行できるなら回避方法の
>>一つになるかと思います。(後はビューもですね)
> ビューを使用して行いましたが、実行できませんでした。
> (「T_ユーザーマスタ」を「V_USER」にして実行)
>
> その時のエラーも
> [EDAO0009]V_USERDto
> Seasar.Dao.PrimaryKeyNotFoundRuntimeException' の初回例外が Seasar.dll で発生しました。
> となっておりました。
>
> シノニム経由については未確認ですので、これも改めて確認後、返信したいと思います。
>
> 以上、よろしくお願いいたします。
>
> 大塚
>
>
>>久保(jflute)です。
>>
>>ありがとうございます。
>>http://otn.oracle.co.jp/forum/message.jspa?messageID=35021426
>>
>>などを見ると、単にPKのメタデータ取得だけの問題じゃなさそうですね。
>>(PKのメタデータだけの問題ならDBFlute使って回避できるかなと
>>思ったのですが、多分すぐ次の処理で同じくエラーになるのかも...)
>>
>><1>
>>発生するのは、更新処理だけでしょうか?
>>(検索や登録はうまく動作しますか?)
>>
>><2>
>>S2経由じゃないやり方で、検索・更新ができますでしょうか?
>>SQLツール(SQL*Plus)、そして、ADO.NET直接利用の場合。
>>
>><3>
>>ODPのバージョンって最新でしょうか?
>>もし、最新じゃないなら最新でお試し下さい。
>>
>><4>
>>シノニムを作って、シノニム経由で実行できるかどうか
>>お試し下さい。もし、それで実行できるなら回避方法の
>>一つになるかと思います。(後はビューもですね)
>>
>>2010/3/8  <[E-MAIL ADDRESS DELETED]>:
>>> 久保様
>>>
>>> お世話になります。
>>> 返信ありがとうございます。
>>>
>>> 下記項目に対して記載いたします。
>>>
>>>>すいません、取り急ぎ環境の確認ですが、
>>>>"S2Dao.NETを利用している"
>>>>でよろしいでしょうか?
>>>
>>> S2Dao.NETを利用しております。
>>>
>>>>あと、OracleのDataProviderの種類と
>>>>バージョンも提示して頂けると助かります。
>>>
>>> OracleのDataProviderの種類は
>>> 「ODP for .NET 2.0 10.2.0.2.20」
>>> を使用しています。
>>>
>>> 以上です。
>>> よろしくお願いいたします。
>>>
>>> 大塚
>>>
>>>
>>>>久保(jflute)です。
>>>>
>>>>大塚さん、こんにちは
>>>>
>>>>> OS:WindowsXP
>>>>> VisualStudio2008 VB.NET
>>>>> Oracle 11g(OS:Windows2008)
>>>>> S2Container.NET 1.3.17
>>>>すいません、取り急ぎ環境の確認ですが、
>>>>"S2Dao.NETを利用している"
>>>>でよろしいでしょうか?
>>>>あと、OracleのDataProviderの種類と
>>>>バージョンも提示して頂けると助かります。
>>>>(メタデータ取得するところでエラーになっているようなので)
>>>>
>>>>2010/3/8 〓<[E-MAIL ADDRESS DELETED]>:
>>>>> お世話になっております。
>>>>> 大塚と申します。
>>>>>
>>>>> 現在、下記開発環境にて開発を行っております。
>>>>> OS:WindowsXP
>>>>> VisualStudio2008 VB.NET
>>>>> Oracle 11g(OS:Windows2008)
>>>>> S2Container.NET 1.3.17
>>>>>
>>>>>
>>>>> DBのテーブル名、フィールド名とも日本語を使用しております。
>>>>> そこでテーブル名に長音記号が入っているテーブルについて更新処理の際に
>>>>> 下記のエラーが出てしまい、更新できません。
>>>>>
>>>>> エラーが起こるテーブル名の例:T_ユーザーマスタ
>>>>> エラー内容:[EDAO0009]T_ユーザーマスタDto
>>>>> Seasar.Dao.PrimaryKeyNotFoundRuntimeException' の初回例外が Seasar.dll で発生しました。
>>>>>
>>>>> 日本語であってもテーブル名に長音記号が入っていない場合は更新処理が成功します。
>>>>> 成功するテーブル名の例:会社マスタ
>>>>>
>>>>> ちなみにフィールド名に長音記号が入っている場合は問題なく、更新処理は行われます。
>>>>>
>>>>> 過去のソフトのリプレイスのためできる限りテーブル名、フィールド名を変更しないようにと
>>>>> 考えております。
>>>>>
>>>>> テーブル名を変更せずに更新できる方法はあるのでしょうか?
>>>>>
>>>>> お忙しい中、申し訳ありませんが、よろしくお願いいたします。
>>>>>
>>>>> 大塚
>>>>>
>>>>> _______________________________________________
>>>>> seasar-dotnet mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>
>>>>_______________________________________________
>>>>seasar-dotnet mailing list
>>>>[E-MAIL ADDRESS DELETED]
>>>>https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>_______________________________________________
>>seasar-dotnet mailing list
>>[E-MAIL ADDRESS DELETED]
>>https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内