■SI Object Browser 掲示板


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

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

discussion
※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
データタブ上からデータ抽出後、変更はできないでしょうか?
>データタブ上からデータ抽出後、変更はできないでしょうか?
抽出条件によっては駄目なときもありますが、普通はできます。
[表示]-[オプション]-[SQL結果出力]の中にある[初期状態をデータ編集可能にする]
チェックボックスにチェックされていないので初期状態で編集できなくなっている
ということはありませんか?
それでもデータの一覧がでているところの左側のボタンの一番上のボタンを押せば、
編集できると思いますけど。
>[表示]-[オプション]-[SQL結果出力]の中にある[初期状態をデータ
>編集可能にする]チェックボックスにチェックされていないので初期
>状態で編集できなくなっているということはありませんか?
チェックされていますよ。
全件表示状態ならできますが、レコード数が多いと下まで
行くと大変なので、抽出後訂正しようと思ってもできないです。
仕様かな?
>全件表示状態ならできますが、レコード数が多いと下まで
>行くと大変なので、抽出後訂正しようと思ってもできないです。
>仕様かな?
どんな抽出条件なのでしょうか?
FAQの方に
|基本的に、行を特定できないwhere句を入力した場合、
|SQL実行画面からの更新はできなくなります。
|結果が1行に絞られていたとしても、「in」などを用
|いた場合更新はできません。
とありますので、その要件に引っかかっているのでは?
>どんな抽出条件なのでしょうか?
>FAQの方に
>とありますので、その要件に引っかかっているのでは?

Object Browserをあまり使いこなしていないかも
知れませんが、NAME='AAA'を入力しただけです。

FAQを見ましたが、意味がわかりません。
具体的に教えて頂けないでしょうか?

>Object Browserをあまり使いこなしていないかも
>知れませんが、NAME='AAA'を入力しただけです。
そのnameってフィールドは主キー項目(←行を特定する項目)ですか?

>FAQを見ましたが、意味がわかりません。
FAQのどの部分がどう分からないのか、それをSI社にメールすると
喜ばれると思います。
[初音玲]
>そのnameってフィールドは主キー項目(←行を特定する項目)ですか?
つまりプライマリーキーのようなものですよね?
プライマリーキーしていますが、できませんでした。
テーブル構造がまずいかね?

>FAQのどの部分がどう分からないのか、それをSI社にメールすると
>喜ばれると思います。
了解しました。
[KAMA]
>>そのnameってフィールドは主キー項目(←行を特定する項目)ですか?
>つまりプライマリーキーのようなものですよね?
そうです。

>プライマリーキーしていますが、できませんでした。
>テーブル構造がまずいかね?
試しに[表示]-[SQL実行]の方で同じ条件で抽出するSQL文を記述したとき
にはどうなりますか?
>試しに[表示]-[SQL実行]の方で同じ条件で抽出するSQL文を記述したとき
>にはどうなりますか?
>
抽出結果の編集できたましたが、
(左の編集可能ボタンは有効状態です。)
変更はできませんでした。
>>試しに[表示]-[SQL実行]の方で同じ条件で抽出するSQL文を記述したとき
>>にはどうなりますか?
>抽出結果の編集できたましたが、
>(左の編集可能ボタンは有効状態です。)
>変更はできませんでした。
そうなってくるとテーブル定義(プライマリキーのあたり)を提示して
頂くと次の1歩が分かるかもしれません。
# 抽出条件は、name='aaaaaaa'のみなんですよね?
>そうなってくるとテーブル定義(プライマリキーのあたり)を提示して
>頂くと次の1歩が分かるかもしれません。
># 抽出条件は、name='aaaaaaa'のみなんですよね?

テーブル定義は以下の通りです。(テストですが)
CREATE TABLE EMP2
(
EMPNO NUMBER(4,0) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4,0),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2,0) NOT NULL,
CONSTRAINT EMP2I1 PRIMARY KEY (EMPNO)
)

抽出条件は、EMPNO=7893 です。(name='aaaaaaa'でなくてすみません。)
[KAMA]
>テーブル定義は以下の通りです。(テストですが)
この定義のときもちろん出来ないんですよね?

>CREATE TABLE EMP2
  (中略)
> CONSTRAINT EMP2I1 PRIMARY KEY (EMPNO)
  (中略)
