■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
Ver12で識別子が長すぎます。 2013/04/15 16:00 OB 19
Object Browser Ver12の体験版でOracle10gXEに以下のようなテーブルをつくりグリッドから更新しようとすると、
ORA-00972 識別子が長すぎます
というエラ-になります。

Ver11の体験版では正常に処理されています。

CREATE TABLE REGIONAL.ADDRESS2
(
NVC_5678901234 NVARCHAR2(100)
)
/
回避の方法はありますか?
また修正の予定はあるでしょうか?

環境は以下のとおりです。

サポート情報
【SI Object Browser情報】
バージョン : 11.1.1.0
プログラムのパス : c:\program files\ob11\ob11.exe

【Oracle情報】
Oracleホーム : c:\oraclexe\app\oracle\product\10.2.0\server
OCI.DLLのパス : c:\oraclexe\app\oracle\product\10.2.0\server\bin\oci.dll
tnsnames.oraのパス : c:\oraclexe\app\oracle\product\10.2.0\server\network\admin\tnsnames.ora

【OS情報】
OS : Windows XP
ユーザ権限 : Administrator
PATH環境変数 : c:\oraclexe\app\oracle\product\10.2.0\server\bin
c:\windows\system32
c:\windows
c:\windows\system32\wbem

よろしくお願いします。
NLS関連のパラメータは以下のとおりです。

SELECT *
FROM V$NLS_PARAMETERS

PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY JAPAN
NLS_CURRENCY NLS_ISO_CURRENCY JAPAN
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT RR-MM-DD
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET JA16SJIS
NLS_SORT BINARY
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT RR-MM-DD HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT RR-MM-DD HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY NLS_NCHAR_CHARACTERSET UTF8
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
こんにちは
OBサポートです。

大変申し訳ありませんが、
環境に依存する問題・技術的調査が必要な問題に関しましては、
有償保守サービスの範囲内となり、掲示板上ではお答えいたしかねます。
ご了承ください。

何卒よろしくお願い申し上げます。
お返事ありがとうございます。
今回の質問は、環境に依存する問題でも、技術的調査が必要な問題でもありません。

質問の仕方が悪かったようです。
わかりやすく言うとバグを把握しているか、修正の予定はあるかということです。

購入するかどうかの判断に大きく影響しますので、是非とも誠意あるお答えをいただきたいと思います。
いただいた情報による再現調査、及び既知の不具合であるか、新規の事象であるか
の判断には技術的な調査が介入いたします。
大変申し訳ございませんが、前述のとおり掲示板上での回答は致しかねる問題と
させていただきます。

参考までに、弊社環境下では添付いただいているCREATE TABLE自体が「識別子が長すぎる」エラーとなり生成されないことから、環境に依存している可能性も高いようです。

いただいた質問の回答といたしましては、当事象の原因は「把握していない」
となりますが、
「通りすがり」様の環境でも発生しているようですので、やはり環境依存の不具合であるようです。
弊社環境下で再現し次第の修正リストへの追加・対応の検討となりますので、
明確な対応時期はお答えいたしかねますが、
次回以降のバージョンアップのタイミングで修正を検討させていただきます。
横からレスして申し訳ないのですが、質問されている方とサポートの回答が少し食い違っていると思います。

サポートの方は「環境に依存」と仰っていますが、全く違うフリーのツールで同じデータベースに接続し、同等の事をやってもエラーにはならず、正しく書き込まれます。

質問者の方も言われている通り、
①CREATE TABLEは正しく生成される
②DBグリッドでデータを投入するとエラーとなる

以上の事から、質問者の方が言われる不具合の可能性についての回答が必要なのかと思います。

横から部外者が勝手なことを申し上げて申し訳ありません。
返答ありがとうございます。

通りすがりさんが殆ど言ってくれていますので、あまり付け加えることはありませんが、少しだけ。

有償サポートを受けないと答えられないというお返事ですが、私がお尋ねしているのは「お金を払ったら問題が解決するのか?」ということです。

