MZ-80B の回答履歴
- GROUP BYの記述方法について
GROUP BYの記述方法について教えてください --------------------- 受注データ(テーブル) --------------------- 品目CD 受注数 00001 10 00001 10 00002 20 00002 15 --------------------- 品目マスタ(テーブル) --------------------- 品目CD 品目名 00001 えんぴつ 00002 けしごむ 00003 色鉛筆 上記二つのDBから、品目ごとの受注数の合計を取得するときのSQL文として、どうするのが正しいのでしょうか? --------------------- 欲しい結果 --------------------- 品目CD 品目名 受注数 00001 えんぴつ 20 00002 けしごむ 35 (考えられるSQL) CASE1:受注データの品目CDと品目マスタの品目名のグループ化 SELECT A.品目CD, B.品目名, SUM(A.受注数) FROM 受注データ A, 品目マスタ B WHERE A.品目CD = B.品目CD GROUP BY A.品目CD, B.品目名 CASE2:受注データをグループ化した結果と品目マスタを結合 SELECT X.品目CD, X.受注数合計, Y.品目名 FROM (SELECT 品目CD, SUM(受注数) FROM 受注データ GROUP BY 品目CD)X,品目マスタ Y WHERE X.品目CD = Y.品目CD CASE3:品目マスタの品目CDと品目名のグループ化 SELECT B.品目CD, B.品目名, SUM(A.受注数) FROM 受注データ A, 品目マスタ B WHERE A.品目CD = B.品目CD GROUP BY B.品目CD, B.品目名 レスポンスも含めて教えてください。 よろしく、お願いします。
- 表領域拡張の必要性
Windows2003サーバ上でORACLE10g リリース2を使っています。 ORACLEのインストールは、ほぼデフォルト設定にしてあります。 ORACLEのエンタープライズマネージャで表領域を見ると SYSAUX サイズが550Mで使用量が540M、セグメント領域の管理=自動 SYSTEM サイズが560Mで使用量が555M、セグメント領域の管理=手動 となっていました。 オーバーフローしないか心配なのですが、セグメント領域を拡張する必要はあるのでしょうか?。 ちなみにテーブルの表領域はUSERS で残りも60%以上あります。 よろしくお願いいたします。
- ベストアンサー
- Oracle
- Johnny5555
- 回答数2
- 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問に同じ問題が載っています。
- 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問に同じ問題が載っています。
- ROWIDが文字化け?してしまう
皆様のお力をお貸し頂きたく思います。 Oracleデータベースについてです。 突然、ROWIDの表示が以下の様になってしまいました。 SQL> SELECT ROWID FROM BUSYO; ROWID ------------------ AAAF+0AAFAAAABDAAA AAAF+0AAFAAAABDAAB AAAF+0AAFAAAABDAAC AAAF+0AAFAAAABDAAD 通常なら結果として、 ROWID ------------- 1 2 3 4 と表示されるはずです。 昨日までは数字で表示されていました。 他のカラムに格納されているデータは全く問題ありません。 日本語データも含まれていますが、問題なく表示されています。 TABLEのアナライズ、INDEXの再構築、インスタンスの再起動を 試してみましたが効果なし。 数字の表示に戻す方法を教えて頂きたく思います。 補足情報が必要な場合はお答え致します。 よろしくお願いします。 環境: Solaris 8 Oracle8.1.7
- ベストアンサー
- Oracle
- hiropiro_n
- 回答数1
- drop user できない。ORA-01940
drop user *** cascade;でユーザをドロップしようとしても、「ORA-01940: cannot drop a user that is currently connected」というメッセージが表示されて一向に削除できません。 この現象は数週間前からで、その間PCを再起動したりサービスを再起動したりしていますが一向にできません。 他のユーザは削除できました。 どうしたらよいでしょう?
- distinct句を使わずレコード総計を求めたい
DB初心者です。 DISTINCT句を使わずに、group by句を使って 重複データを除いたレコード総計を求めたいと思い、 下記の用にSQL文を書いたのですがうまくいきません。 oracleではなく、DB2を使っているのですがSQL文として 可能なのか教えていただければと思い質問を致しました。 <例> テーブル名:商品DB 商品名 a a b b c だったら、重複を除いたレコード数は3になりますが、 select count(*) from 商品DB group by 商品名 とすると 2 2 1 となり、それぞれの商品の合計数が出てしまうので select count(*) from ( select 商品名 from 商品DB group by 商品名) と副問合せ(でよいのでしょうか?)をしてみると 入力が予想されるトークンには "AS" が含まれている可能性があります。とエラーになってしまいました。
- ベストアンサー
- Oracle
- shibataro3
- 回答数4
- distinct句を使わずレコード総計を求めたい
DB初心者です。 DISTINCT句を使わずに、group by句を使って 重複データを除いたレコード総計を求めたいと思い、 下記の用にSQL文を書いたのですがうまくいきません。 oracleではなく、DB2を使っているのですがSQL文として 可能なのか教えていただければと思い質問を致しました。 <例> テーブル名:商品DB 商品名 a a b b c だったら、重複を除いたレコード数は3になりますが、 select count(*) from 商品DB group by 商品名 とすると 2 2 1 となり、それぞれの商品の合計数が出てしまうので select count(*) from ( select 商品名 from 商品DB group by 商品名) と副問合せ(でよいのでしょうか?)をしてみると 入力が予想されるトークンには "AS" が含まれている可能性があります。とエラーになってしまいました。
- ベストアンサー
- Oracle
- shibataro3
- 回答数4
- distinct句を使わずレコード総計を求めたい
DB初心者です。 DISTINCT句を使わずに、group by句を使って 重複データを除いたレコード総計を求めたいと思い、 下記の用にSQL文を書いたのですがうまくいきません。 oracleではなく、DB2を使っているのですがSQL文として 可能なのか教えていただければと思い質問を致しました。 <例> テーブル名:商品DB 商品名 a a b b c だったら、重複を除いたレコード数は3になりますが、 select count(*) from 商品DB group by 商品名 とすると 2 2 1 となり、それぞれの商品の合計数が出てしまうので select count(*) from ( select 商品名 from 商品DB group by 商品名) と副問合せ(でよいのでしょうか?)をしてみると 入力が予想されるトークンには "AS" が含まれている可能性があります。とエラーになってしまいました。
- ベストアンサー
- Oracle
- shibataro3
- 回答数4
- oracleのDate型
Ceate table test( field1 date ) insert into test values(current_timestamp); 上記の処理でDate型の列にcurrent_timestampデータを入れても、年月日までしかはいらないのですが、yyyy/mm/dd hh24:mi:ssの形で はできないのでしょうか?oracleは10gです。
- 締切済み
- Oracle
- noname#246722
- 回答数3
- Oracleの監査設定の方法について
Oracle9iを使用しています。 参考URLなどを基に、oracleの監査設定をしたのですが失敗します。 質問:「init.ora」に”audit_trail=DB”を追記すると参考URLに書いてあるのですが、どこに追記すれば良いのか分かりません。 以下は、私のPC環境の [C:\oracle\admin\orcl\pfile] に保存された「init.ora.1022007114158」ファイルです。 ############################################################################## # Copyright (c) 1991, 2001, 2002 by Oracle Corporation ############################################################################## ########################################### # MTS ########################################### dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)" ########################################### # Redo Log and Recovery ########################################### fast_start_mttr_target=300 ########################################### # Miscellaneous ########################################### aq_tm_processes=1 compatible=9.2.0.0.0 ########################################### # Instance Identification ########################################### instance_name=orcl ########################################### # Optimizer ########################################### hash_join_enabled=TRUE query_rewrite_enabled=TRUE star_transformation_enabled=TRUE ########################################### # Cursors and Library Cache ########################################### open_cursors=300 ########################################### # Cache and I/O ########################################### db_block_size=8192 db_cache_size=16777216 db_file_multiblock_read_count=32 ########################################### # System Managed Undo and Rollback Segments ########################################### undo_management=AUTO undo_retention=10800 undo_tablespace=UNDOTBS1 ########################################### # Job Queues ########################################### job_queue_processes=10 ########################################### # Security and Auditing ########################################### remote_login_passwordfile=EXCLUSIVE ########################################### # Sort, Hash Joins, Bitmap Indexes ########################################### hash_area_size=1048576 pga_aggregate_target=33554432 sort_area_size=1048576 ########################################### # Database Identification ########################################### db_domain="" db_name=orcl ########################################### # File Configuration ########################################### control_files=("C:\oracle\oradata\orcl\CONTROL01.CTL", "C:\oracle\oradata\orcl\CONTROL02.CTL", "C:\oracle\oradata\orcl\CONTROL03.CTL") ########################################### # Processes and Sessions ########################################### processes=150 ########################################### # Pools ########################################### java_pool_size=33554432 large_pool_size=8388608 shared_pool_size=50331648 ########################################### # Diagnostics and Statistics ########################################### background_dump_dest=C:\oracle\admin\orcl\bdump core_dump_dest=C:\oracle\admin\orcl\cdump timed_statistics=TRUE user_dump_dest=C:\oracle\admin\orcl\udump 参考URL http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/sec/mars/marslcug/chapter11/17020_01_11.shtml http://oracle.na7.info/21_kansa.html http://www005.upp.so-net.ne.jp/khayashi/platinum/02.html http://www.insight-tec.com/mailmagazine/ora3/vol163.html
- 末尾に空白を含む項目の扱い
先日ひょんなことで、MSAccessは末尾に半角空白を含むデータは、 結合の際に半角空白を無視して結合することに気付きました。 つまり結合条件でWHERE TBL1.COL1=TBL2.COL1 と記述した場合、 TBL1.COL1が '0001' でTBL1.COL2が '0001 ' であっても問題なく 結合されるということです。 それでORACLEの場合はどうだろうと疑問に思ったのですが、環境が 無いため試せずにいます。環境をお持ちの方は結果を教えてください。 お手数ですが、実験したORACLEのバージョンも教えてください。
- oracleが入っているサーバー同士の同期について
oracle初心者の為教えてください。 現在DBサーバーでoracle10gSEを使用しています。 新たにDBサーバーを導入しoracle10gSEをインストールしますが サーバー間同士で同期を取るためになぜRACやレプリケーションという手法をとらなくてはならないのでしょうか? その必要性を問われ回答に困っています。 SEにはもとからその機能がないと回答すればよいのでしょうが それでは納得してくれそうにありません。 どうかご教示願います。
- ベストアンサー
- Oracle
- damudamujin
- 回答数3
- Oracle10gのリリースの確認の仕方
質問のタイトルどおりなのですが、Oracle10gのリリースの確認の仕方をどんな方法でも、いくつでもいいので教えてください^^; お願いします(;´д⊂)
- SQLの結果に納得できません。どなたか解説していただけないでしょうか。
あるSQLの実行結果がどうも納得できないのです。 こちらで詳しい方に解説していただけたらと思い投稿しました。 以下SQL1の実行結果ですが、なぜ'A'の後ろに半角スペースが入ってしまうのでしょうか? とりあえず私はSQL2のように書き直して本番のSQLは対応しました。 しかし、なんともスッキリできないのです・・・。 (前提条件) customerテーブルは10件あるとします。 (SQL1) select 'A'|| (select to_char(count(*),'000') from customer) expr1 from dual; (SQL1結果) 'A'の後ろになぜか半角スペースが入ります。 expr1 ------- A 010 (SQL2) select 'A'|| trim((select to_char(count(*),'000') from customer)) expr1 from dual (SQL2結果) 'A'の後ろに半角スペースは入りません。 expr1 ------- A010 以上よろしくお願いします。
- BLOBやCLOBのパフォーマンスを改善したい
Oracle 10g R2 を使用し、開発を行っていますが、 パフォーマンス改善という壁にぶつかっており、 お助けいただきたいと思いました。 要求定義の段階で、可変長のバイナリデータを扱う必要があり、 テーブル内には BLOB フィールドを用意しております。 レコード件数にすると、全体でおおよそ 500,000 ~ 1,000,000 件に なります。(導入先によって上記範囲内で変動する) データはさらに区分によって判別されるようになっております。 プログラムから投入する SQL 文については、 最適化を行っておりまして、最高のパフォーマンスが得られる であろう構文になっておりますし、テーブルの設計についても、 検索条件となる項目へのインデックス設定を行っています。 現状としてプログラムの中でボトルネックとなっているのは、 BLOB データを Fetch するタイミングなんです。 開発環境は、C#.NET+ODP.NET なんですけど、ミドルウェアは、 oo4o を使った場合でも、Microsoft の Oracle のドライバを 使用したときでも同じ部分でボトルネックになっていました。 ちなみに、BLOB をやめて、CLOB にした場合も、 CLOB データを Fetch する部分がボトルネックになっていました。 テスト段階なのでバイナリデータが 4 KB 未満ですが、 これを VARCHAR2(4000) のフィールドに Base64文字列などで 格納した場合は、LOB データの Fetch はありませんので、 かなり高速な処理が実現できるのですが、実際の運用では、 4 KB を超えるようなバイナリデータが普通に現れてきます。 なので、VARCHAR2 でのデータベース設計ができない状態です。 そもそも、この BLOB フィールドや CLOB フィールドのデータを Fetch する速度を向上させること、というのは可能なのでしょうか? ちなみに、Oracle サーバ側の設定は一切行っておりません。
- BLOBやCLOBのパフォーマンスを改善したい
Oracle 10g R2 を使用し、開発を行っていますが、 パフォーマンス改善という壁にぶつかっており、 お助けいただきたいと思いました。 要求定義の段階で、可変長のバイナリデータを扱う必要があり、 テーブル内には BLOB フィールドを用意しております。 レコード件数にすると、全体でおおよそ 500,000 ~ 1,000,000 件に なります。(導入先によって上記範囲内で変動する) データはさらに区分によって判別されるようになっております。 プログラムから投入する SQL 文については、 最適化を行っておりまして、最高のパフォーマンスが得られる であろう構文になっておりますし、テーブルの設計についても、 検索条件となる項目へのインデックス設定を行っています。 現状としてプログラムの中でボトルネックとなっているのは、 BLOB データを Fetch するタイミングなんです。 開発環境は、C#.NET+ODP.NET なんですけど、ミドルウェアは、 oo4o を使った場合でも、Microsoft の Oracle のドライバを 使用したときでも同じ部分でボトルネックになっていました。 ちなみに、BLOB をやめて、CLOB にした場合も、 CLOB データを Fetch する部分がボトルネックになっていました。 テスト段階なのでバイナリデータが 4 KB 未満ですが、 これを VARCHAR2(4000) のフィールドに Base64文字列などで 格納した場合は、LOB データの Fetch はありませんので、 かなり高速な処理が実現できるのですが、実際の運用では、 4 KB を超えるようなバイナリデータが普通に現れてきます。 なので、VARCHAR2 でのデータベース設計ができない状態です。 そもそも、この BLOB フィールドや CLOB フィールドのデータを Fetch する速度を向上させること、というのは可能なのでしょうか? ちなみに、Oracle サーバ側の設定は一切行っておりません。
- BLOBやCLOBのパフォーマンスを改善したい
Oracle 10g R2 を使用し、開発を行っていますが、 パフォーマンス改善という壁にぶつかっており、 お助けいただきたいと思いました。 要求定義の段階で、可変長のバイナリデータを扱う必要があり、 テーブル内には BLOB フィールドを用意しております。 レコード件数にすると、全体でおおよそ 500,000 ~ 1,000,000 件に なります。(導入先によって上記範囲内で変動する) データはさらに区分によって判別されるようになっております。 プログラムから投入する SQL 文については、 最適化を行っておりまして、最高のパフォーマンスが得られる であろう構文になっておりますし、テーブルの設計についても、 検索条件となる項目へのインデックス設定を行っています。 現状としてプログラムの中でボトルネックとなっているのは、 BLOB データを Fetch するタイミングなんです。 開発環境は、C#.NET+ODP.NET なんですけど、ミドルウェアは、 oo4o を使った場合でも、Microsoft の Oracle のドライバを 使用したときでも同じ部分でボトルネックになっていました。 ちなみに、BLOB をやめて、CLOB にした場合も、 CLOB データを Fetch する部分がボトルネックになっていました。 テスト段階なのでバイナリデータが 4 KB 未満ですが、 これを VARCHAR2(4000) のフィールドに Base64文字列などで 格納した場合は、LOB データの Fetch はありませんので、 かなり高速な処理が実現できるのですが、実際の運用では、 4 KB を超えるようなバイナリデータが普通に現れてきます。 なので、VARCHAR2 でのデータベース設計ができない状態です。 そもそも、この BLOB フィールドや CLOB フィールドのデータを Fetch する速度を向上させること、というのは可能なのでしょうか? ちなみに、Oracle サーバ側の設定は一切行っておりません。
- SolarisへのOracleインストール
SolarisへOracle10gをインストールするのですが、 コマンドラインベースでインストールすることは可能なのでしょうか? XWindowでインストーラを立ち上げてインストールすることは普通に できますが、ラックアマウントなどフレームバッファを搭載していない 機種などでは、フレームバッファのない機種単体でインストールできるものなのでしょうか? 仕方なくフレームバッファ搭載機種へXをとばしてインストールする 事しかできません。