>抽出条件は、EMPNO=7893 です。
これだったら、更新できるはずですけど。
できないとなると、お次は、RDBMSのバージョンとNetClientのバージョン
かな。
>>抽出条件は、EMPNO=7893 です。
>これだったら、更新できるはずですけど。
>できないとなると、お次は、RDBMSのバージョンとNetClientのバージョン
>かな。
初音玲さんの方は、「データ」タブでも、「表示」→「SQL実行」でも
更新出来ていますよね?

RDBMSバージョンはOracle 8.0.5 EE
NetClientバージョンは8.0.5です。
クライアントOSはWin95です。

>初音玲さんの方は、「データ」タブでも、「表示」→「SQL実行」でも
>更新出来ていますよね?
できてます。

>RDBMSバージョンはOracle 8.0.5 EE
>NetClientバージョンは8.0.5です。
バージョンはあっているので、他の原因でしょうか。
ちょっとお手上げですね。
KAMAさん、初音さんこんにちは。
システムインテグレータの海老原です。
ご回答が遅くなりまして申し訳ありませんでした。

まず、お詫びしなければならない点があります。
FAQの記載が誤解を招くものであったことです。

『基本的に、行を特定できないwhere句を入力した場合、
データタブからの更新はできなくなります。
結果が1行に絞られていたとしても、「in」などを用いた場合更新はできません。』

の箇所ですが、結果が必ず一行でなくてはならないという意味ではなく、
行を特定できないwhere句 = 「in」 など を用いた条件入力 という意味となります。

よって、以下のように訂正させていただきます。

『行を特定できないwhere句(in,like など)を入力した場合、
データタブからの更新はできなくなります。
結果が1行に絞られていたとしても更新はできません。』

また、項目の大文字/小文字を考慮せずに条件を入力した場合も、更新ができません。
こちらはFAQに掲載されておらず、誠に申し訳ありませんでした。

上記の変更点及び簡単な事例を交えたFAQをUPしました。
掲示板上での発言を拝見しますと、どの制限にもひっかからないようなのですが、今一度ご確認頂けますでしょうか。
特に、Net 2.x とNet 8が混在している場合は、「BDE設定」のVEMDER INIT に OCI.DLLが指定されているか、また、条件欄に小文字が入力されていないか、ご確認お願い致します。

もし上記をご確認の上現象が起こるようでしたら、新たな制限の可能性もありますので、
以下の情報を頂きたいと思います。

・SI Object Browser の詳細なバージョン
・IDAPI32.DLL のディレクトリ、バージョン
・SQLORA8.DLL のディレクトリ、バージョン
・全てのテーブルで発生しますか?
・問題の起こるテーブルのデータ行
・「表示」メニュー>「オプション」タブ >「SQL結果出力」>
「データ編集時の自動コミットを行わない」のチェックボックス値
・データタブ右上の「結果を編集可能にする」ボタン(鉛筆マークのもの) が
初期状態でON になっているかと思うのですが、一度 OFFにして 再度ON にしようとした場合、正常にON の状態になりますか。

以上、どうぞ宜しくお願い致します。







解決!! 2001/11/08 13:40 OB
海老原さん、どうもこんにちは
バージョンは以下の通りです。
SI Object Browser のバージョン => 7.0.8.41
IDAPI32.DLL のディレクトリ、バージョン => 5.1.1.1
SQLORA8.DLL のディレクトリ、バージョン => 5.1.0.6

早速ですが、FAQを確認しましたところ、
原因は「データ」タブの場合、項目を小文字で入力していたのでした。
「SQL実行」の方は、いまのところ如何なる、抽出条件を入力しても
更新はできています。
おかげさまで解決できました。これで作業がさらに向上できます。
この後、COMMIT処理に苦労しました。

初音玲さん、いろいろとご対応ありがとうございました。
みなさん、いつも掲示板にご参加してくれましてありがとうございます。
弊社は、パッケージソフト開発会社なので定期的に「今後の機能アップ検討会」を行っており、今週は「Web Shopping」関係を行いました。来週は「作って教材」を行う予定なのですが、再来週12日には「Object Browser」の機能検討を行います。