有償サポートを受けてくださいということならば、
・問題は把握していて、解決済みである(回避策がある)。
・問題は把握していて、いついつまでに解決の見込みである。
のどちらかの回答であるべきだと思います。


私も横槍失礼。

>有償サポートを受けないと答えられないというお返事ですが、私がお尋ねしているのは>「お金を払ったら問題が解決するのか?」ということです。

いや、匿名さんの書き込みに一度もそのような質問はありませんでしたよ。
あなたの質問は「バグを把握しているか、修正の予定はあるか」
だったはずです。最初から「お金を払ったら~」を聞くつもりだったのかもしれませんが、
サポートの方がエスパーでもない限りあなたの心情までは読み取れません。
その内容に対する回答がほしいのなら、ちゃんとそのように記述するべきでしょう。

書き込みされた質問に対しては、サポートの方は
「弊社(サポートの方)環境では報告の動作にならないのでバグは「把握していない」となるが、他者も
発生しているようなので環境依存の不具合と思われ、再現し次第次回以降の
バージョンアップで対応」とおっしゃっております。こちらは読まれましたか?

本来は回答する義務のない本件に対し、多少なりとも再現調査をされた上での
回答です。あなたの言う「誠意ある回答」であると私は思います。
本来この件はこれで終わりで、「お金を払ったら~」は改めて質問するべきですよ。

>有償サポートを受けてくださいということならば、
>・問題は把握していて、解決済みである(回避策がある)。
>・問題は把握していて、いついつまでに解決の見込みである。
>のどちらかの回答であるべきだと思います。

これは匿名さんのこういう回答がほしいという願望であり、
本件の回答としては不適切ですね。いくらなんでも把握していない問題の
解決を約束することはできないでしょう。
(さっさと把握してほしいですけどね。)

そもそも技術調査が必要な問題は掲示板上では答えないというルールなんですから、ここでいつまでも
回答を求めても仕方ないと思います。
(これについてはもっと緩和していただければと私も思いますが)

サポートに加入してメールなりしてみればいいんじゃないでしょうか。
加入して技術サポートが受けられるようになるのと
「お金を払ったら問題が解決する」のはまた別の話ですが。(まぁ普通そうですよね。)
さすがにお金払ったら、少なくとも原因なり回避案なり提示してくれなきゃ困りますけどね。

ちょっと理不尽に感じる方もいるかもしれませんが、ここのルールは現状
これ(技術調査がいる問題は回答不可)なんです。これが良きにせよ悪きにせよ、
ルールはルール、とりあえずは守るべきではないでしょうか。

以上、長文失礼しました。


傍観者さん、私の書き込みをよく読んで見てください。

>いや、匿名さんの書き込みに一度もそのような質問はありませんでしたよ。
いいえ、私は「購入するかどうかの判断に大きく影響します」とハッキリ書いています。
これが伝わっていないので「お金を払ったら問題が解決するのか?」と言い換えたのです。

問題を把握しているか?対応予定があるか?という問いに答えるのに技術的調査が必要と答える。
果たしてこれが誠意ある態度でしょうか?

手持ちの情報で答えられるはずです。
本当にルール違反してますか?

実際のところサポートの方は、次のバ-ジョンで対応と言っていますので、現行バージョンでは私は望む結果を得られない訳です。

相手が望む結果を得られない事をわかった上で、その事を伝えずに金銭の支払いを要求するのが誠意ある態度でしょうか?

>いいえ、私は「購入するかどうかの判断に大きく影響します」とハッキリ書いています。

文脈から見て、上の文章は、

>わかりやすく言うとバグを把握しているか、修正の予定はあるかということです。

にかかってくると思っていたのですけどね。違うんですね。日本語って難しいですね。

「お金を払えば云々」は、保守料金のことだと理解していたんですが、
それではこちらも違うということですね。はたしてちゃんと伝わるんだろうか。

