• 締切済み

OracleのSQLでWEB上のセクションIDを取得する方法

お世話になっております。 現在、複数の方が同時に作業する画面をPL/SQLで作成しています。 この画面は、ワークテーブルを使用して動作しています。 上記の通り、複数の方が同時に作業する可能性があるため、 ワークテーブルにセクションIDのカラムを持たせ、判断させたいと思っています。 SELECT文で、作業者の(WEB上の)セクションIDを取得する方法はありませんか? また、別の方法があるのであれば、参考までに教えていただけないでしょうか? 以上、宜しくお願い致します。 環境: Windows2000 Oracle9i IE6.0 PG言語: PL/SQL

みんなの回答

  • hiroaki_0
  • ベストアンサー率53% (131/245)
回答No.1

ちょっと、質問の趣旨がわからないのですが。 セクションIDってWEBサーバーやブラウザが勝手にふるものではなくて、アプリケーションサーバー(や、WEBサーバー上で動くWEBアプリケーション)がふるものですよね? ですから、そのアプリケーションがセクションIDを発行したときに、Oracle上のテーブルに保存(insetrt、またはUpdate)しておけば、あとは通常のSelect分で引き出せると思いますが? その後のリクエストに含まれるセクションIDは、普通のフォームに含まれるデータと同じように引き出せますが、それはそのアプリケーションの作り方に左右されるので、一般的な回答は無いと思います。

akahuku7
質問者

補足

早い回答ありがとうございます。 >セクションIDってWEBサーバーやブラウザが勝手にふるものではなくて・・・ ふらないのですか? 調べても出てこないはずですね^^; 以前、WEB上でセクションIDを取得できるという話を 知人に聞いたので質問したというのが本音です。。(ダメもと?) OracleではセクションIDふられますよね? /****************************/ SELECT SID AS セッションID, USER_NAME AS ユーザ名 FROM V$OPEN_CURSOR GROUP BY SID,USER_NAME; /****************************/ PL/SQL内でその時作業している方のセクションIDを取得する方法はありますか? また、複数の方が同時に作業する可能性がある画面にワークテーブルを用いた場合、 通常、何を基準に判断しINSERT/UPDATEさせるものだのですか? まだ初心者レベルで、このような動作をさせる画面を作成するのは初めてです^^; 今後の参考に教えていただけないでしょうか?