そこでお願いなのですが、「こんな機能が欲しい」などの要望がありましたら、じゃんじゃん書き込みをお願いします。できるかどうかはわかりませんが、日頃お使いになっている皆さんのナマの声をできるだけ反映していきたいと思っています。
よろしくお願いします。
機能というわけではありませんが、SQL Server版を出して欲しいです。
最近、SQL Serverでの開発でEnterprise Managerを使っているのですが、「ストアドプロシージャを作成して試すのに、いちいちクエリアナライザでコマンド発行しなければならない」「さっき発行したSQLを再発行したいのに戻れない」「テストデータをテーブルに入力するのに、SQLを使わなければならない」などなど、今までSI Object Browserで当たり前にやっていたことが全然できなくていらいらしています。
あらためて使い勝手の良さに感心するとともに、SQL Server版が欲しいと強く感じました。お願いします。
半人前のDB管理者としてはパフォーマンスチューニングに
いつも頭をなやませています。
現在のものにもいくつかの機能がありますが、
更に充実させていただきたいと思います。

1.テーブル、インデックスのエクステント数、空領域、
(あとテーブルはレコード数なんかもあると便利かも)

2.RBSのエクステント数
(9iからは無用になったのかなあ?)

3.SQLチューニイング
(既に実装している他社製品もあるようですが高価なので)

勝手ながら思い付くままに挙げてみました。
またひらめいたら書き込みます。
システムインテグレータさんの協力会社のものです。
現在、チューニング機能のついては、姉妹品として
開発検討中です。もう少し煮詰まりましたら、発表
させていただこうかと・・・
また、この関係で、サーバ・クライアント型のOr
acleを使った開発の場合の、クライアントから
ネットワーク層に発行した、実際のSQL文を取得
できる機能も追加しようかと検討しております。
ロジックでSQL文を動的に作り出して自動発行
している場合の対応として・・・参考まで!!
以前にも掲示板に書込みしたのですがCHAR属性の項目編集で
[Delete]キーを押したらNULLになるように出来ませんか?
これさえ出来れば非常に使い勝手が良くなるんですが・・・(個人的に)
>以前にも掲示板に書込みしたのですがCHAR属性の項目編集で
>[Delete]キーを押したらNULLになるように出来ませんか?
私も希望します。
[Delete]キーじゃなくても、例えば、[Ctrl]+[N]とか、
[Shift]+[Delete]とかでNULLの代入ができるようになると
嬉しいです。その項目がNULL属性かどうかはの判定はなく
ていいです(OracleまかせでOK)。
SEGAです。
追加機能について、欲しいものから順に。

1)Oracleの監視機能

定期的にOracleの状態を監視。
事前に指定しておいた[しきい値]を超えた場合は、保守担当者にメールで連絡する。
(領域不足の兆候、パフォーマンス低下などを監視する)
1台の監視用PCから、複数台の遠隔地のサーバを監視するイメージです。
数十台のサーバを担当している管理者にとっては、有難い機能だと思います。

2)AccessテーブルをOracleテーブルに変換する機能

OracleからAccessへの変換はODBCリンク経由で可能なので、その逆も欲しい。

3)印刷機能

Procedureソースの印刷機能が欲しいです。

4)データディクショナリの日本語訳

数が多いので大変だとは思いますが。。

以上です。ご検討頂ければ幸いです。
>1)Oracleの監視機能
> 定期的にOracleの状態を監視。
> 事前に指定しておいた[しきい値]を超えた場合は、保守担当者にメールで連絡する。
Oracle Enterprise Managerのチューニングパックみたいな
ものですね。

>2)AccessテーブルをOracleテーブルに変換する機能
> OracleからAccessへの変換はODBCリンク経由で可能なので、その逆も欲しい。
Access->OracleだとOracle提供のMigrationツールにありませんでしたっけ?
でも、例えばAccessのBoolean型のようにOracleにない型をどうマッピング
するとか結構大変かもしれません(値込みだと特に)。
テーブル定義ベースだとER/winとかでできるので、Object Browser/ERに
期待しようかなぁ。

>3)印刷機能
> Procedureソースの印刷機能が欲しいです。
確か、日揮情報ソフトウェアさんが16bitな印刷ツールを5~6年前に出して
いて、この印刷結果が比較的見やすくって良かったのですが、今は無いですね。

>4)データディクショナリの日本語訳
書籍でありませんでしたけ?
SEGAです。自己フォローです。

