回答数
気になる
-
Oracleでの登録するユーザーと、ログインする個別ユーザーの違い
Oracleでの登録するユーザーと、ログインする個別ユーザーの違いで悩んでいます。 Oracleでの資格(ブロンズ)を取得するために勉強していますが、ユーザーの管理においてどうも整理がつきません。 と言うのも、資格の本(通称白本)での第七章では一般的なUnixユーザーを作るかのような形でユーザーを作成していくという風に記述されていくのに対して、下記サイトでは「ユーザーは人、スキーマはカバン、テーブル・ビューはノート・ペン」と言うように説明されます。 Oracleのスキーマとユーザーの違いとは? https://sql-oracle.com/?p=110 すなわち、ユーザーは人、スキーマはカバンと言うように作っていくと、特定のAさんというユーザーに割り振られたエリア(スキーマ)内にテーブルやインデックスがあることになり、この場合はBさんと言うユーザーがアクセスすることができません。(スキーマを超える参照権限が付与されれば別ですがそういう運用をしているとは考えにくい・・・) と言うことで、このOracleで言うユーザーと、一般的に個人個人で振り出されるログインユーザーは別の概念なんじゃないかと思ったのですが、これを確認することができないでいます。 まず、この考え方で合っているのか確認したいのと、もしその場合にはどういう実運用がなされるのかと言うのを知りたく思っています。 (Oracleユーザーは言わばロール権限の代替呼称であって、個人のログインユーザーはその権限に何らかの形で紐づけてユーザーの権限が付与されるなど) どなたかお分かりになる方がいらっしゃいましたら教えて下さい。
質問日時: 2021/01/19 20:32 質問者: javawater
ベストアンサー
9
1
-
別レコードと比較条件文
別レコードと比較条件文 下記のテーブルがあります。 ・番号1から始まり番号が2に採番されると、履歴番号に番号1が入ります。 ・履歴番号はひとつ前の番号を持ちます。 ・Aテーブルのレコード数は100以上あります。 Aテーブル ID 番号 履歴番号 A 1 NULL A 2 1 A 3 2 B 1 NULL B 2 1 B 3 2 結果として出力させたいのは、変更回数です。 ・履歴番号は実際のデータですと10桁の複雑な文字列です。 ほしい出力結果 ID 番号 履歴番号 変更回数 A 1 NULL 0 A 2 1 1 A 3 2 2 B 1 NULL 0 B 2 1 1 B 3 2 2 行いたい条件式とは、 一行目:履歴番号がNULLのときは変更回数0とする。 二行目:履歴番号が他レコードの番号と一致する場合、1を持つ。そのレコードの履歴回数がNULLなら判定終わり。 三行目:履歴番号が他レコードの番号と一致する場合、1を持つ。そのレコードの履歴番号が更に他レコードと一致する場合、2を持つ。そのレコードの履歴回数がNULLなら判定終わり。 このようにして変更回数を設定したいのですが、思いつきませんのでご教示お願いできますでしょうか。 試してみたのは、DECODE(履歴番号,'','0',番号,1) とまでためしに作りましたが、同じレコード同士の比較になってしまうため、比較できません。
質問日時: 2010/08/01 11:39 質問者: force1
ベストアンサー
9
0
-
1ヶ月に土日は何日あるか
1ヶ月に土日は何日あるかをSQLで調べたいと思ってます。 指定した年月に土曜日が何回あるかがわかるような便利な関数はないでしょうか? 教えてください。
質問日時: 2008/08/09 17:28 質問者: Cosmo2007
解決済
9
0
-
Group By を使用して任意のカラムの最大値のデータを取得する。
Group By を使用して任意のカラムの最大値のデータを取得する。 次のようなテーブルデータがあるとします。 ID 店舗CD 適用日付 A001 101 20100701 A002 101 20100801 A003 101 20100901 B001 102 20100701 B002 102 20100801 B003 102 20100901 抽出イメージですが、このテーブルデータの店舗コードをGroupByして、MAX(適用日付) としたときにIDが取得できなくなります。 なのでGroupByしたときの日付最大値のデータのIDを取得したいのですがいい方法が浮かびません。 同じテーブルデータでGroupBy(店舗コード)、MAX(適用日付)としたサブクエリを(店舗CD=店舗CD)、(適用日付=適用日付)とInnerJoinする方法も考えましたが、万が一、適用日付と店舗CDが同一のものがあった場合、店舗CDが重複してしまいます。 各店舗CDの最大適用日付のID取得したいのです。 なのでイメージはGroupby(店舗CD)とMAX(適用日付)とした時にMAX(適用日付)のIDを取得し、 なおかつ欲をいえば、MAX(適用日付)のIDが複数存在する場合は、1店舗CDにつき一つの適用日付を取得したいです。(この際、IDはなんでもいいです。) 簡単そうなことですごく悩んでいます。 どなたか助けてください。 よろしくお願いします。
質問日時: 2010/07/23 17:39 質問者: anman0201
ベストアンサー
8
0
-
DBってなに?
DBって何? と質問されたとき答えるのが難しいです。 どうやって説明すればいいでしょうか? 簡単な例として住所録で東京都在住の人。 1960-1980年生まれで男、北海道の人は除く。 などが簡単にできるんです。 と説明しても理解してもらえません。 なにかうまい説明ありませんか?
質問日時: 2006/05/29 14:18 質問者: 5S6
解決済
8
0
-
自動連番でカラムを更新したい
いつもお世話になります。 あるテーブルのカラムに、「ある順番に並び替えた上で」自動連番をふって更新させたいのですが、上手くいきません。 当初はシーケンスを作成して試みたのですが、並び替えた上で連番をふることができず無作為な連番になってしまいました。 そこで、色々考えまして以下のように作成しましたが、、、 update tableA set colC = (select rownum from tableA order by colA, colB); 「ORA-00907:右カッコがありません」が出てきます。 文法が間違っておりますでしょうか?? それとも他に何か良い方法がありましたらご教授いただけますでしょうか?
質問日時: 2009/02/11 01:59 質問者: ryozyryozy
ベストアンサー
8
0
-
検索キーの設定
お世話になっております。 INDEXを設定せずに、検索キーを設定するのですが、以下のデータ型によって検索速度の違いはあるのでしょうか? CHAR(1) VARCHAR2(1) NUMBER(1) また、内部でどのような動きをしているのか、説明が載っているようなHPがありましたら、併せてお教え頂けるとありがたいと思っております。 ご存知な方いらっしゃいましたら、宜しくご教授お願いします。
質問日時: 2005/04/21 14:15 質問者: kaki3
ベストアンサー
8
0
-
JavaでのOracle接続について(JDBC)
はじめまして。 先週よりJavaの勉強を始めていまして 先日からDB接続(Oracle)をやっているのですが、Oracleに接続することが出来ません。色々なサイトからクラスパスが通っていないというエラーのようなのですが、プログラミング経験のある友人に聞いてもさっぱり原因が分かりません。また何度もインストールをやり直して同じです。以下に環境とソースを載せておきますので、もし何か解決のヒントになるような事がありましたら教えて下さい。 ●状況 (1)コンパイルは通るがjavaコマンドで実行をすると”Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driveOracleDriver”が出てしまう。 (2)C:\oracle\ora92\jdbc\lib\ojdbc14.jarを環境変数→Pathへしっかりと通してあります。(setコマンドでも確認済みです) (3)C:\j2sdk1.4.1_02\jre\lib\extへojdbc14.jarをコピー (4)SQL PLUSからは接続出来る。 ●環境 クライアント:Win2000 DBサーバー:SQLサーバー(別マシンに環境構築) DB:Oralce9.2.0 JDK:1.4.1_02 import java.sql.*; class Employee { public static void main (String args []) throws SQLException,ClassNotFoundException { // Oracle JDBC Driverのロード Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@ホスト名:1521:SID", "ID", "パスワード"); Statement stmt = conn.createStatement (); ResultSet rset = stmt.executeQuery ("SQL"); while (rset.next ()) System.out.println (rset.getString ("ISBN")); rset.close(); conn.close(); } } 以上です。何か足りない情報がありましたら教えて下さい。
質問日時: 2006/06/28 16:27 質問者: maikelu
解決済
8
0
-
WHERE句の実行順序
SELECT文などで、 WHERE 条件1 AND 条件2 と記述した場合、実行順序は上から(条件1⇒条件2)になるのでしょうか?それとも逆なのでしょうか? 同じ職場の方は、上からだとおっしゃるのですが、実行してみると下からのような気がするのですが・・・。私の気のせいでしょうか?
質問日時: 2005/10/15 23:47 質問者: floren
解決済
8
0
-
テスト環境構築
いつもお世話になっております。 Cで開発経験が少しある程度+MySQLを少し触った程度の人間です。 今回実機に搭載されているオラクルのテスト環境を構築するよう仰せつかりました。 しかし、オラクルなど触ったことも無く。周囲にもオラクルに詳しい人がおりません。 現在運用サーバで稼動しているオラクルのデータをそのままそっくりテストサーバへ移行しろとのことです。 調べてみたところ、exp/impで出来るという事はわかりました。 そこで以下の手順で作業を行いました。 1)テスト機(Windows 2003のSP1)へのオラクル(10.2.0.1)インストール 2)データベースコンフィギュレーションアシストよりORCL(実機側のデータベースと同名)の名前でデータベースを作成 3)インスタンスの起動 4)実機よりデータベース全体をエクスポート 5)テストサーバで 4)で取得した情報をインポート 6)エクスポートの時間よりかなり早くインポートが終了 7)テストサーバを再起動するとリソースの大半をオラクルが使用している 8)データベースを確認してみたが、サービス再起動を試みても起動せず。 希望としては、実機と全く同内容のデータをテストサーバに存在させたいのですが、 以上のexp/imp手順では不足していたのでしょうか? データベースを作成する際のテンプレートは汎用を使用し、サンプルスキーマを作成しませんでした。 汎用ではまずいのでしょうか? また、ユーザーや表はインポートでは移行されないのでしょうか? 実機の環境もWindows 2003のSP1とオラクル10.2.0.1です。 渡されたマニュアルは『意外と簡単!?Oracle Database 10g』です。 インターネットやこの掲示板でも移行については調べて見ましたが、詳細な部分がわかりませんでした。 勝手がわからず、的外れな質問をしていましたら、申し訳ありません。 周囲の人間に聞いてもわからず困っております。どうか手順や良いサイトなどありましたら、ご教示ください。
質問日時: 2009/09/14 13:26 質問者: ao108
ベストアンサー
8
0
-
オラクルのシーケンスについて
オラクルのシーケンスですがCACHEを指定しないときはデフォルト20がとられるとのことですが、NEXTVALで採番したシーケンスがいきなり増分20で返されることはあるのでしょうか。 ex.1からNEXTVAL後21が戻される
質問日時: 2009/02/09 23:38 質問者: namidame_dion
ベストアンサー
7
0
-
selectの書き方を教えてください
Oracleで以下のデータから1)、2)の条件でコードをselectしてくるには どのようなSQL文を書けばよいでしょうか。 [DATA] code date status 0001 3-15 A 0001 3-15 B 0001 3-15 C 0002 3-15 A 0002 3-15 B 0003 3-15 B 0004 3-15 A 0005 3-15 C 1)3-15においてstatusがAとBを持つcodeを返したい →0001,0002が返ってきてほしい 2)3-15においてstatusにCを持つがそれ以外(A,B)は持たないcodeを返したい →0005が返ってきてほしい 単純なものなのかもしれませんが、 どうか、お力添えのほど、よろしくお願いいたします。
質問日時: 2013/03/05 17:40 質問者: duowhite
ベストアンサー
7
0
-
SQL文 教えて下さい。
以下のようなデータがあります。 ・列Aにはが1~300までの値が格納。 ・列BにはA~Zまでの値が格納。 列B、A~Zの値に対して、 列Aの値は列1~300の値を複数持つことができます。 列A 列B ----------- 1 A 2 A 3 A 6 A 1 B 3 B : このとき、列Aの値のうち、1~10までの値を全て持つ列Bの値を抜き出すにはどういったSQL文を記述すればよいでしょうか。 よろしくお願いします。
質問日時: 2006/05/19 17:12 質問者: youyouyou--
ベストアンサー
7
0
-
DELETE文とTRUNCATE文の違いについて
こんにちは 現在ORACLE Bronzeの勉強をしていて、妙に引っかかる部分があるので質問をさせて下さい。 インプレスジャパンが刊行しているBronze DBA10gの問題集の中に以下のような問題があります。 次の中でDDL文では実現できない機能を2つ選びなさい。 A.ユーザーの作成 B.表の削除 C.データ変更の確定 D.ビューの名称変更 E.表データの削除 解答はC・Eだったのですが、ここで頭に?が浮かびました。 TRUNCATE文で表データの削除できるんじゃないの?というものです。 一般にTRUNCATE文の説明には「表の切捨て」や「表データの切捨て」という言葉を使っていますが、以下が質問になります。 1.「表データの削除」と「表データの切捨て」はまったく違う現象なのか。どう違う現象なのか。 2.結局TRUNCATE文も表のデータを削除してるのではないのか。 以上です。 質問が長くなってしまい申し訳ありませんでした。 認識違いなどありましたらご指摘ください、よろしくお願いします。 参考:http://www.thinkit.co.jp/free/tettei/1/3/1/ の第2問に同じ問題が載っています。
質問日時: 2008/05/27 10:31 質問者: aoi2008
ベストアンサー
7
0
-
抽出結果を1件ずつ次の抽出条件に使う方法
Oracleで下記のようなデータ処理を実現する方法を調べています。 (1)特定の条件でデータを抽出する。 select X from TABLE1 where Y="test" (2)(1)で抽出したデータを別の抽出条件の値として1つずつ使用し、 別のsqlにてデータを抽出し、件数を取得する。 select count(*) from TABLE2 where Z = aaa ※aaaには(1)の結果を順に入れる。 2,3件であれば手作業で(2)を実施すればよいのですが、(1)の結果が数100件 になっているため、(2)をループ処理させたいです。 PL/SQLが必要なのでは?と思いつつ、使ったことがありません。 少し調べてはみましたが、よくわからず、困っています。 特に難しい処理ではないと思ってはいるのですが、期日まで時間がなく、質問 させていただきました。 一時的なデータ確認のためだけなので、専用にプログラムを組むのはしたく 無いと思っています。 参考になる情報をいただければ幸いです。 もちろん、(2)のサンプルコードなどいただければ大変助かります。 どうぞよろしくお願いします。
質問日時: 2012/09/22 05:22 質問者: tori1202
ベストアンサー
7
1
-
SQLで・・
No 日付 6 98-08-08 6 05-05-05 6 05-10-10 7 97-05-05 7 98-08-08 8 99-12-31 8 00-08-08 という表があって、これを No 日付 6 98-08-08 7 97-05-05 8 99-12-31 というNoひとつに対して一番古い日付を抽出したいのですがどんな感じのSQLを書けばいいのでしょうか?
質問日時: 2005/11/21 18:46 質問者: aqua1
解決済
7
0
-
Oracleの欠点
データベースには主に、 MySQL、PostgreSQL、Oracleが 使われていると言う事を知ったのですが、 MySQL、PostgreSQLは無料なのに対して、 Oracleは有料ですよね。 その分、高機能だという予想をつけていますが、 Oracleの欠点はなんですか? Oracleにできなくて、MySQL、PostgreSQLにできることとか・・・ あと、Oracleは速いですか? MySQLは速いらしいですが、Oracleはそれに比べたらどうなのでしょうか?
質問日時: 2006/01/15 18:10 質問者: kabin2000
ベストアンサー
7
0
-
特定のカラムが更新されたときのみ、そのレコードを別テーブルへ格納するト
特定のカラムが更新されたときのみ、そのレコードを別テーブルへ格納するトリガの作成方法を教えてください・ トリガ名:TEST_UPDATE テーブル名:MV_ORACLE_MV_TEST カラム名:ORAPRIME ORACHANGE ORANAME CHANGENAME 対象カラム:CHANGENAME 格納先テーブル:TRITEST_ORACLE_MV_TEST 作成トリガ: CREATE OR REPLACE TRIGGER TEST_UPDATE after update of CHANGENAME on MV_ORACLE_MV_TEST FOR EACH ROW begin INSERT INTO TRITEST_ORACLE_MV_TEST SELECT MV_ORACLE_MV_TEST.ORAPRIME , MV_ORACLE_MV_TEST.ORACHANGe , MV_ORACLE_MV_TEST.ORANAME , MV_ORACLE_MV_TEST.CHANGENAME FROM MV_ORACLE_MV_TEST where MV_ORACLE_MV_TEST.CHANGENAME = :new.CHANGENAME -- commit; commit; end / テーブルMV_ORACLE_MV_TESTのうち、CHANGENAMEカラムが変更(更新)されたレコードのみを、 TRITEST_ORACLE_MV_TESTテーブルに格納したいと思っております。 この時、他のカラムも一緒に格納することが必要でして、 (もしカラムに変更があった場合、そのカラムも変更する。変更されていない場合は元の値を格納する) そのトリガを上記のように書いたのですが、 コンパイルエラーが発生しました。 どの部分が誤っているのか、ご教授願えませんでしょうか
質問日時: 2010/09/09 12:11 質問者: amatsuno
ベストアンサー
7
0
-
こういうSELECTは可能でしょうか?
テーブルA ---------- コード 区分 金額1 金額2 というテーブルがあるとして、その中から、 区分=1 AND 金額1>=0 の時は金額1、 区分=1 AND 金額1< 0 の時は金額2、 区分=2 AND 金額2>=0 の時は金額2、 区分=2 AND 金額2< 0 の時は金額1 をSELECTしたいのですが、1つのSELECT文で抽出する事は可能でしょうか? SELECT ・・・←ここにどう書けば良いんでしょうか? FROM テーブルA;
質問日時: 2004/08/03 17:45 質問者: discovery
ベストアンサー
7
0
-
複数条件に当てはまる行の抽出をするSQL文の書き方
SQL文の書き方について教えてください。 商品 横 縦 A 1 3 A 1 4 A 2 5 A 3 5 B 1 3 B 1 4 B 1 5 上記表から、商品毎に、縦が最大(第1優先)で、横が最小の行をとってくるというSQLを書いて、以下のように取り出されるようにしたいと考えています。 商品 横 縦 A 2 5 B 1 5 SQL初心者でうまく書けませんでした。 どうかご指導お願いします。
質問日時: 2006/02/10 18:16 質問者: dubro_unico
解決済
7
0
-
並び替えで教えて下さい。
並べ替えで悩んでます。ご教授下さい。 下記のようなA、B、Cというフィールドがあり それぞれデータが入っているとします。 取得する際の並び替えですが、 ABC --------------------- aaa16 bbb15 ccc14 aaa24 bbb26 ccc25 ORDER BY Aとすると・・・ aaa16 aaa24 bbb15 bbb26 ccc14 ccc25 ORDER BY Bとすると・・・ aaa16 bbb15 ccc14 aaa24 bbb26 ccc25 ORDER BY Cとすると・・・ aaa24 ccc14 bbb15 ccc25 aaa16 bbb26 となります。 私がやりたいのは下記の順で並べ替えしたいのです。 ccc14 ccc25 bbb15 bbb26 aaa16 aaa24 つまりORDER BY B、Cの結果の1つ目のレコードの AでGROPE BYするような感じです。 方法をご教授頂きたいと思います。 よろしくお願いします。
質問日時: 2005/04/13 14:22 質問者: wellkarm
ベストアンサー
7
0
-
SELECT と INSERT の速度
素人な質問ですみません。 環境:ORACLE 10g ストアドである値をINSERTする場合、 キー重複でEXCEPRIONに飛ばすのと、SELECTで同キーの件数(0 or 1)を取得して、 O件の場合のみ処理を行うのではどちらのほうが速度は上なのでしょう? ちなみに登録されるテーブルのレイアウトは、 項目(1)NUMBER(8) PK, 項目(2)NUMBER(8) PK, 項目(3)VARCHAR2(256) PK, 項目(4)NUMBER(2) PK, 項目(5)NUMBER(8) って感じです。 よろしくおねがいします。
質問日時: 2007/04/12 13:07 質問者: hiro_sun
解決済
6
0
-
SELECT実行結果のレスポンス改善について
いつもお世話になっております。 Oracle9i+XP(CPU=PentiumCore2Duo,メモリ=2MB)の環境にて、以下のようなSELECT文なのですが、実行結果が出るまでに約45分もかかってしまいます。 何が悪いのか切り分けるために、以下の副問い合わせのみを切り取ってSQLPLUSで実行してみると15件ずつが約10秒おきに返ってくるという現象が確認できたため、おそらくこの副問い合わせではないかと思っております。 データ件数としては、ZAIテーブルが約6万件、MEISAIテーブルが約12万件、VIEW_ROOM_CALENDERビューが約6千件で、それ以外はしれとります。 一応すべてのテーブルのキーにはインデックスがはられているようです。 色々と調べてautotraceにて実行計画などを見てみましたが正直よくわかりませんでした。 テーブル構造やリレーション、カラム数、レコード長など情報が少なく大変申し訳ないのですが必要であれば提示させていただきますので、SQL文がおかしいとか、ネック部分の調べ方とか、なにかヒントのようなものでも結構ですので、どなたかご教授いただけませんでしょうか? 宜しくお願い致します。 select D.KANJYA_NO || ',' || D.NAME || ',' || A.BYOU_NAME || ',' || count(COL_PT) || ',' || count(COL_OT) || ',' || count(COL_ST) from ( -- 副問い合わせ select B.KANJYA_NO as KAN_NO, B.KAIKEI_DATE, G.BYOUTOU_NAME as BYOU_NAME, (case when C.MASTER_CODE in ('01017' , '01022' , '01025') then B.TOTAL_KAISUU else NULL end) as COL_PT, (case when C.MASTER_CODE in ('01019' , '01021' , '01023') then B.TOTAL_KAISUU else NULL end) as COL_OT, (case when C.MASTER_CODE in ('01016' , '01020' , '01024') then B.TOTAL_KAISUU else NULL end) as COL_ST from ZAI&1 B inner join MEISAI&1 C on C.NYUUGAI = B.NYUUGAI and C.KANJYA_NO = B.KANJYA_NO and C.ZAI_NO = B.ZAI_NO and C.KAIKEI_DATE = B.KAIKEI_DATE and B.KAIKEI_DATE Like '&1' || '%' and B.NYUUGAI = 2 and B.KANJYA_NO not like '*%' and C.MASTER_CODE in ('01017','01022','01025','01019','01021','01023','01016','01020','01024') inner join NYUUIN_ROOM E on C.KANJYA_NO = E.KANJYA_NO inner join VIEW_ROOM_CALENDER H on E.KANJYA_NO = H.KANJYA_NO and C.KAIKEI_DATE = H.YYYYMMDD and lpad(E.ROOM_NO,'10','0') = TO_NUMBER(H.ROOM_NO) inner join ROOM_TABLE F on E.ROOM_CODE = F.ROOM_CODE inner join BYT_TABLE G on G.BYOUTOU_CODE = F.BYOUTOU_CODE ) A inner join KANJYA D on A.KAN_NO = D.KANJYA_NO group by D.KANJYA_NO, D.NAME, D.BIRTH, A.BYOUTOU_NAME ;
質問日時: 2009/01/14 03:32 質問者: ryozyryozy
ベストアンサー
6
0
-
OSを再インストールしたら再びOracleの体験版が利用可能になるか
oracle10g 又は11gどちらでもいいのですが無料体験版をインストールしようと思っています。そこで質問なのですが、無料体験版の体験期間終了後にOSを再インストールしたら再び無料体験版が利用可能になるのでしょうか。
質問日時: 2009/07/18 08:29 質問者: tkwavek
ベストアンサー
6
0
-
クライアントPCからのアクセス制限
現在oracle10gでDBを構築し、クライアントサーバでアプリケーションシステムを稼働しています アプリケーションはログインするユーザによってDBへのアクセス範囲を限定できますが SID,ユーザID、パスワードを入れてアクセスするオラクルツールではアクセス範囲を限定できません これに制限をかけることは可能でしょうか(たとえばPC側のプロセスを限定するとか) また、このような制限を可能にする良い案があれば御教示ください。
質問日時: 2010/01/09 10:48 質問者: Kouma-s27
解決済
6
0
-
集計のSQLについて
皆さんの知恵をお借りしたいと思っています。 どなたか、良い案がある方お願いいたします。 以下のテーブルがあります。 (売上テーブル) 品名 金額 購入者 ---------------------------- 鉛筆 20 Aさん 鉛筆 40 Bさん 鉛筆 30 Bさん 鉛筆 30 鉛筆 10 上のテーブルで、品名・購入者を集計キーとして、 金額を集計したい場合、 SELECT 品名,購入者,SUM(金額) FROM 売上テーブル GROUP BY 品名,購入者 というSQL文で, 品名 金額 購入者 ---------------------------- 鉛筆 20 Aさん 鉛筆 70 Bさん 鉛筆 40 という結果が得られると思いますが・・・、 これを、 品名 金額 購入者 ---------------------------- 鉛筆 20 Aさん 鉛筆 70 Bさん 鉛筆 30 鉛筆 10 という結果になるようなSQL文を作りたいのです。 購入者が入っているものについては、品名・購入者で集計して、 購入者が空欄のものは集計しないようにしたいと思っています。 UNIONを使えばできるとは思うのですが、 それ以外の方法で、1回のSQL文でできる方法があれば知りたいと思っています。 よろしくお願いします。
質問日時: 2004/06/21 12:59 質問者: cucsna
ベストアンサー
6
0
-
場合によって条件を変えるSQL
ORACLE環境下、SQLにて以下のような条件でデータを取得したいです。 AテーブルとBテーブルを結合して、Bテーブルから名称を取得する。 <Aテーブル> id (key) 番号1 番号2 A01 001 n0001 A02 null n0002 <Bテーブル> code(key) 名前 番号1 番号2 c0001 太郎 001 n0001 c0002 次郎 002 n0002 (1)A.番号が入力されていれば A.番号1=B.番号1 AND A.番号2=B.番号2を条件にする (2)A.番号が入力されていなければ A.番号=B.番号を条件からはずす。 A.番号2=B.番号2 のみで検索する。 <欲しい結果> A01→太郎を取得 A02→次郎を取得 入力されていたら条件に加え、入力されていなかったら 条件から外す、というSQLを教えていただけないでしょうか。 よろしくお願いいたします。
質問日時: 2011/08/23 00:57 質問者: apoc
解決済
6
0
-
既存DBのテーブル情報をCREATE文として取得するには
こんにちは。 既存DBのテーブル情報をCREATE文として取得する方法はありますでしょうか? CREATE文として欲しいのは、他のサーバに開発用として同じDBを構築しようと考えているからです。 よろしくお願いします。
質問日時: 2004/10/18 19:11 質問者: touge123
ベストアンサー
6
0
-
外部結合のパフォーマンスチューニングできますか
下のSQL文がパフォーマンスが非常に悪いです。 何かチューニングする方法ありませんか。 Oracle8.1.7 OSはWin2000serverSP2 ◇SQL文 SELECT A.HINCD , B.TANCD ,A.SIZE,A.COLOR FROM TB_TBLA A ,TB_TBLB B WHERE A.KA_CD = B.KA_CD(+)" AND A.HINCD = B.HINCD(+) AND A.JIGYOCD = 1 AND A.BRCD = 20 AND A.BUCD = 300 TB_TBLAの主キーは、JIGYOCD、BRCD、BUCDです。 TB_TBLBの主キーは、KA_CDです。 また、TB_TBLAの件数は、約10万件、TB_TBLBは3万件だとしたら、 読み込み件数は10万*3万件となるのでしょうか。 よろしくお願いします。
質問日時: 2008/04/05 11:38 質問者: kuriosprj
ベストアンサー
6
0
-
SQL文を教えてください。
社員テーブルと障害テーブルA、Bがあります。 社員テーブル(社員ID、発見者名、・・・etc) 障害テーブルA(障害番号、発生日、・・・etc) 障害テーブルB(事象、ステータス、対応内容、・・・etc) 社員ID、障害番号、事象、ステータスのSELECT結果を 一つのcsvファイルとして取得するプログラムを作成したいのです。 「複数のテーブルから」「任意の」列を指定して、 検索結果を「csvに出力」する方法がどうしても分かりません。 どのようなSQLになるでしょうか? うまく伝わっているでしょうか? よろしくお願いします。
質問日時: 2011/03/20 17:12 質問者: verlnne25
解決済
6
0
-
UPDATE文を教えてください
管理テーブルというテーブルがあります。 フィールド構成は、会社コード(6)/支店コード(2) SEQNO(2)/管理年月(6)/管理番号(8)となっていて、SeqNOがKeyとなっています。 会社コード|支店コード SeqNO 管理年月 管理番号 (1) 000001| 01 | 01 | 200503 |00000000 (2) 000001| 01 | 02 | 200503 |00000000 (3) 000001| 02 | 03 | 200503 |00000000 (4) 000001| 02 | 04 | 200503 |00000000 (5) 000001| 01 | 05 | 200502 |11111111 (6) 000001| 01 | 06 | 200502 |11111111 (7) 000001| 02 | 07 | 200502 |22222222 (8) 000001| 02 | 08 | 200502 |22222222 こんな感じでデータがあります。 会社コード/支店コード/管理年月が同じものの管理番号は、必ず同じデータが入ります。 これは、実際のデータはさらに複雑ですが、簡単にするため変なデータに思えると思います。まあそこは気にしないでください。 実は、(1)~(4)の管理番号がミスでデータが落ちてしまいました。 管理テーブルの管理年月が200502の会社コードと支店コードが同じ管理番号を同じデータの200503の管理番号に更新するSQLを教えてください。 一応作ってみましたが、 ”単一行副問合せにより2つ以上の行が返されます。”が出てしまって・・ 分からないので教えてください。 UPDATE 管理テーブル T1 SET T1.管理番号 = (SELECT T2.管理番号 FROM 管理テーブル T2 WHERE T2.会社コード = T1.会社コード AND T2.支店コード = T1.支店コード AND T2.管理年月 = 200502) WHERE (T1.会社コード,T1.支店コード) IN (SELECT T3.会社コード,T3.支店コード FROM 管理テーブル T3 WHERE T3.管理年月 = 200503 GROUP BY T3.会社コード,T3.支店コード)
質問日時: 2005/03/29 14:50 質問者: NYAN99
解決済
6
0
-
一気に複数のレコードをinsertする方法について
SQLのinsert文で一気に複数のレコードを挿入する方法ってありますか? SQL*LoaderとPL/SQL以外でお願いします。
質問日時: 2007/11/28 11:39 質問者: no_bearing
解決済
6
0
-
解決済
6
0
-
Oracle10g・・ODBCで接続できない
Oracle10gのStandardEditionをサーバーにインストールし、データベースを作成しました。 それに対してクライアントにも10gをインストールし、ローカルメソッド名を設定して、接続テストも通りました。SQL*Plusを起動して接続することもできました。 ですが、Accessを使ってテーブルの中身を見ようと思い、ODBCを設定したのですが接続テストをすると固まってしまいます。どうすればODBCで接続できるようになるのでしょうか?
質問日時: 2005/07/25 16:51 質問者: ms06szaku2
ベストアンサー
6
1
-
ファイルへの書き込みができない
ファイルへの書き込みができない 実行時エラーは表示されないのですが、ファイルへ出力されません。 コードは以下のようにしています。 よろしくお願いします。 declare FILE_HANDLE utl_file.file_type; STR varchar2(1023); begin -- 書き込みモードでファイルオープン FILE_HANDLE := UTL_FILE.FOPEN('c:\tmp','test.txt','W'); STR := 'test'; -- ファイルへ出力 UTL_FILE.PUT(FILE_HANDLE,STR); -- ファイルのクローズ -- UTL_FILE.FCLOSE(FILE_HANDLE); exception when others then dbms_output.put_line('その他エラー'); end; /
質問日時: 2010/10/13 15:52 質問者: shaka001
ベストアンサー
6
0
-
引数によってwhere句を切り替える方法
PL/SQLで開発しています。 一つのテーブルで検索条件(引数)によって検索するカラムを切り替えたいのですが、 カーソルをいくつも作らず、 一つのSELECT文で書く方法ってないのでしょうか? OR条件などを使って考えたのですが、うまくいきません。。 (例) SELECT * FROM 売り上げ情報 WHERE (品番 = 引数1 OR 商品名 = 引数2) 引数が無い時は"引数1"・"引数2"がNULLになるので、 カラムがPKなどになっていれば引数が片方しかなくてもうまく動作するのですが、 制限などがかかっていなくNULLで登録されているデータが存在すると余計なデータまでとれてしまいます。 DECODEなどでカラムに存在しない値に変換しようかとも思ったのですが、 なんか不自然な気が@@; いい方法があれば教えてください。
質問日時: 2007/09/12 02:18 質問者: saikano07
ベストアンサー
6
0
-
date型のインデックス
インデックスが貼ってあるdate型のカラムがあるのですが、うまくインデックスがあたりません。 検索条件を下記のようにしています。 working_date = TO_DATE('2010/11/26') date型は秒数を保持していることが影響しているのでしょうか? ファンクションインデックスを貼って、下記のようにすればインデックスは当たってます。 TO_DATE(working_date,'YYYY/MM/DD') = '2010/11/26' ご存知のかたがおられましたら教えてください。
質問日時: 2010/11/26 22:27 質問者: cosboki
ベストアンサー
6
0
-
オフライン中のトランザクションについて
表領域をオフラインにした場合、オフライン前に開始されたトランザクションは有効ですが、オフラインのまま、コミット、または、ロールバックして、表領域をオンラインにしても、整合がとれるのはなぜなのでしょうか。 コミットするか、ロールバックするかの情報はどこに保持してるのか疑問です。 (オフラインにしてから、ファイルをリネームし、 トランザクションをロールバックして、 ログをアーカイブし、DB再起動後に、ファイル名を戻して、 オンラインにすると、ちゃんとロールバックされています。 同じ操作で、コミットするとちゃんとコミットされています。 知っている方には当然なのでしょうが、私にとっては、不思議です) 詳しい方がみえましたらご教授お願いいたします。
質問日時: 2006/12/22 22:58 質問者: taro12306
ベストアンサー
6
0
-
SQL文の構築について教えてください。
SQL文の構築について教えてください。 こんばんは。Oracle9iのデータベース検索で、どうしてもSQLが思い浮かばないため、質問させていただきます。 ■Table ID NUM SIGN 100 1 A 100 2 A 101 1 A 102 1 B 103 1 B 104 1 C 首キーはID、NUMです。 上記のようなテーブルで、 IDが同一かつNUMが最大のもので、 SIGNが同一のレコードで、2件以外のレコードを抽出したいです。 (例表でいうと、ID104のレコードのみが抽出されるようにしたい) すこし急ぎなんですが、SQLが得意でお時間がある方、力を貸していただけないでしょうか。 よろしくお願い致します。
質問日時: 2010/04/25 23:10 質問者: yossi0709
ベストアンサー
6
0
-
パスワード認証について
初心者です。 現行では、 ログイン時に「conn / as sysdba」でログインできます。 これって、誰でもsysdba権限でログインできるってことですか? だとしましたら、それをやめたいのですが、パスワード認証の方法を使えばできるのでしょうか? 本やwebサイトを見てやっているのですが、「conn / as sysdba」でログインできてしまい、うまくいきません。 どうしたらいいのでのしょうか?
質問日時: 2005/10/09 21:25 質問者: shin9387
ベストアンサー
6
0
-
ANDとORの正確な理解が出来ません。。
ANDとORの正確な理解が出来ません。。 お世話になっております。 現在、翔泳社の黒本を参考書にOracle11gのSQL基礎Iの学習をしております。 1点、どうしても参考書の解説を読んでも理解できない問題がありまして、 質問いたします。 問題:次のSQL文と同じ結果になるものはどちらか選びなさい SELECT * FROM EMP WHERE DEPTNO NOT IN (10,20); a.SELECT * FROM EMP WHERE DEPTNO <>10 or DEPTNO <> 20; b.SELECT * FROM EMP WHERE DEPTNO <>10 AND DEPTNO <> 20; (正答はb.) 問題のSQL文のWHERE句は「DEPTNOが10でも20でもない物」を取ると理解しています。 そしてa.の文は「10でない、または20でない」、 b.の文は「10でない、かつ20でない」、 と理解しています。 テーブルの中にDEPTNOの値が 「5,10,15,20,25」だったとして、 問題文もa.もb.も5,15,25が取られるのではないか? なぜb.のみが正解なのか?どうしても理解できません。 どういうレコードがあるとき、a. と b.の結果は変わるのでしょうか? 基本的な質問をしてしまいますが、宜しくお願いします。
質問日時: 2010/06/02 16:28 質問者: wendy0303
ベストアンサー
6
0
-
Oracle9iインストール後に
SQL*Plusからデータベース作成を行おうとしたところ 「CREATEコマンドは無効です」 との表示が出てきてしまいます。 サイトなどから色々調べてみてはいますが 一人ではどうしても原因の解明にこぎつけません(T□T) 何か必要な設定があるのでしょうか? どなたかお助けください!!
質問日時: 2006/11/07 10:42 質問者: HANNO
解決済
6
0
-
完全リカバリのUNDOデータの由来、扱いについて教
完全リカバリのUNDOデータの由来、扱いについて教えて下さい。 完全リカバリの大まかな流れとして、 1.リストア 2.アーカイブ、オンラインREDOログでロールフォワード 3.UNDOでロールバック 4.完了 となるかと思いますが、 UNDOデータはどこから持ってころれるのでしょうか? もしUNDO表領域から持ってくるのであれば、ロールフォワード分をロールバック出来るだけのUNDOが残ってる保証はないかもしれない、と疑問を持ちました。 (現実的にはまずないのかもしれませんが) となると、完全リカバリが失敗するケースもあるのでしょうか?
質問日時: 2011/11/19 18:32 質問者: segirl
ベストアンサー
6
0
-
オラクルのテーブルの領域について
色々と探してみたのですが、オラクルのDB全体の大きさとか未使用領域を見ることは解ったのですが、個々のテーブルの領域や未使用領域を見る手段があれば教えてください。データを格納している個別テーブルです。 よろしくお願いします。
質問日時: 2006/01/05 16:44 質問者: papasan88
解決済
6
0
-
データベースの作成
Oracleを勉強し始めました。 今まではWebアプリにAccessを使っていて、Oracleに移行したいと思います。 とりあえず、データベースを作成するのだと思ったのですが、 インストールを終えた状態で、orclというデータベースがすでに出来ていました。(インストールは、マシンを設置した部署の方がしました。) 今後は他の部署もこのOracleにデータを保存するという予定らしいです。Oracleのインストールしたサーバーには、リモート接続が可能で、 管理者権限のパスワードも教えてもらっています。 もし、私がアクセスの住所録というデータベースファイル(jyuushoroku.mdb)を移行したいとすると、jyuushoroku というデータベースを新たに作成するのですよね? データベースは複数にあっても構わないのですか?アクセスと違い、データベースを作成する時にとても大掛かりなのでとまどってしまいました。 インストール時に作成したorclというデータベースには、パスワードが 設定されていて、接続ができません。自分の作成したデータベースには、独自のパスワードを設定して、それを使って接続すればいいのですか?ほんとに初歩的な概念がわからずに申し訳ないです。 よろしくお願いします。
質問日時: 2008/01/15 14:23 質問者: mei0311
解決済
6
0
-
2つのテーブル結合
Oracle10g使用しています。 テーブルAとテーブルBを結合させてデータを取得したいと思っています。 [テーブルA] ID name 1 A 2 B 3 C 4 D [テーブルB] ID SEQ VALUE 1 1 111 2 1 222 2 2 333 3 1 444 4 1 555 4 2 666 4 3 777 テーブルAのキーは[ID]、テーブルBのキーは[ID,SEQ]です。 この二つを連結して以下のように出力したいと思っています。 ID SEQ NAME VALUE 1 1 A 111 2 2 B 333 3 1 C 444 4 3 D 777 テーブルBのデータは同じIDのうち最大のSEQのものを取得したいのですが よいSQLが思いつきません。 よい方法があればご教授ください。 よろしくお願いいたします。
質問日時: 2005/07/04 15:18 質問者: relax7777
ベストアンサー
6
0
-
複数レコードの複数フィールドを一括UPDATE出来ますか?
顧客テーブルを更新テーブルのデータで更新したい。 No.顧客テーブル = No.更新テーブル です。 更新フィールドは、年齢、県 です。 ●更新テーブル No 年齢 県 --- ----- ------- 1 30 埼玉 2 30 埼玉 3 30 埼玉 ●顧客テーブル(現) No 年齢 県 --- ----- ------- 1 20 千葉 2 20 千葉 3 20 千葉 4 20 神奈川 5 20 福岡 ●顧客テーブル(更新後) No 年齢 県 --- ----- ------- 1 30 埼玉 2 30 埼玉 3 30 埼玉 4 20 神奈川 5 20 福岡 この場合、1つのSQLで、複数レコードの複数フィールドを一括でUPDATEは出来ますでしょうか?
質問日時: 2005/02/04 10:52 質問者: taaaaaaa
ベストアンサー
6
0
-
SQLのUPDATE文に関して教えて下さい
SQLのUPDATE文に関して教えて下さい まだまだ初心者で勉強中なのですが、ご教授をお願い致します。 2つのテーブルがあり同じ条件になったレコードのある項目を別のもう片方の項目にセットしたいのですが上手くいきません。 具体的には以下の通りです。 【テーブル1】 品番、 規格、 取引先、 日付 A1 XXX T001 2010/01/01 A1 YYY T002 (空白) B1 XXX T001 (空白) C1 ZZZ T003 (空白) 【テーブル2】 品番、 規格、 取引先、 受入日 A1 XXX T001 2010/01/01 A1 YYY T002 2010/03/01 B1 XXX T001 (空白) テーブル1の「日付」が(空白)のレコードを対象に、 テーブル1の「品番+規格+取引先」とテーブル2の「品番+規格+取引先」が同じな場合、 テーブル1の「日付」項目にテーブル2の「日付」項目をUPDATEしたいと考えています。 結果を以下のようにしたいです。 【テーブル1】 品番、 規格、 取引先、 日付 A1 XXX T001 2010/01/01 A1 YYY T002 2010/03/01 ←ここが今回更新される B1 XXX T001 (空白) C1 ZZZ T003 (空白) 以前この場で教えて頂いたものを参考に以下のような感じで考えていたのですがエラーになります。 update テーブル1 set テーブル1.日付 = テーブル2.受入日 where テーブル1.日付 Is Null and (concat(concat(品番, 規格), 取引先)) in (select (concat(concat(品番, 規格), 取引先)) from テーブル2) ; ERROR at line 1: ORA-00904: "テーブル2"."受入日": invalid identifier set文のところの記述方法がわかりません。 宜しくお願い致します。
質問日時: 2010/03/23 23:24 質問者: hmkk_lala
ベストアンサー
6
0
-
見たことのないINSERT文
お世話になります。 他人の書いたSQLを解析して以下のようなコードを見つけました。 CREATE TABLE OYA ( IDNUMBERNOT NULL, NAMEVARCHAR2(10) ) / CREATE TABLE KO ( IDNUMBERNOT NULL, OYA_IDNUMBERNOT NULL, NAMEVARCHAR2(10) ) / INSERT INTO ( SELECT ID ,OYA_ID ,NAME FROMKO WHEREEXISTS ( SELECT ID FROM OYA WHERE NAME LIKE '%1' ) ) VALUES ( 1 ,1 ,'KODOMO-1' ); INSERT文でテーブル名を指定するかわりにSELECT文を指定しています。 SELECT INSERT文は知っていますが、このような表記は初めてです。 (文法エラーにならないのに驚きました) おそらく意図するところは、ある条件に一致したOYAが存在する場合に、KOをインサートするのだと思いました。 実際は、OYAがなくてもINSERTは実行されてしまいますが。。。 このような表記のINSERT文の説明が書いてあるサイトをご存知の方がいらっしゃいましたら、よろしくお願いします。
質問日時: 2007/04/20 16:15 質問者: dcaqua9999
ベストアンサー
5
1
-
SQL、Oracle どちらが理解しやすい?
今度大学でSQLまたはOracleどちらかの授業、そしてVBの授業を必修でとらなければいけません。が、頭が良いとは言えない私ですのでプログラミング言語やデータベース言語等のコンピューター系言語が関わるシステム系のことは先ほど少し調べてみましたが、さっぱり理解できません。 SQLとOracle、どちらが比較的易しいでしょうか? クラスネームが[Introduction to SQL][Introduction to Oracle]でしたので、恐らくそんな深く突っ込んだところまではやらない・・・と思いたいです。ですがデザインはすこしぐらいはやるみたいです。VBは[VB 1]です。 大学がアメリカの大学ですので、日本語でも何やらわからないものを英語で・・・となると大きな不安が付きまとうのです。(言語自体はアルファベットですが、説明が・・・) また、SQL(Oracle)とVB、どちらを先に履修すればもう片方が理解しやすいよー。などは無いでしょうか?それとも全く別物だからどっちを先に履修しても違いはない、ということでしょうか? やるとなれば日本語のサイトを使いながら必死こいてやります。皆さま少しだけアドバイスをください。
質問日時: 2011/06/11 14:48 質問者: jikitarisu1
ベストアンサー
5
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Oracle】に関するコラム/記事
-
フキノトウ、ワラビ、タラノメなどの「山菜」を若い人は知らない?食べたことない?
春の訪れと共に、八百屋やスーパーには様々な種類の野菜が並ぶ。春野菜といって思い浮かぶのは、「春キャベツ」や「春タマネギ」という人が多いだろう。一方で、「フキノトウ」「ワラビ」「タラノメ」など、かつて春...
-
摘発相次ぐ「モペット」法律的な問題点を弁護士に聞いてみた
電動モーターを搭載し、走行可能な二輪車である「モペット」に関する交通違反が増加しているため、警視庁は10日、東京の渋谷で取り締まりを行った。警視庁によると、昨年、東京都内で「モペット」と呼ばれる電動モー...
-
メダロット:第238話「Vol.238※期間限定公開」
天才メダロッター六葉カガミの戦いを描く「メダロット再~リローデッド~」(漫画:伯林、監修:イマジニア)、20周年を迎えた『メダロット』が新たなストリーでココに再起動!!★全話無料で読める、週刊メダロット通信...
-
寒暖差疲労の予防・改善には「入浴」がおすすめ?ポイントと効果を専門家にきいてみた
季節の変わり目になると、体調を崩す人が少なくない。その原因のひとつは「寒暖差疲労」だといわれている。一日の気温差が7℃以上になると、体温調節を担う自律神経が過剰に働くので、冷え症、肩こり、頭痛、全身倦怠...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLについて教えて下さい。 主キー...
-
副問合せにLIKE文を使う方法はない...
-
データベースのカラムの型がCHAR型...
-
Oracleでの登録するユーザーと、ロ...
-
batファイルでのSQL(oracle)実行...
-
ワークテーブルって何?
-
videopad 無料版 アンインストール
-
バッチファイルで複数フォルダ毎の...
-
SQL ブレーク処理について
-
sqlで質問です。 Aテーブルは店番、...
-
SQLの中上級者へのレベルアップ方法...
-
SELECTによる表の変換方法を教えて...
-
開発対象となるアプリケーションの...
-
Oracleですがsqlで質問です。 サブ...
-
テーブルやカラムの物理名のネーミ...
-
Oracleで文字列型の時間を引き算し...
-
orace SQL文のエラー(ORA-00923: F...
-
私は時々、アイホンを充電する時 パ...
-
SQLでの抽出方法について 以下のよ...
-
SQL抽出方法に悩んでいます④
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
副問合せにLIKE文を使う方法はない...
-
batファイルでのSQL(oracle)実行...
-
oracleのimpdpでORA-39166
-
バッチファイルで複数フォルダ毎の...
-
64bit端末でのOLEDB接続に関して
-
osqleditについて
-
SQLの中上級者へのレベルアップ方法...
-
テーブルやカラムの物理名のネーミ...
-
データベースのカラムの型がCHAR型...
-
orace SQL文のエラー(ORA-00923: F...
-
Oracleですがsqlで質問です。 サブ...
-
【SQL】IN句内のサブクエリが重複し...
-
ORA-14452について
-
SQL 2つのテーブルとSUBSTRINGの条...
-
複数レコードの完全一致
-
質問です。 下記のテーブルとデータ...
-
[Oracle] UPDATE分の副問い合わせに...
-
Oracleで文字列型の時間を引き算し...
-
SQLについて教えて下さい。 主キー...
-
続.ORACLEのSELECTのソートについ...
おすすめ情報