お世話になります、

Orcacleのストアドで質問があります。

以下のようなストアドを組んだ場合「Close cu1;」は必要なのでしょうか?
カーソルをクローズしないとOracleエラー「カーソルが最大数を超えました。。。」というエラーが出るそうなのですが。

ちなみにClose cu1;を入れるとVBからストアドを呼んだ場合に
以下のOracleエラー
「ORA-01403:データがありません」のエラーが出てしまいます。

アドバイス等、よろしくお願いします。


CREATE OR REPLACE PACKAGE MASTERS as

CURSOR c1 IS select * from userTable;
TYPE type1 IS REF CURSOR RETURN c1%ROWTYPE;

PROCEDURE GetD( cu1 OUT type1);

end;
/

--
CREATE OR REPLACE PACKAGE BODY MASTERS IS

PROCEDURE GetD( cu1 OUT type1) IS
BEGIN
OPEN cu1 FOR select * from userTable ;
これが必要?→ Close cu1;
END GetD;

END MASTERS;
/

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

A 回答 (1件)

カーソルは有限な資源なので、必ずクローズが必要です。



またこの中ではカーソルをOpenしかしていませんが、FetchしないでVBからどうやってデータを取っているのでしょう?
他にFetchする為のストアードプロシージャがあるのであれば、さらに処理を終了するためのストアードプロシージャを作成してその中でカーソルをクローズしてください。
    • good
    • 0
この回答へのお礼

これは複数のレコードを一度に取得できるCURSORでFETCHはいりません、本を読んだ限りこのCURSOR(OPEN FOR)カーソルはCLOSEがいらないカーソルだとのことです。

ありがとうございました。

お礼日時:2001/12/26 09:17

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

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

Qツールバーがカーソルを合わせないと出ない

サイトを見ている際、上部にツールバーが出ていたのですが、今ではそこにカーソルを合わせないと出なくなってしまいました。
下部のツールバー?も以前より小さくなってしまいました。
元に戻したいのですが、どうしたらよいでしょう?

Aベストアンサー

F11キーを押してください。

Qcursor.getString

JavaのSQLiteの「cursor.getString」というのがあると思うのですが、どうゆう事をやるのですか?

些細な疑問です。

Aベストアンサー

cursor.getString(列番号)cursor.getInt(列番号)メソッドを用いて現在の行の値を列番号で取得
http://kuwalab.hatenablog.jp/entry/20110212/1297508786

Q画面立ち上げ時 カーソルが出ない

windowas meのノートを使っていました。
画面を立ち上げたら、画面の絵や文字が拡大されていて、いくら動かしてもカーソルが現れません。
今は違うパソコンからアクセスしてますが、どうしたらよいのでしょうか?
教えてください。お願いします。

Aベストアンサー

多分、レジストリトラブルでしょう!

キーボードよりウインドウズキーを押し、
方向キー(↑)で「ファイル名を指定して実行」で
エンター、scanregw /restore(scanregwの後
ワンスペース)と入力しエンター、
「レジストリの復元」画面で
方向キーで正常だった最新の日でエンター
これで再起動がかかります

修復出来ると思いますが?

QOracleのCreate Table 文のStorage句

お世話になります。

OracleのCreate Table 文のStorage句のNextの値を
変更したいのですが、できるのでしょうか?

Alter Table文で変更するのでしょうか?
手元にマニュアルが無く困っております。

よろしくお願いします。

Aベストアンサー

alter table テーブル名 storage ( next 変更後のサイズ );

だっけかな?

Qツールバーにカーソルをポイントしてもヒントが出ない

エクセルの2000を使っていますが、標準ツールバーにある「上書き保存」のマークや「切り取り」などのマークの上にカーソルを置いてもヒントが出ません。
普通だったらどんなことが出来るのか、マウスポインタの下に文字が出ますよね?
すみませんが、ご回答よろしくお願いします<(_ _)>

Aベストアンサー

ツール-ユーザー設定-オプションタブ
ツールバーにボタン名を表示する のチェックを
オンにしてみてください。

QPL/SQLでCREATE SEQUENCEの呼び出し

いつも参考にさせていただいてます。

select文で取得した日付の年下2桁をもとに
順序を取得したいと思っています。

CREATE SEQUENCEは

seq_id_04
seq_id_05
seq_id_06
  :
  
というように年ごとに作成されてあります。