>2)AccessテーブルをOracleテーブルに変換する機能
> OracleからAccessへの変換はODBCリンク経由で可能なので、その逆も欲しい。

あとで気付いたのですが、AccessからODBCに対してエクスポートすると、
AccessのテーブルをORACLEに変換できました。
ですので、Object Browserにこの機能を追加するのは不要だと思います。

但し、初音 玲さんが指摘されている通り、Yes/No型(Boolean型)が含まれている
テーブルでは、エクスポートに失敗してしまいます。
あと、確認した限りでは、主キーの情報も移行されませんでした。
もしObject Browserでこの機能を実装するのであれば、上記の点をご検討下さい。

あと、追加で要望ですが、

オブジェクト名の絞込みの部分に、過去に入力したものを選択出来るように、
コンボボックス化して欲しいと思います。
又は、事前に『絞込みパターン』を入力しておくと、それから選択可能になる
という方式でも良いと思います。

以上です。
以下に要望事項を上げます。検討をよろしくお願いします。

(1)テーブル一覧等でコメント名を表示してほしい
  要望:テーブルやビューの一覧表示時にオブジェクト名の横列にコメントを
     表示してほしい
  理由:コメントの日本語オブジェクト名を表示したいため

(2)ログ出力
  要望:OOBの操作ログをテキストファイルに追記出力してほしい
     (投げたSQL、変更した定義、ALTER SYSTEMやSESSIONしたSQL、等)
  理由:OOBで誰がどのような操作を追跡するため。(自分を含めて)

(3)トリガーの8i対応
  要望:システム系トリガーの参照および作成機能がほしい
  理由:システムトリガーを作成してもOOBで参照ができないため

(4)SQLテンプレートの8iバージョン
  要望:SQLテンプレートの8iバージョンがほしい
  理由:マニュアルPdfを見なくてすむため

(5)現状のデータベース状態内容のレポート出力
  要望:データベースの定義情報や、稼動情報をレポート出力してほしい
  理由:定期的に出力し、時系列に稼動状況を把握したいため
こんにちは、システムインテグレータの梅田です。
いろいろと参考になるご意見、本当にありがとうございます。頂いた意見は1つずつ必ず検討させていただきます。機能検討ミーティングは11月12日なので、まだまだ間に合いますので、日頃お使いの中で感じたことをどうぞお知らせください。
「日本の」「ベンチャー企業の」「顧客想いの強い会社の」プロダクトらしく、皆さんの意見はできるだけ取り入れたい(という精神で)と思っています。(でも、技術的な問題点やビジネス的な判断でできないことも多いと思いますので、そのときはご容赦を)。
いつもお世話になっております。

機能追加ではないのですが、キーボードによる操作性を
充実させて頂きたいです。

例えば、テーブル・オブジェクトを開くと
タブが3つ出てくると思いますが、データ・タブを表示するには
マウスを使うしかありません。これを何とかキーボード操作で
賄えるようにして頂きたいです。

それから、タブ内のウィンドウのフォーカス移動です。
上の例の、データ・タブで[条件]から[抽出条件・ソート順設定]へは
タブで移動しますが、逆には戻れません。(Shift+Tabではセル移動のみです)
各小ウィンドウ([条件]、[抽出条件・ソート順設定]、[データ値?]等のことです。
適当な形容が思い当たらなかったもので)のフォーカス移動を[F6]等のショートカットキー
割り当てが出来ると大変有り難いです。
Object Blowserはいつも使用させていただいております。
機能の進化にはびっくりさせられることばかりです。

で、次期Versionの機能検討としてかんがえていただきたいなと思っているのは、SQL実行の画面から、実行したSelect分などの結果をCSVなどの形で出力できないかということです。
更新などができないのはわかるのですが、CSVで出力できる機能をつけてくださいぃっ!
SQL実行結果のCSV出力であれば、現バージョンでも可能です。

SQL実行結果の部分で、
[編集(E)]->[すべてを選択(A)]で全レコードを反転させたあと、
SQL結果の左横にある[結果をクリップボードに出力する]を押して、
出て来たダイアログに対して[カンマ区切りにする]に
チェックを付ければ良いです。
(1)下限上限値の設定方法
  要望:テーブルデータの抽出条件で下限値上限値の入力だけでなく
     イコール指定も簡単に入力できるようにしてほしい
  理由:抽出条件を入力するときに、範囲指定よりイコール指定をすることが多く
     同じ値を下限値上限値に設定するのは手間がかかるため。