>有償サポートを受けないと答えられないというお返事ですが、私がお尋ねしているの>は「お金を払ったら問題が解決するのか?」ということです。

この文章読んだら、大半の人が保守のことだと思いませんか?
まぁ、この辺は人それぞれの解釈がありますから、なんともいえませんが。
少なくとも私にはそのようには読み取れませんでした。


>問題を把握しているか?対応予定があるか?という問いに答えるのに技術的調査が必要>と答える。
>果たしてこれが誠意ある態度でしょうか?
>手持ちの情報で答えられるはずです。
>本当にルール違反してますか?

再現調査は技術調査だと思います。すでに手持ちの情報があったとしても、果たしてそれと同じ原因かどうかも調べる必要があるでしょうし、
まして、匿名さんが報告した動作のとおり再現しないといっているんですから、
そこからはもう技術調査になるでしょう。

問題を把握しているか?対応予定があるか?の問いにはちゃんと回答してくれてますよね。少々残念な回答ですけど。


>実際のところサポートの方は、次のバ-ジョンで対応と言っていますので、現行バージョンでは私は望む結果を得られない訳です。
>
>相手が望む結果を得られない事をわかった上で、その事を伝えずに金銭の支払いを要求するのが誠意ある態度でしょうか?

まず、サポートの方は一度もサポートの加入を勧めていないと思います。
金銭の支払いを求める記述はどこにもありません。これはちょっと歪曲しすぎじゃないでしょうか。
技術調査を受けるにはサポートへの加入が必要という事実を伝えているだけです。

それともうひとつ、ここの保守サポートは無償バージョンアップサービス付きです。
保守に加入していればあなたの望む結果は得られます。(修正されればですが。)
仮にサポートの方が保守への加入を進めていたとして(私にはそうは読み取れませんが)
そこまで含めてのことなんじゃないですか。そうだとしたら説明不足な点もありますけどね。

とまぁ、私の意見は以上です。外野がとやかく言うのはここまでにします。





>「お金を払えば云々」は、保守料金のことだと理解していたんですが、

>この文章読んだら、大半の人が保守のことだと思いませんか?

先に書いたとおり、私の希望は不具合が解消した状態でオブジェクトブラウザを使うことです。
つまりオブジェクトブラウザの購入と有償サポート加入は不可分なんですよ、同じことなんです。
少なくとも最初の回答の時点では。

有償サポートに加入せずオブジェクトブラウザのみ買うと言うことは、保守を受けずに問題を解決して運用するという選択肢が存在すると言うことですよ。
本当に文脈読んでますか?
大半の人がそう思うんですよね。

そんなことが出来るなら是非教えていただきたい。
それこそが私の求めるものなんです。

>問題を把握しているか?対応予定があるか?の問いにはちゃんと回答してくれてますよね。少々残念な回答ですけど。

最初の回答は有償サポートに加入しないと教えられません、です。
その時点で私が加入していたらどうです?
望む結果を得られずに、私の依頼主はお金を、私は信用を失っていたことでしょう。
「ちゃんとした回答」だったでしょうか?

>まず、サポートの方は一度もサポートの加入を勧めていないと思います。
>金銭の支払いを求める記述はどこにもありません。これはちょっと歪曲しすぎじゃないでしょうか。

私は知りたいと言いました。
知りたい人にサポートに入らないと教えられないと言ったら、これは「知りたかったらサポートに入ってください」という意味ではありませんか?
何処に歪曲がありますか?
・・・あなたもしつこいですね。。

>先に書いたとおり、私の希望は不具合が解消した状態でオブジェクトブラウザを使うことです。
>つまりオブジェクトブラウザの購入と有償サポート加入は不可分なんですよ、同じことなんです。
>少なくとも最初の回答の時点では。
>有償サポートに加入せずオブジェクトブラウザのみ買うと言うことは、保守を受けずに問題を解決して運用するという選択肢が存在すると言うことですよ。
>本当に文脈読んでますか?
>大半の人がそう思うんですよね。
>そんなことが出来るなら是非教えていただきたい。

