数社共同のプロジェクトで、各社請負で(離れた場所で)開発してます。
主幹会社が、プロジェクト共通のDDLやPL/SQLのストアドを管理していて、
変更のある都度、それらのSQLファイルを送ってくるのですが、毎回毎回、
エラーが出るファイルを送られてきて困っています。
(ストアドの場合はコンパイルエラーで、DDLの場合はタイプミスでテーブル
が作れない内容だったり)

こちらとしては、最低限コンパイルエラーのような事はないものと思って、
(一番最初はエラーがなかったので)SQL*Plusでまとめて実行するように
していました。

最近は毎回何かしらの部分でエラーが出てまして。
決して少なくない部分で出てます。(数十ファイルでエラーが出てたり)

エラーがあった場合は、その会社に伝えなければならないのですがorz
全部で数100ファイルあるので、エラーの有無と、その個所を特定するのが
大変です。

数100ファイルをまとめて実行した時に「ぱっと見」でエラーの有無と
その概要が分かるようなツールはないでしょうか。

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

A 回答 (2件)

回答がつかないようなので…



> 数100ファイルをまとめて実行した時に「ぱっと見」で
> エラーの有無とその概要が分かるようなツールはないでしょうか。

ツールとまでいきませんが↓こちらとか参考になりそうな気がします。

【接続結果やSQL実行結果のチェックをするサンプル】
http://www.happy2-island.com/access/gogo03/capte …

↑こちらの例をそのままでは使えないかもしれませんが、ファイル読込みとファイル数だけループさせる、みたいな処理を追加すればできそうな気がします。未検証なので確証無しです。申し訳ないですが(汗)
    • good
    • 0
この回答へのお礼

ご回答どうもありがとうございます。
やはりこのような悩みを解決してくれるツールはないのでしょうか...

同じような状況で困っているような人はいるのではないかと思うのですが、皆様どうされているのでしょうか。

お礼日時:2009/05/20 22:58

spoolでSQL*Plusの出力をファイルに保存して、開発元に送りつけるだけで


いいのではないですか。エラーの発生箇所など気にせず、「エラーがある
から検収できない」というだけで向こうから対策を考えてくるでしょう。

この回答への補足

> 検収できない
ちなみに、エラーだらけのファイルを送ってくる相手は、
私からすると顧客でして、私が納品物を受け入れて検収する
という関係ではないため、面倒なんですよ。

あと、ストアドのコンパイルエラーについては、Oracleの
View(名前忘れましたが)を見れば分かる、というのは
知ってますが、こんなくだらないことで時間を食いたくないので、
効率的にできるツール(や方法)がないかなあ、と思ってます。

補足日時:2009/05/21 00:20
    • good
    • 0
この回答へのお礼

>「エラーがあるから検収できない」というだけで向こうから
> 対策を考えてくるでしょう。
それでやってくれる相手ならいいんですが、毎回毎回
平然とエラーだらけのものを送ってくるので、
とりあえず、こちらで対処できる部分については勝手に
修正して作業を進めたいんですよ。
(もちろんエラーの発生については伝えますが)

spool での出力保存は当然やっているんですが、以下の2点で
しんどいです。

(1) ログが膨大になるので、エラーがあったのかどうかが
 パッと見では分からない。
 ※どのファイルでエラーになったのかも分かりにくいわけなのですが
  (というか全く分からないです)
(2) ストアド等はコンパイルエラーがあったことが分からない。
 ※別途、SQL Developer 等で見て判断してますが、めんどくさいです。

で、何か良いツールはないかと思う次第です。

お礼日時:2009/05/21 00:12

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

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

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

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

QFirefoxのアドオンをアルファベット順でなくインストール日でソート

Firefoxのアドオンをアルファベット順でなくインストール日でソートする方法を探しています。

Firefoxのアドオンを管理するとき、標準ではアルファベット順でソートされるので、大量のアドオンから、設定を変更したいアドオン、無効化したいアドオンを探すのが大変です。
特に、複数のアドオンを同時にインストールした直後にFirefox不具合が起こったとき、その原因のアドオンを探すために、一つづつ無効化するのですが、
アルファベット順のソートだと、「さっきインストールしたアドオン」がどれだかわからなくなってしまいます。

アドオンをインストール日でソートする方法(アドオン、コンフィグ等)はあるのでしょうか?
インストール日でのソートでなくても、アドオンの管理が楽になる方法を募集します。