(1)ソート順序で降順も指定したい
  要望:テーブルデータの抽出条件でソート順序でソートしたい番号を入力する横で
     昇順、降順を指定できるようにしてほしい。(もちろんデフォルトは昇順)
  理由:ここ最近のデータを見たくて更新日で降順にしたい場合があるため。
     確かに下の列を2回クリックすれば可能ですが手間がかかるので。
>(1)ソート順序で降順も指定したい

ソート順序欄で数字を入力した後に「DESC」と入力すれば降順指定になります。
ご参考まで。
( 確かにわかりにくいので GUI の改善を期待したいですが )
この頃はあまりOBを使う機会が減りましたが・・・・

以前使用していた時に、DBAでなくても本番データ(定義情報など)を書き換えできてしまう事について、アクセス権限(OBの使用権限)を設定できると
いいかなと思いました。
ちなみに、当社のお客様の環境では、大規模なのに1ユーザーでのスキーマとなっていて
(色々な環境<サーバー数百>では、開発、試験、本番それぞれのスキーマ等を
変更しても、セキュリティー面では良いが開発面での手間がかかると言う理由)
どちらかというとDBAのパスワードもしられがちな環境なので。

本当はDBA及びシステム権限のUID/PWは変更したいがそう簡単にはいかない
状況です。
TEMPORARY TABLEの
ON COMMIT DELETE ROWS
ON COMMIT PRESERVE ROWS
に対応して頂けると嬉しいです。SYSユーザのVIEWを調べれば判別可能だと思いますので。

後、SQL実行で使用したSQL文は履歴として保存されますが
保存するタイミングがSQL実行時ではなく、OBを終了させた時だと思います。
何らかの原因でOBが正常終了できなかった場合、SQL文の履歴が残らないので
可能で有ればSQL実行時に履歴を保存してください。
そうして頂けると、異常終了してしまった場合でも安心して作業を継続できます。
こんにちは。

開発基準により項目名に特殊文字が入るパターンの開発をしています。
例えば、

"TEMP-NO-KOUMOKU"

このような名前の項目のことです。
この場合、ハイフォンが存在するため、ORACLEではダブルクォーテーションで囲む必要があります。

上記を条件として改善要求をします。

1つ目は、テーブルのソース表示の画面でCREATE定義は大丈夫なのですが、同時にPRIMARYKEYを定義した場合にPRIMARYKEY定義区の項目名のダブルクォーテーションが取り除かれます。
2つ目は、データ表示の画面で範囲での絞り込み条件を入力するグリッドで項目に値を入力しても絞り込みが出来ません。

双方ともダブルクォーテーションがらみの問題です。
対応、宜しく御願いします。
Takeさん、こんにちは。システムインテグレータの海老原です。
弊社の製品、SI Object Browser をご利用頂き、誠にありがとうございます。

頂いたご要望は、今後のバージョンアップの際に検討させていただきます。
ご報告ありがとうございました。今後ともどうぞ宜しくお願い致します。
皆様、こんにちは。システムインテグレータの海老原です。

本日、最新バージョン 7.0.8.41 をリリースさせて頂きましたので
ご案内申し上げます。大変お待たせいたしました。
変更履歴は以下のとおりです。
http://www.sint.co.jp/siob/html/dload/rnotev7.html>
http://www.sint.co.jp/siob/html/dload/rnotev7.html
この掲示板で何度かご指摘されている一時表のソース表示に対応しています。
以下サイトより差分プログラムをダウンロード、プログラムフォルダに上書きの上
ご確認いただけますよう、宜しくお願い致します。
http://www.sint.co.jp/siob/html/dload/dload7.html>
http://www.sint.co.jp/siob/html/dload/dload7.html

また、皆様、活発なご意見ありがとうございます。
皆様のご意見はこちらでまとめさせていただき、
今後のバージョンアップの際に検討させて頂きます。

※現在、技術担当宛のメール数の増大のため、
返答処理を行うまで相当日数がかかっております。
本掲示板でのご連絡に遅れが出ている場合がありますことをお詫びいたします。