seq_id_yy.nextval
yyを取得した年に置き換えて実行したいのですが、
なかなかうまくいきません。

初めてのPL/SQLのため説明文におかしな部分があったらすみません。
ご存知の方がいましたら、ぜひぜひご教授ください。

Aベストアンサー

こんにちわ。

Execute immediate 文を使えばできる筈です。
先ずは、
 vSQL varchar2(256);
 vSeqNo NUMBER(8);
のように変数が定義されていたとして、
vSQL にSequence をSelect するSQL 文を作成します。
こんな感じです。
→ vSQL := 'SELECT seq_id_' || to_char(sysdate, 'YY') || '.nextval from dual';

そうしたら、
PL/SQL ブロックの中で、
execute immediate vSQL into vSeqNo;
として下さい。

Q画像にカーソルをおくと左上に出てくるものを出ないようにするタグ教えてください!

よく画像にカーソルをおくと、
画像の左上に小さくでてくるもの
(クリックすると、画像を保存できたり、
印刷出来たり、メールで添付できる4つのものです)
を、出てこなくしたいのですが
その方法(タグ等)教えて頂けますか?
宜しくお願いします。

Aベストアンサー

1ページ分の画像のイメージツールバーを非表示する場合。
<HEAD>と</HEAD>の間に入れてください。
<meta http-equiv="imagetoolbar" content="no">

imgタグに直接入力する場合は
<img src="画像のファイル名" alt="画像の説明" width="横幅" height="縦長さ" galleryimg="no">

QAccess_2002 Replace方法

Accessにてシステムを構築しておりますが、テーブルのデータのReplaceについて悩んでおります。

TableA
〔NO〕 〔型番〕
01   多分ABC
02   DEFGとのこと
03   HIだそうです
04   JKL
05   MNO・

この様なTableAの型番から余分な文字を削除する処理を行いたく、現在は更新クエリにてReplace関数を使用し
行っています。
Replace(Replace(Replace(Replace([型番],"多分",""),"とのこと",""),"だそうです゜",""),"・","")

TableA
〔NO〕 〔型番〕
01   ABC
02   DEFG
03   HI
04   JKL
05   MNO

この「余分な文字」は現在100以上あり、今後もどんどん増えていきます。
クエリでのReplaceは見にくくメンテナンスもしづらいです。
「余分な文字」をまとめたテーブルでも作成しそれを使ってうまい事出来ないか考えていますが
アイデアが浮かびません(;_;)。

皆様のお知恵をお貸しくださいませm(_ _)m

Accessにてシステムを構築しておりますが、テーブルのデータのReplaceについて悩んでおります。

TableA
〔NO〕 〔型番〕
01   多分ABC
02   DEFGとのこと
03   HIだそうです
04   JKL
05   MNO・

この様なTableAの型番から余分な文字を削除する処理を行いたく、現在は更新クエリにてReplace関数を使用し
行っています。
Replace(Replace(Replace(Replace([型番],"多分",""),"とのこと",""),"だそうです゜",""),"・","")

TableA
〔NO〕 〔型番〕
01   ABC
02   DEFG
...続きを読む

Aベストアンサー

> 「余分な文字」をまとめたテーブルでも作成しそれを使ってうまい事出来ないか

そのテーブルを作れば、クエリで一発で対応できます。
(こちらの環境で動作確認済み:WinXP Home&Excel2003)

【テーブル】
「TableA」テーブル:
 フィールド = No(テキスト型・主キー), 型番(テキスト型)

「削除リスト」テーブル:
 フィールド = 削除文字(テキスト型・主キー)

【クエリ】
SQL文:
 UPDATE TableA, 削除リスト SET TableA.型番 = Replace([型番],[削除文字],"");


添付画像は、左から
  更新クエリ適用前のテーブルのデータ(予め複製)
  更新クエリ適用後のテーブルのデータ
  上記SQL文をクエリのデザインビューで表示したもの
です。

『削除リスト』に登録された文字パターンを複数持っている場合も含めて、問題なく
削除されることを確認しました(→No=06)。

※2つのテーブル間にフィールドの結合がない選択クエリを作成すると、そのレコードは
  双方のテーブル件数の乗算となります(一方のテーブルが5件、他方が6件なら、
  選択クエリは5*6=30件を表示)。
  これと同じで、上記クエリを実行すると、「○○件のレコードが更新されます」の
  確認メッセージでは、テーブルの実レコード数より大きくなりますのでご注意下さい。