Aベストアンサー

念の為、追加です。

もし・・
質問者さまが、「All-in-One Sidebar」をご使用になっているとすると
「ボタンバー」が下ではなく、上に移動されているはずですからご注意を・・

「ボタンバー」とは、
「インストール(N)」ボタン、「更新を確認(F)」ボタン、「フィルター入力欄」、
1番右側に質問者さまお求めの、インストール日時で「ソート」するボタンのあるバーです。

 ※ この場では以後、インストール日時で「ソート」するボタンを、
   「ソートボタン」とします。

「All-in-One Sidebar」をご使用の場合、
サイドバーを広げて「ソートボタン」を確認してください。
 ※「サイドバーの広さによって、「ソートボタン」が隠れて見えない場合があります。」
   フィルター入力欄の右側です。

アドオン「MR Tech Toolkit」を導入する事で、
アドオン管理は、凄く便利になります。

アドオン「MR Tech Toolkit」は、アドオン強制導入するだけではありません。
他にも便利な機能がいろいろあります。

念の為、追加です。

もし・・
質問者さまが、「All-in-One Sidebar」をご使用になっているとすると
「ボタンバー」が下ではなく、上に移動されているはずですからご注意を・・

「ボタンバー」とは、
「インストール(N)」ボタン、「更新を確認(F)」ボタン、「フィルター入力欄」、
1番右側に質問者さまお求めの、インストール日時で「ソート」するボタンのあるバーです。

 ※ この場では以後、インストール日時で「ソート」するボタンを、
   「ソートボタン」とします。

「All-in-One Sidebar...続きを読む

QSQL、ストアドでのUPDATEのアドバイスを下さい。

テーブルA、テーブルBがあってデータ更新の効率的な方法を探しています。


フィールドはそれぞれ、コード、名前、誕生日 があって、

データ、
-----------------------------
A コードなし 名前誕生日
Bコードあり 名前誕生日

でテーブルAに、テーブルBから名前と誕生日で一致するコードを検索
してテーブルAのコードに書き込みたい。

SQL、もしくはストアドプロシジャーで処理したいと思ってます。
処理件数は500前後です。

ストアドを試してみたのですが、コンパイル・エラーが出て上手くいきません。アドバイスをお願いします。

Aベストアンサー

>この場合、TAROの小さい方のコードを拾いたいです。

それでは、

 update a set
 code = (select min(b.code)
 from b
 where a.name = b.name
 and a.birth = b.birth)

これでどうでしょうか?

Qfirefoxのアドオンで、どちらが動作が軽いか

firefoxのアドオンには、一つのアドオンにたくさんの機能が詰まっていて
サイズ数500KBを超えたりするものと、
50KB以下などの小さいサイズで一部の機能だけ備わっているアドオンがありますが、
一部の機能だけのアドオンを複数入れても、その合計サイズが、
一つの大きなアドオンのサイズより小さい場合、
大きいサイズのアドオン一つ入れるよりもfirefoxの動作は軽くなるでしょうか?

Aベストアンサー

拡張機能をたくさん入れると重くなるのは良く知られていますが、拡張機能の作者のpiroさんのブログがあり、その主な内容は、xpiファイルのパッケージの仕方で「パフォーマンスに影響があるかないか」ですが、最初の方に、

「メンテナンス性とか共存のしやすさとかの観点から多機能型を否定しているつもりなので、ある単機能のアドオンが必ずある多機能のアドオンより軽いはずだとかそんな事は言えないと思っているのです」

とのコメントがあります。
これからすると、サイズの合計の軽重だけでは軽くなるとも言えないようですね。
逆にパフォーマンスが悪くなり得ることもあると解釈できます。
http://piro.sakura.ne.jp/latest/blosxom/mozilla/xul/2011-05-30_performance.htm

違いをチェックするには、別々のプロファイルを作成して、拡張機能の組み合わせの異なるFirefoxを切り替え起動をして、しばらく使ってみて体感上でパフォーマンスの違いを感じることができるかどうかで判断するしかないのかなと思います。
多機能型にある機能の中で使っていないものが多くあれば、パフォーマンスの改善の1つとして他のものを探すことはあります。

なお、使用メモリーの大小の比較でパフォーマンスの善し悪しを決めることはできませんが、ロケーションバーに、abput:memoryを入れてリターンキーでその状況が判りますから、アドオンを無効にした時と、そうでない場合などの確認ができます。