助けて 2001/11/02 16:17 OB 3
いま オブジェクトブラウザを使用としたら 何回もデータベースに接続して うまくいかなかった。(ユーザ名など sqlplusで 登録成功しました。)エラーメッセージは ベンダーの初期化失敗しました。(僕 わかりにくい日本語ばかりで ごめんね)
[中COU]
>いま オブジェクトブラウザを使用としたら 何回もデータベースに接続して
>うまくいかなかった。
「ヘッダの初期化に失敗しました」というエラーメッセージだとしたら
http://www.sint.co.jp/siob/html/faq7.html
の「接続できない」あたりは確認してみましたか?
有難うね。もう解決しました。僕は外人で 下手な日本語すみません。
>有難うね。もう解決しました。僕は外人で 下手な日本語すみません。
下手な日本語というのは特別問題にはしていませんが、
「Help!」とかのみのタイトルではなく質問を簡単に書くとか、何かを
調べたけど分からなかったならば「何か」を書くとか、解決したらどう
解決したのか書くとか、そういった事を掲示板、NewsGroup、メーリン
グリストなどを使うときは書くってのは、言語問わず共通だと思います
よ。
最近使い始めた者ですが
トリガーの有効/無効の切り替えを
通常 ALTER TRIGGER trigger_name ENABLE/DISABLE でしているんですが
このコントロールを Object Browser で、できないのでしょうか?
当然SQL実行でコマンドを打てば出来るのですが、どこかにプロパティ
のようなものはないでしょうか?
[tekuo]
>トリガーの有効/無効の切り替えを
>通常 ALTER TRIGGER trigger_name ENABLE/DISABLE でしているんですが
>このコントロールを Object Browser で、できないのでしょうか?
できますよ。
テーブル定義すると、フィールド定義一覧表の下にある枠の中に制約などと
一緒にTriggerってでていませんか?
なるほど・・できました。ありがとうございます
見逃してた
オブジェクトリストのトリガーしか
目に入っていませんでした。
聞いていてみるものです
オブジェクトリストでやりたいのであれば、メニューの
[SQL]>[ユーザー定義SQLの登録]をクリックして、下記のSQL 文を登録すれば
オブジェクトリストのポップアップメニューに機能が追加されますよ。
(登録時は「メニューに表示する」のチェックをお忘れなく)

トリガーを有効にする場合
alter trigger :owner.:name enble

トリガーを無効にする場合
alter trigger :owner.:name disable
いつもお世話になっております。

ORACLEで開発をしています。
PRO*COBOLを主流に開発をしている者です。

単刀直入ですが、OBで表示するデータのHEX表示機能を希望します。
さらに上記機能の理由とともにOB操作上、発生した現象を報告します。

PRO*COBOLを使用してシステムを構築する途中に発生した出来事です。
COBOLにはLOW-VALUEが存在します。これはDBに存在するNULLとは異なるものです。
開発中のプログラムではDBのレコードにLOW-VALUEが発生する場合はしばしばあります。
OBでデータを表示した場合、文字の後の空白はすべてカットされた状態で表示されます。
例えば、10byte中5byteの文字列が入っている場合に残り5byteは空白かLOW-VALUEかの判断が出来ません。
さらに、LOW-VALUEが入っていた場合、対象レコードはOB上でデータの更新が全く出来ない状態になってしまいます。
よって更新処理と削除処理が出来ません。
SQLを実行すれば更新・削除が出来ます。(LOW-VALUEが入っていない項目を抽出条件とする)

余談ですがACCESSの場合は存在するデータの後ろの空白は取り除いていません。LOW-VALUEが入っていたらすぐに見て解りました。データの更新・削除も可能でした。

LOW-VALUEが絡む現象がもう1つあります。
例えば、LOW-VALUEが入っているデータがキーだとします。
(キー長10byte文字型)
"_"をLOW-VALUEとします。

文字列 ABCDEF____
HEX1 4444440000
HEX2 1234560000

このデータと、LOW-VALUEが存在しないデータをINSERTします。
"~"を半角スペースとします

文字列 ABCDEF~~~~
HEX1 4444442222
HEX2 1234560000

この2つのデータは異なるものなのでキーは重複しません。
しかし、OBでは表示が同じになります。
(LOW-VALUEはバイトに文字がが存在しない意味となり、空白はカットされるため)
この場合データは1行しか表示されず、レコードにカーソルを移動させたりすると表示されるデータの中身が様々な表示になります(表示レコードが可変する)。