> 「余分な文字」をまとめたテーブルでも作成しそれを使ってうまい事出来ないか

そのテーブルを作れば、クエリで一発で対応できます。
(こちらの環境で動作確認済み:WinXP Home&Excel2003)

【テーブル】
「TableA」テーブル:
 フィールド = No(テキスト型・主キー), 型番(テキスト型)

「削除リスト」テーブル:
 フィールド = 削除文字(テキスト型・主キー)

【クエリ】
SQL文:
 UPDATE TableA, 削除リスト SET TableA.型番 = Replace([型番],[削除文字],"");


添付画像は、左から
...続きを読む

Qカーソルを近づけても表示が出ない

Microsoft Internet Explorerや、タスクバーのクイック起動アイコンにカーソルを近づけると、それが何なのか、黄色い帯の中に黒い字で表示が出ますが、Word2003, Excel2003, Outlook2003では、近づけても何も出ません。どうしたら、インターネットやタスクバーのように、表示が出るように設定できますか?

Aベストアンサー

WordやExcelのツールバーのボタンをポイントしたときに表示される吹き出しのことですね。
ユーザー設定のオプションで、「ツールバーにボタン名を表示する」のチェックが外れていると思います。チェックを付けてください。

QORACLE MASTER試験について

こんにちわ。質問させてください。

Oracleシルバーの受験を考えています。
ちなみに9iです。

ただ、試験の範囲がOracleのページを見ても
よくわかりません。というより試験の詳細の情報
がまったく掲載されていないような気がします。

一応本屋さんで調べたところ、シルバーの試験範囲として
SQL、DBAがあることはわかりました。
しかし、確認する限りでは3科目あるような気がします。
本屋さんに行ってもテキストは何冊もあるし・・・。
ということは、SQLと、DBAは必須であとの科目は選択
ということなのでしょうか?

(1)シルバーにはどんな科目があるのかを教えてください。
→どれが必須でどれが選択なのかも教えてください。

(2)試験はいつ行われているのですか?どのような周期ですか?
→土曜日・日曜日も行われているのですか?

(3)上記2点の情報が載っているWebページをご存知の方がいましたらご教授ください。

※過去ログに同様の質問がありましたらご容赦願います。

ご回答宜しくお願いします。

こんにちわ。質問させてください。

Oracleシルバーの受験を考えています。
ちなみに9iです。

ただ、試験の範囲がOracleのページを見ても
よくわかりません。というより試験の詳細の情報
がまったく掲載されていないような気がします。

一応本屋さんで調べたところ、シルバーの試験範囲として
SQL、DBAがあることはわかりました。
しかし、確認する限りでは3科目あるような気がします。
本屋さんに行ってもテキストは何冊もあるし・・・。
ということは、SQLと、DBAは必須であとの科目は選択
とい...続きを読む

Aベストアンサー

こんにちわ、一応Platinum持ちのVDSLと申します。

(1)試験科目
Oracle Silverを認定してもらうために必要なのは、下記の3科目です。
 ・Oracle9i入門 SQL編
 ・Oracle9i入門 データベース編
 ・Oracle9iデータベース管理I
以前は上の2科目だけだったのですが、10月頭の試験科目改定で3科目になりました。
ちなみに、上の2科目を取得すると"Oracle Silver Fellow"の認定がもらえます。

(2)試験の実施場所等
例外もありますが、基本的にアールプロメトリック社の会場で受ける事になります。
パソコンに向かってやる試験になります。
自分が受験したいときにいつでも受けることが出来ます(数日前までに予約が必要ですが)。
土曜日やっている会場はありますが、休日やっている会場はなかったと思います。

(3)
とりあえず公式のページです。
Oracle Masterの受験科目について
http://www.oracle.co.jp/education/master/om_02.html
受験会場等について
http://www.prometric-jp.com/

こんにちわ、一応Platinum持ちのVDSLと申します。

(1)試験科目
Oracle Silverを認定してもらうために必要なのは、下記の3科目です。
 ・Oracle9i入門 SQL編
 ・Oracle9i入門 データベース編
 ・Oracle9iデータベース管理I
以前は上の2科目だけだったのですが、10月頭の試験科目改定で3科目になりました。
ちなみに、上の2科目を取得すると"Oracle Silver Fellow"の認定がもらえます。

(2)試験の実施場所等
例外もありますが、基本的にアールプロメトリック社の会場で受ける事になります。
パソコ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング