ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

こんにちは。PL/SQLにて開発を行っています。シェアウエアでも、フリーでも良いのですが、お勧めの開発支援ツールを教えて頂けますでしょうか? 宜しくお願い致します。

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

A 回答 (2件)

主に開発に使われるなら..


アンカーシステム社の「PL/SQL Developer」がお勧めです。
http://www.vector.co.jp/soft/win95/business/se25 …

システムインテグレータ社の「Object Browser」は開発より管理向きのような気がします。

現在、2つのソフトを利用していますが、どちらかと言えば、PL/SQL developerの方が
立ち上げている時間は長いカンジです。

なお、バグに関しては、どちらのソフトもそれなりにあったりしますが、どちらのサポートも
しっかりしているカンジですし、改修も割と早い方だと思います。

参考までに、オイラは、どちらの会社とも利害関係のない第三者ですので、誤解無く。
    • good
    • 0

オットーが専門なのでそちらの意見で……。



ツーマが答えろと申しますので...
ObjectBrowserをお勧めします。
PL/SQLのソースレベルデバッギングのできる数少ない、しかも非常に優れた開発・管理ツールです。オラクル社のJavaベースのツールがバグだらけで不完全なおもちゃ(有償なのに)なのに比べて、これはちゃんとした製品です。
価格も非常にリーズナブルです。

参考URL:http://www.sint.co.jp/siob/default.asp
    • good
    • 0

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

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

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

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

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

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

Qデータベース内のテーブル名の取得

お世話になります。
初心者的な質問でしたらすいません。
SQL文にてデータベース内のテーブル名を
調べることができると聞いたことがあるのですが、
可能でしょうか。

もし、可能であれば、SQLの記述を教えてください。
お願いします。

Aベストアンサー

select * from tab;

私の場合、テーブル名だけ手っ取り早く知りたいとき、↑を打ちます。その他の情報も知りたいときは#2さんの仰るとおり、user_tablesで取得します。

Qbatファイルからsql文実行

クライアントOS:WIN2000
Oracle:9i(サーバ(UNIX)上にあります)

現在、クライアントからbatを起動し、SQL文を投げ、結果を取得したいと思っております。
(SQL文は単純にTBLをカウントしているだけです)

・batの中身
sqlplus %UID%/%PASS%@%SID% @test.sql > output

結果は取得出来るのですが、余分な情報も結果に出力されてしまいます。結果のみを出力させるにはどうすればよろしいでしょうか?

・余分な情報
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
に接続されました。

Aベストアンサー

sqlplus に -S オプションを追加してみればどうでしょうか。

参考URL:http://biz.rivus.jp/sqlplus_overview.html

Qプロシージャ 引数 指定

プロシージャ定義・宣言時、引数を使わないので、引数なしで宣言したいのですが、できるのでしょうか?
どう定義・宣言すればいいのでしょうか?
よろしくお願いいたします。
PROCEDURE A(); やPROCEDURE A;でも駄目なので、
PROCEDURE A() IS~やPROCEDURE A IS~も駄目でした。

Aベストアンサー

SQL> CREATE OR REPLACE PROCEDURE NOP
2 IS BEGIN
3 NULL;
4 END;
5 /

プロシージャが作成されました。

SQL>

Q3つの表の外部結合

表A、B、Cの3つがあり、Aのすべての行を出力したいと考えています。
外部結合を用いるのだとは思うのですが、3つの表に対して行う場合の
書き方がわからず困っています。
ご教授いただけないでしょうか?
select * from a,b,c
where a.商品ID =b.商品ID (+) and b.商品ID (+) =c.商品ID (+)
としてみましたが、うまくいきませんでした。

Aベストアンサー

ansi構文の趣旨からいえば、結合条件と絞り込み条件は分けて書くので・・

select *
from a
left join b on (a.商品ID =b.商品ID)
left join c on (b.商品ID =c.商品ID)
where a.年月 = 任意の値

と書くのが一般的でしょうね。

QPL/SQLのコンパイルエラーについて(ignored)

以下はPL/SQLの一部です。

if (vn_CNT > 0 ) then
-- 座席マスタ更新実行
行27update M_SEAT
行28 set M_SEAT.CD_PC = :new.NK_PC ,
行29 M_SEAT.CD_TANTO = :new.CD_TANTO,
行30 where M_SEAT.NO_PORT = :new.NO_PORT ;
end if ;


実行すると以下のエラーがでます。。
行番号 = 27 列番号 = 3 エラー・テキスト = PL/SQL: SQL Statement ignored
行番号 = 30 列番号 = 5 エラー・テキスト = PL/SQL: ORA-01747: user.table.column、table.columnまたは列指定が無効です

ちなみにOEMコンソールで作成しています。
M_SEATというテーブルは存在します。

権限どうのと言われているのはわかるのですが結局なにが原因なのかわかりません。
どなたか教えてください。

以下はPL/SQLの一部です。

if (vn_CNT > 0 ) then
-- 座席マスタ更新実行
行27update M_SEAT
行28 set M_SEAT.CD_PC = :new.NK_PC ,
行29 M_SEAT.CD_TANTO = :new.CD_TANTO,
行30 where M_SEAT.NO_PORT = :new.NO_PORT ;
end if ;


実行すると以下のエラーがでます。。
行番号 = 27 列番号 = 3 エラー・テキスト = PL/SQL: SQL Statement ignored
行番号 = 30 列番号 = 5 エラー・テキスト = PL/SQL: ORA-01747: user.table.column、table.columnまたは列指定が無効です...続きを読む

Aベストアンサー

if (vn_CNT > 0 ) then
-- 座席マスタ更新実行
行27 update M_SEAT
行28 set M_SEAT.CD_PC = :new.NK_PC ,
行29 M_SEAT.CD_TANTO = :new.CD_TANTO
行30 where M_SEAT.NO_PORT = :new.NO_PORT ;
end if ;

これでどうでしょうか?

NK_PCというカラムはありますか?

Q文字列として"(ダブルコーテーション)を表示させる方法

こんにちは。文字列として、ダブルコーテーションを表示させるには、どうすればよいのか教えてください。m(__)m


例えば、
<font size="2">あいうえお</font>

というタグの「あいうえお」の部分が、セルA1にあった場合、

="<font size="2">"&A1&"</font>"という表示にしたいのです。

"2"のダブルコーテーションも文字列として表示させるには、どうすればよろしいのでしょうか。

教えてください。よろしくお願い致します。

Aベストアンサー

こんにちは~

表示形式は 「標準」 のままで、
ダブルコーテーションを、ダブルコーテーションで囲んでください。

""2""

="<font size=""2"">"&A1&"</font>"

としてみてください。

Q馬鹿すぎてPL/SQLが全然理解できません-その1

