最近オラクルの勉強をはじめたのですが、
本当に初心者なので、何がなにやらさっぱりわからないことだらけです。
それでも、だいたいのものはネット検索や辞書で調べたりしてわかったのですが、
”カーソル処理”で躓いてしまいました。
どういうもので、どんな働きをするものなのか、
どういうメリットをもっているのかなど教えてください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

実際のOracleとは、動きが違うので、カーソルとはこういうものだという概念だと思ってください。



データベースは、時と場合によって、テーブルからデータを持ってきてそのデータによって、処理を変えたくなる処理があります。
その場合、テーブルからとってきたデータを一時的に変数保存して、保存されたデータを調べて処理を行うという手順になります。
このときに、テーブルからとってくるデータが、1行複数列の場合、列の数だけ変数を作って、データを保存すればよいのですが、複数行のデータを取ってくる時、ほとんどの場合、何行とってくるのかはわかりません。また、その行数分だけ、繰り返しの作業が必要になることが多いはずです。

このような処理を行いたいときに、複数行のデータをいっぺんに保存し、繰り返しの処理を行いやすくした変数をカーソルといいます。そして、このカーソルを使った処理を「カーソル処理」と呼びます。
Oracleの場合、PL/SQLを使うとき、クライアントサイドで、ADO、DAO、RDO、oo4oなどを使う場合に、カーソルという概念が出てきます。

メリットとしては、上記のとおり、複数行に対して、複雑な条件による分岐処理を、1つのメソッド(PL/SQL文や、ストアドプロシージャなどのコール)で終わらせることができるため、ネットワークトラフィックを大幅に減らせる可能性があります。
デメリットは、カーソルを使うと、複数行に対する繰り返し処理になるので、条件が複雑でない場合や、多くの行を処理する場合はできるだけカーソルを使わずに、insert、update、delete文で処理するようにしないと処理時間が非常に長くなります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
まだまだ完全に理解できるほど知識がないのが非常に悔しいのですが、
少しずつでも覚えていこうと頑張っています。
少しでもはやくmsystemさんみたいになれるように・・・
本当に有難うございました。

お礼日時:2001/04/27 09:56

msystemさんがおっしゃっている通りです。


ですが、私も私なりになるべく噛み砕いて説明してみます。

SQLというのは、「こういう条件の結果がほしい」というような
指示の仕方をする言語(「非手続き型言語」)であるわけ
ですが、これで得た結果をJavaやCのように、「こういう手続きで
得られる結果がほしい」という指示の仕方をする言語(「手続き型
言語」)で処理したいような場合に、カーソルというのが、
必要になってきます。

SQLは、たとえば、誕生日が5月の会員の一覧が見たい、と
いうような場合に、そのデータをいっぺんに返すことができますが、
その会員それぞれの運勢を、Javaのプログラムで占って、その
結果をメールで配信したい、というような場合は、取得した結果を、
Javaのプログラムで処理できるような形にしなければなりません。
こういうときにカーソルを利用して、取得してきたデータを1つ1つ
順々に取り出せるようにして、Javaでつくった処理にかけられる
ようにするわけです。

ちなみに、Oracleの場合、必ずしもJavaやCの助けを借りなくても
大丈夫な場合があります。というのも、PL/SQLという、「手続き型
言語」が、あらかじめ用意されているからです。
PL/SQLは、SQLと手続き型の処理を、非常に簡単に融合させることが
できます。何かと便利なものです。
おいおい、PL/SQLにも眼を通すようにするとよいかもしれません。

Oracleは、いまやスタンダードなRDBMSなので、得た知識はきっと
役に立つだろうと思います。勉強、頑張ってください。
    • good
    • 0
この回答へのお礼

わざわざかみ砕いていただいて、わかりやすかったです。
現在(理解しているかどうかは別にして)SQLからPL/SQLの勉強に移りました。
壁にぶつかってばかりでなかなか前に進めない状況ですが、
頑張っていこうと思っています。
有難うございました。

お礼日時:2001/04/27 09:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qオラクルについて

オラクルでDBを作り、DBAスタジオでツリーに加えたのですが、接続できません。
「ORA-12154:TNS:サービス名を解決できませんでした」というメッセージが出てきました。どうすれば接続できるようになるのでしょうか?解決方法を教えてください。

Aベストアンサー

また、登場です。
解消されていないと言う事で、詳細を。

ORA-12154 は接続の際に使用した接続文字列が、tnsnames.ora から
読み込めなかった場合に発生するエラーです。
このエラーの場合には、定義はこの他に数カ所あります。
単純に、一般的な対処方法を二つ程、いれますので確認してください。

1.%ORACLE_HOME%\network\admin\tnsnames.ora の定義ミスの場合

定義例)

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
(CONNECT_DATA =
(SID = oracle)
)

