みなさん、こんにちわ

現在、Microsoft SQLServer7.0を運用しておりますが、一部のDBをPostgreSQLに移行することを検討しております。
そのなかで、SQLServerにあるストアドプロシージャの機能、またはそれに代替する機能があるのかどうか、ご存知の方がありましたらお教えいただけませんか?

とりあえずWindows版の入手からインストール、起動までは何とかできたのですが、あちらこちらのサイトを見ても、上記の事に関する情報がどうしても入手できませんでした。

よろしくお願い致します。

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

A 回答 (2件)

こんにちは。



PostgreSQLですと、「PL/pgSQL」という名称のものでストアドプロシージャと同様のことが出来ると思います。
    • good
    • 0
この回答へのお礼

noopeeさん、こんにちわ。
さっそくのご回答、ありがとうございました。

教えていただいた「PL/pgSQL」の勉強をさっそくはじめたいと思います。
行き詰まった際には、またよろしくお願いいたします。

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

お礼日時:2002/03/06 15:39

SQL関数と呼ばれているようですが、ストアドプロシージャに変わるものとして使用可能です。


また、C等で作成した外部関数も使えます。
ただし、もちろんSQLServerのストアドプロシージャと互換性があるわけでは無いので、アプリケーションはすべて見直す必要があるでしょう。
    • good
    • 0
この回答へのお礼

yuu-mさん、こんにちわ
さっそくのご回答ありがとうございました。

 >ただし、もちろんSQLServerのストアドプロシージャと互換性があるわけで
 >は無いので、アプリケーションはすべて見直す必要があるでしょう。

この覚悟はできております(笑)
現在互換性を調べて、移行にどのくらいかかるか検討中です。

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

お礼日時:2002/03/06 15:37

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

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

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

Qストアドプロシージャ

以下のような事が行いたいのですが、うまくいきません。

 <テーブル1>
  id  計算式
   1  注文数×単価
   2  在庫数×単価

 <テーブル2>
   No. 注文数 在庫数 単価
   A   50   20  500
   B   70   85  860

ここで、テーブル1より計算式を検索し、
その計算式をもとにテーブル2のデータを計算したいのです。

ストアドプロシージャ等を使用すれば出来るのかとおもったのですが、
どうしてもうまくいきません。
このようなことはできないのでしょうか?

開発環境
 ORACLE 8.1.7

Aベストアンサー

動的SQLを使えば可能だと思いますよ。
選択した計算式の列名と演算子を使って、SQL文を動的に生成して実行すればいいと思います。
動的SQLの使用方法は、Oracleのマニュアルや市販のPL/SQLの解説書等を参考にしてください。

Qストアドプロシージャ_カーソルのヒット件数

いつもお世話になっています。
SQLServer7.0です。

ストアドプロシージャでカーソルを使用し、オープンしたカーソルの件数を調べたいのですがうまくいきません。

Declare curs2 cursor for
Select [項目名]
From [テーブル名]
Where [検索条件]

Open curs2
Print @@CURSOR_ROWS

この「@@CURSOR_ROWS」変数でヒット件数を取得できるように参考書では書いてあるのですが、実際Printしてみると、カーソルをオープンする前だと 0 で、オープンした後だと-1 です。

特にエラーだとか、対象データがないというわけではありません。実際その後ヒットした件数分行う処理は正常に出来ています。

ただ、どうしても処理を行う前に件数を知りたいのです。カーソルの変数だけでは取れないとなると セレクトしたカーソルと全く同じセレクトを実行して@@ROWCOUTで取るしかないかなって思ってるのですが・・・。どうも建設的ではないなって思ってます。

カーソルの件数を取得するにはどうしたらよいのでしょうか?

いつもお世話になっています。
SQLServer7.0です。

ストアドプロシージャでカーソルを使用し、オープンしたカーソルの件数を調べたいのですがうまくいきません。

Declare curs2 cursor for
Select [項目名]
From [テーブル名]
Where [検索条件]

Open curs2
Print @@CURSOR_ROWS

この「@@CURSOR_ROWS」変数でヒット件数を取得できるように参考書では書いてあるのですが、実際Printしてみると、カーソルをオープンする前だと 0 で、オープンした後だと-1 です。