タイトルの通りで、もう50回くらい翔泳社の
「やさしいPL/SQL入門」を読んでいるのですが、
最初の変数の段階でもう頭が付いていけません(大涙
だからもう、みなさんにすがることにしました。
基本のキを優しく教えて下さい。

もちろん実際は違いますが単純化します。

表名はTBL_1

品名(CHAR),数量(NUMBER),販売日(DATE)
COKE,100,07-04-01
COKE,250,07-04-01
PEPSI,150,07-04-01
PEPSI,300,07-04-02
・・・
・・・
(旨く表示できないのでカンマで区切りました)
品名毎の日別販売量を把握するには

SELECT 販売日,品名,SUM(数量)
FROM TBL_1
WHERE 販売日 = 07-04-**
GROUP BY 販売日,品名;

で良いと思うのですが(違ったりして・・・)、やりたいことは、
1.SYSDATEにて日付を取得し、その前日(つまりは昨日)の分だけを毎日取りたい。
2.且つ実行結果をSPOOLでテキストに吐き出したい。
の2つです。
これをPL/SQLで実現するにはどうしたらいいのでしょう?
ダイレクトなお答えをいただけるとうれしいです。
いただいた回答を基に、もう一度本を読み直してみます。

SYSDATEを、宣言した変数に格納し、その変数をSELECT文にあてはめる
(上記例の07-04-**の部分)、という考えから抜け出せないのです。
何故にカーソルという物が必要なのかが理解できないのです。
きっとエクセルVBAしか知らないからなのです。

タイトルの通りで、もう50回くらい翔泳社の
「やさしいPL/SQL入門」を読んでいるのですが、
最初の変数の段階でもう頭が付いていけません(大涙
だからもう、みなさんにすがることにしました。
基本のキを優しく教えて下さい。

もちろん実際は違いますが単純化します。

表名はTBL_1

品名(CHAR),数量(NUMBER),販売日(DATE)
COKE,100,07-04-01
COKE,250,07-04-01
PEPSI,150,07-04-01
PEPSI,300,07-04-02
・・・
・・・
(旨く表示できないのでカンマで区切りました)
品名毎の日...続きを読む

Aベストアンサー

>宣言部で記述されるSELECT文で返される1行、あるいは複数行の、
>行そのものが変数という扱いなのだろうか。
行はクラス、列はメンバ変数と考えたほうがわかり易いと思います

>実行部はそれを一行ずつ取り出して加工しているのだろうか。
FETCHで1行ずつ取り出します(参考URL参照、類似の質疑応答:http://okwave.jp/qa2929010.html)

>仮にそうだとしたら、WHERE句の値を様々に変えたい時はどうしたらい>いのだろうか。
動的SQLで解決します(参考URL参照)

>最終的な結果をどうやってテキストに吐き出すのだろうか。
set serveroutput on;
をまずPS/SQLの1行目に記述しておいて
dbms_output.put_line で画面に出力させて、これをSPOOLしてもいいし、(参考URL参照)

utl_file.fopen
utl_file.put_line
utl_file.fclose
を使用して、直接ファイル出力してもいいと思います(参考URL参照)

以下サンプルソース(テスト環境無いので未実行です)
SQL> set serveroutput on
SQL> spool /testdata.csv
SQL> declare
begin
for cu_rec in (※1) loop
dbms_output.put_line (cu_rec.csvrow);
end loop;
end;
/
spool off

<※1の部分>
SELECT 販売日|| ',' || 品名 || ',' || SUM(数量) csvrow ←CSV形式のカンマ区切り編集です
FROM TBL_1
WHERE 販売日 = TO_CHAR(SYSDATE-1,'YY-MM-DD')
GROUP BY 販売日,品名

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_pl05.htm

>宣言部で記述されるSELECT文で返される1行、あるいは複数行の、
>行そのものが変数という扱いなのだろうか。
行はクラス、列はメンバ変数と考えたほうがわかり易いと思います

>実行部はそれを一行ずつ取り出して加工しているのだろうか。
FETCHで1行ずつ取り出します(参考URL参照、類似の質疑応答:http://okwave.jp/qa2929010.html)

>仮にそうだとしたら、WHERE句の値を様々に変えたい時はどうしたらい>いのだろうか。
動的SQLで解決します(参考URL参照)

>最終的な結果をどうやってテキストに...続きを読む

QPL/SQLのファンクションでのOUTの使い方

ASPで作成したページからストアドプログラムを呼ぶ
プログラムを作成しているんですが、
ファンクションの引数で指定するOUTの使い方がわかりません。

OUTに指定した引数(変数)?に値を代入しておくと、
ファンクションの呼び出し元にその値が返るっていう感じ
なんでしょうか?

大体でいいので説明してくれる方お願いします。
参考になるサイトなどでもいいのでお願いします。

Aベストアンサー

こんにちは。

PL/SQLで、OUT を指定した引数を設定した場合の挙動についてですが、
実行に当たっては、呼び出し元で、PL/SQL の引数用の変数やオブジェクトを
用意しているかと思います。

ファンクションということですので、ファンクションの戻り値がありますが、
もちろん、戻り値を格納するための変数やオブジェクトも用意されている
かと思います。

OUT を指定した引数は、ファンクション内で値をセットしますが、
その値を呼び出し元に通知する役割をしています。
ですので、例えばファンクションの戻り値とは別に何らかの情報が
欲しい場合に使用します。

PL/SQLの書き方については、OTNのドキュメントを読まれるのが良いです。
あと、簡単なゴミプログラムをコーディングして動かしてみて、
やってみたけど動かない、という状態で質問すると、
丸投げ感のない質問になりますよ。

QPL/SQL PLS-00103エラーについて

PL/SQL PLS-00103エラーについて

夜分遅くに申し訳ございません。
PL/SQLのコーディングを実施し、コンパイル中にPLS-00103エラーが発生してしまったのですが、
対処方法がわからず困ってしまいました。

・メッセージ内容:”PLS-00103: 記号"="が見つかりました。”


上記メッセージで指定されていたソース内容(イメージ)↓
--------------------------------------------------------------


BEGIN
LV_STEP := '**登録処理開始'  -- 左記の:=の=部分がエラーメッセージで指定されていました。(LV_STEPはログ出力用の変数)

CURSOR AAAA IS
SELECT GG.EPLY_NO GG_EPLY_NO
,GG.R_CD GG_R_CD
,GG.S_CARD GG_S_CARD

    ・
   ・
FROM GRA_GRA_TR GG



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

といった感じなのですが、
このPLS-00103エラーの対処方法をどなたかご教示いただけませんでしょうか。
よろしくお願いいたします。

PL/SQL PLS-00103エラーについて

夜分遅くに申し訳ございません。
PL/SQLのコーディングを実施し、コンパイル中にPLS-00103エラーが発生してしまったのですが、
対処方法がわからず困ってしまいました。

・メッセージ内容:”PLS-00103: 記号"="が見つかりました。”


上記メッセージで指定されていたソース内容(イメージ)↓
--------------------------------------------------------------


BEGIN
LV_STEP := '**登録処理開始'  -- 左記の:=の=部分がエラーメッセージで指定されていま...続きを読む

Aベストアンサー

PLS-00103は構文解析エラーです。
指定されている行にはセミコロンがありませんが、
これが原因だとすると、
エラーメッセージは後ろに続く文で出るはずです。
エラーメッセージで示された箇所より前の部分(行)を調べてください。

# ソースの内容をイメージで示されても困ります。
# 回答者に超能力者は(おそらく)いないと思いますので
# 勘で答えるよりほか仕方がありません。

QSQLのVARCHARとVARCHAR2の違い

SQLについての質問です。
文字列型のVARCHARとVARCHAR2の違いについて教えてください。
まだ、初心者なのでなるべく分かりやすくお願いします。

Aベストアンサー

データベースによって、データ型の定義が違います。
私が知っている限りでは、
MS-SQLserverなどでは、可変長の文字列はvarcharですが、
Oracleでは、varchar2です。
他にも、MSのdatetimeに相当するものが、Oracleはdate型、という具合に名前が違います。
お使いのDBに沿ったデータ型の定義を調べると良いのではないでしょうか?
それぞれ違うと思いますよ。(似てると言えば似ているけど。)


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

人気Q&Aランキング