■SI Object Browser 掲示板


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

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

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

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
以下のアドレスにoo4oでストアドプロシージャの呼び出し方が載っていましたよ~。
(参考にならなかったらゴメンなさい)

http://homepage2.nifty.com/inform/vbdb/oo4o_paramsp.htm

ASPからoo4oを使いストアドプロシージャを呼び出して、呼び元でカーソルを使いたいのですが
方法が判らず悩んでます。どなたか判る方がいれば教えてください。
 単純に、ASPからSQLを実行すればすむ事ですが、処理をブラックボックス化したいので
ストアドプロシージャを使おうと思っています。
[takka]
>オブジェクトリスト上で対象のテーブルを選択し、
>マウスでワンクリックすると名称が変更できるようですよ。
>Windows のエクスプローラのファイル名変更のような感覚です。

うぉっ!できました~~!
有難うございます。

・・・こんなに簡単にできるんですね・・・。早く質問すればよかった。
オブジェクトリスト上で対象のテーブルを選択し、
マウスでワンクリックすると名称が変更できるようですよ。
Windows のエクスプローラのファイル名変更のような感覚です。
またまたご質問いたします。

タイトルにも書きました通り、テーブルの作成時にプライマリー制約等の制約をかける方法はありますでしょうか。NULL制約はかけれると思いますが、プライマリーキー制約のかけ方がわかりません。

今は、「constraint」から新規にオブジェクトを作成しております。

以上、ご回答よろしくお願いします。
Object Browser で一度作成したテーブルの名前を変更したいのですが、GUIで変更する方法はないのでしょうか。
今は、わからないので、
1.テーブルを削除してつくりなおし。
2.SQLコマンドによりALTER TABLE 文を発行。

のいづれかをしています。

GUIでできれば簡単で良いのですが・・・。

ご回答よろしくお願いします。
毎々お世話になっております。

つい先刻、御社HPを拝見して、発売日を確認致しました。

WinXP、2000ともに対応ということで、ひと安心しております。
Oracle9i対応、ご苦労様でした。

これで、ユーザ環境導入への地場固めができます。

ご丁寧なご案内、ありがとうございました。
[まだまだ初心者]
>ORDER BY が書かれていましたが、
>ユーザ先のマシンでは3万件のデータをプライマリキーで行った場合に
>メモリー不足でアプリケーションがABENDしたため、
>いろいろ調べ“インデックスは、デフォルトは昇順でキー値順に読み込み可能”の言葉を
>信じて前メッセージの処置をとりました。(処置は別のデータベースに対して)

確かにINDEXは昇順にならんでいるように見えますが、絞込み条件がない
のであれば、通常、全表検索されるでしょうから、表データの物理順になっ
てしまいます。やはり、確実なのは、ORDER BYです。
なお、INDEXを使っているか全表なのかは、OBを使って実行計画を表示す
ると一目瞭然です。

>データの絞込み条件は無し、

結局のところ、データの絞込みなしでソートした結果が欲しいというのは
どのような処理なのでしょうか。オンラインアプリケーションという事で
すが、3万件のデータを一覧表示するような感じでしょうか。

>DISTINCTも同様で、管理メーカーからは使用禁止句になっている状況です。

管理メーカーとしては、どんなにスキルが低い人間が使ってもレスポンス
の劣化が心配されない機能しか使わせたくない場合が多いようですね。
でも、それは本当にお客様の事を考えた「管理」とは言えませんね。
限られた資源で最大限の能力を維持するというのが本当の管理ですからね。

まずは、データ絞込みは本当に不要なのか、次にORDER BYの作業領域をDB
側で確保する事が本当に出来ないか、最後にクライアント側に持ってきて
からソートする方式の時間でお客様に納得いただけるか、などを検討して
みる必要があると思います。

#どちらかというとOB掲示板ではなく、データベース掲示板ネタですね。

>データベースの環境は管理メーカーが担当で私どもでには一切情報は教えてもらえません。

動的パフォーマンス表だとかSELECT文で検索しちゃえば設定情報などは、
すべて取得できます。もちろん、OBだと画面クリックしていくだけで表示
されます(ただし、上記表に対するSELECT権限が外されていると無理で
すが)。

DBは、Oracleなのかな?と思って書いてますが・・

>例えば、“A_NO”には‘01,02,03,04,11,12,23,...’と数字が設定されます。
>データすべてを抽出する場合に“WHERE”句に“ A_NO > '00' ”を条件つけをして
>インデックス検索にしました。

WHERE句に、プライマリキー項目を指定したからといって、インデックスを使った検索を
行うとは限りません。Oracleのオプティマイザが検索方法を判断します。
Oracleが、全表検索した方が早いと判断した場合は、インデックスがあっても無くても
全表検索します。

どうしても、インデックスを使って欲しい場合、オプティマイザヒントを使って、
インデックスの利用を強要することも可能です。(詳しくは、マニュアル参照)

何となくですが、今回のケースだと..
SELECT /*+ INDEX_ASC(GTBL_M04 pk_GTBL_M04) */
A_NO
FROM GTBL_M04
WHERE A_NO > '00';
で問い合わせれば、欲しい結果が取れそうな気がします。

!注意!今までより、検索時間自体は長くなる可能性がありますので、ご注意ください。
SEGAさん御教授ありがとうございます。
これに甘えてもう少しお願いします。

ORDER BY が書かれていましたが、
ユーザ先のマシンでは3万件のデータをプライマリキーで行った場合に
メモリー不足でアプリケーションがABENDしたため、
いろいろ調べ“インデックスは、デフォルトは昇順でキー値順に読み込み可能”の言葉を信じて
前メッセージの処置をとりました。(処置は別のデータベースに対して)
データの絞込み条件は無し、
毎日100件~1000件のデータ更新(削除、更新、追加)がオンライン、バッチと行われ
物理的には当然順不同です。
DISTINCTも同様で、管理メーカーからは使用禁止句になっている状況です。
でもユーザからはレスポンスは早くの要求が・・・。
(DISTINCTもメモリー不足でした。)
内部ソートや、ADO.NETのフィルタなども結局便利ではあるがオンラインアプリケーションには向かない便利機能でした。(とにかく時間がかかりすぎ)

ユーザに今の現状をすべて説明して、所要時間的に一番の内部ソートを許してもらっている状況というかそれしかないのです。
データベースの環境は管理メーカーが担当で私どもでには一切情報は教えてもらえません。

以上が私どものプロジェクトの状況でした。
これが得策なのでしょうか??
疑問です。