- ベストアンサー
データベースの検索について
sghの回答
- sgh
- ベストアンサー率61% (75/121)
CURSORを使えば良いかと思います。 途中までソースを書いたのですが、PL/SQLはしばらくやっていないので、UPする自信がなくなりました。 あと、ご存じとは思いますが、目的のキーでソートをかけるのをお忘れなく。 すいません。こんな回答でm(_ _)m
関連するQ&A
- BLOB型項目をSQLの検索条件に指定して検索したいのですが。
BLOB型の項目を持つTableに対して、SQLのSELECT文でBLOB型項目がNull(未設定)のレコードを抽出したいと思っています。 どのようなSELECT文を組めば良いのでしょうか? 方法がわからず困っています。 御教授下さい。 DBはOracle8.1.6、 OSはWindowsサーバ2003です。よろしくお願いします。
- 締切済み
- Oracle
- 毎日DBのデータをCSVに抽出したい
タスクスケジューラで定期的に「SQL」を発行させてデータをCSVファイルにはきだしたいと思っています。 対象のdbがOracle、DB2、MySQLです。 悩んでいることが2か所あります。 抽出条件のSQLはSQLファイルに書いて簡単に実現できるのですが、 ・毎日CSVを作るためファイル名に日付を入れたい ・抽出条件に特定の日付を入れたいのですが対象のテーブルでは日付を日付型でもっておらず文字列です 例:20110206 どのようにすればいいでしょうか? ひとつのSQLファイル内で実現は不可能でしょうか?
- ベストアンサー
- その他(データベース)
- オラクルDBでの不一致の検索
ORACLE8.0.5において A-DB code char(10); updte char(14); B-DB code char(10); A-DBとB-DBにおいてcodeが不一致のデータの抽出をする場合、 select B-DB.code from A-DB,B-DB where A-DB.code <> B-DB.code and A-DB.updte >= '20020301000000' and A-DB.updte <= '20020331235959'; 上記のようなSQL文を作成し実行したが、A-DBのcodeに対してB-DBのcodeを全部検索し、B-DBの検索分がすべて不一致になってしまいました。 SQLの考え方がまちがっているのかわからないでいるので、アドバイスをお願いいたします。
- ベストアンサー
- その他(データベース)
- ストアドプロシジャからデータベースリンクを使っての参照について
OracleツールのJDeveloperを使って、PL/SQLでストアドプロシジャを作成しています。 (Oracleは9i) DBが2つありまして(DB-AとDB-Bとする)、 DB-Bから、データベースリンクを介してDB-Aのテーブルを参照しています。 (SELECT * FROM XXXXX.テーブル名@データベースリンク名) DB-Bに接続してSQL*PLUS上で上記SELECT文を実行すると正しく処理されるのですが 上記SELECT文が組み込まれているDB-B上のプロシジャをコンパイルすると、 「ORA-04052」が返ってきてしまいます。 エラーコードを調べると、 DB-A側のテーブルを参照できていないようで、 「KGLR.SQLが実行されていることを確認してください」とのことなのですが、 この「KGLR.SQL」とやらが何者かわかりません。 タチの悪いことに、上記の現象が出る端末と出ない端末があります。 みんな同じIDでログインしているので権限の問題ではないと思ってるのですが・・・ 「KGLR.SQL」は置いといて、このような事象に出くわしたことのある方、 推測でもなんらかの情報をお持ちの方がいらっしゃいましたらご教授ください。 よろしくお願い致します。
- ベストアンサー
- Oracle
- DBのレコードサイズの調査方法について
現在DBのレコードのサイズを調査しています。 例えばあるDBに100テーブルあるとしてその中で レコードのサイズが一番大きいテーブル名とそのテーブルの レコードサイズがいくつなのかを調査しております。 SQL等でレコードサイズを抽出することは出来るのでしょうか。 それとも全テーブルの定義情報から割り出すしかないのでしょうか。 調査対象のDBはPostgresSQL(ver 7.4)になります。 すみませんが宜しくおねがいします。
- 締切済み
- SE・インフラ・Webエンジニア
- oracle SQL
以下のようなことを実現する方法についてお教え頂きたいです。 ■テーブル [XXXマスタ] ID char(8) 上記のテーブルにはIDという項目があるのですが、このテーブルで 使用していないIDのみをSQLで抽出できないかと考えております。 ただし、なるべくならワークテーブルのようなものは利用せずに 行いたいと思っております。 いい方法があれば教えていただきたいです。
- ベストアンサー
- Oracle
- ACCESSとORACLEで抽出結果が異なる
いつもお世話になっております。 ACCESS2000を扱っております。 ACCESSのデータベースにODBCを接続してORACLEの テーブルをリンクテーブルとしてインポートします。 そして、ACCESSのテーブルとORACLEのテーブルを LEFT JOIN を行いクエリーを作成したのですが、 正しい結果が抽出できません。 ただし、ORACLEのテーブル構成・データと全く同一の ACCESSのテーブルを作成し、クエリーを作成したところ 正常に動作しております。 SQLは以下のような内容となっております。 sSQL = SELECT TBL_1.A, TBL_1.B, TBL_1.C FROM TBL_1 LEFT JOIN TBL_2 ON TBL_1.A = TBL_2.A AND TBL_1.B = TBL_2.B AND TBL_1.C = TBL_2.C WHERE TBL_2.A IS NULL AND TBL_2.B IS NULL AND TBL_2.C IS NULL TBL_1がORACLEより引っ張ってきたリンクテーブル、 TBL_2がACCESSに存在するテーブルになります。 以上のSQLで、TBL_2に存在なくTBL_1に存在するレコード、及びTBL_1とTBL_2でキー項目は同じだが 内容が異なるレコードを抽出できると考えているのですが、TBL_2に存在なくTBL_1に存在するレコードしか 抽出できません。 個人的には、処理する件数が多大であることが影響しているのかとも考えているのですが・・・。 (両テーブルともに約20万件レコード) クエリーを分割することで解決はしたのですが、 原因究明を求められておりまして大変困っています。 皆様の知恵を借りたいです。宜しくお願いいたします。
- ベストアンサー
- Oracle
- 最新レコードを抽出し外部結合する方法について
お世話になります。 現在、最新レコードを抽出し外部結合するSQLを考えているのですが、実現できておりません。 実現できるSQLをご存知の方、いらっしゃいましたら情報を頂けますでしょうか。 # 私の使用しているのは、PostgreSQL8.3となります。 実現したい内容は、以下となります。 1.テーブルAから「名前」でグループ化して最新の「更新日付」のレコードを抽出。 2.1の結果とテーブルBを「名前」で結合。 3.テーブルAの「名前」、「点数」、「更新日付」とテーブルBの「判定」を抽出。 ⇒ただしテーブルAに情報がある場合は、テーブルBの判定結果を「0」にして出力。 テーブルA テーブルB ---------------------------- ----------------------- 名前| 点数| 更新日付 名前 | 判定 ---------------------------- ----------------------- AAA 98 2011/4/1 AAA 0 AAA 60 2011/4/3 BBB 1 BBB 70 2011/4/2 CCC 1 BBB 35 2011/4/4 DDD 1 DDD 98 2011/4/1 EEE 0 EEE 47 2011/4/5 FFF 0 GGG 80 2011/4/6 GGG 1 【出力結果】 --------------------------------------------- 名前 | 点数 | 更新日付 | 判定 --------------------------------------------- AAA 60 2011/4/3 0 BBB 35 2011/4/4 0(1⇒0に変更) CCC NULL NULL 1 DDD 98 2011/4/1 0(1⇒0に変更) EEE 47 2011/4/5 0 FFF NULL NULL 0 GGG 80 2011/4/6 0(1⇒0に変更) お手数お掛け致しますが、ご教示のほどよろしくお願い致します。
- ベストアンサー
- PostgreSQL
- 複数データベースへの問い合わせ
同一サーバーに(DB1,DB2,DB3)と複数のデータベースがあった場合(ユーザーは同じです)、SELECTの際に複数のDBに対しての問い合わせをすることはできるのでしょうか? それぞれのデータベースはテーブルも全く同じ構造で、 そこから特定のフィールドのレコードだけを引っ張り出して使いたいのですが、SQLをどのように書いていいのかがわかりません・・・ ヒントだけでもいただけると嬉しいです。よろしくお願いします。
- 締切済み
- MySQL
- データベースにあった効率なフィールドの書き方?
MySQL4とMySQL5を使っています。 データベース不慣れで、言葉や考え方が間違っているかもしれませんが、 例えば以下のようなフィールドを持つテーブルがあり、 どちらがデータベースにとって効率良い(スピードやDBサイズ) のでしょうか? 例1)1レコード128バイト bigint position zyusyo char(120) 例2)1レコード256バイト bigint position zyusyo char(248) MySQLに限らず、他のDBもフィールドの定義仕方で効率が変わることは、あるのでしょうか? このようなことはDBチューニング?というものでしょうか? 語彙不足で申し訳ありません。
- ベストアンサー
- MySQL
お礼
やはり、カーソルになるのですか。いろいろ考えてみます。