上記理由により、HEX表示機能か、あるいは空白削除機能の排除を希望します。

以上、宜しく御願いします。
>ORACLEで開発をしています。
>PRO*COBOLを主流に開発をしている者です。
大変ですね。

ObjectBrowserの開発者でも関係者でもないので、単なる技術的好奇心からですが、
ちょっと質問させていただきます。
>COBOLにはLOW-VALUEが存在します。これはDBに存在するNULLとは異なるものです。
>開発中のプログラムではDBのレコードにLOW-VALUEが発生する場合はしばしばあります。
>OBでデータを表示した場合、文字の後の空白はすべてカットされた状態で表示されます。
>例えば、10byte中5byteの文字列が入っている場合に残り5byteは空白かLOW-VALUEかの
>判断が出来ません。
それって、LOW-VALUEなのにカットされるということでしょうか?
「LOW-VALUEはNULLと異なるもの」、「文字の後の空白はすべてカットされた状態」
という記載からすると、LOW-VALUEなるものを空白と同等に扱ってしまうって点に
まず問題があるのかなぁといったところですよね。
#質問の後半に
#>(LOW-VALUEはバイトに文字がが存在しない意味となり、空白はカットされるため)
#という事なので、両方ともカットされるって事でいいのかな。

文字列って事は、VARCHAR2とかCHARって事ですよね。その中に文字列じゃないもの
を設定しているときにどのように表示したら良いだろう考えてしまいました。
そのLOW-VALUEをSQL*Plusなどで検索したり表示したりするとどのように見えるの
でしょうか。
あと、SQL*PlusでLOW-VALUEを扱う方法ってあるのでしょうか?

まったく個人的な意見ですが、COBOLのLOW-VALUEってある種のNULLですよね。
NULLがあるのだから、それ以外に同じようなLOW-VALUEを使う意味ってのがない気も
します。
COBOLで書かれたホストのシステムをOracleを使ったものに作り直した事も何件かあ
りますが、これといって特にNULL以外にLOW-VALUEが欲しいと思う局面に出会った事
もなかったので。

>上記理由により、HEX表示機能か、あるいは空白削除機能の排除を希望します。
実現するのならば、HEX表示機能にしても空白削除抑止機能にしても、設定(やボタ
ン)によって切り替えられるようにして、現在の使い勝手も残して欲しいです。
だって、CHAR型の後ろ空白なんてGUIじゃ邪魔ですから。
こんにちは。
お答えします。

>#質問の後半に
>#>(LOW-VALUEはバイトに文字がが存在しない意味となり、空白はカットされるため)
>#という事なので、両方ともカットされるって事でいいのかな。
まったくその通りです。表示上では同じです。

>文字列って事は、VARCHAR2とかCHARって事ですよね。その中に文字列じゃないもの
>を設定しているときにどのように表示したら良いだろう考えてしまいました。
>そのLOW-VALUEをSQL*Plusなどで検索したり表示したりするとどのように見えるの
>でしょうか。
>あと、SQL*PlusでLOW-VALUEを扱う方法ってあるのでしょうか?
SQLでは、HEX表示する関数が存在します。それを使えば可能です。
関数名は忘れました。

>まったく個人的な意見ですが、COBOLのLOW-VALUEってある種のNULLですよね。
>NULLがあるのだから、それ以外に同じようなLOW-VALUEを使う意味ってのがない気も
>します。
多少扱いが違います。
NULLというのはDB上の扱いになります。
しかしLOW-VALUEはCOBOL上のもので、文字を格納するためのバイトは確保するが中身が存在しない状態です。
そのため、親記事の例ではHEX1とHEX2という表現で表しました。

>COBOLで書かれたホストのシステムをOracleを使ったものに作り直した事も何件かあ
>りますが、これといって特にNULL以外にLOW-VALUEが欲しいと思う局面に出会った事
>もなかったので。
データとしてLOW-VALUEが欲しいと言う人はまず少ないでしょう。
これは、開発途中のテストデータから発生することが多く、デバッグの効率を向上させたいが為に提案しました。