拡張機能をたくさん入れると重くなるのは良く知られていますが、拡張機能の作者のpiroさんのブログがあり、その主な内容は、xpiファイルのパッケージの仕方で「パフォーマンスに影響があるかないか」ですが、最初の方に、

「メンテナンス性とか共存のしやすさとかの観点から多機能型を否定しているつもりなので、ある単機能のアドオンが必ずある多機能のアドオンより軽いはずだとかそんな事は言えないと思っているのです」

とのコメントがあります。
これからすると、サイズの合計の軽重だけでは軽くなるとも言...続きを読む

Qストアド実行でORA-4030エラー の詳細を追加

exec ctx_ddl.sync_index('列名')

行1でエラーが発生しました。:
ORA-20000: Oracle Textエラー:
ORA-04030: 66840バイト(Heap for
lexic,gxlGetMem:memory)を割り当てようとしてプロセス・メモリーが不足しています
ORA-06512: "CTXSYS.DRUE", 行157
ORA-06512: "CTXSYS.CTX_DDL", 行1328
ORA-06512: 行1

Aベストアンサー

Oracle9i データベース・エラー・メッセージ リリース2(9.2)によると、
http://otn.oracle.co.jp/mp/EL/sll?p=988-2293-1-0

 ORA-06512 string行string
  原因:通常、これはメッセージ・スタックの最後で、PL/SQLコードのどこで
     問題が発 生したかを示します。
  処置:例外の原因となった問題を修正するか、またはこの条件に対する例外
     ハンドラを 作成してください。
     または、アプリケーション管理者またはデータベース管理者(DBA)に
     連絡してください。

と書いてあります。

JAPANESE_LEXERを指定した場合の問題となっていた、“ORA-06512: "CTXSYS.CTX_DDL", 行1328”はJAPANESE_VGRAM_LEXERに変更する事で解決したと思思っております。しかし、“ORA-06512: "スキーマ名.AAAAAAAAA", 行2203”を実行する際にメモリ不足を示す“ORA-04030”が新たに発生する様になり、実行したい“BEGIN AAAAAAAAA.update_BBBBB('',9999); END;”の処理を行えないとの質問ですか?

この場合、記述されていると思われる"スキーマ名.AAAAAAAAA", 行2203がについてもう少し、詳細な情報を頂きたいです。
内容としては2203行目はコードなのか、またどのような処理を行いたいのかについても教えてください。

あと、ORA-04030が発生したときのtraceファイルがbdumpかudumpに出力されていると思います。
差し支えなければ、その情報も書いて頂けると何かわかるかもしれません。

(私が回答出来る問題であるかは分かりませんが…)

私のよく当たらない勘では“cursor work he…”とありますのでカーソルならSHARED_POOL_SIZE関連(SHARED_POOL_RESERVED_SIZE等)の設定を確認すべき?
しかし、その場合はORA-04031が出る様な気も?また、ORA-04030が発生してとのことですのでOracleが動的にメモリを確保に行く所が問題になるのかな… など色々想像は出来ますが回答は出来ません。
http://search.goo.ne.jp/web.jsp?MT=SHARED_POOL_SIZE

また、メモリを疑う前にどのようなデータに対してどのような処理をしようとしているのかも検証すべきだと思います。

ということで、もう少しヒントになる情報があれば何か分かる人がいるかもしれません。

Oracle9i データベース・エラー・メッセージ リリース2(9.2)によると、
http://otn.oracle.co.jp/mp/EL/sll?p=988-2293-1-0

 ORA-06512 string行string
  原因:通常、これはメッセージ・スタックの最後で、PL/SQLコードのどこで
     問題が発 生したかを示します。
  処置:例外の原因となった問題を修正するか、またはこの条件に対する例外
     ハンドラを 作成してください。
     または、アプリケーション管理者またはデータベース管理者(DBA)に
     連絡してください。...続きを読む

Qこのアドオンはどこにありますか?

firefoxのアドオンで、一番↑の「ファイル(F)編集(E)…」
のあるバーを隠すアドオンが確かありました。
そのアドオンは何というアドオンですか?

Aベストアンサー

ここにあるものではダメですか?

■Mozilla Japan - Firefox 用アドオン - 拡張機能 - 画面のカスタマイズ:
 https://addons.mozilla.jp/firefox/extensions/interface_customizations/

■Personal Menu
 https://addons.mozilla.jp/firefox/details/3895