言うまでもないと思っていたのですが、

・購入し、修正パッチが出るのを待つ。
・修正されたバージョンを買う

以上は保守加入の必要はありません。保守加入でないと受けられないのはメジャー
VUPだけです。
現にV12のリリース後、修正パッチがその後に公開されています。
購入と保守は不可分とか、わけのわからない持論を展開する前に、
少しは自分で調べてください。
不可分だったら普通加入必須で販売されるでしょうに。

>それこそが私の求めるものなんです。

またあなたの求める回答が変わりましたね。しかもすべて後出しです。

把握しているか、対応予定はあるか
  ↓
保守に入ったら解決するか
  ↓
保守に入らずに問題を解決する方法云々

「私の求めるもの」をあなたの書き込みから一発で回答できる人はおそらく
この世にいません。
前にも言いましたが、聞きたいことはちゃんと記述してください。

文脈たどってもわからないですよ。行間に潜むあなたの考えを
読み取らないと無理です。

>最初の回答は有償サポートに加入しないと教えられません、です。

当たり前です。そういう決まりであり、答える必要がないのですから。
それでもあなたが食い下がるから回答してくれてるんです。
「これは技術的な質問ではない」とおっしゃっていましたが、その判断を
するのはあなたではありません。
それと、「教えられない」ではなく「回答できない」です。
揚げ足取りのように感じられるかもしれませんが、この二つは意味が違います。

・知っているが「教えられない」
・内容を把握していないため「回答できない」

で、だいぶ意味が変わりますよね。あなたの文面からは前者だといいたそうですが、
サポートの方からの返信を見る限りはおそらく後者なんでしょう。

>その時点で私が加入していたらどうです?
>望む結果を得られずに、私の依頼主はお金を、私は信用を失っていたことでしょう。
>「ちゃんとした回答」だったでしょうか?


根本的に勘違いしているようですが、技術サポートが受けられるようになるのと、
問題が解決するのは別問題です。

>>まず、サポートの方は一度もサポートの加入を勧めていないと思います。
>>金銭の支払いを求める記述はどこにもありません。これはちょっと歪曲しすぎじゃないでしょうか。
>
>私は知りたいと言いました。
>知りたい人にサポートに入らないと教えられないと言ったら、これは「知りたかったらサポートに入ってください」という意味ではありませんか?
>何処に歪曲がありますか?

あなたの解釈と文面があらわす事実とは違うということです。事実と違えば歪曲ですね。

これ以上続けてもどうにもならなさそうですし、こちらの掲示板、閲覧している方々
にもご迷惑でしょうから、これ以上返信は結構です。
されても私からはもう何もすることはありません。

それと、これはサポートの方への要望といいますか、苦言です。

掲示板の冒頭に記述されている
「環境依存、技術調査が必要な問題は掲示板では答えない」は、単なる飾りですか?
匿名さんのように、少しぐらいゴネられたからって規定を覆し、
安易に調査・回答されては、いったい何のためにお金を出して
保守契約を結んでいるかわかりません。

保守に未加入の方を含め、誰もが閲覧できるような掲示板で、
少し粘れば回答が得られるのなら、誰だってそうするでしょう。
私含め、調査が必要な技術サポートは有償である規則だというので、
皆さんそのサービスを得るためにお金を払っているのです。
いつまでも食い下がられては面倒だからかも知れませんが、だからといって
簡単に調査・回答する姿勢は、全保守ユーザーに対して失礼だとは思いませんか?
二年間保守、決して安くはないのですよ。

以上です。こちらに対しても返信は特に要りませんが、一保守ユーザーの
意見として一考いただければ幸いです。







傍観者さんは自ら名乗るように、関係のない第三者です。
まず、どちらがしつこいのか冷静に考えていただきたい。