>実現するのならば、HEX表示機能にしても空白削除抑止機能にしても、設定(やボタ
>ン)によって切り替えられるようにして、現在の使い勝手も残して欲しいです。
切り替え可能の方が良さそうですね。
空白をカットして表示した場合に区別できれば問題はありません。
後スペースのあるなしを区別したいのであれば、varchar2 型を使えばよろしいのでは?
char 型に low-value ( chr(0) の事ですよね )を入れるのは次の開発や保守に余計な
混乱を与えると思います。というか実際過去に混乱しました。

ちなみに varchar2 型ならば OOB でもある程度区別つきますよ。

参照したいだけならビューを作って確認という手もありますし。

create view employee_dmp as
select rawtohex(last_name) from employee

とか。
こんにちは。

>後スペースのあるなしを区別したいのであれば、varchar2 型を使えばよろしいのでは?
>char 型に low-value ( chr(0) の事ですよね )を入れるのは次の開発や保守に余計な
>混乱を与えると思います。というか実際過去に混乱しました。
私共も過去に混乱しました。
しかし、COBOLで開発上LOW-VALUEは発生する可能性があります。
現在COBOLのレコードでXタイプを表す項目はChar型で定義する規則で開発しています。
Varchar2型を使用することは出来ません。

レス記事でも述べましたが、発生して困るときはデバッグ時です。
動作テストして発生したデータがLOW-VALUEを含む場合もあります。

親記事でも述べましたが空白カットによってデータが正常に表示されません。
更新・削除処理も出来ません。
その部分が修正されれば問題はありませんが・・・。
スレッドが2つに枝分かれしたので、こっちの枝に乗り換えました。

>>後スペースのあるなしを区別したいのであれば、varchar2 型を使えばよろしいのでは?
>>char 型に low-value ( chr(0) の事ですよね )を入れるのは次の開発や保守に余計な
>>混乱を与えると思います。というか実際過去に混乱しました。
>私共も過去に混乱しました。
>しかし、COBOLで開発上LOW-VALUEは発生する可能性があります。
>現在COBOLのレコードでXタイプを表す項目はChar型で定義する規則で開発しています。
>Varchar2型を使用することは出来ません。
今後もLOW-VALUEを扱うのであれば、その規則自体を見直してみる必要も
あるかもしれませんよ。
あとは、トリガーでLOW-VALUEのみはNULL、後ろLOW-VALUEは除去、なん
て仕組みを作って、データ投入時にLOW-VALUEの混入を除去し、もちろん
参照側でもLOW-VALUEを前提としない...というのもアリかも。

>レス記事でも述べましたが、発生して困るときはデバッグ時です。
>動作テストして発生したデータがLOW-VALUEを含む場合もあります。
SELECT RAWTOHEX(hogehoge) FROM hoge
という感じでSQL*Plusのように16進数にして表示すれば、Object Browser
でも表示可能なようです。
問題は、更新・削除時か。。。
こんにちは。

>今後もLOW-VALUEを扱うのであれば、その規則自体を見直してみる必要も
>あるかもしれませんよ。
基本的にLOW-VALUEをDB上に存在させておく訳にはいきません。
システムリリース時にはLOW-VALUEを発生させないシステムに仕上げます。

>SELECT RAWTOHEX(hogehoge) FROM hoge
>という感じでSQL*Plusのように16進数にして表示すれば、Object Browser
>でも表示可能なようです。
・・・・仕方ないかも知れませんが、見にくいですよね。コレ。
LOW-VALUEの判断は出来ますが。
更新・削除処理もSQLで何とかなります。
LOW-VALUEの判断をSQLでやるならば、更新・削除処理もSQLでやらざる得ません。
この機能をテーブルデータ表示時に欲しいですね。
やんです。
ObjectBrowser(7.07.35)を使わせて頂いてます。

TABLEのソース表示について要望があります。

一時表(CREATE GLOBAL TEMPORARY TABLE ...)のソースを表示しても、
現状、通常の表と同じように表示(CREATE TABLE ...)しています。

CREATE GLOBAL TEMPORARY TABLE ...と表示されると、区別ができて
分かりやすいのですが、いかがでしょうか?

動的ビューから取得して表示しているのであれば、ObjectBrowser でな
く、Oracleへの要望になってしまうのかもしれませんね。

最後に、これからも期待しています。
頑張って下さい。
「一時表」でワード検索してみませう。
>「一時表」でワード検索してみませう。
つまり、この掲示板で、過去に同様の質問があったって事ですね。