■Compact Menu 2
 https://addons.mozilla.jp/firefox/details/4550

■Tiny Menu
 https://addons.mozilla.jp/firefox/details/1455

QストアドをSQL*PLUSで実行したい。

こんにちわ。
いまORACLE10gのPLSQLでストアドプロシジャを作成しています。

CREATE OR REPLACE PROCEDURE procXXXXXXXX
( oCNT1 OUT NUMBER
, oCNT2 OUT NUMBER
, nRET OUT NUMBER
)
IS

というものですが,これをSQL*PLUSでテストとして実行したいのですが,変数定義などどうすれば良いでしょうか?
教えてください。よろしくお願いします。

Aベストアンサー

下記の要領でどうでしょうか?

※変数の定義
var c1 number;
var c2 number;
var r1 number;

※実行
exec procXXXXXXXX(:c1, :c2, :r1);

※結果の確認
print c1;
print c2;
print r1;

Qインターネットのアドオンについて

インターネットのアドオンについて

XPでIE8.0を使いインターネットをしてるのですが
仮想ドライブを使用してから(関係があるのかないのか分かりませんが)
調子が悪くなってしまいました。

インタネットに接続すると「アドオンは無効になっています」というページになってしまい
「アドオンなしで Internet Explorer を実行中です」というメッセージが出ます。
IEの名前も「Internet Explorer(アドオンなし)」と勝手に変更されていました。

ヘルプの項目で、ブラウザー アドオンを再度有効にする というのがあり
・[ツール] ボタン、[アドオンの管理] の順にクリックします。
・[アドオンの種類] で、有効にするアドオンの種類をクリックします。
・有効にするアドオンをクリックして、[有効にする]、[閉じる] の順にクリックします。
とあったので、アドオンの管理を見てみると全て有効になっています。

元の状態に戻す方法がお分かりになる方がいらっしゃいましたらご教示願います。

Aベストアンサー

IEの起動をショートカットアイコンから行われている場合でしたら、次のサポート記事がありますが。

「アドオンを無効にしていない場合は、Internet Explorer アイコンのショートカット ターゲットに "-extoff" が追加されています。」
とあります。
(Internet Explorer を起動するとエラー メッセージ "アドオンなしで Internet Explorer を実行中です" が表示される)
http://support.microsoft.com/kb/969107/ja

Qストアド実行時のエラー「参照しているコレクションは初期化されていません」

以下のようなパッケージを作っています。

CREATE OR REPLACE PACKAGE
"TEST"."TEST_P" as
type test_type1 is table of TEST.TEST_TABLE%ROWTYPE;
procedure test2 (ret OUT test_type1 ) ;
end;

-----------------------------------
本体
-----------------------------------

CREATE OR REPLACE PACKAGE BODY
"TEST"."TEST_P" as

procedure test2( ret OUT test_type1 ) is
cursor basic_cusor is
select * from TEST.TEST_TABLE;
BEGIN
open basic_cusor;
loop
fetch basic_cusor into ret(0);
exit when basic_cusor%notfound;
END loop;
END TEST3;
end;

----------------------------------------

これをSQL Pluseから

set serveroutput on;
declare
 arg1 TEST.TEST_P.test_type1;
begin
TEST.TEST_P.test2(arg1);
dbms_output.put(arg1(0).coulm1);
end;

のように実行するとエラーが出ます。
初期化処理とはどのように行えばいいのでしょうか?


最終的にはSQLServerのストアドようにテーブル
のような構造で値を返えせればいいです。

以下のようなパッケージを作っています。

CREATE OR REPLACE PACKAGE
"TEST"."TEST_P" as
type test_type1 is table of TEST.TEST_TABLE%ROWTYPE;
procedure test2 (ret OUT test_type1 ) ;
end;

-----------------------------------
本体
-----------------------------------

CREATE OR REPLACE PACKAGE BODY
"TEST"."TEST_P" as

procedure test2( ret OUT test_type1 ) is
cursor basic_cusor is
select * from TEST.TEST_TABLE;
BEGIN
open basic_cusor;
loop
...続きを読む

Aベストアンサー

こんにちは。

