Oracle 質問総合スレ2
at DB
1:NAME IS NULL
07/11/11 09:59:59 CkUvZ6Yh
◆前スレ
Oracle 質問総合スレ
スレリンク(db板)
◆公式サイト
OTN-J
URLリンク(otn.oracle.co.jp)
OTN
URLリンク(www.oracle.com)
2:NAME IS NULL
07/11/11 10:48:20 nV8gYVk+
>>1
乙
3:NAME IS NULL
07/11/11 10:50:51
んで・・ジュースは飲んだのか?w
4:NAME IS NULL
07/11/11 11:28:23
>>1
乙。
毎回の事だけど補足ね。
OTNからダウソ出来るソフトは、使用期限がついているものの、これは紳士協定に
なっていて、機能的に使えなくなるというものではない。
5:NAME IS NULL
07/11/13 01:49:50
普通にoracle.comからDownloadすればいいと思うよ。
今ならOracle 11gが手に入るわけだし。
6:NAME IS NULL
07/11/13 13:34:17
項目テーブル:項目コード(PK)、値
というテーブルがあり、項目の値を集計しないといけません。
例えば集計項目1番は
項目コード1の値 * 項目コード2の値 + 項目コード3の値
集計項目2番は
(項目コード2の値 + 項目コード3の値) / 項目コード1の値
というように求めます。
このような条件の時、DB内でうまく演算の順序を保持し、計算結果を
出せるような仕組みって可能でしょうか?
7:NAME IS NULL
07/11/13 13:35:55
>>6
( ^ω^)つ View
8:NAME IS NULL
07/11/13 13:40:44
>>7
ですよねーorz
+、−だけだったらできるんですけど…orz
9:NAME IS NULL
07/11/13 21:33:42 win9bqJG
dete型で年、月、日の値を持っておいて、
select * from テーブル名を実行した時に
デフォルトで月だけを表示するようにって出来きますか?
10:NAME IS NULL
07/11/13 23:33:05
>>9
SQL> alter session set nls_date_format ='MON';
Session altered.
SQL> select sysdate from dual;
SYS
---
NOV
11:NAME IS NULL
07/11/13 23:49:21
>>10
ありがとうございます。
それだと全てのテーブルに対して月だけを表示する形になるんですよね?
特定のテーブルの特定のカラムに対して限定すると言う
やり方はないのでしょうか?
12:NAME IS NULL
07/11/13 23:52:04
>>11
( ^ω^)つ View
13:NAME IS NULL
07/11/14 00:06:21
>>12
やっぱViewくらいしかないですよね・・・
ありがとうです><
14:NAME IS NULL
07/11/16 23:32:36 MwFc3JH0
shutdownの即時モードに時間がかかってるんだけど、
原因にはどういうものがありますか?
15:NAME IS NULL
07/11/17 00:31:29
DB_CACHE_SIZEが大きい場合は、
データベースバッファキャッシュ内の更新済みブロックを
データファイルに書き戻す処理に時間がかかる。
スケジュールで落とすなら、shutdown immediateする10分ぐらい前に
alter system checkpointを打つのが定番。
ただshutdown immediateが遅い/ハングする系の不具合がいくつかあるから
一度サポートに聞いてみたほうがいいかもね。
16:NAME IS NULL
07/11/17 01:58:10
>>14
9i以上ならFAST_START_MTTR_TARGETをきちんと指定して、checkpointを調整するようにしろ。
9i以上ならこまめにチェックポイント取っている方が早かったりする。
redologのタイミングでチェックポイント取るのは8iまでのテクニックだな。
17:NAME IS NULL
07/11/17 22:35:00
LIMITって無いの?
18:NAME IS NULL
07/11/18 00:22:09
>>17
何の?
19:NAME IS NULL
07/11/18 02:30:02
>>18
SELECTの結果をちょん切るやつ
20:NAME IS NULL
07/11/18 03:00:24
>>19
じゃあ ROWNUM で。
今度は質問はわかりやすく書いてね。
21:NAME IS NULL
07/11/18 11:50:41
LIMITはMySQL。TOPだとMS SQL Server。
22:NAME IS NULL
07/11/19 19:11:06
>>20
8i以降ならROW_NUMBERの方が自由度が高くないか?
23:NAME IS NULL
07/11/19 20:57:48
>>22
ROW_NUMBER() は遅くなることもあるからなぁ。
24:NAME IS NULL
07/11/19 23:26:26 e/HNJ/vE
Oracleのパッケージで、SYS_REFCURSORを複数のプロシージャで使いまわすってできますか?
create or replace package aaa is
procedure testA( cur1 out sys_refcursor, cur2 out sys_refcursor, cur3 out sys_refcursor);
procedure Test1( cur1 out sys_refcursor);
procedure Test2( cur2 out sys_refcursor);
procedure Test3( cur2 out sys_refcursor);
end;
こんな感じでパッケージがあって、testA がアプリ側からCallされます。
Test1〜Test3はそれぞれ別のテーブルからデータを取得します。
まずtestA でTest1をCallし、その戻り値を判定し、以降の処理を行う。。。って感じなのですが、
create or replace package body aaa is
procedure testA( cur1 out sys_refcursor, cur2 out sys_refcursor, cur3 out sys_refcursor)
is
begin
Test1( cur1 out sys_refcursor) ;
end ;
ここで、cur1 の中身を見たいんです。
FETCHとかすればいいのかなと思っても、エラーになります。
なんかいい方法ありませんか?
なんでこんな作りなのかとか言われても答えられません。
そういうポリシーらしいです。
25:NAME IS NULL
07/11/19 23:49:49
>>24
面倒かもしれないが、一回取ってきた値をどっかの表に格納して、それを他から
参照するようにでもしたら?
26:NAME IS NULL
07/11/20 00:06:17 C4WLKplh
>>25
それのやり方がいまいちわからんのです。
cur_temp sys_refcur ;
って定義して、 cur_temp := cur1 ;
みたいにはやってみたんですが、
cur1の中身が消えちゃうんですよね。。。。
oracle難しい。。。。。
27:NAME IS NULL
07/11/20 03:26:13
>>26
cur_temp sys_refcur ; と前もって宣言しておいて、それからPL/SQLを実行してんだよね?
28:NAME IS NULL
07/11/20 17:35:53
utPLSQL って 2005年で更新止まってるけど、まだ使用できますか?
29:NAME IS NULL
07/11/20 20:29:38
SYSAUXが増えつづけて止まらないんだけどなんで?
30:NAME IS NULL
07/11/20 20:35:16 wWhiZNbu
パソコンショップならここ!!
URLリンク(want-pc.com)
31:NAME IS NULL
07/11/21 00:17:52
>>29
きちんとAWRのPurge Jobをスケジュールしているか?
32:NAME IS NULL
07/11/21 00:21:09
純粋なOracleの質問ではないかもしれませんが、
Oracleマスタープラチナまでいくには費用はどれくらいかかるものなのでしょうか?
ブロンズ・シルバー・ゴールド・プラチナと、段階ごとに教えてくだされば助かります。
宜しくお願いします。
33:NAME IS NULL
07/11/21 00:54:56
実行計画ってなに?
MySQLに例えておはなししてはくれまいか
34:NAME IS NULL
07/11/21 03:27:25
>>32
根性と気合さえあれば、ゴールドまでは実機がなくても卓上の勉強だけで
取ろうと思えば取れる。
ただゴールドを取るために、最低でも試験を5つぐらい受けなくてはならなくて、
各試験毎に受験料が1万5千円ずつぐらいかかったと思った。
まあ、詳しくは以下で。
URLリンク(www.oracle.com)
35:NAME IS NULL
07/11/21 03:30:42
>>33
簡単に言うとSQLがどういった順序で実行されているかということ。
最初に索引のスキャンがあって、次に目的のデータブロックが読み込まれて
いるといった様な事が、この実行計画を見れば分かる訳。
表や索引の分析が行われていないために、全表走査が走っているなんて
ことも分かる。
36:NAME IS NULL
07/11/21 04:10:25 msoO2PlP
ユーザー単位でデータベースを削除したいんですかどうすればいいんですか?
コマンドプロンプトから行える方法を探しています
ユーザー単位でインポートしたdmpファイルをいれたいんで
一度削除したかったのですが
37:NAME IS NULL
07/11/21 04:59:17
>>35
explainみたいなもの?
38:NAME IS NULL
07/11/21 06:33:21 TLAHprir
>>32
試験費用については>>34の言っているとおりだが、ゴールドについては
研修で要履修コースを受ける必要があるので、その費用として
更に最低でも20万円ぐらい必要。
プラチナについてはゴールドを取得している状態からだと、要履修コースを
2つ受けて、さらに試験費用が20万円ぐらいなので、最低でもだいたい60万円ぐらい必要。
なにも持っていない状態からプラチナまで取ろうとすると試験を全部一発で合格しても
100万円近くかかるということになる。
39:NAME IS NULL
07/11/21 08:56:40
>>36
お前はデータベースという単語の使い方を間違っている。
ユーザーをスキーマごと消去していいなら以下のコマンド。
drop user ユーザー名 cascade;
40:NAME IS NULL
07/11/21 13:25:59
ありがとうございました
41:NAME IS NULL
07/11/21 22:11:40
1 DBLINKしてあるSQL抽出結果を参照専用のマテビューにしています。
2 マテビューは強制リフレッシュを定期的に行っています。
この状況下でマテビューリフレッシュ時に該当マテビューを検索対象にしたSELECT-SQLが
マテビューリフレッシュ終了まで固まってしまいます。
当然と言えば当然なのですが、SELECT系のSQLが固まらない良い手は無いですか?
42:NAME IS NULL
07/11/21 22:24:17
>>34
11gのEnterprise Editionダウンロードできるから、
実機使うが吉。ただし重いので、Oracle用のマシンが用意できるとGood。
43:NAME IS NULL
07/11/21 23:31:40
>>38
ありがとうございました。
少なくとも、ゴールドまでは30万くらい プラチナまでは 90万ちょいかかるということですね。
個人では無理ですなぁ・・・
44:NAME IS NULL
07/11/22 00:37:51
>>41
読み取り専用のマテビューにすればselectは出来るよ。
それ以外は排他ロック取るから無理。
45:NAME IS NULL
07/11/22 03:23:46
>>43
一人前のDBA育てるのにトレーニング受けさせたら、100万はくだらないからなぁ。
まあ、Oracleに就職したら社内で受けさせてくれるけどさ。
46:NAME IS NULL
07/11/22 10:54:34
実行計画ってやらないといけないの?
DB設計時にあらかじめわかって設計するものではないの?
47:NAME IS NULL
07/11/22 11:37:06
>>46
机上論と実装は異なるから。
48:NAME IS NULL
07/11/22 11:52:09
表領域にあるテーブル一気に削除したいんだけどそういうコマンドはないのですか?
いちいちテーブル名指定してdropして…とやらないとダメなんですか?
49:NAME IS NULL
07/11/22 12:49:08
>>48
drop tablespace 表領域名 including contents;
50:NAME IS NULL
07/11/22 15:21:00
>>49
ぐぐっても検索の仕方が悪いのかなかなか調べられず困ってたので助かりました
トンクスです!
51:NAME IS NULL
07/11/22 17:12:35
CREATE TABLE時に[hoge_id]を5桁ぞろえの数値デフォルトにしたいのですがどんな方法になるでしょうか?
例えば
INSERT でinsert into hoge (hoge_id) VALUES(1);
とした場合、自動的にhoge_id の値を00001として保持して欲しいのです。
52:NAME IS NULL
07/11/22 17:25:16
>>51
トリガーかな。
53:NAME IS NULL
07/11/22 17:52:54
>>51
おまえはそもそも数値という物がどういう物なのかを理解していない。
54:NAME IS NULL
07/11/22 18:02:59
select MAX(xxx) from xxx;でxxxに値が入っていない場合NULLを返すんですが0を返して欲しいです。
方法若しくは関数教えてください。。。
55:NAME IS NULL
07/11/22 18:10:28
>>53
黙れ
56:NAME IS NULL
07/11/22 18:54:25
>>55
情けない。
57:NAME IS NULL
07/11/22 18:56:51
>>54
NVL関数でどう?
SELECT NVL(MAX(XXX) FROM XXX
58:NAME IS NULL
07/11/23 00:09:26
数値型で0詰めはできない。
文字列型でPL/SQLストアドプロシージャを使え。
59:NAME IS NULL
07/11/23 02:01:54
すいません
OAS4.0.8.1をwindowsNT→windows server2000 へバージョンアップしたいのですが
対応してるんでしょうか?
古いので良くわからなくて・・・
60:NAME IS NULL
07/11/23 10:55:30
サポートが終わってるOS使っているようでは・・・
普通にOSとデータベース両方を最新へアップグレードした方が良いよ。
会社で承認してくれるなら、WindowsServer2008とOracle11g又はSQLServer2008
が出るからそれにすべて変えるのもあり。
61:NAME IS NULL
07/11/23 17:27:59
PLSQL使わなくとも型変換と0パディングぐらい出来る。
文字列変換後のパディングはLPAD。
Nullを置き換えるならNVL関数で十分。
62:NAME IS NULL
07/11/24 11:13:51
>>60
ありがとうございます。
そうするのが一番なのはわかっているんですが・・・
63:NAME IS NULL
07/11/26 13:29:19
他のユーザの作成したビュー、テーブルをsysからみることはできますでしょうか?
例えばユーザhogeで作成したtable(test_table)のカラム情報をsysから見るコマンドってありますか?
64:NAME IS NULL
07/11/26 13:32:03
>>63
権限があれば、スキーマ.テーブルで見れる。
SQLの本で書いてると思うけど。
65:NAME IS NULL
07/11/26 13:51:47
>>63
sysはsysdbaだからALL_TAB_COLUMNSから列情報も問題なく取れると思うが。
任意のスキーマのテーブルの参照なんか言うまでも無かろう。
66:NAME IS NULL
07/11/26 15:33:45
設定してあるストアドファンクションのコードを確認したいのですが、調べても見つかりませんでした。
無理なのでしょうか?
また、desc テーブル名でテーブル情報が見れますがINDEX等も併せて見たいです。
可能でしょうか?
67:NAME IS NULL
07/11/26 16:27:34 hr1x2rtf
CREATE OR REPLACE FUNCTION func_hoge(
f_id IN user.id%TYPE,
f_ip IN user.ip%TYPE,
f_name IN user.name%TYPE,
f_pass IN user.password%TYPE,
f_birth IN user.birth%TYPE
)
RETURN NUMBER IS
r_cnt NUMBER;
r_max NUMBER;
r_number user.number%TYPE;
BEGIN
SELECT COUNT(number) INTO r_cnt FROM user WHERE id = f_id;
IF r_cnt > 0 THEN
RETURN NULL;
END IF;
SELECT MAX(number) INTO r_max FROM user;
r_number := r_max + 1;
INSERT INTO user(number, id, ip, name, password, birth) VALUES(r_number, f_id, f_ip, f_name, f_pass, f_birth);
RETURN s_number;
EXCEPTION
WHEN OTHERS THEN RETURN NULL;
END func_hoge;
こんなストアドファンクション作ったのですが、
正しい値をいれてSELECTしてもNULLしか返ってきません。
色々調べた結果、INSERTの部分でエラーが起こっている(EXCEPTIONに移行している)ようでした。
ためしにINSERT文だけ外して定義してみたところ、きちんとr_numberの値が返ってきます。
ストアドファンクションでINSERTは使えないのでしょうか?
68:NAME IS NULL
07/11/26 21:13:36 AcLfRp+N
>>67
例外処理を外して、エラーメッセージを出力させて、原因を調査したらどうかね?
69:NAME IS NULL
07/11/26 23:05:10
mysqlみたくコマンドラインで操作する画面はありますか?
70:NAME IS NULL
07/11/26 23:15:32
>>66
> 設定してあるストアドファンクションのコードを確認したいのですが、調べても見つかりませんでした。
> 無理なのでしょうか?
USER_SOURCE
> また、desc テーブル名でテーブル情報が見れますがINDEX等も併せて見たいです。
> 可能でしょうか?
USER_INDEXES, USER_IND_COLUMNS。
desc で見るのは無理。
71:NAME IS NULL
07/11/26 23:21:08
>>69
Oracleでコマンドライン操作といったら、SQL*Plusでしょ。
sqlplus で起動できる。
72:NAME IS NULL
07/11/26 23:47:27
>>69
つ〜か、GUIで操作するなんざ遅くてやってらんねぇよ。
73:NAME IS NULL
07/11/27 00:05:09
>>67
ストアドファンクションでINSERTが出来ないなんてことはない。
何処かに問題が有るだけ。
とはいってもそこから先はデバッグの世界だろ。
ExceptionでSQLCODEを拾ってSQLERRMでメッセージ拾うしかないだろな。
ここで相談しても仕方ないと思うが・・。
参考までに、INSERT時のエラーで多いのは型が間違ったり
Null禁止なのにNull転送したりが多い。
後は権限不足でInsert出来ない事もある。
とりあえずSQLエラーコード拾ってみないとなんともいえない。
74:NAME IS NULL
07/11/27 09:25:36
>>68 に一票 ノシ
75:67
07/11/27 12:24:05 UcyMPmDo
返信ありがとうございます。
>>68さん
EXCEPTION外せばエラーがそのまま表記されるんですね… 要素1個1々、RETURNで確認してたorz..
はずして実行してみたところ、
ORA-14551: 問合せの中でDML操作を実行することはできません。
ORA-06512:"HOGE.FUNC_HOGE", 行19
とでました。
このエラー番号を調べてみると以下のエラーが出ました。
ORA-14551:SELECTで呼んでいるファンクションではINSERTできない?
ORA-06512:権限が足りない?
この場合、どんな解決策があるでしょうか?
76:67
07/11/27 12:36:20 UcyMPmDo
>>73さん
詳しい説明ありがとうございます。
>後は権限不足でInsert出来ない事もある。
原因はこれっぽいのですが、どのような権限をつければいいでしょうか?
SELECT * FROM USER_TAB_PRIVS_RECDしてみたところレコードがないようです。
初歩的なことで申し訳ないのですが宜しくお願いしますm(_ _)m
77:73
07/11/28 00:54:27
>>76
SELECT-SQLの中で更新を伴うFunctionは実行出来ないよ。
これは権限云々ではなくトランザクションの問題。
更新系のSQLを扱う前にトランザクションについて勉強した方がいい。
とりあえず助言するとすれば・・・
更新(追加・削除も)を伴うストアドは、Call、Execute等で実行すべし。
コミット・ロールバック制御も忘れずに。
78:NAME IS NULL
07/11/28 19:17:17
select qid, quest from quest_tbl;
上のSQL文ですべての質問を取り出す際、ユーザがこの質問に答えているか、調べたいのですが下のSQL文を併せて調べるよう連結させるにはどうすればいいでしょうか?
select COUNT(user_tbl) FROM answer_tbl where qid=$qid and title IS NOT NULL;
79:NAME IS NULL
07/11/28 22:03:31
>>67
ファンクションを実行する部分もしっかり書かないと
80:NAME IS NULL
07/11/28 23:44:53
>>78
('A`)つunion
81:NAME IS NULL
07/11/28 23:46:47
>>78
('A`)つdecode関数
82:NAME IS NULL
07/11/29 00:26:22
>>78
?
select qid, quest from quest_tbl
natural left outer join (select qid, count(*) answered_count from answer_tbl group by qid )
83:78
07/11/29 13:12:16
皆さんありがとうございます。
>>82さん
それだとwhere qid=$qid and title IS NOT NULLが反映されてないと思うのですが、、
select qid, quest from quest_tbl a
natural left outer join (select qid, count(*) answered_count from answer_tbl where qid=a.qid and title IS NOT NULL )
これでためしてみましたが出来ていないようです。。
>>81さん
DECODEの解説を見てみたのですが、どうも今回やりたいこととは違う気がします、、
select qid, quest,decode((select title from answer_tbl where qid=a.qid ),NULL,0,1) from quest_tbl a
これだとエラーになりました。
>>79さん
unionだと出来そうな感じです。
ただ値を持ちまわす方法が分かりません。
SELECT qid, quest FROM quest_tbl a UNION SELECT COUNT(*) cnt FROM answer_tbl WHERE a.qid = qid and title IS NOT NULL;
これだとaなんて知らないというエラーがでます、、、
84:82
07/11/29 21:56:23
>>83
あーはいはい。>>82のcount(*)をcount(title)にすればいいよ。
85:NAME IS NULL
07/11/29 22:03:04
>>83
それと、NATURAL JOINってのをちゃんと調べろ。クエリ書くのめんどい時によく使う。
FROMの中で並べたテーブル同士で相関クエリはできない。あと質問分かりやすく書け。
86:NAME IS NULL
07/11/29 23:50:09 t7fkIFy6
exp tes/pass owner=tes file= …
のコマンドでバックアップにユーザー単位エクスポートしたファイルを
インポートするには
imp tes/pass owner=tes file= …じゃダメなの?
某サイトのリファレンス通りにしたんですが
ownerというコマンドは無いとエラーがでました
エクスポートしたファイルの設定そのままでインポートするには(初期化は行ってる)どうすればいい?
87:NAME IS NULL
07/11/30 00:09:14
imp help=y(だったかな?)でマニュアル見れ
fromuser touserの項目だ
88:NAME IS NULL
07/11/30 00:24:48
即レス感謝
fromuserでエクスポートしたユーザー、touserでインポートしたユーザーという認識で合ってるよね
後で確かめてみます
89:NAME IS NULL
07/11/30 01:02:49
>>86
スキーマ毎にExportしたのにをImportしたいだけだったら
いちいちユーザー名指定せんでも「imp \"/ as sysdba\" IGNORE=Y FULL=Y」で
いけるんじゃね?
90:NAME IS NULL
07/11/30 01:06:44
初期化の意味がわからんがインポートしたいのとエクスポートしたいユーザが一緒なら
いちいちfromuser touser使う意味あるのか?
91:NAME IS NULL
07/11/30 01:53:46
>某サイトのリファレンス
「オラクル リファレンス」でぐぐると一番上にあるサイトかwたしかに
リファレンスでownerを使ってインポしようとしてるなw
92:88
07/11/30 13:02:13 WhidIDin
fromuser touser使う場合スキーマ重複しても平気?
スキーマ自体はエクスポート後一度削除して同じ名前でスキーマ作ってます
>>90
わけわりで手間のかかる形とってます
そんな便利なのもあるのねdです
93:NAME IS NULL
07/11/30 19:03:43
業務でバリバリにJavaStoredProcedureを使ってる人っている?
基幹業務でJavaSPを使っても特に問題ないですかね?
周りで「使ってるよ」ていう話を殆ど聞かないので。まあ、ちょっとした
SPならPL/SQLで書いた方が早いんだけどさ。
94:NAME IS NULL
07/11/30 23:11:01
↓未だに使用例を見たことが無い機能
・オブジェクト指向機能 ・Dimension
・Nested Table ・MODEL句(まあ、普通はいらんよなあ)
・ネイティブコンパイルされたPL/SQL
・Partitioned Outer Join ・GROUP BYのCUBE、ROLLUP、GROUPING SETS
・pivot句(あたりまえか) ・MERGE文(俺の職場ヤバス) ・XML機能
・User-defined Operator
95:NAME IS NULL
07/11/30 23:29:28
merge句は一度使い出すと便利すぎてヤヴァイ
気が付くとメチャメチャmerge句を使ったspになってる事多しw
96:NAME IS NULL
07/12/01 00:16:21
Java使う場合はアプリケーションサーバに実装コードを書いてるから、
自然と使う機会がなくなる。
使う機械が多そうなのは、
多次元分析をストアドプロシージャで実装
XmlをSoap通信で流す(Webサービスとして実行)
実行してパフォーマンスが大幅に上がりそうなのはこれ位だと思う。
97:NAME IS NULL
07/12/01 00:25:04
スキーマやオブジェクトなどの概念を図解で説明してるわかりやすいサイトありませんか?
98:NAME IS NULL
07/12/01 00:26:34
・ネイティブコンパイルされたPL/SQL
これ使ったことある
DBMS_RANDOMが速くなってテストデータ作成時間が短くなった
99:NAME IS NULL
07/12/01 00:27:50
>>97
DBマガジンのバックナンバー買えば?
毎年周期的に初心者向け特集やってるから
100:NAME IS NULL
07/12/01 02:29:01
Javaストアドと言えば,10gならJPublisherで
Webサービス/SOAP呼出する部分は結構重宝してる.
たまにアクロバティックな経路で外部のSOAPサービス呼び出す処理が必要なんで.
パフォーマンスは結構良いように感じた.
101:NAME IS NULL
07/12/04 17:06:26
神様、教えて下さい。
ocfs2の導入で
Loading module "configfs": Unable to load module "configfs"
Failed
と表示され、ocfs2の起動が行えないでいます。
ocfs2-tools-1.0.2-1.i386.rpm
ocfs2console-1.0.2-1.i386.rpm
ocfs2-2.6.9-22.0.1.EL-1.0.8-1.i686.rpm
を導入して、cluster.confを作って/etc/init.d/o2cb configureだけでは
ocfs2は利用できないものなのでしょうか。
102:NAME IS NULL
07/12/04 20:37:03
> Loading module "configfs": Unable to load module "configfs"
自分で答え書いてるだろ。
103:NAME IS NULL
07/12/04 22:21:50
>>102
なぜモジュールがロードできないのに
ローディング中なのでしょうか?
104:NAME IS NULL
07/12/04 22:40:01
ocfs2のconfigfsを作るものなのか、自動的に作成されるものなのかが
わからないのですが・・・。
105:NAME IS NULL
07/12/04 23:08:45
ローディング処理中のロードできないってメッセージでしょうがあんた
106:NAME IS NULL
07/12/04 23:48:59
面倒くさいなぁ。
depmod -e とかしたか?
107:NAME IS NULL
07/12/05 01:16:07
>>101
cluster.confはクラスター内の全ノードで一緒の内容になっているんだよな?
というよらもO/Sのバージョンとcluter.confの内容ぐらいさらせ。
108:101
07/12/05 20:31:12
102-103,105-107さん
ありがとうございました。解決しました。
カーネルモジュールの選択ミスという凡ミスが原因でした。
configfs等は自動生成されるみたいです。
感謝です。
109:106
07/12/05 20:45:06
>>108
ちゃんとした人だったのね。きつい言い方してごめん。
110:NAME IS NULL
07/12/06 04:57:34 pfhV3Pvu
UNIXにOracleを導入したのですが、
UNIXへのログインIDによって、与える権限を帰ることってできますか?
たとえば、下のように、UNIXにログインするIDは異なるが、
Oracle DBに接続するユーザは同一だった場合、
@ではSELECT権限を与えるが、AではSELECT権限を与えない(=全てのテーブルを見せたくない)、
といった制御をしたいと思っているのですが、どのようにすればよいでしょうか。
Oracle DBに接続するユーザ毎にGRANTするロールを変えればいいのでしょうが
同一ユーザでも与える権限を変えたいのですが……。
UNIX OSに ID 「userA」でログイン UNIX OSに ID 「userB」でログイン
↓ ↓
Oracle ID 「dbuserC」で接続 Oracle ID 「dbuserC」で接続
↓ ↓
@ A
111:NAME IS NULL
07/12/06 05:09:54
>>110
あ゛っ?
何でDB側がO/SのログインIDで権限を変えないとならないんだよ?
大体クライアントが自PC使ってSQL*PLUSでアクセスして来たらどうすんだよ?
ちょっと考えたら如何に理不尽な要求か分かるだろうが?
112:NAME IS NULL
07/12/06 17:55:28
>>110
無理。
OSユーザ≒DBユーザなら、OS認証でなんとかなりそうだけども
OSユーザ≠DBユーザならどうにもならない。
他にそんな事ができるのってあったっけ?
113:NAME IS NULL
07/12/06 21:41:29
Oracleのインストール作業を人に頼んだら
いくらかかるの?
114:NAME IS NULL
07/12/06 21:43:31
>>112
sqliteみたいなのなら普通に出来るが
サーバ/クライアントになってるのだとまず無理だろう
115:NAME IS NULL
07/12/06 22:17:04
すみません。質問です。
このようなSQLがあったとして:
SELECT * FROM (SELECT * FROM HOGE ORDER BY FUGA) WHERE ROWNUM <= 100
一番外周のSELECTの結果はFUGAでソートされているとは限らないですよね?
面倒でも、
SELECT * FROM (SELECT * FROM HOGE ORDER BY FUGA) WHERE ROWNUM <= 100 ORDER BY FUGA
とすべきなのでしょうか。すみませんが、ご存知の方教えてください。
116:NAME IS NULL
07/12/06 23:23:10
>>115
実行計画取れ。
117:NAME IS NULL
07/12/06 23:52:04 5y+EMV/z
EXP→IMPやってDBをメンテしたあと、INDEXをリビルドしました。そしたらそれをやる前までI/Oの負荷はぜんぜんなかったのに急にI/Oディスクの負荷が100%いくように
なっちゃいました。もしみなさんがあたりをつけるとしたらどこらへんですか?
ちなみに自分のスキルはoracle暦6っ月のへたれです。
118:仕様書無しさん
07/12/07 00:24:55
>>113
一番安くて5万円〜
20万とかよく聞く価格帯。
>>115
結果をソートさせた状態に"保障"させたいのなら
面倒でもorder byをつけるべき。
今のバージョンならつけてもつけなくても結果は同じだけど
次のバージョンとかになったらわかんないよ。
>>116
実行計画でわかるもの?
>>117
ディスクの問題?それとも特定の表領域を使用した場合に負荷が高くなるの?
全容量に対して使用量はどのくらい?
119:117
07/12/07 00:38:11 Sq6yutGL
れすありがとう
>>117
> ディスクの問題?それとも特定の表領域を使用した場合に負荷が高くなるの?
> 全容量に対して使用量はどのくらい?
使用量は78%です。ディスクはエラーがありませんでした。表領域の特定はちゃんとはしてませんが、
データ領域(レコード、INDEX)のところで負荷がたかくなっているようです。
なぜようですってかともうしますと、自分の職場ではなく、遠隔地にあるサーバで(リモートできない)話を
きいている状況です。
初期パラメータのメモリはいじってませんが、もしかしたらバッファがゼロになっていて検索にディスク
みているんじゃないかとも疑ってはいます。
120:NAME IS NULL
07/12/07 03:34:31
>>119
Reguildした時に表領域を指定せずにやっちゃって、表と索引とが
同じ表領域に作られちゃったってパターンを疑う。
121:119
07/12/07 09:02:13 VdnRSR1z
>>120
あっなるほど。考える材料増えました。ありがとう!
122:仕様書無しさん
07/12/07 21:15:24
>>117
全体的に遅くなるとかじゃなくてディスクI/Oが問題になってるんだよね?
I/O性能が劣化してそうな感じなら、データファイルの断片化くらいしか思いつかない。
Rebuildの時に十分な領域がない
↓
小さいサイズでのファイル自動拡張
↓
データファイル断片化
・・・とか。
でもこんなので、いきなり100%いくとは考えられないし・・・。
やっぱり、>120さんの理由でディスクI/O性能の限界を超えたとかかなあぁ。
123:NAME IS NULL
07/12/08 00:10:09 RdFFMJzL
oraclexeをamdマシンに入れる方法教えてください。
debian4.0です。
124:NAME IS NULL
07/12/08 02:54:41
>>123
CPUのタイプなんか気にしなくていいだろうが?
ただマニュアルによるとx86版はDebian 3.1にしか対応していないみたいだぞ?
まあ試すだけ試してみたら?
URLリンク(download.oracle.com)
125:NAME IS NULL
07/12/08 19:16:12 RdFFMJzL
>>124
dpkg: oracle-xe-universal_10.2.0.1-1.0_i386.deb の処理中にエラーが発生しました (--install):
パッケージアーキテクチャ (i386) がシステム (amd64) と一致しません
以下のパッケージの処理中にエラーが発生しました:
oracle-xe-universal_10.2.0.1-1.0_i386.deb
126:NAME IS NULL
07/12/09 02:52:00
>>125
お前、エラーメッセージを読めないのか?
お前のCPUはAMDの64-bit版だ。
xeは32-bit版しか出ていないんだから、入らないって文句言われてんだよ。
127:NAME IS NULL
07/12/09 04:00:11
CPUの違いは気にせんでもいいが
せめて32ビットと64ビットは気にしとけww
128:NAME IS NULL
07/12/10 01:55:00
>>125
Kernelが64-bit i686でコンパイルされてるから、32-bit版のXEが
入らないって文句言われてんだよ。
uname -aでkenelのバージョン確認してみ?
129:NAME IS NULL
07/12/12 14:09:25
ユーザが入力した文字をMERGEでUPDATE若しくはINSERTしたいのですが以下の分だとORA-00971エラーがでますどこがまずいのでしょうか?
MERGE INTO
hoge a
USING
(SELECT
'1' seq, '1' id
FROM
DUAL
) b
ON
(a.seq = b.seq AND a.id = b.id)
WHEN MATCHED THEN
UPDATE
hoge
SET
str_title = 'サンプル',
str_url = 'URLリンク(example.com)',
str_comment= 'サンプルです'
WHEN NOT MATCHED THEN
INSERT INTO
hoge ( id, seq, str_title, str_url, str_comment )
VALUES
( 1, 1, 'あ', 'URLリンク(example.com)', 'サンプルです');
130:NAME IS NULL
07/12/13 01:08:13
文法がまずい。
UPDATEのうしろとINSERTのうしろがおかしい。
131:NAME IS NULL
07/12/13 13:13:56
Oracle 10gを開発で使いたいのですが
この場合どのライセンスを購入すればよいでしょうか?
開発するアプリケーションの種類はWebアプリです。
132:NAME IS NULL
07/12/13 13:59:42
>>131
開発だけならPersonalでもいいし、OTN Software Kitでもいい。
まぁ、US-OTNに利用者登録してダウンロードすれば
開発ライセンスのメディア代もタダだけどな。
技術サポート受けたいなら、Personal買え。
133:NAME IS NULL
07/12/13 20:44:55
そうそう。日本ばっかり見てると損する。
134:NAME IS NULL
07/12/14 13:48:01
トリガー中において、自分は、どのクライアントプログラムによって起動されているのか?
を取得する方法はありますか?
135:NAME IS NULL
07/12/14 13:51:54
まったくの未経験がOracle silver followを取るとしたら
どのくらい勉強時間が必要よ?
136:NAME IS NULL
07/12/14 14:01:46
>>134
この辺のファンクション使えば取れそうじゃね?
ora_sysevent,
ora_login_user,
ora_instance_num,
ora_database_name,
ora_dict_obj_name,
ora_dict_obj_type,
ora_dict_obj_owner,
137:134
07/12/14 14:03:53
>>136
ありがと
調べてみます。
138:NAME IS NULL
07/12/14 15:53:31
以下のストアドファンクションを実行したいのですが、INSERTが入っているとエラーになります。
呼び方は下のサイトを参考にしたのですがコマンドラインだと実行も出来ないようです。
URLリンク(oracle.se-free.com)
>begin ? := hoge('test','test'); end;");
CREATE FUNCTION hoge(
id IN NUMBER,
pass IN NUMBER
)
RETURN NUMBER IS
s_number NUMBER;
BEGIN
SELECT COUNT(id) INTO s_number FROM t_hoge WHERE id = f_id;
IF s_number >0 THEN
RETURN 0;
END IF;
INSERT INTO t_hoge(id,pass) VALUES(f_id,f_pass);
return f_id;
END;
/
どこがいけないのでしょうか?
139:NAME IS NULL
07/12/14 17:38:04
f_idとf_passはどこで宣言されているの?
140:134
07/12/14 18:04:05
すみません。
以下のSQLで取得できました。
SELECT PROGRAM FROM V$SESSION VA
WHERE EXISTS (
SELECT VB.SID, VB.SERIAL# FROM V$SESSION VB
WHERE VA.SID = VB.SID
AND VA.SERIAL# = VB.SERIAL#
AND VB.AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID')
);
141:NAME IS NULL
07/12/14 20:14:54
Oracleの勉強を始めたばかりです。
何とかDBを好きになりたくて、楽しみたいと思ってます。
自宅でDBを使って楽しむ方法ってどういうものが
あるのでしょうか?
自分では思いつけないので、教えてください。
142:NAME IS NULL
07/12/14 23:22:41
>>141
俺もOracleで9年以上飯食ってるけど、自宅でなんか使ったことないよ。
自分の勉強のためにLinuxにRAC入れたりして遊ぶぐらい。
143:NAME IS NULL
07/12/14 23:40:56
>>141
郵便局から郵便番号と住所のデータをダウンロードして遊ぶとか。
業務プログラマなら知識増えるだけで
周囲に自慢できるから、単に新しい機能覚えるだけでもモチベーションでるよ。
SQLに疎い業務プログラマまじで多い。
144:NAME IS NULL
07/12/15 00:01:26
>>141
業務SEなら これ読んで データベースに展開してみるのもいいんでない?
URLリンク(www.amazon.co.jp)
目的ないと きついよね
145:NAME IS NULL
07/12/15 00:22:57
俺もほぼ同じぐらいOracle扱っているが、入れているのはノートPCだけだなw
滅多に使わない
146:NAME IS NULL
07/12/15 00:27:08 RcQd2CIu
ADO.NET+Data Provider For Oracle でOracleへの接続ですが
Oracle10gR2とOracle11gには接続可能でしょうか?
当方、Oracle9iでは接続の実績があるのですが上記のバージョンに変更しようと思っています。
147:NAME IS NULL
07/12/15 00:42:23
URLリンク(www48.tok2.com)
148:NAME IS NULL
07/12/15 03:21:19
>>147
可愛いじゃねぇかよ(;´д`)ハァハァハァ
149:NAME IS NULL
07/12/15 16:58:56
>>142-145
参考になりました。ありがとうございます。
色々探してみようと思います。
150:NAME IS NULL
07/12/16 21:38:49 eMcHXlqr
来年度からDBを扱うシステムアプリの保守を頼まれたので、
特に障害とか保守作業とかが必要ないときであっても、
毎月簡単な報告書くらいまとめようかな、と思います。
(DB自体の保守や管理ってもっときちんとした報告書とか作成すべきでしょうが、
あくまで「DBを扱うアプリ」側の保守なので、簡易なものでいいと思ってます)
報告書の内容としてぱっと思いついたのは
・ レコード件数
・ 使用領域・未使用領域の状況
・ Oracleの表領域が格納されているディスク自体の容量の状況
…とかを考えてるんですが、そのほかに
「これは必須だろ常考」「DBAならこれを確認しとくのが当たり前」って項目があれば
ぜひご意見を伺いたいです。
151:NAME IS NULL
07/12/16 22:11:55
>>150
まず、OTNで聞いた方が良い。
152:NAME IS NULL
07/12/16 22:41:33
性能情報も欲しい
・CPU使用率の推移
・DiskI/O量の推移
・夜間バッチの処理時間推移
・平均レスポンス時間の推移
153:NAME IS NULL
07/12/17 00:35:46
そもそもその情報がどうして必要なのかをちゃんと纏めた方がいい
154:NAME IS NULL
07/12/17 16:10:34
----簡単な質問解答格納テーブル
--テーブル quest
hoge_id str_quest look_flg date
1 名前は 1 07-12-17
--テーブル answer
user_id hoge_id str_answer look_flg date
111 1 益男 1 07-12-17
このようなテーブルでhoge_idが一致するデータを連結して取得する際に、answer側が空(IDが存在しない)の場合はquestの値だけを返してくれるヴューを作っているのですがうまくいきません。(hoge_id の値を持ったquestがない場合はNULLでOK)
作ったヴューは以下です。
CREATE OR REPLACE VIEW get_quest AS SELECT
quest.str_quest,
answer.str_answer,
quest.date AS q_date,
answer.date AS a_date
answer.look_flg
FROM quest,answer
WHERE quest.look_flg = 1;
SELECT * get_quest WHERE hoge_id=1 and user_id=111;
これだと明らかに間違っているのは分かるのですがどうしても最適な文が思いつきません。
ご教示お願い致します。
155:NAME IS NULL
07/12/17 20:53:03 vNanl1pJ
>>150
アプリ側からみたDBの報告なら日別、時間別の
アクセス数集計とレスポンス計測・報告で十分。
156:NAME IS NULL
07/12/17 23:58:36
>>154
SQLの前に日本語を書けるように頑張ってください。
あなたの書いていることがよく分かりません。
実は自分が何をしたいのかもわかっていないのではないのでしょうか?
Viewはビューで結構です。
前半のSQL文はQUESTとANSWERの全組み合わせを取り出しているにすぎず、
後半のSQL文は文法間違いしています。
SELECT
hoge_id,
quest.str_quest,
answer.str_answer,
quest.date AS q_date,
answer.date AS a_date
answer.look_flg
FROM quest LEFT OUTER JOIN answer USING (hoge_id)
ただし、これだとquestにanswerが複数合った場合に複数questが出力される。
157:NAME IS NULL
07/12/18 02:36:57 q4P2kapu
Oracleのツールに関して質問があります。
今月のDBマガジンで「Oracle SQL Developer」の紹介がありました。
その記事のなかでクエリービルダーの話がでてきたんですが…
「SQL Developerは 〜 SQL PLUSと比べるとはるかに見やすいだろう。
また、クエリービルダーを起動すれば…」
SQL Developerの中にクエリービルダーという項目はありませんでしたし、
ネットで調べても、oracleのクエリービルダーというツールも見当たりませんでした
ご存知の方いましたらぜひ教えてください。
158:NAME IS NULL
07/12/18 04:43:10
URLリンク(www.oracle.com)
あるみたいだが、実際に見たことはないなあ
明日会社で試してみる
159:158
07/12/18 12:30:28
あったよ。
SQLワークシートの何もない部分で右クリック→Query Builder。
初めて知った。Accessっぽいね。
160:154
07/12/18 14:08:39
>>156
どこが変な日本語なのでしょうか??
普通に理解できると思いますが、、、
>viewはビュー
ヴューでもビューでも大差ないと思います
ビューでquestとそれに紐づいたanswerを全部取り出せるようにしておいて
SELECTの際にuser_id(ユーザ番号)を指定して(ユーザごとの)解答+質問文を取り出したいのです。
やりたいことは分かっていただけましたでしょうか?
161:NAME IS NULL
07/12/18 19:50:55
SELECT 社員番号, 名字, 名前, 年齢, 性別 FROM 社員テーブル;
SELECT 社員番号, 資格名, 取得日 FROM 資格テーブル;
SELECT 社員番号, 部署名, 配属日 FROM 部署テーブル;
これらのSQL文を1文で取得したいのですが可能でしょうか?
社員テーブル1つに対して資格テーブル,部署テーブルは1行以上になる可能性があります。
■社員テーブル
■資格テーブル1
■資格テーブル2
■資格テーブル3
■部署テーブル1
■部署テーブル2
このように配列で返して欲しいのですがどんな方法があるでしょうか?
または皆さんならどうしますか?
やはり3文で応答するしかないのでしょうか?
宜しくお願い致します
162:NAME IS NULL
07/12/18 20:40:41
>>161
ストアドでOK
163:162
07/12/18 20:45:39
ストアドじゃ意味不明だ罠。
JavaストアドでOK。
PL/SQLでも問題なく出来るとは思うけど、
VARRAYとか考えずに配列データとして出力まとめるなら、
普通の記述言語の方が楽だろ。
164:NAME IS NULL
07/12/18 21:27:16
>>161
絶対にやってはいけない:
SELECT 社員番号, 資格ARRAY, 部署ARRAY
FROM 社員テーブル
INNER JOIN (SELECT 社員番号, SYS_CONNECT_BY_PATH(資格名 || '@' || 取得日, '/') 資格ARRAY, CONNECT_BY_ISLEAF 資格_IS_LEAF
FROM (SELECT ROWNUM RN, 社員番号, 資格名, 取得日 FROM 資格テーブル)
START WITH RN = 1 CONNECT BY PRIOR RN = RN + 1 AND PRIOR 社員番号 = 社員番号) USING (社員番号)
INNER JOIN (SELECT 社員番号, SYS_CONNECT_BY_PATH(部署名 || '@' || 配属日, '/') 部署ARRAY,
CONNECT_BY_ISLEAF 部署IS_LEAF
FROM (SELECT ROWNUM RN, 社員番号, 部署名 , 配属日 FROM 部署テーブル)
START WITH RN = 1 CONNECT BY PRIOR RN = RN + 1 AND PRIOR 社員番号 = 社員番号) USING (社員番号)
WHERE
1 = ALL(資格_IS_LEAF, 部署IS_LEAF)
165:164
07/12/18 21:36:13
>>164
あ、ROWNUMのところは適当に
ROW_NUMBER (PARTITION BY 社員番号 ORDER BY 社員番号)
ということにしておいてください。MySQLみたいな集約のCONCATが無いOracleでたまにやる。
(ソースコードには残らない仕事のときだけ)
166:NAME IS NULL
07/12/18 23:31:45
>>159
ありがとうございます!
167:NAME IS NULL
07/12/19 10:06:27
>>164
そのSQLは階層問い合わせ使ってるから、バージョンによっては使えない。
使えるバージョンを書いておかないと、勘違いする人いるから
書いた方が良いいと思う。
168:NAME IS NULL
07/12/19 19:29:44
階層的クエリは9i以降だよ。新規案件で8i使ってる人いるのかな?
169:NAME IS NULL
07/12/20 00:18:16
SQLのパフォーマンス面で質問があります。
Aテーブルに50万件のレコードが格納されており、whereで5000件程度に
絞れると仮定します。
1:select * from A inner join B on ( ) where 〜
2:select * from (select * from A where 〜) inner join B on ( )
この2つを比較するとどちらの方がパフォーマンスがよいのでしょうか?
170:NAME IS NULL
07/12/20 01:20:04
内部表が少ない方がパフォーマンスが良い。
最初に評価される表がINDEXを使えたり、行数が少ないなら早い。
1は結合してから検索かけてる
2はA表を最初に評価対象にしている。
結果は2だろうけど、RDBMSがどのような最適化してるから知らないからな。
171:NAME IS NULL
07/12/20 01:20:06
実行計画とってみればいいじゃない
たぶんOracleが強力に最適化してしまうので、どっちも同じ実行計画になるよ。
172:NAME IS NULL
07/12/20 23:30:04 5x3NWZXY
こんにちは、オラクルについて質問があります。
オラクルクライアントってサービスなの??
サービスであるならば、オラクルを使用しないシステムの開発中は、
サービスを停止したいのですが、、
173:NAME IS NULL
07/12/21 00:56:53
止めても構わないよ。
所詮、バックグラウンドでリスニングするための設定プロセスにすぎないから。
174:NAME IS NULL
07/12/22 17:43:56 qZUX37h2
>>173
こんにちは、172です。
オラクルクライアントのサービスはどうやってとめるのですか?
175:NAME IS NULL
07/12/22 20:32:56
>>174
Oracle Clientはサービスじゃない。
176:NAME IS NULL
07/12/22 21:08:24
オラクルクライアントってサービスなの??
サービスであるならば、サービスを停止したいのですが、、
↓
止めても構わないよ。
↓
オラクルクライアントのサービスはどうやってとめるのですか?
↓
Oracle Clientはサービスじゃない。 ←今ここ
一人、バカが紛れ込んでいます。さて、誰でしょう?w
177:仕様書無しさん
07/12/22 21:20:54
え?一人なの?
178:NAME IS NULL
07/12/22 23:51:05
オラクルクライアントってサービスなの??
サービスであるならば、サービスを停止したいのですが、、
↓
止めても構わないよ。
↓
オラクルクライアントのサービスはどうやってとめるのですか?
↓
Oracle Clientはサービスじゃない。
↓
サービスでないなら止める必要無い。
終了。
179:NAME IS NULL
07/12/25 00:12:49
オラクルマスターって、ねずみ講?
180:NAME IS NULL
07/12/25 00:46:20
OracleClientはサービスじゃなくて、
設定ファイルを使ってオラクルと通信するクライアントツール
181:NAME IS NULL
07/12/25 01:13:44
つまり >173 が分かってなかった、ってことでFA?
182:NAME IS NULL
07/12/25 06:20:57
>>181
何をいまさらwww
183:NAME IS NULL
07/12/26 18:54:47 if5svl3h
amd64でもchrootでxe入れることが出来るとは。
184:NAME IS NULL
07/12/27 00:03:56
>>183
Kernelがi386だったというオチだったりしないか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4278日前に更新/269 KB
担当:undef