関連するQ&A

  • OracleのSQLについて 助けてください。

    OracleのSQLについて 助けてください。 (例) テーブルA 「human」 | ID | 名前 | テーブルB 「kotoba」 | ID | 名前 | テーブルC 「kakutougi」 | ID | 名前 | テーブルD 「kotoba_have」 | human.ID | kotoba.ID | テーブルE 「kakutougi_have」 | human.ID | kakutougi.ID | テーブルAには一人一人のIDと名前が入っています。 テーブルBには言語の種類IDと種類名(英語、日本語など)が入っています テーブルCには格闘技の種類IDと種類名が入っています。 テーブルDとテーブルEはその人がどの言語がしゃべれ、どの格闘技ができるかを示しています。 テーブルD、Eはその人が複数の言語が話せ、複数の格闘技ができる場合複数のhuman.IDが入ります。 ここで日本語と英語が話せ、柔道と空手ができる人を呼び出したい場合はどのようなSQLにすればよいのでしょうか。 プログラムでwhileで回してはできるのですが、データ量が膨大のためSQLでどうにかしたいのですがわかる方いらっしゃいますでしょうか? 助けてください。よろしくお願いします。

  • oracle SQL

    以下のようなことを実現する方法についてお教え頂きたいです。 ■テーブル [XXXマスタ] ID char(8) 上記のテーブルにはIDという項目があるのですが、このテーブルで 使用していないIDのみをSQLで抽出できないかと考えております。 ただし、なるべくならワークテーブルのようなものは利用せずに 行いたいと思っております。 いい方法があれば教えていただきたいです。

  • acsessのSQLでフィールド名と説明(コメント)を取得する方法

    AcsessのSQLでフィールド名と説明(コメント)を取得する方法はありますでしょうか? オラクルでしたら SELECT [COLUMN_NAME], [RTRIM(COMMENTS)] FROM テーブル名 で取得できる様ですが、Acsessはだめでした。 よろしくお願いいたします。

  • ORACLEでのSQL、シンプルな方法は?

    ORACLEでのSQL文について質問です。 SQLで条件に合うレコードがあるかどうかはどう判別するのでしょうか? 画面で2つの条件を選んで テーブル ・ステータス ・フラグ 条件に合うレコードがなければINSERT 条件に合うレコードがあればUPDATE レコードが元々あるが、画面で指定された条件から外れる場合はDELETE としたいのですが、うまくSQLが書けません。 レコードがあればupdate、なければinsertするというのは多いのですが。 何かシンプルな方法はないでしょうか。

  • テーブル名をカラムとして取得する方法

    テーブル名をカラムとして取得する方法はありますでしょうか? オラクル8とVB6でプログラムを組んでいます。 例 TABLE Aの内容 カラム1 1 2 3 TABLE B カラム1の内容 4 5 6 SQLは簡略化してかきます。下記のSQLを実行した場合、 select A.カラム1 from A union select b.カラム1 from b 1 2 3 4 5 6 を取得できます。 例えば、上記で、SQL実行後、 下記のような値を取得したいです。 1 ,Aのテーブルだよ 2 ,Aのテーブルだよ 3 ,Aのテーブルだよ 4 ,Bのテーブルだよ 5 ,Bのテーブルだよ 6 ,Bのテーブルだよ それぞれのテーブルの名前を別名で結果に格納したいのです。 何か方法はありますでしょうか? なければ、unionせずに、2回SQLを発行し、それぞれに、 プログラム上で、「Aのテーブルだよ」を後で挿入したいと思っています。

  • PL/SQLで実行したSQLのログの取得について

    ASP(ActiveServerPage)より、PL/SQLのFunctionを実行し、Oracleの複数のTABLEを更新しようとしています。 ASPから実行する際には、引数を渡し、その引数をSQL実行の条件としていますが、実際に実行されたSQL文のログを取得したいのですが、どうしたらよいでしょうか? 何か良い方法をお教えいただけますよう、よろしくお願いいたします。 [実行環境] DB:Oracle8i

  • OracleのSQLについて

    OracleのSQLについて質問があります。 VARCHAR2をReturnするFunction「GETKANANAME(引数はID)」があるとします。 このとき Update NAMELIST SET kananame = (select GETKANANAME('00001') from dual); とすると、kananameに何も設定されません。 (エラーメッセージなどは何も出ていません。) select GETKANANAME('00001') from dual; だと期待する値が帰ってくるのですが…。 何か間違ったSQL文なのでしょうか?

  • オラクルの条件で時間を指定する方法

    オラクルの条件で時間を指定する方法と格闘中です。 ログのようなデータがたくさんあってそこから、 18時~翌2時のデータはいくつあるか。 というSQL文を書きたいのですが、 うまくいきません。以下のようなSQLなのですが、 どなたかアドバイスいただけないでしょうか? SELECT COUNT(*) as CNT, ID FROM テーブル名 WHERE TO_DATE(DATE型カラム, 'HH24:MI') >= '18:00' AND TO_DATE(DATE型カラム, 'HH24:MI') < '02:00' GROUP BY ID ORDER BY CNT; ちなみにこんなエラーが出ています。 SQLエラー: ORA-01843: 指定した月が無効です。 よろしくお願いいたします。

  • オラクル結合SQL

    こんばんわ。オラクル初心者です。 オラクル9.1で、下記のようにtable1とtable2を結合して、view1(oracleビュー) を作成したいのですが、どのようなSQLがよいでしょうか。 なかなかうまい方法がなくてこまっています。 table1 no 項目 その他 その他1 1   1 1  2 1  3 .....省略 table2 no 項目 種別 結果 1  1  01  3 1  1  02   8 1  1   03  7 1  2  01  9 1  2   02   6 1  2  03  2 1  3  01   1 ...... view1 良い例 no 項目 結果1 結果2 結果3 1   1   3   8   7    ←種別01 02 03を順にいれる 1   2  9   6  2 1  3  1............ select table1.no,table1.項目,・・・ from table1,table2 where table1.no = table2.no and table1.項目 = table2.項目 ↑おおよそこのような感じになるとは思ってます。 何とか頑張ったのですが、下記のようになってしまうことが 多かったです・・・。どこかSQLがわるいようです。 view1 悪い例 no 項目 結果1 結果2 結果3 1  1   3   8  7 1  1   3   8  7 1  1   3   8  7 1   2  9  6  2 1   2  9  6  2 1   2  9  6  2 1   3  1............ もしご存知の方いらっしゃいましたら、助かります。よろしくお願いいたします。

  • ORACLE SQL 教えてください。

    オラクルSQLの初心者です。 (1)のテーブルから (2)のテーブルを作成する方法はありますか?教えて下さい。 (2)のテーブルを元に他のテーブルの色々な値を取得したいです。 (1) TEMP1 -------------------------- CODE YEAR_START YEAR_END --------------------------  01    08        11  02    08        09  03    11        11 (2) TEMP2 --------------------- CODE YEAR ---------------------  01   08  01   09  01   10  01   11  02   08  02   09  03   11

専門家に質問してみよう