私がこの掲示板で質問したことと、最終的に知りたいと思っていることの違いについても誤解されているようです。
私の質問の意図を理解した上で発言されるようお願いします。

また、この掲示板についても、いくつか誤解をなさっているようです。
一度、下記のページを読んでみてはいかがでしょうか。
http://www.sint.co.jp/products/siob/ob/sp/tech_support.html

節度ある発言を望みます。
匿名様
傍観者様

当掲示板は、ユーザー同士の交流の場でもあるため、ある程度は静観させて
いただいておりましたが、少々掲題の内容から逸脱してしまっているようです。

お互いを挑発するような記述や、当初の内容から逸脱したやり取りは
ご遠慮ください。
他のユーザー様もご覧になっております。このような状況が続く場合は
弊社判断により書き込みを削除させていただく場合がございます。
公平性を保つためスレッドごと削除する場合もございますが、できれば
それは行いたくありません。
双方、節度ある書き込みをお願いいたします。


傍観者様

保守サポートおよびこの掲示板に対するご認識は傍観者様のご認識のとおりとなります。
詳細は新しく匿名様が立ち上げてくださった「保守・サポートについて 」にて
詳しく解説しておりますのでそちらをご参照ください。

やり取りが継続してしまうのが面倒だからでは決してありませんが、
内容がどうであれ、掲示板上で安易に回答してしまう行為・サポート範囲を
あいまいにしてしまう行為は、有償保守に定められた
内容に反するものであり、ご加入いただいている方々に対するご配慮を
大きく欠くものでございました。
謹んでお詫び申し上げます。今後は保守サポート規定の原則に立ち返り、
メリハリのついた対応をさせていただきます。大変申し訳ございませんでした。

匿名様

当掲示板のあり方に関しましては、新しく立ち上げてくださったスレッドに
まとめさせていただきましたので、ご確認をお願いいたします。

上記内容をご確認いただければ、いただいたご質問が掲示板上では
お答えいたしかねる性質であることがご理解いただけると思います。よって、

「ご質問内容を把握・回答するためするためには技術調査を行わなければならず、
 技術調査は有償保守の範囲内であるため、掲示板上では回答いたしかねる」
と回答申し上げました。
こちらはご質問内容の切り分け結果と、有償保守および当掲示板の規定を
ご説明するものであり、文章以上の意味はございません。
再度のご質問がございましたので、
規定に反しますが、簡単ではございますが再現調査の実施、こちらもあいまいでは
ございますが当件に関する今後の展望を出来うる限り記述させていただきました。
上記回答が、誠意がない、金銭を要求している、保守に入らないと
教えないと言っているなどとお受け取りになられたことは非常に残念では
ございますが、担当者の文章能力の低さと、今まで規定に沿わずサポート対象の境界を
あいまいにした回答を繰り返してきた結果であると真摯に受け止めさせていただきます。
無用な混乱を招き大変申し訳ございませんでした。

最後になりますが、当現象については現在調査中であり、現状お伝えできることは
なく、修正時期もお約束できないことは当時と変わりございませんが、
前年末にメジャーバージョンアップを行ったことから、次回バージョンアップは
無償で差分ファイルをご提供するリビジョンアップまたはマイナーバージョンアップと
なり、当現象はそのタイミングで解消されるものと思われます。
※当内容が100%お約束するものではございません。
ご理解いただけますようお願い申し上げます。

以上、よろしくお願い申し上げます。
割り込みですが...

CREATE TABLE ADDRESS2
(
"NVC_5678901234" NVARCHAR2(100)
)
/

項目名をダブルコーテーションで囲って実行したらどうでしょうか?
コメントありがとうございます。
クリエイト文自体は問題ないのですが、OBのグリッドから更新ができないのです。
旧バージョンでできることから考えて、バグだと思うのですが...
>クリエイト文自体は問題ないのですが、OBのグリッドから更新ができないのです。
なるほど、大変失礼しました。確かにエラーになりますね・・。