hostname:マシン名でうまくいかない場合IPアドレスを入れる。(192.168.1.xxx)


2.sqlnet.oraに NAMES.DEFAULT_DOMAIN が設定されていた場合
詳細)付加するドメイン名を設定するためのもの

NAMES.DEFAULT_DOMAIN = hoge

となっている場合は、接続文字列がTESTとなっていても、
TEST.hoge が自動的に接続文字列となります。

よって、ここがコメントアウトされているか確認してください。

では・。

また、登場です。
解消されていないと言う事で、詳細を。

ORA-12154 は接続の際に使用した接続文字列が、tnsnames.ora から
読み込めなかった場合に発生するエラーです。
このエラーの場合には、定義はこの他に数カ所あります。
単純に、一般的な対処方法を二つ程、いれますので確認してください。

1.%ORACLE_HOME%\network\admin\tnsnames.ora の定義ミスの場合

定義例)

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
...続きを読む

Qオラクルについて

「オラクルは使ったことありますか?」と訊かれるんですが、
そのオラクル自体が良く分かりません。
実際使ったことも無いんですが・・・
何か勉強するのに良い本やWebなどがあれば教えてください。
よろしくお願いします。

Aベストアンサー

これはNT用の場合ですが、オラクルを購入すると一枚のCDが着いてきます。イントールすると、オラクルが動き始めます。しかし、見た目なんの変化も起きません。実はNTのサービスが裏でオラクルを動かしているからです。
使うとなれば、他のクライアントからODBC等で接続してオラクルデータベースを使うことになります。
知識としてほしいのは、オラクル管理者としての知識と実際データベースを利用するユーザーとしての知識です。
ユーザーとして申し分ないと仮定して、管理者としてのこころ構えを述べておきます。
1)管理者としてオラクルに対する設定をよく理解すること。(テーブルの構造、データの入出力、エラーへの対処)
2)ユーザー登録やテーブル追加やシノニム等のメンテナンス
3)クライアントへのサービスのため、パーミッションや
メモリ管理等。
4)接続形態をよく理解して、バージョン管理やユーザーのSQL文の教育
5)データ更新系のVBやACCESS等の使い方の指導
これらが理解できたらりっぱな管理者になれると思います。
ちなみにわたしUNIX系オラクルを一週間で立ち上げました。もちろん、SEとともに。
がんばってね。

これはNT用の場合ですが、オラクルを購入すると一枚のCDが着いてきます。イントールすると、オラクルが動き始めます。しかし、見た目なんの変化も起きません。実はNTのサービスが裏でオラクルを動かしているからです。
使うとなれば、他のクライアントからODBC等で接続してオラクルデータベースを使うことになります。
知識としてほしいのは、オラクル管理者としての知識と実際データベースを利用するユーザーとしての知識です。
ユーザーとして申し分ないと仮定して、管理者としてのこころ構えを述...続きを読む

Qオラクルのロゴ

 オラクルの試験に受かったらオラクルのロゴを名刺に使ってもいいそうですが
アルバイトでも有利になるのでしょうか?(まだ取得はしていません)

※取得に向け勉強中
※アルバイトをしたいなと思っている場所は家電・パソコン店

またオラクルのロゴはすべて同じなんですか(シルバーとかゴールド・・級というかレベルはいろいろありますが・・・)

Aベストアンサー

家電・パソコン店のアルバイトで有利になることは「期待薄」でしょう。
そもそもそういった店では一般的に、
オラクル製品自身販売していないでしょうし、
問い合わせてくるお客さんもいないでしょう。

ロゴの種類はいろいろあります
下記参照してみてください。

勉強がんばってください!!。

参考URL:http://www.oracle-master.org/get/dl/omlogo.html

Qオラクルの試験

 もしオラクルの試験に失敗した場合、受験資格は一定期間なくなるのですか?


MOUSみたいに・・・・

Aベストアンサー

MOUSってそんな制度があるんですか、、、?(^-^;

オラクルってOracleMasterですよね。
不合格でもそのような制度はないですよ。

Qオラクルの結果

 夏休みが終わってしばらくしてからなんですが、オラクル(シルバー)を受けます
(強制)

そこで結果が出るのにどのくらいかかりましたか?

※学校でするため、ペーパーです.(パソコンはカンニング防止のため使わないそうです.)(その代わり、50%OFFになるので・・・)

 パソコンだとすぐにでるそうですが・・・かなり怖いが・・・・

ちなみに合格基準ってどのくらいですか?

Aベストアンサー

パソコンだと、完了を押したとたん結果が出るで、拍子抜けしちゃいますね~
ちなみに合格ラインは、7割です。

ペーパーはちょっと分からないです。学校で聞いて見たほうが確実かも。。。

頑張ってね~


人気Q&Aランキング

おすすめ情報