特にエラーだと...続きを読む

Aベストアンサー

一回
Select count([項目名])
From [テーブル名]
Where [検索条件]

とやって、数を取り出してから カーソルのほうを
やったらどうでしょうか?


あと
参考URLでは
SELECT @@CURSOR_ROWS
で取得しているみたいですが・・・。

参考にならなかったら失礼。

参考URL:http://www.horikawa.ne.jp/msde/gihyo/sql07/sql07_07.html

Qエクセルからストアドプロシージャの起動方法

環境:Excel2003、SQLServer2000
エクセル上からストアド(引数あり)を起動し、結果をエクセル上に表示するにはどうすればよろしいでしょうか?
皆様よろしくお願い致します。

Aベストアンサー

レコードセットの取得はこちらを参考に。
ADO でパラメータ付きストアドプロシージャを実行する
http://homepage2.nifty.com/inform/vbdb/ado_storedproc.htm
エクセルへの表示については、VBA のヘルプで
 CopyFromRecordset メソッド
をお調べください。
使用例も書かれています。

QSQL-Server 6.5でストアドプロシージャの実行

EXECUTE procedure 'para1','para2'
で正しい結果が返ってくるストプロがあります。
これをSELECT文の中で結果を返すようにするには
どんな書き方をすれば良いのでしょうか?
ストアドプロシージャを作成したのは今回が初めてで
試行錯誤しながらなんとか結果が返せるようになった
のですが、私がISQLで試した方法ではうまく行きません。

<私の試した方法>
SELECT procedure(tabe1.para1,tabe1.para2)
FROM table1

SELECT文でストプロを実行することはできないのでしょうか?
宜しくお願いします。

Aベストアンサー

このプロシージャはテーブルの項目名を返すのでしょうか?
だとしてもこういった使い方は出来なかったと思います。

もし、そのプロシージャが結果として表(Select結果)を返すのであれば
プロシージャ内でビューを作成し、
そのビューに対して再度Selectを発行すれば良いと思います。

QPostgreSQLとは?

自分は、Javaで少しプログラミングをしています。
そして、今回データベースとして、PostgreSQLを始めることになりまして、
PostgreSQLのことを教えてもらいたいのです。

Javaでは、CGIの言語としまして、Servletを使用しています。
その時、自分のPCにJRunをWebサーバーとして置いています。
そして、Servletを実装する時には、所定のディレクトリにコンパイル済みの
Servletプログラムを置き、IEから展開しています。

では、PostgreSQLではどのように動作するかが分かりません。

今、現在、自分の分かる範囲は・・・
1、PostgreSQLは、サーバーサイドソフトウェア(上記のJavaで言うJRun?)
2、UNIX形式のソフトウェア
3、Windowsで使用するなら、cygwin等のUNIX環境が必須
                           などです。

もし、こんな初心者の自分に理解できるHP、書籍でもかまいませんので
教えてください。

よろしくお願いします。

自分は、Javaで少しプログラミングをしています。
そして、今回データベースとして、PostgreSQLを始めることになりまして、
PostgreSQLのことを教えてもらいたいのです。

Javaでは、CGIの言語としまして、Servletを使用しています。
その時、自分のPCにJRunをWebサーバーとして置いています。
そして、Servletを実装する時には、所定のディレクトリにコンパイル済みの
Servletプログラムを置き、IEから展開しています。

では、PostgreSQLではどのように動作するかが分かりません。

今、現在、自分...続きを読む

Aベストアンサー

PostgreSQLはサーバー上で動く DBエンジンです(OlacleとかMS-SQL Serverとかと一緒)。クライアントはDBエンジンに対して SQLを発効し、検索結果を受け取ります。基本的には UNIX系のOS上で動くものです。cygwin上でも動作するようです。また、 Windowsネイティブに動くものもあります (http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html)。

参考URLでは「PostgreSQL 完全攻略ガイド」の著者が筆頭となっている MLのサイトですが、ここから様々なリンクをたどるといいと思います。また、このサイトには「PostgreSQL 完全攻略ガイド」第一版がPDFで公開されています。

参考URL:http://www.sra.co.jp/people/t-ishii/PostgreSQL/index.html


このカテゴリの人気Q&Aランキング

おすすめ情報