私は次のサイトで公開されている「Visual NAVI」を使っていますが、
http://www.avsoft.jp/

項目名を「NVC_5678901234」と半角にしてテーブル生成すると正しく更新されるようです。

ObjectBrowserは、Ver12からデータベース接続用のコンポーネントを「AnyDAC」に
変更したようなのでプロパティの設定等がまずいのかも知れません。

或いは、AnyDAC自身に不具合があるのかも知れません。AnyDACのサポートを見ると
同じ様な現象報告を見ますので・・。

これらは、あくまでも私個人の推測です。
コメントありがとうございます。

仰る通りですね。
私もオラクルのSQLDeveloperで確かめてみましたが、問題ありません。
マルチバイト文字の扱いに何らかの問題が有るのでしょう。
その後、色々と調べてみました。

グリッドを使わず、直接SQLを投げても同様のエラー(ORA-00972)になることも確認しています。

考えられる原因(仮説)としては、次の2点に絞ってみました。

①オブジェクト識別子の制限(通常は30文字)に引っかかっている
②キャラクタ・セットの関係


①オブジェクト識別子の制限(通常は30文字)に引っかかっている
試しに列名「NVC_5678901234」を半角の
「NVC_5678901234」に変更しテーブルを生成すると、正しく動作することを確認しました。
全角だと文字数が31なので制限に引っかかっている可能性がある。


②キャラクタ・セットの関係
オラクルの「グローバリゼーション・サポート・ガイド」等を読みますと
「NCHARとNVARCHAR2は、Unicode文字データを格納するUnicodeデータ型」とあります。
ということは、初期化パラメータの「NLS_CHARACTERSET」の設定が関係している可能性がある。

匿名さんのNLS_CHARACTERSETは、「JA16SJIS」となっています。(ちなみに、私の環境は「JA16SJISTILDE」です。)
データベースのキャラクタ・セットを変更して試していないのですが、
キャラクタ・セットをAL16UTF16またはUTF8いずれかに変更したら上手くいくのかもしれません。

私の環境では、キャラクタ・セットを変更せず、列名を30文字以内にすることで希望通りの動作をします。

サポートの方は、①②のことがあったので「環境依存」と仰ったのかもしれません。(あくまでも想像です)

以上、実行環境は「Visual NAVI」でテストしました。
OB Ver.12で同様のことをされて、結果がどの様になるかですね。

わざわざ調べてくださってありがとうございます。

>①オブジェクト識別子の制限(通常は30文字)に引っかかっている
エラーメッセージから察するに、この可能性が高いとは思うのですが...
問い合わせの環境はSJISですので全角15文字までOKのはずで、実際に作ることも更新することも可能です。

バージョン12の動作は、全てマルチバイトの場合14文字でエラー。
一文字減らして13文字ですとエラーになりません。
仮にNLS_NCHAR_CHARACTERSETの設定による規制と考えるとUTF8ですから39バイトまでOKと言うことになってしまいます。
不可解なことですが、30という数字には当てはまらないようです。


>②キャラクタ・セットの関係
今回のケースでは、問い合わせの環境において「JA16SJIS」と「JA16SJISTILDE」に動作の違いがありませんでした。

データベースのキャラクタ・セットをUTF8にするとサポートさんの場合と同じでテーブル自体が作れなくなります。
このケースは文字数からして30文字規制なのは間違いないと思われます。
正常な動作ですね。

UTF16の環境は、現在検証中です。
結果が出るのは連休明けになるでしょう。

現在既存システムの多国語化を検討しているのですが、多国語化が必要な文字列以外の部分は既存のものをそのまま使いたいという依頼主の要望ですので、今のところフィールド名を変えないという前提で動いています。

前提条件を見直す必要がありそうですが、設計変更となると追加の予算を獲得せねばならず、詳しい理由、変更により確実に問題が解消すること、弊害が無いことを説明しないといけません。
客観的に見てオブジェクトブラウザを使うために設計変更と言うのは難しいですね。