パッケージのプロシージャの引数で使用する場合、パッケージの宣言部においてインスタンスを作成しなければいけません・・・。
それと、作成したインスタンスをコレクションの型で初期化する必要があります。
これはIndexBy表(PL/SQL表)と違うところです。
(^^ゞ

Qアドオンを消してしまった場合。

何か不要なものを消去する操作をした後から
アドオンが無効になり
「アドオンを無効にした状態でInternet Explorerを実行中です。」
と表示され、解決方法を検索したところ
“アドオンを無効にさせてしまうアドオンがあるため、
一つずつ「無効」にしたりしてみると
アドオンが有効になる”というような記述を目にし、
試しても有効にならなかったので、
同じ名前の旧ヴァージョンのようなアドオンを消しました。
それもまたアドオンが有効にならない原因に拍車をかけたのかどうかは分かりませんが、
アドオンがずっと無効になり、
(ダウンロード・保存のためのポップアップが出ない)javaもダウンロードできず、
動画や公式HPが全く見れず、かなり困っています。
どなたか助けてください。

Aベストアンサー

ANo.1です。
もしかしたら・・・と思うのですが、
「システムの復元」を試されてみてはいかがでしょうか?
多分、余り約にたたないかもしれませんが、もしかしたら・・・復旧できるかもしれませんし・・・???
余り、期待はできないとは思いますが・・・

実はIE7が出た頃、私もcandygirrlさんと同じような事をしてしまいました。
結果は全く同じようにIEがつぶれました。
ただ、我が家は他にもノートやデスクトップやいろいろネットワークを組んであるので
そちらからダウンロードしてIEをもう一度入れなおしが出来たのですが・・・

Qストアド実行でORA-4030エラー

PACKAGE(ストアド)実行中に以下のエラー
ORA-04030 XXバイトを割り当てようとしてプロセス・メモリーが不足)しました。
XXバイトは64KBぐらい

対処方法をどなたかご教示ください!


(環境)
OS:Red Hat Linux Advaced Server 2.1
Oracle9i Databese Release 2
SGA
 物理メモリ:13GB
 共有プール:512MB
 バッファ・キャッシュ:256MB
 ラージ・プール:128MB
 Javaプール:160MB
PGA 128MB

Aベストアンサー

Oracle9i データベース・エラー・メッセージ リリース2(9.2)によると、
http://otn.oracle.co.jp/mp/EL/sll?p=988-2293-1-0


 ORA-04030 stringバイト(string,string)を割り当てようとしてプロセス
 メモリーが不足しました。

 原因:オペレーティング・システム・プロセスのプライベート・メモリーを
    使い果たしています。
 処置:データベース管理者(DBA)またはオペレーティング・システム管理者に
    依頼して、プロセスのメモリー割当てを増やしてください。
    アプリケーションには、プロセスのメモリー領域を過度に割り当てる
    原因となる問題が存在している可能性があります。

と書いてありますので、Linuxとのことですのでlimitによる制限が気になります。

bashの場合はulimitのあたりを参照してください。
http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html

また、Oracle 9i and Linuxに関するドキュメントはここから入手出来ます。
http://otn.oracle.co.jp/document/products/oracle9i/
http://otn.oracle.co.jp/tech/linux/oracle9i/


あと、ORA-04030が発生したときのtraceファイルがbdumpかudumpに
出力されていると思います。
limitではないとした場合はVLMとの絡みが気になります。
差し支えなければ、その情報も書いて頂けると何かわかるかもしれません。
(たぶん、私では手に負えないと思いますが…)

その場合は、上記URLにあるLinux関連のドキュメントをもう一度確認してみてください。
・Oracle9i Database Release2(9.2.0) for Linux スタートガイド
・Red Hat Linux Advanced Server 2.1のLinux仮想メモリー
 およびOracleのメモリー使用量の特徴
・Oracle9i Release 2 on Linux: Red Hat Linux Advanced Server 2.1に
 おけるパフォーマンス、信頼性および管理性の拡張機能

また、どのようなプログラムを試したかもよりますが、Oracleのバグ関連で
ある可能性もありますので、traceをOracleのサポートに送っても良いと思います。

Oracle9i データベース・エラー・メッセージ リリース2(9.2)によると、
http://otn.oracle.co.jp/mp/EL/sll?p=988-2293-1-0


 ORA-04030 stringバイト(string,string)を割り当てようとしてプロセス
 メモリーが不足しました。

 原因:オペレーティング・システム・プロセスのプライベート・メモリーを
    使い果たしています。
 処置:データベース管理者(DBA)またはオペレーティング・システム管理者に
    依頼して、プロセスのメモリー割当てを増やしてください。
    ア...続きを読む


人気Q&Aランキング