Oracle 質問総合スレ2

このエントリーをはてなブックマークに追加
1NAME IS NULL
2NAME IS NULL:2007/11/11(日) 10:48:20 ID:nV8gYVk+
>>1
3NAME IS NULL:2007/11/11(日) 10:50:51 ID:???
んで・・ジュースは飲んだのか?w
4NAME IS NULL:2007/11/11(日) 11:28:23 ID:???
>>1

乙。

毎回の事だけど補足ね。

OTNからダウソ出来るソフトは、使用期限がついているものの、これは紳士協定に
なっていて、機能的に使えなくなるというものではない。
5NAME IS NULL:2007/11/13(火) 01:49:50 ID:???
普通にoracle.comからDownloadすればいいと思うよ。
今ならOracle 11gが手に入るわけだし。
6NAME IS NULL:2007/11/13(火) 13:34:17 ID:???
項目テーブル:項目コード(PK)、値

というテーブルがあり、項目の値を集計しないといけません。

例えば集計項目1番は
項目コード1の値 * 項目コード2の値 + 項目コード3の値
集計項目2番は
(項目コード2の値 + 項目コード3の値) / 項目コード1の値

というように求めます。
このような条件の時、DB内でうまく演算の順序を保持し、計算結果を
出せるような仕組みって可能でしょうか?
7NAME IS NULL:2007/11/13(火) 13:35:55 ID:???
>>6

( ^ω^)つ View
8NAME IS NULL:2007/11/13(火) 13:40:44 ID:???
>>7
ですよねーorz
+、−だけだったらできるんですけど…orz
9NAME IS NULL:2007/11/13(火) 21:33:42 ID:win9bqJG
dete型で年、月、日の値を持っておいて、
select * from テーブル名を実行した時に
デフォルトで月だけを表示するようにって出来きますか?
10NAME IS NULL :2007/11/13(火) 23:33:05 ID:???
>>9

SQL> alter session set nls_date_format ='MON';

Session altered.

SQL> select sysdate from dual;

SYS
---
NOV
11NAME IS NULL:2007/11/13(火) 23:49:21 ID:???
>>10
ありがとうございます。
それだと全てのテーブルに対して月だけを表示する形になるんですよね?
特定のテーブルの特定のカラムに対して限定すると言う
やり方はないのでしょうか?
12NAME IS NULL :2007/11/13(火) 23:52:04 ID:???
>>11

( ^ω^)つ View
13NAME IS NULL:2007/11/14(水) 00:06:21 ID:???
>>12
やっぱViewくらいしかないですよね・・・
ありがとうです><
14NAME IS NULL:2007/11/16(金) 23:32:36 ID:MwFc3JH0
shutdownの即時モードに時間がかかってるんだけど、
原因にはどういうものがありますか?
15NAME IS NULL:2007/11/17(土) 00:31:29 ID:???
DB_CACHE_SIZEが大きい場合は、
データベースバッファキャッシュ内の更新済みブロックを
データファイルに書き戻す処理に時間がかかる。

スケジュールで落とすなら、shutdown immediateする10分ぐらい前に
alter system checkpointを打つのが定番。

ただshutdown immediateが遅い/ハングする系の不具合がいくつかあるから
一度サポートに聞いてみたほうがいいかもね。
16NAME IS NULL :2007/11/17(土) 01:58:10 ID:???
>>14

9i以上ならFAST_START_MTTR_TARGETをきちんと指定して、checkpointを調整するようにしろ。
9i以上ならこまめにチェックポイント取っている方が早かったりする。
redologのタイミングでチェックポイント取るのは8iまでのテクニックだな。
17NAME IS NULL:2007/11/17(土) 22:35:00 ID:???
LIMITって無いの?
18NAME IS NULL:2007/11/18(日) 00:22:09 ID:???
>>17

何の?
19NAME IS NULL:2007/11/18(日) 02:30:02 ID:???
>>18
SELECTの結果をちょん切るやつ
20NAME IS NULL:2007/11/18(日) 03:00:24 ID:???
>>19

じゃあ ROWNUM で。
今度は質問はわかりやすく書いてね。
21NAME IS NULL:2007/11/18(日) 11:50:41 ID:???
LIMITはMySQL。TOPだとMS SQL Server。
22NAME IS NULL:2007/11/19(月) 19:11:06 ID:???
>>20
8i以降ならROW_NUMBERの方が自由度が高くないか?
23NAME IS NULL:2007/11/19(月) 20:57:48 ID:???
>>22

ROW_NUMBER() は遅くなることもあるからなぁ。
24NAME IS NULL:2007/11/19(月) 23:26:26 ID: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とかすればいいのかなと思っても、エラーになります。
なんかいい方法ありませんか?
なんでこんな作りなのかとか言われても答えられません。
そういうポリシーらしいです。

25NAME IS NULL :2007/11/19(月) 23:49:49 ID:???
>>24

面倒かもしれないが、一回取ってきた値をどっかの表に格納して、それを他から
参照するようにでもしたら?
26NAME IS NULL:2007/11/20(火) 00:06:17 ID:C4WLKplh
>>25
それのやり方がいまいちわからんのです。

cur_temp sys_refcur ;
って定義して、 cur_temp := cur1 ;
みたいにはやってみたんですが、
cur1の中身が消えちゃうんですよね。。。。

oracle難しい。。。。。
27NAME IS NULL :2007/11/20(火) 03:26:13 ID:???
>>26

cur_temp sys_refcur ; と前もって宣言しておいて、それからPL/SQLを実行してんだよね?
28NAME IS NULL:2007/11/20(火) 17:35:53 ID:???
utPLSQL って 2005年で更新止まってるけど、まだ使用できますか?
29NAME IS NULL:2007/11/20(火) 20:29:38 ID:???
SYSAUXが増えつづけて止まらないんだけどなんで?
30NAME IS NULL:2007/11/20(火) 20:35:16 ID:wWhiZNbu
パソコンショップならここ!!
http://want-pc.com
31NAME IS NULL:2007/11/21(水) 00:17:52 ID:???
>>29

きちんとAWRのPurge Jobをスケジュールしているか?
32NAME IS NULL:2007/11/21(水) 00:21:09 ID:???
純粋なOracleの質問ではないかもしれませんが、
Oracleマスタープラチナまでいくには費用はどれくらいかかるものなのでしょうか?

ブロンズ・シルバー・ゴールド・プラチナと、段階ごとに教えてくだされば助かります。
宜しくお願いします。
33NAME IS NULL:2007/11/21(水) 00:54:56 ID:???
実行計画ってなに?

MySQLに例えておはなししてはくれまいか
34NAME IS NULL :2007/11/21(水) 03:27:25 ID:???
>>32

根性と気合さえあれば、ゴールドまでは実機がなくても卓上の勉強だけで
取ろうと思えば取れる。
ただゴールドを取るために、最低でも試験を5つぐらい受けなくてはならなくて、
各試験毎に受験料が1万5千円ずつぐらいかかったと思った。

まあ、詳しくは以下で。
ttp://www.oracle.com/global/jp/education/certification/portal/index.html
35NAME IS NULL :2007/11/21(水) 03:30:42 ID:???
>>33

簡単に言うとSQLがどういった順序で実行されているかということ。
最初に索引のスキャンがあって、次に目的のデータブロックが読み込まれて
いるといった様な事が、この実行計画を見れば分かる訳。
表や索引の分析が行われていないために、全表走査が走っているなんて
ことも分かる。

36NAME IS NULL:2007/11/21(水) 04:10:25 ID:msoO2PlP
ユーザー単位でデータベースを削除したいんですかどうすればいいんですか?
コマンドプロンプトから行える方法を探しています

ユーザー単位でインポートしたdmpファイルをいれたいんで
一度削除したかったのですが
37NAME IS NULL:2007/11/21(水) 04:59:17 ID:???
>>35
explainみたいなもの?
38NAME IS NULL:2007/11/21(水) 06:33:21 ID:TLAHprir
>>32


試験費用については>>34の言っているとおりだが、ゴールドについては
研修で要履修コースを受ける必要があるので、その費用として
更に最低でも20万円ぐらい必要。

プラチナについてはゴールドを取得している状態からだと、要履修コースを
2つ受けて、さらに試験費用が20万円ぐらいなので、最低でもだいたい60万円ぐらい必要。

なにも持っていない状態からプラチナまで取ろうとすると試験を全部一発で合格しても
100万円近くかかるということになる。
39NAME IS NULL :2007/11/21(水) 08:56:40 ID:???
>>36

お前はデータベースという単語の使い方を間違っている。
ユーザーをスキーマごと消去していいなら以下のコマンド。

drop user ユーザー名 cascade;
40NAME IS NULL:2007/11/21(水) 13:25:59 ID:???
ありがとうございました
41NAME IS NULL:2007/11/21(水) 22:11:40 ID:???
1 DBLINKしてあるSQL抽出結果を参照専用のマテビューにしています。
2 マテビューは強制リフレッシュを定期的に行っています。

この状況下でマテビューリフレッシュ時に該当マテビューを検索対象にしたSELECT-SQLが
マテビューリフレッシュ終了まで固まってしまいます。

当然と言えば当然なのですが、SELECT系のSQLが固まらない良い手は無いですか?
42NAME IS NULL:2007/11/21(水) 22:24:17 ID:???
>>34
11gのEnterprise Editionダウンロードできるから、
実機使うが吉。ただし重いので、Oracle用のマシンが用意できるとGood。
43NAME IS NULL:2007/11/21(水) 23:31:40 ID:???
>>38
ありがとうございました。
少なくとも、ゴールドまでは30万くらい プラチナまでは 90万ちょいかかるということですね。
個人では無理ですなぁ・・・
44NAME IS NULL :2007/11/22(木) 00:37:51 ID:???
>>41

読み取り専用のマテビューにすればselectは出来るよ。
それ以外は排他ロック取るから無理。
45NAME IS NULL :2007/11/22(木) 03:23:46 ID:???
>>43

一人前のDBA育てるのにトレーニング受けさせたら、100万はくだらないからなぁ。
まあ、Oracleに就職したら社内で受けさせてくれるけどさ。
46NAME IS NULL:2007/11/22(木) 10:54:34 ID:???
実行計画ってやらないといけないの?
DB設計時にあらかじめわかって設計するものではないの?
47NAME IS NULL:2007/11/22(木) 11:37:06 ID:???
>>46
机上論と実装は異なるから。
48NAME IS NULL:2007/11/22(木) 11:52:09 ID:???
表領域にあるテーブル一気に削除したいんだけどそういうコマンドはないのですか?
いちいちテーブル名指定してdropして…とやらないとダメなんですか?
49NAME IS NULL:2007/11/22(木) 12:49:08 ID:???
>>48

drop tablespace 表領域名 including contents;
50NAME IS NULL:2007/11/22(木) 15:21:00 ID:???
>>49
ぐぐっても検索の仕方が悪いのかなかなか調べられず困ってたので助かりました
トンクスです!
51NAME IS NULL:2007/11/22(木) 17:12:35 ID:???
CREATE TABLE時に[hoge_id]を5桁ぞろえの数値デフォルトにしたいのですがどんな方法になるでしょうか?
例えば
INSERT でinsert into hoge (hoge_id) VALUES(1);
とした場合、自動的にhoge_id の値を00001として保持して欲しいのです。
52NAME IS NULL:2007/11/22(木) 17:25:16 ID:???
>>51
トリガーかな。
53NAME IS NULL:2007/11/22(木) 17:52:54 ID:???
>>51
おまえはそもそも数値という物がどういう物なのかを理解していない。
54NAME IS NULL:2007/11/22(木) 18:02:59 ID:???
select MAX(xxx) from xxx;でxxxに値が入っていない場合NULLを返すんですが0を返して欲しいです。
方法若しくは関数教えてください。。。
55NAME IS NULL:2007/11/22(木) 18:10:28 ID:???
>>53
黙れ
56NAME IS NULL:2007/11/22(木) 18:54:25 ID:???
>>55
情けない。
57NAME IS NULL:2007/11/22(木) 18:56:51 ID:???
>>54
NVL関数でどう?
SELECT NVL(MAX(XXX) FROM XXX
58NAME IS NULL:2007/11/23(金) 00:09:26 ID:???
数値型で0詰めはできない。
文字列型でPL/SQLストアドプロシージャを使え。
59NAME IS NULL:2007/11/23(金) 02:01:54 ID:???
すいません

OAS4.0.8.1をwindowsNT→windows server2000 へバージョンアップしたいのですが
対応してるんでしょうか?
古いので良くわからなくて・・・
60NAME IS NULL:2007/11/23(金) 10:55:30 ID:???
サポートが終わってるOS使っているようでは・・・
普通にOSとデータベース両方を最新へアップグレードした方が良いよ。
会社で承認してくれるなら、WindowsServer2008とOracle11g又はSQLServer2008
が出るからそれにすべて変えるのもあり。
61NAME IS NULL:2007/11/23(金) 17:27:59 ID:???
PLSQL使わなくとも型変換と0パディングぐらい出来る。
文字列変換後のパディングはLPAD。
Nullを置き換えるならNVL関数で十分。
62NAME IS NULL:2007/11/24(土) 11:13:51 ID:???
>>60
ありがとうございます。
そうするのが一番なのはわかっているんですが・・・


63NAME IS NULL:2007/11/26(月) 13:29:19 ID:???
他のユーザの作成したビュー、テーブルをsysからみることはできますでしょうか?
例えばユーザhogeで作成したtable(test_table)のカラム情報をsysから見るコマンドってありますか?
64NAME IS NULL:2007/11/26(月) 13:32:03 ID:???
>>63

権限があれば、スキーマ.テーブルで見れる。
SQLの本で書いてると思うけど。
65NAME IS NULL:2007/11/26(月) 13:51:47 ID:???
>>63
sysはsysdbaだからALL_TAB_COLUMNSから列情報も問題なく取れると思うが。

任意のスキーマのテーブルの参照なんか言うまでも無かろう。
66NAME IS NULL:2007/11/26(月) 15:33:45 ID:???
設定してあるストアドファンクションのコードを確認したいのですが、調べても見つかりませんでした。
無理なのでしょうか?
また、desc テーブル名でテーブル情報が見れますがINDEX等も併せて見たいです。
可能でしょうか?
67NAME IS NULL:2007/11/26(月) 16:27:34 ID: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は使えないのでしょうか?
68NAME IS NULL:2007/11/26(月) 21:13:36 ID:AcLfRp+N
>>67

例外処理を外して、エラーメッセージを出力させて、原因を調査したらどうかね?
69NAME IS NULL:2007/11/26(月) 23:05:10 ID:???
mysqlみたくコマンドラインで操作する画面はありますか?
70NAME IS NULL:2007/11/26(月) 23:15:32 ID:???
>>66
> 設定してあるストアドファンクションのコードを確認したいのですが、調べても見つかりませんでした。
> 無理なのでしょうか?

USER_SOURCE

> また、desc テーブル名でテーブル情報が見れますがINDEX等も併せて見たいです。
> 可能でしょうか?

USER_INDEXES, USER_IND_COLUMNS。
desc で見るのは無理。
71NAME IS NULL:2007/11/26(月) 23:21:08 ID:???
>>69

Oracleでコマンドライン操作といったら、SQL*Plusでしょ。
sqlplus で起動できる。
72NAME IS NULL :2007/11/26(月) 23:47:27 ID:???
>>69

つ〜か、GUIで操作するなんざ遅くてやってらんねぇよ。
73NAME IS NULL:2007/11/27(火) 00:05:09 ID:???
>>67
ストアドファンクションでINSERTが出来ないなんてことはない。
何処かに問題が有るだけ。

とはいってもそこから先はデバッグの世界だろ。
ExceptionでSQLCODEを拾ってSQLERRMでメッセージ拾うしかないだろな。
ここで相談しても仕方ないと思うが・・。

参考までに、INSERT時のエラーで多いのは型が間違ったり
Null禁止なのにNull転送したりが多い。
後は権限不足でInsert出来ない事もある。

とりあえずSQLエラーコード拾ってみないとなんともいえない。
74NAME IS NULL:2007/11/27(火) 09:25:36 ID:???
>>68 に一票 ノシ
7567:2007/11/27(火) 12:24:05 ID:UcyMPmDo
返信ありがとうございます。

>>68さん
EXCEPTION外せばエラーがそのまま表記されるんですね… 要素1個1々、RETURNで確認してたorz..
はずして実行してみたところ、
ORA-14551: 問合せの中でDML操作を実行することはできません。
ORA-06512:"HOGE.FUNC_HOGE", 行19
とでました。

このエラー番号を調べてみると以下のエラーが出ました。
ORA-14551:SELECTで呼んでいるファンクションではINSERTできない?
ORA-06512:権限が足りない?

この場合、どんな解決策があるでしょうか?
7667:2007/11/27(火) 12:36:20 ID:UcyMPmDo
>>73さん
詳しい説明ありがとうございます。
>後は権限不足でInsert出来ない事もある。
原因はこれっぽいのですが、どのような権限をつければいいでしょうか?
SELECT * FROM USER_TAB_PRIVS_RECDしてみたところレコードがないようです。
初歩的なことで申し訳ないのですが宜しくお願いしますm(_ _)m
7773:2007/11/28(水) 00:54:27 ID:???
>>76
SELECT-SQLの中で更新を伴うFunctionは実行出来ないよ。
これは権限云々ではなくトランザクションの問題。
更新系のSQLを扱う前にトランザクションについて勉強した方がいい。

とりあえず助言するとすれば・・・
更新(追加・削除も)を伴うストアドは、Call、Execute等で実行すべし。
コミット・ロールバック制御も忘れずに。



78NAME IS NULL:2007/11/28(水) 19:17:17 ID:???
select qid, quest from quest_tbl;
上のSQL文ですべての質問を取り出す際、ユーザがこの質問に答えているか、調べたいのですが下のSQL文を併せて調べるよう連結させるにはどうすればいいでしょうか?
select COUNT(user_tbl) FROM answer_tbl where qid=$qid and title IS NOT NULL;
79NAME IS NULL:2007/11/28(水) 22:03:31 ID:???
>>67
ファンクションを実行する部分もしっかり書かないと
80NAME IS NULL :2007/11/28(水) 23:44:53 ID:???
>>78

('A`)つunion
81NAME IS NULL :2007/11/28(水) 23:46:47 ID:???
>>78

('A`)つdecode関数
82NAME IS NULL:2007/11/29(木) 00:26:22 ID:???
>>78


select qid, quest from quest_tbl
natural left outer join (select qid, count(*) answered_count from answer_tbl group by qid )
8378:2007/11/29(木) 13:12:16 ID:???
皆さんありがとうございます。

>>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なんて知らないというエラーがでます、、、
8482:2007/11/29(木) 21:56:23 ID:???
>>83
あーはいはい。>>82のcount(*)をcount(title)にすればいいよ。
85NAME IS NULL:2007/11/29(木) 22:03:04 ID:???
>>83
それと、NATURAL JOINってのをちゃんと調べろ。クエリ書くのめんどい時によく使う。
FROMの中で並べたテーブル同士で相関クエリはできない。あと質問分かりやすく書け。
86NAME IS NULL:2007/11/29(木) 23:50:09 ID:t7fkIFy6
exp tes/pass owner=tes file= …
のコマンドでバックアップにユーザー単位エクスポートしたファイルを
インポートするには
imp tes/pass owner=tes file= …じゃダメなの?
某サイトのリファレンス通りにしたんですが
ownerというコマンドは無いとエラーがでました
エクスポートしたファイルの設定そのままでインポートするには(初期化は行ってる)どうすればいい?
87NAME IS NULL:2007/11/30(金) 00:09:14 ID:???
imp help=y(だったかな?)でマニュアル見れ
fromuser touserの項目だ
88NAME IS NULL:2007/11/30(金) 00:24:48 ID:???
即レス感謝
fromuserでエクスポートしたユーザー、touserでインポートしたユーザーという認識で合ってるよね
後で確かめてみます
89NAME IS NULL :2007/11/30(金) 01:02:49 ID:???
>>86

スキーマ毎にExportしたのにをImportしたいだけだったら
いちいちユーザー名指定せんでも「imp \"/ as sysdba\" IGNORE=Y FULL=Y」で
いけるんじゃね?
90NAME IS NULL:2007/11/30(金) 01:06:44 ID:???
初期化の意味がわからんがインポートしたいのとエクスポートしたいユーザが一緒なら
いちいちfromuser touser使う意味あるのか?
91NAME IS NULL:2007/11/30(金) 01:53:46 ID:???
>某サイトのリファレンス

「オラクル リファレンス」でぐぐると一番上にあるサイトかwたしかに
リファレンスでownerを使ってインポしようとしてるなw
9288:2007/11/30(金) 13:02:13 ID:WhidIDin
fromuser touser使う場合スキーマ重複しても平気?
スキーマ自体はエクスポート後一度削除して同じ名前でスキーマ作ってます

>>90
わけわりで手間のかかる形とってます
そんな便利なのもあるのねdです
93NAME IS NULL:2007/11/30(金) 19:03:43 ID:???
業務でバリバリにJavaStoredProcedureを使ってる人っている?
基幹業務でJavaSPを使っても特に問題ないですかね?

周りで「使ってるよ」ていう話を殆ど聞かないので。まあ、ちょっとした
SPならPL/SQLで書いた方が早いんだけどさ。
94NAME IS NULL:2007/11/30(金) 23:11:01 ID:???
↓未だに使用例を見たことが無い機能

・オブジェクト指向機能 ・Dimension
・Nested Table ・MODEL句(まあ、普通はいらんよなあ)
・ネイティブコンパイルされたPL/SQL
・Partitioned Outer Join ・GROUP BYのCUBE、ROLLUP、GROUPING SETS
・pivot句(あたりまえか) ・MERGE文(俺の職場ヤバス) ・XML機能
・User-defined Operator
95NAME IS NULL:2007/11/30(金) 23:29:28 ID:???
merge句は一度使い出すと便利すぎてヤヴァイ
気が付くとメチャメチャmerge句を使ったspになってる事多しw
96NAME IS NULL:2007/12/01(土) 00:16:21 ID:???
Java使う場合はアプリケーションサーバに実装コードを書いてるから、
自然と使う機会がなくなる。
使う機械が多そうなのは、
多次元分析をストアドプロシージャで実装
XmlをSoap通信で流す(Webサービスとして実行)
実行してパフォーマンスが大幅に上がりそうなのはこれ位だと思う。
97NAME IS NULL:2007/12/01(土) 00:25:04 ID:???
スキーマやオブジェクトなどの概念を図解で説明してるわかりやすいサイトありませんか?
98NAME IS NULL:2007/12/01(土) 00:26:34 ID:???
・ネイティブコンパイルされたPL/SQL

これ使ったことある
DBMS_RANDOMが速くなってテストデータ作成時間が短くなった
99NAME IS NULL:2007/12/01(土) 00:27:50 ID:???
>>97
DBマガジンのバックナンバー買えば?
毎年周期的に初心者向け特集やってるから
100NAME IS NULL:2007/12/01(土) 02:29:01 ID:???
Javaストアドと言えば,10gならJPublisherで
Webサービス/SOAP呼出する部分は結構重宝してる.
たまにアクロバティックな経路で外部のSOAPサービス呼び出す処理が必要なんで.
パフォーマンスは結構良いように感じた.
101NAME IS NULL:2007/12/04(火) 17:06:26 ID:???
神様、教えて下さい。
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は利用できないものなのでしょうか。
102NAME IS NULL:2007/12/04(火) 20:37:03 ID:???
> Loading module "configfs": Unable to load module "configfs"

自分で答え書いてるだろ。
103NAME IS NULL:2007/12/04(火) 22:21:50 ID:???
>>102
なぜモジュールがロードできないのに
ローディング中なのでしょうか?
104NAME IS NULL:2007/12/04(火) 22:40:01 ID:???
ocfs2のconfigfsを作るものなのか、自動的に作成されるものなのかが
わからないのですが・・・。
105NAME IS NULL:2007/12/04(火) 23:08:45 ID:???
ローディング処理中のロードできないってメッセージでしょうがあんた
106NAME IS NULL:2007/12/04(火) 23:48:59 ID:???
面倒くさいなぁ。

depmod -e とかしたか?
107NAME IS NULL:2007/12/05(水) 01:16:07 ID:???
>>101

cluster.confはクラスター内の全ノードで一緒の内容になっているんだよな?
というよらもO/Sのバージョンとcluter.confの内容ぐらいさらせ。
108101:2007/12/05(水) 20:31:12 ID:???
102-103,105-107さん
ありがとうございました。解決しました。
カーネルモジュールの選択ミスという凡ミスが原因でした。

configfs等は自動生成されるみたいです。
感謝です。
109106:2007/12/05(水) 20:45:06 ID:???
>>108

ちゃんとした人だったのね。きつい言い方してごめん。
110NAME IS NULL:2007/12/06(木) 04:57:34 ID: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
111NAME IS NULL:2007/12/06(木) 05:09:54 ID:???
>>110

あ゛っ?
何でDB側がO/SのログインIDで権限を変えないとならないんだよ?
大体クライアントが自PC使ってSQL*PLUSでアクセスして来たらどうすんだよ?
ちょっと考えたら如何に理不尽な要求か分かるだろうが?

112NAME IS NULL:2007/12/06(木) 17:55:28 ID:???
>>110
無理。

OSユーザ≒DBユーザなら、OS認証でなんとかなりそうだけども
OSユーザ≠DBユーザならどうにもならない。
他にそんな事ができるのってあったっけ?
113NAME IS NULL:2007/12/06(木) 21:41:29 ID:???
Oracleのインストール作業を人に頼んだら
いくらかかるの?
114NAME IS NULL:2007/12/06(木) 21:43:31 ID:???
>>112
sqliteみたいなのなら普通に出来るが
サーバ/クライアントになってるのだとまず無理だろう
115NAME IS NULL:2007/12/06(木) 22:17:04 ID:???
すみません。質問です。
このような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

とすべきなのでしょうか。すみませんが、ご存知の方教えてください。
116NAME IS NULL :2007/12/06(木) 23:23:10 ID:???
>>115

実行計画取れ。
117NAME IS NULL:2007/12/06(木) 23:52:04 ID:5y+EMV/z
EXP→IMPやってDBをメンテしたあと、INDEXをリビルドしました。そしたらそれをやる前までI/Oの負荷はぜんぜんなかったのに急にI/Oディスクの負荷が100%いくように
なっちゃいました。もしみなさんがあたりをつけるとしたらどこらへんですか?
ちなみに自分のスキルはoracle暦6っ月のへたれです。
118仕様書無しさん:2007/12/07(金) 00:24:55 ID:???
>>113
一番安くて5万円〜
20万とかよく聞く価格帯。

>>115
結果をソートさせた状態に"保障"させたいのなら
面倒でもorder byをつけるべき。
今のバージョンならつけてもつけなくても結果は同じだけど
次のバージョンとかになったらわかんないよ。

>>116
実行計画でわかるもの?

>>117
ディスクの問題?それとも特定の表領域を使用した場合に負荷が高くなるの?
全容量に対して使用量はどのくらい?
119117:2007/12/07(金) 00:38:11 ID:Sq6yutGL
れすありがとう
>>117
> ディスクの問題?それとも特定の表領域を使用した場合に負荷が高くなるの?
> 全容量に対して使用量はどのくらい?
使用量は78%です。ディスクはエラーがありませんでした。表領域の特定はちゃんとはしてませんが、
データ領域(レコード、INDEX)のところで負荷がたかくなっているようです。
なぜようですってかともうしますと、自分の職場ではなく、遠隔地にあるサーバで(リモートできない)話を
きいている状況です。
初期パラメータのメモリはいじってませんが、もしかしたらバッファがゼロになっていて検索にディスク
みているんじゃないかとも疑ってはいます。
120NAME IS NULL :2007/12/07(金) 03:34:31 ID:???
>>119

Reguildした時に表領域を指定せずにやっちゃって、表と索引とが
同じ表領域に作られちゃったってパターンを疑う。
121119:2007/12/07(金) 09:02:13 ID:VdnRSR1z
>>120
あっなるほど。考える材料増えました。ありがとう!
122仕様書無しさん:2007/12/07(金) 21:15:24 ID:???
>>117
全体的に遅くなるとかじゃなくてディスクI/Oが問題になってるんだよね?
I/O性能が劣化してそうな感じなら、データファイルの断片化くらいしか思いつかない。

Rebuildの時に十分な領域がない

小さいサイズでのファイル自動拡張

データファイル断片化
・・・とか。

でもこんなので、いきなり100%いくとは考えられないし・・・。

やっぱり、>120さんの理由でディスクI/O性能の限界を超えたとかかなあぁ。
123NAME IS NULL:2007/12/08(土) 00:10:09 ID:RdFFMJzL
oraclexeをamdマシンに入れる方法教えてください。
debian4.0です。
124NAME IS NULL :2007/12/08(土) 02:54:41 ID:???
>>123

CPUのタイプなんか気にしなくていいだろうが?
ただマニュアルによるとx86版はDebian 3.1にしか対応していないみたいだぞ?
まあ試すだけ試してみたら?

http://download.oracle.com/docs/cd/B25329_01/doc/install.102/b25144/toc.htm#CIHFEBGE
125NAME IS NULL:2007/12/08(土) 19:16:12 ID: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
126NAME IS NULL:2007/12/09(日) 02:52:00 ID:???
>>125

お前、エラーメッセージを読めないのか?
お前のCPUはAMDの64-bit版だ。
xeは32-bit版しか出ていないんだから、入らないって文句言われてんだよ。


127NAME IS NULL:2007/12/09(日) 04:00:11 ID:???
CPUの違いは気にせんでもいいが
せめて32ビットと64ビットは気にしとけww
128NAME IS NULL:2007/12/10(月) 01:55:00 ID:???
>>125

Kernelが64-bit i686でコンパイルされてるから、32-bit版のXEが
入らないって文句言われてんだよ。
uname -aでkenelのバージョン確認してみ?
129NAME IS NULL:2007/12/12(水) 14:09:25 ID:???
ユーザが入力した文字を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  = 'http://example.com/',
  str_comment= 'サンプルです'
WHEN NOT MATCHED THEN
 INSERT INTO
  hoge ( id, seq, str_title, str_url, str_comment )
 VALUES
  ( 1, 1, 'あ', 'http://example.com/', 'サンプルです');
130NAME IS NULL:2007/12/13(木) 01:08:13 ID:???
文法がまずい。
UPDATEのうしろとINSERTのうしろがおかしい。
131NAME IS NULL:2007/12/13(木) 13:13:56 ID:???
Oracle 10gを開発で使いたいのですが
この場合どのライセンスを購入すればよいでしょうか?
開発するアプリケーションの種類はWebアプリです。
132NAME IS NULL:2007/12/13(木) 13:59:42 ID:???
>>131
開発だけならPersonalでもいいし、OTN Software Kitでもいい。
まぁ、US-OTNに利用者登録してダウンロードすれば
開発ライセンスのメディア代もタダだけどな。

技術サポート受けたいなら、Personal買え。
133NAME IS NULL:2007/12/13(木) 20:44:55 ID:???
そうそう。日本ばっかり見てると損する。
134NAME IS NULL:2007/12/14(金) 13:48:01 ID:???
トリガー中において、自分は、どのクライアントプログラムによって起動されているのか?
を取得する方法はありますか?
135NAME IS NULL:2007/12/14(金) 13:51:54 ID:???
まったくの未経験がOracle silver followを取るとしたら
どのくらい勉強時間が必要よ?
136NAME IS NULL:2007/12/14(金) 14:01:46 ID:???
>>134

この辺のファンクション使えば取れそうじゃね?

ora_sysevent,
ora_login_user,
ora_instance_num,
ora_database_name,
ora_dict_obj_name,
ora_dict_obj_type,
ora_dict_obj_owner,
137134:2007/12/14(金) 14:03:53 ID:???
>>136
ありがと
調べてみます。
138NAME IS NULL:2007/12/14(金) 15:53:31 ID:???
以下のストアドファンクションを実行したいのですが、INSERTが入っているとエラーになります。
呼び方は下のサイトを参考にしたのですがコマンドラインだと実行も出来ないようです。
ttp://oracle.se-free.com/jdbc/g5_func.html
>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;
/

どこがいけないのでしょうか?
139NAME IS NULL:2007/12/14(金) 17:38:04 ID:???
f_idとf_passはどこで宣言されているの?
140134:2007/12/14(金) 18:04:05 ID:???
すみません。
以下の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')
);
141NAME IS NULL:2007/12/14(金) 20:14:54 ID:???
Oracleの勉強を始めたばかりです。
何とかDBを好きになりたくて、楽しみたいと思ってます。
自宅でDBを使って楽しむ方法ってどういうものが
あるのでしょうか?
自分では思いつけないので、教えてください。
142NAME IS NULL :2007/12/14(金) 23:22:41 ID:???
>>141

俺もOracleで9年以上飯食ってるけど、自宅でなんか使ったことないよ。
自分の勉強のためにLinuxにRAC入れたりして遊ぶぐらい。
143NAME IS NULL:2007/12/14(金) 23:40:56 ID:???
>>141
郵便局から郵便番号と住所のデータをダウンロードして遊ぶとか。

業務プログラマなら知識増えるだけで
周囲に自慢できるから、単に新しい機能覚えるだけでもモチベーションでるよ。
SQLに疎い業務プログラマまじで多い。
144NAME IS NULL:2007/12/15(土) 00:01:26 ID:???
>>141
業務SEなら これ読んで データベースに展開してみるのもいいんでない?
ttp://www.amazon.co.jp/gp/product/images/4534032501/sr=8-1/qid=1197644344/ref=dp_image_0?ie=UTF8&n=465392&s=books&qid=1197644344&sr=8-1

目的ないと きついよね
145NAME IS NULL:2007/12/15(土) 00:22:57 ID:???
俺もほぼ同じぐらいOracle扱っているが、入れているのはノートPCだけだなw
滅多に使わない
146NAME IS NULL:2007/12/15(土) 00:27:08 ID:RcQd2CIu
ADO.NET+Data Provider For Oracle でOracleへの接続ですが
Oracle10gR2とOracle11gには接続可能でしょうか?

当方、Oracle9iでは接続の実績があるのですが上記のバージョンに変更しようと思っています。
147NAME IS NULL:2007/12/15(土) 00:42:23 ID:???
148NAME IS NULL :2007/12/15(土) 03:21:19 ID:???
>>147

可愛いじゃねぇかよ(;´д`)ハァハァハァ
149NAME IS NULL:2007/12/15(土) 16:58:56 ID:???
>>142-145
参考になりました。ありがとうございます。
色々探してみようと思います。
150NAME IS NULL:2007/12/16(日) 21:38:49 ID:eMcHXlqr
来年度からDBを扱うシステムアプリの保守を頼まれたので、
特に障害とか保守作業とかが必要ないときであっても、
毎月簡単な報告書くらいまとめようかな、と思います。
(DB自体の保守や管理ってもっときちんとした報告書とか作成すべきでしょうが、
あくまで「DBを扱うアプリ」側の保守なので、簡易なものでいいと思ってます)

報告書の内容としてぱっと思いついたのは

・ レコード件数
・ 使用領域・未使用領域の状況
・ Oracleの表領域が格納されているディスク自体の容量の状況

…とかを考えてるんですが、そのほかに
「これは必須だろ常考」「DBAならこれを確認しとくのが当たり前」って項目があれば
ぜひご意見を伺いたいです。
151NAME IS NULL:2007/12/16(日) 22:11:55 ID:???
>>150
まず、OTNで聞いた方が良い。
152NAME IS NULL:2007/12/16(日) 22:41:33 ID:???
性能情報も欲しい
・CPU使用率の推移
・DiskI/O量の推移
・夜間バッチの処理時間推移
・平均レスポンス時間の推移
153NAME IS NULL:2007/12/17(月) 00:35:46 ID:???
そもそもその情報がどうして必要なのかをちゃんと纏めた方がいい
154NAME IS NULL:2007/12/17(月) 16:10:34 ID:???
----簡単な質問解答格納テーブル
--テーブル 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;
これだと明らかに間違っているのは分かるのですがどうしても最適な文が思いつきません。
ご教示お願い致します。
155NAME IS NULL:2007/12/17(月) 20:53:03 ID:vNanl1pJ
>>150
アプリ側からみたDBの報告なら日別、時間別の
アクセス数集計とレスポンス計測・報告で十分。
156NAME IS NULL:2007/12/17(月) 23:58:36 ID:???
>>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が出力される。
157NAME IS NULL:2007/12/18(火) 02:36:57 ID:q4P2kapu
Oracleのツールに関して質問があります。

今月のDBマガジンで「Oracle SQL Developer」の紹介がありました。

その記事のなかでクエリービルダーの話がでてきたんですが…
「SQL Developerは 〜 SQL PLUSと比べるとはるかに見やすいだろう。
また、クエリービルダーを起動すれば…」

SQL Developerの中にクエリービルダーという項目はありませんでしたし、
ネットで調べても、oracleのクエリービルダーというツールも見当たりませんでした

ご存知の方いましたらぜひ教えてください。
158NAME IS NULL:2007/12/18(火) 04:43:10 ID:???
http://www.oracle.com/technology/products/database/sql_developer/files/what_is_sqldev.html
あるみたいだが、実際に見たことはないなあ
明日会社で試してみる
159158:2007/12/18(火) 12:30:28 ID:???
あったよ。
SQLワークシートの何もない部分で右クリック→Query Builder。
初めて知った。Accessっぽいね。
160154:2007/12/18(火) 14:08:39 ID:???
>>156
どこが変な日本語なのでしょうか??
普通に理解できると思いますが、、、

>viewはビュー
ヴューでもビューでも大差ないと思います

ビューでquestとそれに紐づいたanswerを全部取り出せるようにしておいて
SELECTの際にuser_id(ユーザ番号)を指定して(ユーザごとの)解答+質問文を取り出したいのです。

やりたいことは分かっていただけましたでしょうか?
161NAME IS NULL:2007/12/18(火) 19:50:55 ID:???
SELECT 社員番号, 名字, 名前, 年齢, 性別 FROM 社員テーブル;
SELECT 社員番号, 資格名, 取得日 FROM 資格テーブル;
SELECT 社員番号, 部署名, 配属日 FROM 部署テーブル;

これらのSQL文を1文で取得したいのですが可能でしょうか?
社員テーブル1つに対して資格テーブル,部署テーブルは1行以上になる可能性があります。

■社員テーブル
 ■資格テーブル1
 ■資格テーブル2
 ■資格テーブル3

 ■部署テーブル1
 ■部署テーブル2

このように配列で返して欲しいのですがどんな方法があるでしょうか?
または皆さんならどうしますか?
やはり3文で応答するしかないのでしょうか?

宜しくお願い致します
162NAME IS NULL:2007/12/18(火) 20:40:41 ID:???
>>161
ストアドでOK
163162:2007/12/18(火) 20:45:39 ID:???
ストアドじゃ意味不明だ罠。
JavaストアドでOK。

PL/SQLでも問題なく出来るとは思うけど、
VARRAYとか考えずに配列データとして出力まとめるなら、
普通の記述言語の方が楽だろ。
164NAME IS NULL:2007/12/18(火) 21:27:16 ID:???
>>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)
165164:2007/12/18(火) 21:36:13 ID:???
>>164
あ、ROWNUMのところは適当に
ROW_NUMBER (PARTITION BY 社員番号 ORDER BY 社員番号)
ということにしておいてください。MySQLみたいな集約のCONCATが無いOracleでたまにやる。
(ソースコードには残らない仕事のときだけ)
166NAME IS NULL:2007/12/18(火) 23:31:45 ID:???
>>159
ありがとうございます!
167NAME IS NULL:2007/12/19(水) 10:06:27 ID:???
>>164

そのSQLは階層問い合わせ使ってるから、バージョンによっては使えない。
使えるバージョンを書いておかないと、勘違いする人いるから
書いた方が良いいと思う。
168NAME IS NULL:2007/12/19(水) 19:29:44 ID:???
階層的クエリは9i以降だよ。新規案件で8i使ってる人いるのかな?
169NAME IS NULL:2007/12/20(木) 00:18:16 ID:???
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つを比較するとどちらの方がパフォーマンスがよいのでしょうか?
170NAME IS NULL:2007/12/20(木) 01:20:04 ID:???
内部表が少ない方がパフォーマンスが良い。
最初に評価される表がINDEXを使えたり、行数が少ないなら早い。
1は結合してから検索かけてる
2はA表を最初に評価対象にしている。
結果は2だろうけど、RDBMSがどのような最適化してるから知らないからな。
171NAME IS NULL:2007/12/20(木) 01:20:06 ID:???
実行計画とってみればいいじゃない
たぶんOracleが強力に最適化してしまうので、どっちも同じ実行計画になるよ。
172NAME IS NULL:2007/12/20(木) 23:30:04 ID:5x3NWZXY
こんにちは、オラクルについて質問があります。

オラクルクライアントってサービスなの??

サービスであるならば、オラクルを使用しないシステムの開発中は、
サービスを停止したいのですが、、
173NAME IS NULL:2007/12/21(金) 00:56:53 ID:???
止めても構わないよ。
所詮、バックグラウンドでリスニングするための設定プロセスにすぎないから。
174NAME IS NULL:2007/12/22(土) 17:43:56 ID:qZUX37h2
>>173
こんにちは、172です。

オラクルクライアントのサービスはどうやってとめるのですか?
175NAME IS NULL:2007/12/22(土) 20:32:56 ID:???
>>174
Oracle Clientはサービスじゃない。
176NAME IS NULL:2007/12/22(土) 21:08:24 ID:???
オラクルクライアントってサービスなの??
サービスであるならば、サービスを停止したいのですが、、

止めても構わないよ。

オラクルクライアントのサービスはどうやってとめるのですか?

Oracle Clientはサービスじゃない。 ←今ここ


一人、バカが紛れ込んでいます。さて、誰でしょう?w
177仕様書無しさん:2007/12/22(土) 21:20:54 ID:???
え?一人なの?
178NAME IS NULL:2007/12/22(土) 23:51:05 ID:???
オラクルクライアントってサービスなの??
サービスであるならば、サービスを停止したいのですが、、

止めても構わないよ。

オラクルクライアントのサービスはどうやってとめるのですか?

Oracle Clientはサービスじゃない。

サービスでないなら止める必要無い。
終了。
179NAME IS NULL:2007/12/25(火) 00:12:49 ID:???
オラクルマスターって、ねずみ講?
180NAME IS NULL:2007/12/25(火) 00:46:20 ID:???
OracleClientはサービスじゃなくて、
設定ファイルを使ってオラクルと通信するクライアントツール
181NAME IS NULL:2007/12/25(火) 01:13:44 ID:???
つまり >173 が分かってなかった、ってことでFA?
182NAME IS NULL:2007/12/25(火) 06:20:57 ID:???
>>181
何をいまさらwww
183NAME IS NULL:2007/12/26(水) 18:54:47 ID:if5svl3h
amd64でもchrootでxe入れることが出来るとは。
184NAME IS NULL :2007/12/27(木) 00:03:56 ID:???
>>183

Kernelがi386だったというオチだったりしないか?
185NAME IS NULL:2007/12/27(木) 11:27:38 ID:YLT4m45U
linuxでoracleを動かしているんですが、インストールしただけで
プロセスが大量にできて、メモリも結構食っているので、一旦止めようと
思っています。でも、止め方がわかりません。
バージョンは11g-R1です。どうすればいいですか?
/etc/init.d/の下にもそれらしきものはないし。。。
186NAME IS NULL:2007/12/27(木) 12:25:44 ID:???
sqlplus "/ as sysdba"がなんのことか分からないなら

とりあえずこれを試してみよう。
/opt/oracle/product/11.1.0/db_1/bin/dbshut
187NAME IS NULL:2007/12/27(木) 12:29:57 ID:YM6G8kqZ
>>184
$uname -ar
Linux debian 2.6.18-5-amd64 #1 SMP Mon Dec 3 04:55:28 UTC 2007 x86_64 GNU/Linux
188150:2007/12/29(土) 17:15:41 ID:PG+gUzIR
>>151
みなさんアドバイスありがとうございます。

>>152>>155
ありがとうござます。
今まで出された項目を下に書いてみました。

・ レコード件数
・ 使用領域・未使用領域の状況
・ Oracleの表領域が格納されているディスク自体の容量の状況
・ CPU使用率の推移
・ DiskI/O量の推移
・ 夜間バッチの処理時間推移
・ レスポンス計測・平均レスポンス時間の推移
・ 日別、時間別のアクセス数

> アプリ側からみたDBの報告なら日別、時間別の
> アクセス数集計とレスポンス計測・報告で十分。

アプリ側かDB等の環境/基盤保守側かで報告する観点も変わってくるんですね。
夜間バッチの処理時間推移もどちらかというとバッチアプリに関連するから
念のためそれも調べておこうかと思います。

>>153

パフォーマンス的に問題が発生していないかを確認しておきたい、
というのが、今回の目的に該当するかと思います。

登録・更新するレコード件数が増加傾向にあるので、自分は当初
・ 使用領域・未使用領域を監視して必要に応じ再編成等対処
・ 自動拡張設定になっているので、表領域が格納されているディスク自体の容量を確認しておき
万が一自動拡張したときに容量不足になる危険性がないか調査
というのを考えてました。

それと、誤解を恐れずに書くと、ちょっと言葉は悪いですが

DBに関する報告書を作成するのは、「DB障害を未然に防ぐため」が
いちばん重要な目的だとは思うのですが、
アプリ側の報告書なので
「納品物作成しましたよ、ちゃんと毎月チェックしてますよ」という
「作業したというアリバイ作り」っていう面もあると思ってます。

(もちろん、これが第一目的ではないですが……
ただDB障害が発生していないからといって何にもチェックせずのほほんとしてるのは
よくないのでは、と思うので。)

そういう発想はよくないのかもしれませんが……。
189NAME IS NULL:2008/01/01(火) 21:32:44 ID:oiaQYP0E
>>186
こんなん出ましたけど、、、、

$ sudo /home/db/oracle/app/eiichi/product/11.1.0/db_1/bin/dbshut /home/db/oracle
Failed to auto-stop Oracle Net Listener using /home/db/oracle/bin/tnslsnr
190NAME IS NULL:2008/01/02(水) 01:12:27 ID:???
がんばれ、えいいち
191NAME IS NULL:2008/01/02(水) 01:32:43 ID:Dgv8lEDk
>>190

木手?
192NAME IS NULL:2008/01/02(水) 01:33:09 ID:???
>>190
教えてよ。
193NAME IS NULL:2008/01/02(水) 02:27:49 ID:???
えいいちです。
oracleを停止するのは諦めました。
とりあえず、oracle関係のプロセスを全killして、関係ありそうなファイルを削除
しました。リブートしてみて何か問題がなければいいかなと。
194NAME IS NULL :2008/01/02(水) 03:24:34 ID:???
>>193

えいいち、いきなり消すなんてどうかしてんぞ?
root.shで色々といじくられてるんだぞ?
気に入らなかったら、どうしてインストーラー使ってアンインストかけようとしない?
195NAME IS NULL:2008/01/02(水) 22:13:11 ID:IKgH7NoX
基本的な事ですが
別にオラは来ないんですが
なんでオラクルなんですか?
196NAME IS NULL :2008/01/02(水) 22:18:47 ID:???
>>195

どうしても知りたかったら、Matrixを見てみるといい。
197NAME IS NULL:2008/01/02(水) 23:53:11 ID:???
オラクル 神のお告げ
198NAME IS NULL:2008/01/03(木) 00:29:55 ID:???
オラクルっていうとブラックオニキスのファイヤークライスタル編しか思い浮かばん
199NAME IS NULL:2008/01/03(木) 02:32:44 ID:???
スターオーシャンのスキルのひとつ
200NAME IS NULL :2008/01/03(木) 04:46:03 ID:???
>>198

オサーン、ハケーン。
ムーンストーンの発売をずっと待っているのはお前だけではあるまい。
201NAME IS NULL:2008/01/14(月) 11:30:37 ID:???
iSQL*PLUSに対して、DBA権限でログインしたいと思っています。
マニュアルを読むと、JAZNとかいうシェルを起動するか
GUIでやるみたいなのですが、両方とも良くやりかたが
分からないです。
どなたか教えて頂けますか?
202NAME IS NULL:2008/01/14(月) 18:48:37 ID:???
>>201
使ってないからしらないけど
iSQL*PlusはWindowsMeと同じに状態になってる
調べておいても無駄になるよ
203NAME IS NULL:2008/01/14(月) 19:20:33 ID:???
>>202
そんな感じなんですか。
マニュアル見たら、「これからはisql*plusが基本ツールになる」
みたいに書かれていたので、isql*plusを使おうかと。
そうでないなら、sql*plusでいいかもしれませんね。
204NAME IS NULL:2008/01/14(月) 21:07:01 ID:???
205NAME IS NULL:2008/01/18(金) 15:19:35 ID:???
高度な質問の中すみません。
ちょっとわけわからのです。
FileMakerPro9からODBCでOracle7(!)のテーブルを持ってきたいのですが・・・

SERECT * FROM ##### (####はテーブル名)

としても、
「ODBCエラー; [Microsoft][ODBC driver for Oracle][Oracle]ORA-00942;表またはビューが存在しません」
となります。
なんででしょう?
206NAME IS NULL :2008/01/19(土) 09:42:01 ID:???
>>205

どのユーザーでログインしてるんだ?
ちゃんとSchema指定してるか?

select * from boge.hoge_table; みたいにさ?
207NAME IS NULL:2008/01/21(月) 09:17:05 ID:???
>>206
ユーザーはsys(管理者権限)です。
Schema指定・・・したけどかわらん orz
208NAME IS NULL:2008/01/21(月) 09:48:31 ID:P/yV5kbJ
>SERECT * FROM ##### (####はテーブル名)
SELECT * FROM ##### (####はテーブル名)

selectのスペルミス?
209NAME IS NULL:2008/01/22(火) 10:06:15 ID:???
>>208
ぁぅ・・・
それは書き込み時のミスです。
ちゃんと「select * from ####」です。

もう、あれですかね。
Oracle7って時点でだめだめっすかね?
210NAME IS NULL:2008/01/23(水) 03:45:20 ID:s8cIM/FN
10gです。
なるべくヒントを書かずに最適な実行計画を立てさせるには、
統計情報をどのように取得したらよいでしょうか?
そんなに複雑ではないSQLなのですが、
件数が増えると早々にインデックスを捨ててフルスキャンしてしまい、
ヒントでインデックスを指定するのに比べ、実行時間が10倍以上になってしまいます。
今は DBMS_STATS を使用し、100%で取っています。
211NAME IS NULL:2008/01/23(水) 07:31:55 ID:???
>>210

OPTIMIZER_INDEX_CACHING や OPTIMIZER_INDEX_COST_ADJの初期化パラメータを
変更するとINDEX SCANのコストを低くできるよ。
使い方については、マニュアルや検索サイトで調べてください。
212NAME IS NULL:2008/01/23(水) 23:20:02 ID:???
>>204
「Oracle Enterprise Manager Javaコンソール」も
無くなっているんだ?!

ガガーン!!重いけど、便利だったのに。。
213NAME IS NULL:2008/01/24(木) 23:39:38 ID:???
会員番号 枝番 所属
10000001 00 A001
10000001 01 ’’(1byteスペース)
10000001 02 A002
10000001 03 ’’(1byteスペース)

上のようなテーブルで枝番が00のレコードの所属が変わった時に
履歴データを登録するトリガーを作ろうとしています。
(履歴データのテーブルは上と同じです)

登録したい履歴は
@枝番00の履歴
A枝番00以外で所属がスペースのもの(上だと01と03)
(履歴の所属は枝番00の所属をセット)

IF :OLD.所属 <> :NEW.所属 THEN
@ INSERT INTO RIREKI (:OLD.会員番号,:OLD.枝番,:OLD.所属);
A INSERT INTO RIREKI(
      SELECT 会員番号,枝番,:OLD.所属 FROM テーブル
      WHERE 会員番号 = :OLD.会員番号
AND 枝番号 <> 00
AND 所属 = ' '
);
END IF;

上のように作ったのですがAの履歴が登録されてくれません。
@は登録されます。
Aの履歴登録をファンクションにして見ても同じです。
(ファンクションを単体で動かすと登録されます)

どこがおかしいのでしょうか?アドバイスをお願いします。
214NAME IS NULL:2008/01/25(金) 03:32:01 ID:???
>>211
ありがとうございました。おかげで急場がしのげました。
215NAME IS NULL:2008/01/25(金) 23:35:08 ID:FdYL0YIc
AテーブルとBテーブルとCテーブルを結合して10000人の個人情報(1人1レコード)を取得する。
AテーブルとDテーブルとEテーブルを結合して10000人の個人情報(1人1レコード)を取得する。
AテーブルとFテーブルとGテーブルを結合して10000人の個人情報(1人1レコード)を取得する。
・・・といった感じでAテーブルに対して複数のテーブルを当てて取得したいようなのが
20種類くらいあったとして、それぞれが同じ10000人の個人情報だとする。
その10000人は、Aテーブルに対して条件を指定する事で取得出来て、
対象者をキーとして簡単に結合出来る場合、

一発のSQLで取るほうがいいのか、複数回に分けた方がいいか
どっちがいいかなパフォーマンス的に。
大量データを扱う場合、複数回に分けた方がいい場合があると聞いたので
216NAME IS NULL:2008/01/26(土) 00:04:20 ID:???
>>215

何かよく知ってる仕事と関係がありそうな…
こういうところで新規性を失うと特許出せないですよ。特29条1項3条。

複数回に分けるということはトランザクションを考えないといけないので、
一般には1回で済ませるほうがいいですね。
パーティション表などの考え方とはちょっと概念が違いますよ。
217NAME IS NULL:2008/01/26(土) 07:59:23 ID:4u50YVa+
>>216
そんな大層なものじゃないですよ、すごく超初心者的な質問です。
--
SELECT A.個人を特定するID,
B.住所,
C.職業,
ア.住所マスタ,
イ.職業マスタ
FROM A,B,C,ア,イ(外部結合)
WHERE
A.個人を特定するIDの条件
--
実際はもっと複雑なSQLですけど、これがB,CだけでなくZまであったとして、
B〜Z、ア〜ンまでのデータを一つのSELECT文で取得する場合と
BとC、DとE・・・といった具合に複数回にSELECT文を分ける場合で、
後者の方がパフォーマンスに優れる場合もあると聞いたんですが、
理由聞いてもイマイチ分からなかったので質問しました
こんな事、特許出すほど新規性のあるものでは無いと思いますが・・・
218NAME IS NULL:2008/01/26(土) 08:08:18 ID:???
>>217
ちなみにどんな理由だったんだ?
219NAME IS NULL:2008/01/26(土) 08:14:01 ID:???
>>218
検索しに行くレコード数が半端ないからという理由です
自分としては、どっちにしても同じデータを取得するのだから
単純に一度に取れた方がいいじゃんって思うのですが・・・
220NAME IS NULL:2008/01/26(土) 09:11:03 ID:???
>>219
それ理由になってないな

10gで廃止されたが OPTIMIZER_MAX_PERMUTATIONSってパラメータがあるんだけど
テーブル6個だと結合順序は720通り,7個になると5040通りになる
9iのデフォルトの上限値はテーブル6個までの結合順序は完全に調査できるが7個は無理

大量のテーブルを結合するとCBOの実行計画で結合順序をミスったときのインパクトも急激にでかくなる
結合順序の選定は総当りではなく統計情報がサポートしてるけど完璧ではない
221NAME IS NULL:2008/01/26(土) 09:25:45 ID:???
>>220
よく分かりました
THX!
222NAME IS NULL:2008/01/27(日) 08:55:53 ID:???
>>215
俺だったら大量テーブルのJOIN結果のデータ取得は
マテリアライズドビュー使うがなぁ。
223NAME IS NULL:2008/01/30(水) 17:29:57 ID:???
Oracle9iですがTNSリスナーが勝手に停止することは
ありえますでしょうか?
224NAME IS NULL:2008/01/30(水) 17:44:30 ID:???
>>223
勝手に落ちてることはたまにある。
負荷掛かりすぎてたとかじゃないか?
225NAME IS NULL:2008/01/30(水) 17:50:41 ID:???
>>224
なるほど。負荷がかかりすぎると落ちるとは知りませんでした。
226NAME IS NULL :2008/01/31(木) 00:51:56 ID:???
>>225

listenerのログ見てみればいいじゃん?
誰かが間違って落としているかもよ?w
まあ、用意周到な奴はログも消しているかも知れないけどさw
227NAME IS NULL:2008/01/31(木) 10:09:01 ID:???
リスナーに負荷が掛かる状況ってどういう状況でしょうか?
リスナーは接続を待ち受けてるだけではなく他の仕事もしているのでしょうか?
228NAME IS NULL:2008/01/31(木) 17:15:30 ID:???
なかなか高負荷でリスナーが落ちるというソースがありません。
インスタンスが落ちるというのはあるみたいですが。
どこかにソースは無いでしょうか?
229仕様書無しさん:2008/01/31(木) 23:16:30 ID:???
>>228
そんなソースがあってたまるかw
230NAME IS NULL:2008/02/01(金) 09:06:23 ID:???
>>230

リスナーに負荷がかかる状況としては、RACなんかでロードバランスされていた
セッションが、インスタンス障害やノード障害などで落ちてしまった場合なんかが
該当するだろうな。
設定にもよるけど、こういった場合には生き残っているノードに、一気に新たな
セッションを確立しようとするから、一時的にリスナーに負荷がかかる事が
考えられる。
231NAME IS NULL:2008/02/01(金) 09:27:34 ID:???
リスナーがのように軽い処理がウェイトじゃなく高負荷状態だったら
DBサーバーはきっと火を吹いてる
232NAME IS NULL:2008/02/01(金) 13:01:20 ID:???
すまんちん。
おいらUDB2しか触ったことないのにDBなら一緒でしょ、とか
訳のわからん理由でoracleの案件に突っ込まれて涙目で勉強してるんだが、
兄貴諸氏お薦めの本や、サイトってないでしょか・・。
手探りだと時間かかってしまって・・。

できれば、トリガーとPL/SQLについて詳しく説明してあるものがいいです。
233NAME IS NULL:2008/02/01(金) 15:00:14 ID:???
>>232
PL/SQL 入門 トリガー で検索しる
234232:2008/02/01(金) 17:39:41 ID:???
ざっくりしててわからんかったですよ。すまんです。
検索してみて、「やさしいOracle PL/SQL入門」ってのがよさげだったので
これにしてみました。
涙目にならず、がんばります。
235NAME IS NULL:2008/02/01(金) 17:48:18 ID:???
>>232
Oracle Technology Network (OTN) Japan
http://otn.oracle.co.jp/

ここにユーザ登録しておけばある程度は何とかなる。
マニュアルもあれば、サンプルもあるし。
236NAME IS NULL:2008/02/01(金) 20:10:27 ID:???
すみません、ちょっと教えてください。

アメリカ人のプログラマーの友人と会話の中で
「Oracle Master」という言葉を出しても相手は「?」という感じだったのですが
USでは別の言い方をされてるのでしょうか?

Google英語版で調べてみてもそれっぽいのが出てこないのですが・・・
237NAME IS NULL:2008/02/01(金) 20:23:24 ID:???
238NAME IS NULL:2008/02/01(金) 20:25:27 ID:???
silver=OCA
gold=OCP
platinum=OCM
239NAME IS NULL:2008/02/01(金) 20:26:37 ID:???
>>236

OCM/OCP/OCA だな。
240NAME IS NULL :2008/02/02(土) 07:01:21 ID:???
>>236

アメリカ在住だが、こっちではOracle CertifiedとかOracle Certified DBAとかって言う。
まあ、たまに面接とかするんだけど、レジュメの一番先に「Oracle Certified DBA」とかって
書いている奴に限って、実務は全然駄目だったりする。
特にインド人な。
241NAME IS NULL:2008/02/02(土) 07:28:53 ID:???
>>240
日本でも同じだよ(w コレも全世界共通なのかな
資格なんてって思うけど...
実務でバリバリ出来る人は簡単にOCP(Gold)くらいは取れちゃうからね
242NAME IS NULL:2008/02/02(土) 13:21:36 ID:???
windows vistaにOracle9iをインストールすることは可能ですか?
インストールの一番最後で、
「jrewを起動できませんでした」のエラーが出てしまいます。
243NAME IS NULL:2008/02/02(土) 15:59:50 ID:???
記述がまったく間違ってないUPDATE文で
接続等もちゃんとしてあって、TBLがちゃんとあって
TBLの容量不足以外で
UPDATE文だけ失敗させる方法ってありますかね?
244NAME IS NULL:2008/02/02(土) 16:15:02 ID:???
デッドロック
245NAME IS NULL:2008/02/02(土) 17:11:07 ID:???
>>244
どうもありがとうです。それしかなさそうですね。
246NAME IS NULL:2008/02/03(日) 05:00:43 ID:???
>>243

triggerで弾けば?
247NAME IS NULL:2008/02/03(日) 09:55:24 ID:???
>>243
いちばん簡単なのはプライマリキー重複エラーじゃないか?
248NAME IS NULL:2008/02/03(日) 15:02:43 ID:Do4vvoU0
oracle10gPlatinumをとりたいと思ってるのですが、
試験情報とかって知ってますか?
試験のイメージがわかないんですが、
具体的な試験の内容とか知っている人いれば教えてくれませんか?
249NAME IS NULL:2008/02/03(日) 17:51:18 ID:???
www.oracle.comにアクセスできません
落ちてるんでしょうか
250NAME IS NULL:2008/02/03(日) 18:28:04 ID:???
>>248
Platinum9iを保有しています
残念ながら具体的な内容は教えられないことになっています
「特訓コース」の研修にでも参加してみたら

>>249
繋がりますよ
251NAME IS NULL:2008/02/03(日) 18:33:26 ID:???
>>250
FireFoxじゃなくてIEでアクセスしたら繋がりました。失礼しました。
252NAME IS NULL:2008/02/03(日) 19:02:42 ID:???
>>248

去年の3月に受けたときはこんな感じ。

シナリオ0 45分 セットアップ
シナリオ1 120分 データベースとネットワーク構成
シナリオ2 120分 Enterprise Manager Grid Control
シナリオ3 60分 データベースの可用性を向上させる構成
シナリオ4 90分 データウェアハウス向け機能の構成
シナリオ5 120分 データの管理
シナリオ6 120分 パフォーマンスの管理
シナリオ7 105分 Real Application Clusters
シナリオ8 75分 Data Guard

あとは google 先生に聞いてみたらいいよ。
253NAME IS NULL:2008/02/04(月) 02:01:24 ID:p8Avi1wM
特訓コースの内容をしっかり復習すれば
いけそうなのですかね?
特訓コース外の中身がでることってあるのでしょうか?
254NAME IS NULL:2008/02/04(月) 07:09:56 ID:???
>>253
特訓コースを受講した
全員が合格しているわけではないと思うぞ
っとだけ言っておこう
255NAME IS NULL:2008/02/04(月) 08:27:30 ID:???
>>253

ぜんぜん足りない。そんなに Platinum は甘くないよ。
256NAME IS NULL:2008/02/06(水) 01:06:09 ID:???
Oracleであ興味があるのがifsというきのう なのですがあれは動きますか?
257NAME IS NULL:2008/02/06(水) 04:47:57 ID:???
>>256
Internet File Systemのことか?
258NAME IS NULL:2008/02/06(水) 14:41:40 ID:wj1xNTA5
>>256
動くよ
259256:2008/02/06(水) 21:27:21 ID:???
はい、自分でDBの勉強を使用つぃているのですが、いろいろ調べると、9iでは大々的に宣伝されているのに10gではマニュアルなどでは見つけられないんです。
 9iでコケた技術なのかな、って気になったわけです。

もしくはここで聞く話じゃないのを承知で聞きますが、mysql やposgreに同じ機能の物ありますか?

オフラインでレスしているので返信が遅れて申し訳ありません。
260仕様書無しさん:2008/02/06(水) 22:28:39 ID:???
>>259
いまもう11gが出てるんだが。。。
9iを大々的に宣伝って、何を見てるんだ?

とりあえず、10gのマニュアル。
http://otn.oracle.co.jp/document/products/oracle10g/index.html
261NAME IS NULL:2008/02/07(木) 00:03:07 ID:???
>>260

流れを読めよ。この人は ifs について聞いてるんだろうが。
262NAME IS NULL:2008/02/07(木) 03:06:42 ID:???
実行計画ってどうやってみるの?
出力結果見ても見方が判らないから意味がわからない
263NAME IS NULL:2008/02/07(木) 20:49:36 ID:???
>>259
つか、ifsは10gでcontent Management SDKに名前変わったよ。

>>262
Object Browserで参照すれば分かり易くしてくれる。
264NAME IS NULL:2008/02/08(金) 16:14:06 ID:???
バッチジョブの用語の意味は何でしょうか。
調べたのですが、この用語の具体的な意味を解説しているサイトは見つかりませんでした。
265NAME IS NULL:2008/02/08(金) 16:19:30 ID:???
そのまんま batch な job
266NAME IS NULL:2008/02/08(金) 22:46:04 ID:z4LAWO81
★質問(既出だったらごめんなさい)

ある列に、半角文字が含まれているレコードを探し当てたいのですが、以下のSQLだと「バ」とか「ガ」など濁音とかだと見逃してしまう
なんか良い方法ないでしょうか?


------------------------------------------
--前提条件:文字コードは「JA16SJIS」

SELECT *
FROM TBL
WHERE LENGTH(COL) <> LENGTHB(COL)/2
;
------------------------------------------
267NAME IS NULL:2008/02/09(土) 11:47:07 ID:???
半角カタカナはせいぜい60文字ぐらいだろうし、濁音とかだけが問題なら
OR INSTR('濁点')みたいな感じで、それらを別に検索すればよいのでは?
268256:2008/02/09(土) 14:51:26 ID:???
すいません。
返信が遅れました256です。
9iではあれだけ宣伝しているのに、10gのマニュアルにIFSの記載がまったくないので古いバージョンを導入しかないのかと
悩んでいたんです。 (9iで思いっきり失敗した事例で10gからなかったことにしたのかなぁ、なんて勝手に考えていました。)
あと実際の環境でWin2000の低スペックPCで運用したくできるだけ古いバージョンをインストールしようと考えていました。
11gってまだ手を出すレベルではないような気しますし。
社内でファイルサーバの整理にInternetFileSystemが有効かなぁ、なんて考えていたんです。
名称が変わっただけみたいですね。 >>263

皆様ありがとうございました。10g修行して戻ってまいります。

/チラシの裏
CLIEにnnsiだとどうしてもレスポンスが遅くなってしまいますです。
ソフトウェア技術者試験をDBがまったく歯が立たなくて落ちたので
もっと気合入れて勉強します。

以上チラシの裏/
269NAME IS NULL:2008/02/09(土) 23:33:10 ID:???
>>264
ていうかバッチジョブって別にオラクル用語じゃないけどね
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86
270NAME IS NULL:2008/02/10(日) 00:27:09 ID:C0/lH/mG

------------------------------------------
--前提条件:文字コードは「JA16SJIS」

SELECT *
FROM TBL
WHERE LENGTH(COL) <> LENGTHB(COL)/2
OR INSTR('゙')
OR INSTR('゚')
;
------------------------------------------

でOK?
271NAME IS NULL:2008/02/10(日) 00:55:00 ID:???
いや、それじゃ構文エラーだろう
そもそもINSTRって文字位置を返す関数でしょう

WHERE
LENGTH(COL) <> LENGTHB(COL)/2
OR COL NOT LIKE '%゙%'
OR COL NOT LIKE '%゚%'

とやりたいんじゃないの?

それか文字コードがSJISで固定なら文字コードで範囲を絞るとか
272266:2008/02/10(日) 01:09:34 ID:???
>271
頭いいっすね。勉強になります。
文字コードで範囲を絞るというと文字コードを返す関数があるのですか?
273NAME IS NULL:2008/02/10(日) 01:25:06 ID:???
>>271
いやそれだと濁点・半濁点が含まれていないレコードが抽出されるぞ

と自己レス

LIKE演算子の前のNOTは不要でした

>>272
ごめん、あんまり詳しく考えずに書いたけどたぶんあるでしょう>文字コード関数
大体どんな言語にもあるし ASC()とか
274NAME IS NULL:2008/02/10(日) 01:26:03 ID:???
スレちがい
275NAME IS NULL:2008/02/10(日) 02:13:25 ID:???
>274
違ってないでしょ
もし違っているなら誘導たのむ
276NAME IS NULL:2008/02/10(日) 04:30:29 ID:???
こっちだろ
オラクルだけの話題とはいい難い

SQL質疑応答スレ
http://pc11.2ch.net/test/read.cgi/db/1193486961/
277NAME IS NULL:2008/02/10(日) 13:55:25 ID:???
>276
ありがとちゃーん
278NAME IS NULL:2008/02/10(日) 14:02:43 ID:???
dump関数使えないかな?
279NAME IS NULL:2008/02/10(日) 21:12:18 ID:???
ダパンプ関数?
280NAME IS NULL:2008/02/11(月) 02:41:56 ID:???
俺がレスするといつもこうだ
281NAME IS NULL:2008/02/13(水) 11:44:50 ID:???
今手元にOracle9iがあるんですが、エディションがわかりません。
何か確認する方法ってありますか?
282NAME IS NULL:2008/02/13(水) 13:18:15 ID:???
インストーラー起動すればすぐわかると思う
283NAME IS NULL:2008/02/13(水) 14:02:15 ID:???
階層問い合わせを高速化するのに何かいい方法はないでしょうか?
284NAME IS NULL:2008/02/13(水) 17:14:30 ID:???
>>281
インストールメディアにはEnterpriseもStandardも入ってるからライセンス証書確認汁。


>>282
それじゃ分からんと思うよwww


>>283
実行計画とにらめっこ汁
285NAME IS NULL:2008/02/13(水) 22:21:44 ID:???
9iってインストールするときにedition選ぶんじゃなかったっけ?
たしかインストールしたeditionがrepositoryに表示されてたと思ったが。

#ライセンス証書確認しても何が入っているかの確認にはならんかと思う。
286NAME IS NULL:2008/02/13(水) 22:25:07 ID:???
インストーラー起動っていうのはCDとかのインストーラーじゃなくて
既にインストール済みのインストーラーのことで、それを起動したら
インストール済みのプログラムの細かいバージョンまで表示される。
今、手元に9iのサーバがないからenterpriseかどうかまで表示されるかはわからないけど。
287NAME IS NULL:2008/02/13(水) 22:32:05 ID:???
>>285
「手元に有る」という表現では、インストール済みの実機とは限らん罠。

>>286
インストール済みの実機有るならsql*plusでconnectすればすぐ分かるだろ。
288正義の味方:2008/02/13(水) 23:20:29 ID:UkjpCQOT
地球を救う正義の味方、今こそ参上!!
http://seiginomikata.xxxxxxxx.jp/
289281:2008/02/14(木) 17:59:24 ID:???
無事解決しました。
接続の際にプロンプトにOracle9iとしか表示されないのでSEのようです。
また、インストーラ起動でパッチの確認も出来ました。
ありがとうございました。
290NAME IS NULL:2008/02/18(月) 05:28:37 ID:???
oracle 10.0.1 + VB.NET2003 ストアドプロシージャの実行について質問です。

以下の内容でVBからプロシージャを実行しようとすると、
Parameter 'out_1':No size set for variable length data:String
というエラーになってしまいます。
SQL*Plusからプロシージャを実行すると正常に動作します。
原因がわからないのですが、わかる方いらっしゃったらご教示お願いいたします。


■以下、PL/SQLプロシージャ定義

CREATE OR REPLACE PROCEDURE HANTEI(
IN_1 IN CHAR,
IN_2 IN CHAR,
IN_3 IN DATE,
OUT_1 OUT CHAR,
OUT_2 OUT CHAR)
IS
BEGIN
 処理内容;     
END;
/


■以下、VB.NET側

Dim OraCmd As New OracleCommand
OraCmd.Connection = Me.Conn

OraCmd.CommandText = "HANTEI"
OraCmd.CommandType = CommandType.StoredProcedure

'--引数(IN属性)
OraCmd.Parameters.Add(New OracleParameter("in_1", 'A')).Direction = ParameterDirection.Input
OraCmd.Parameters.Add(New OracleParameter("in_2", 'A')).Direction = ParameterDirection.Input
OraCmd.Parameters.Add(New OracleParameter("in_3", 'A')).Direction = ParameterDirection.Input
'--引数(OUT属性)
OraCmd.Parameters.Add(New OracleParameter("out_1", OracleType.Char)).Direction = ParameterDirection.Output
OraCmd.Parameters.Add(New OracleParameter("out_2", OracleType.Char)).Direction = ParameterDirection.Output


Try

'ストアドプロシージャ実行
OraCmd.ExecuteNonQuery()
291NAME IS NULL:2008/02/18(月) 05:49:38 ID:???
と思ったら事故解決しました。
ありがとうございました。寝よう・・・・
292NAME IS NULL:2008/02/18(月) 22:37:09 ID:IYQvJAZb
Oracle9i上で、ViewがViewを5段階くらい呼んでできてるViewがあるのですが、
開くのに一日かかるため、実行速度の改善をしたいと思っています。
実行計画を見るとFULLアクセスしているテーブルが多いのですが、
Viewの先のViewの先のViewの先にようやくテーブルがあり、ヒントの
当て方がいまいち・・・。
そこで、ためしにOracle10gに乗せて、EMのSQLチューニングを実行したところ、
SQLプロファイルが適用されて、10分程度で開くようになりました。
このSQLプロファイルと同等のものをOracle9iに展開したいのですが、
どうにもやり方がわかりません。なにか方法あるでしょうか?
293NAME IS NULL:2008/02/19(火) 00:06:12 ID:U5+TvUAj
シノニムでOK.
あるいはえんたープライズマネージャでいけるよ。がんがれ。
294292:2008/02/19(火) 21:47:25 ID:???
>>293
レスありがとうございます。
でも、ダメでした。
もう逃げます。
295NAME IS NULL:2008/02/19(火) 23:23:04 ID:moGfOmeq
質問です。ざっくり概要を言います。
シーケンスを使っているテーブルA、そのカラムA
テーブルBのカラムBにはカラムAの値を入れる(FK制約はない)
新規データ登録処理で以下のような処理を読み込みデータ分ループしてます

for(---------){
INSERT INTO テーブルA(カラムA)VALUES(xxx.NEXTVAL)
SELECT xxx.CURRVAL FROM DUAL
INSERT INTO テーブルB(カラムB)VALUES(上のSELECTで取得した値)
}
という感じ
キーとなる項目以外省略しました。xxxはシーケンス。
これを同時に複数起動したらカラムAとカラムBの値がずれると言われました。
複数起動を考慮した場合どのようにするのが一般的ですか?
先にNEXTVALをSELECTしておくとかでしょうか・・・
296NAME IS NULL:2008/02/19(火) 23:50:41 ID:???
ずれなかったような気もするけど自信ない。
でもそういう時はずれても良いようにすればよい。
for(---------){
SELECT xxx.NEXTVAL FROM DUAL
INSERT INTO テーブルA(カラムA)VALUES(上のSELECTで取得した値)
INSERT INTO テーブルB(カラムB)VALUES(上のSELECTで取得した値)
}
簡単でしょ。
297NAME IS NULL :2008/02/20(水) 00:00:40 ID:???
Sequenceは一意性のために使うべきであって、連番を保障するものではないのに。
そもそもRollbackしたり、インスタンスクラッシュしたりすればあっと言う間に連番で
なくなるのに、なんでそんなにこだわるの?
298NAME IS NULL:2008/02/20(水) 11:46:08 ID:???
>>295
insert 〜 returningが使えるならselectは入らない
299NAME IS NULL:2008/02/21(木) 10:26:36 ID:???
ショボイ質問ですみません。
sqlldrは制御ファイル無しで実行する事は可能でしょうか?
ORACLE8です。
300NAME IS NULL:2008/02/21(木) 11:46:01 ID:???
無理だったと思う。
というか、入力のどの部分をどの列に入れるといった指定がないと使う意味がないと思う。
301NAME IS NULL:2008/02/21(木) 11:58:36 ID:???
>>300
ですよね・・。
ありがとうございます。
制御ファイル書いてきます!
302NAME IS NULL:2008/02/21(木) 13:49:57 ID:???
rawデバイスを増やしたんで、Oracleに使ってもらえるように
設定したいんだけど、どこをいじればいいんだっけ?
303NAME IS NULL :2008/02/21(木) 23:56:31 ID:???
>>304

それだけの情報で理解しろというのが無理だろ。
そもそもO/Sはなんなんだ?
Oracleは直にRaw Deviceに書き込んでいるのか?
それともASM経由で書いているのか?
304304:2008/02/22(金) 08:34:42 ID:???
>>303

304だが。誰に言ってるんだ。

305304:2008/02/22(金) 10:04:25 ID:???
>>303
>Oracleは直にRaw Deviceに書き込んでいるのか?
>それともASM経由で書いているのか?
これってどこ見ればわかるんだっけ?
306NAME IS NULL:2008/02/22(金) 11:09:57 ID:???
sqlldrで使う制御ファイルを始めて書くのですが
記述はこれであってますかね・・。
理由があって聞く人も居ないのですが、カラム一個だけのデータを
ローダ使って読み込めという指示でして・・。
ORACLE8iです。

OPTINS
(DIRECT = TRUE)
LOAD DATA
(
INFILE AAA.dat'
BADFILE 'AAA.bad'
DISCARDFILE 'AAA.dis'
INSERT INTO TABLE 'EMP'
FIELDS TERMINATED BY ","(CLUM_A)
)
307NAME IS NULL:2008/02/22(金) 11:32:06 ID:???
>>306

それは試してないけど、マニュアルを読めばわかるんじゃないの?
308NAME IS NULL:2008/02/22(金) 11:34:52 ID:???
>>307
そうですね・・。
ありがとうございます。
309NAME IS NULL :2008/02/22(金) 23:56:45 ID:???
>>305

v$datafile見れば分かるだろ?
ファイル名が+から始まっていれば、ASM経由で書いていることになるし、
そうでないのならRAW Deviceで書いてるんだろ。
それにASM経由で書いているのならプロセスで+ASMというのが沢山
あるんだから一発だろうが。
310NAME IS NULL:2008/02/24(日) 04:18:38 ID:iudEaq2G
ストアドファンクションやらパッケージのサブプログラムが参照している
テーブルを列レベルまで調査するにはどの方法が良いでしょうか?

基本は@USER_DEPENDENCIESでテーブルレベルの目星を付けて
AUSER_SOUCEで該当のソースコードを目で確認 するしかないでしょうか。
シノニムやビューを挟んで間接依存していたり、リモート参照していたりする子も多いので、
DEPTREE、IDEPTREEでは役に立たない場合もあります。

このような調査を行ったことがある方、ご存知の方、見当がつく方、宜しくお願いします!
環境はUNIXのOracle9iです。
311NAME IS NULL:2008/02/24(日) 23:37:44 ID:???
sp_dependsとかなかったっけ?

ところで自分も質問があります。
Pro*Cで書かれたDB操作共通関数(ConnectやFetchなど)を利用している
Cのモジュールがあるとして、
その処理をCsh+SQL*Plusで代替することは可能なのでしょうか?
Pro*Cの関数部分だけをCsh+SQL*Plusにしても
トランザクションが継承出来そうにないので無理だと思うのですが…。
312NAME IS NULL:2008/02/27(水) 00:30:31 ID:???
質問があります。
いまさらですがOAS4.0.8を乗せ換えようとしてます。
新しい環境だとカートリッジに登録したJSERVLETアプリケーションが
起動しません。何か特別な設定があるのでしょうか?
手順書のPDF通りにしているのですが・・・。

WWWリスナー経由でほかのPCからだとJAVAアプリが実行できるのが
そのPCだと起動しないのが原因なんでしょうか?
313NAME IS NULL:2008/02/27(水) 09:44:08 ID:???
select * from a, b, c, d
where a.code = b.code
and b.code = c.code
and c.code = d.code

をinner joinを使って書きたいのですが

select * from a
inner join b on a.code = b.code
inner join c on b.code = c.code
inner join d on c.code = d.code

としてみたのですが取得する行が
inner joinの方が多いのです。
上のSQLと同じ結果を返すにはどうすればよいでしょうか?
314NAME IS NULL:2008/02/27(水) 11:25:22 ID:???
select * from a
inner join a on a.code = b.code
inner join a on b.code = c.code
inner join a on c.code = d.code

じゃだめだっけ?
315NAME IS NULL:2008/02/27(水) 11:26:02 ID:???
select * from a
inner join a on a.code = b.code
inner join a on a.code = c.code
inner join a on a.code = d.code
こうか・・
316NAME IS NULL:2008/02/27(水) 23:19:04 ID:qnNBcgIv
問い合わせ結果をSPOOLでCSV出力するコードなんですが
下記clum_aの重複行を表示しないようにしつつ、全ての列を表示したいのです。
簡単に言えば特定列でのDISTINCTなんですが、調べてもDISTINCTで一つのカラムのみ、
またはGROUP BYを使っての集計しか出てきません
サーバの都合でUTL_FILEが使えない(サーバ設定には変更を加えられない)ため
PL/SQLでCURSORを使う方法は無理かと思われます
長くなりましたがお願いします

--テーブル table_name
clum_a culum_b
_________
target 1
target 2
target 3
not_target 1
not_target 2
aiueo 1


SQL*PLUS
___________
SPOOL OUTPUT.csv
SELECT * FROM table_name
WHERE colum_a = 'target';
SPOOL off
317316:2008/02/27(水) 23:24:23 ID:qnNBcgIv
すみません 半角スペースは詰められるんですね

書き忘れです
・clum_aはVARCHAR2 culum_bはNUMBER
・追加条件;重複行がある時はclum_bの最大値の行を選択する
318NAME IS NULL:2008/02/28(木) 02:01:29 ID:???
GREATESTで出来そうな気もするけど
手っ取り早いのはサブクエリでcolumn_a='taget'のMAXcolumn_b)を
とってくれば…
319NAME IS NULL:2008/02/28(木) 22:09:22 ID:???
distinct と同時にROW_NUMBERを返して相関してやるんじゃダメなんけ?
320NAME IS NULL:2008/02/28(木) 22:13:16 ID:???
ROW_NUMBERじゃなくてROWIDか(^^;
321NAME IS NULL:2008/03/01(土) 15:34:54 ID:lw4GEawQ
DATE型の項目に
年月日時分秒で範囲指定をしたいのですが
どのように書けばいいのでしょうか
TMP > 'YYYY:MM:DD HH:MM:SS' 形式ではエラーがでてしまいます。
322NAME IS NULL:2008/03/01(土) 16:55:55 ID:???
>>321

バージョンとどのエラーが出るのかがわからないと答えようがないが、
TO_TIMESTAMP() ではどうだ。
323NAME IS NULL:2008/03/01(土) 16:56:21 ID:???
あ。DATE型なのか。TO_DATE() な。
324NAME IS NULL:2008/03/01(土) 17:45:59 ID:???
TMP > TO_DATE('YYYY/MM/DD HH:MI:SS', 'YYYY/MM/DD HH24:MI:SS')
でいけました。ありがとうございます。
325NAME IS NULL:2008/03/03(月) 22:32:00 ID:5tZy63eQ
項目A(3バイト)、項目B(6バイト)

(更新前)
AAA,BBBCCC
AAA,BBXCCC
AAA,BBPCCC

(更新後) ← このようにしたいです。
AAA,BBZCCC
AAA,BBZCCC
AAA,BBZCCC

目的は、項目Bの頭3バイトだけを”BB*”で条件に指定して、
項目Bの頭3バイトを全て”BBZ”に更新したい場合どうすればよいのでしょうか?
項目Bの後3バイトの”CCC”はそのまま残さなくてはいけないため、
どのようなSQL文にすれば良いのかわかりません。

どうしても後3バイトを生かしたままの更新なので。。。。困ってしまします。

お知恵をお貸しください。
326NAME IS NULL:2008/03/03(月) 23:28:47 ID:???
マルチには答えない。
327NAME IS NULL :2008/03/03(月) 23:43:52 ID:???
ヒントぐらい教えてやろう。

select substr(c2,1,2)||'Z'||substr(c2,4,6) from
hoge where substr(c2,1,3) like 'BB_';

後はPL/SQLなんかで回せば?
328NAME IS NULL:2008/03/03(月) 23:58:48 ID:5tZy63eQ
>>326 すみません。でも、明日までの納期でした・・・・
    他に詳しいスキルをもってる人間な皆無でした。。。

>>327 ありがとうございます。PL/SQLのスキルは解読できるくらいで、
    製造はできないレベルです・・・
329NAME IS NULL :2008/03/04(火) 00:41:49 ID:???
スキルのない人達だけでプロジェクトを進めたのが原因なら純粋にマネジメントの
問題だろ?
顧客には素直に謝るしかないじゃない?
330NAME IS NULL:2008/03/04(火) 11:53:52 ID:???
スキルも糞も、アップデート文1行で行けるかと
331NAME IS NULL:2008/03/04(火) 12:19:54 ID:???
もう間に合わないだろうし、飯暖める間に暇つぶしに書いたので
動くかどうかしらんが・・
これじゃダメかな?
え?動かない?知るか。
Update hoge t1
 set t1.column_b = (
  select substr(t2.column_b,3,1)||'*'||substr(t2.column_b,5,X)
   from hoge t2
   where t1.p_key = t2.p_key
           )
  where t1.column_b like 'BB%';
332NAME IS NULL:2008/03/04(火) 12:30:18 ID:???
substr(t2.column_b,3,1・・・
もダメだ・・他不満飲んでくる
333NAME IS NULL:2008/03/09(日) 09:09:48 ID:fDcaGtrr
Oracle Database 10g Express Edition(WindowsXP Pro)
でSQL*Plusに接続したいのですが、
例のログオン画面
・ユーザー名
・パスワード
・ホスト文字列
の入力画面が出てこないのですが、
どのようにすればSQL*Plusに接続できますでしょうか?

334NAME IS NULL:2008/03/09(日) 10:45:22 ID:???
サービス起動してないんだろ
335333:2008/03/09(日) 13:51:19 ID:fDcaGtrr
自己解決しました
336NAME IS NULL:2008/03/09(日) 14:01:56 ID:???
sqlplusでASMインスタンスにログインってどうやんの?
337NAME IS NULL:2008/03/09(日) 16:50:33 ID:???
>>336

ORACLE_SID
338NAME IS NULL:2008/03/10(月) 22:32:51 ID:???
PHP5でオラクル8のデータを取得すると全角文字が?になってしまいます。
困ってます。(´・ω・`)
339NAME IS NULL:2008/03/11(火) 00:31:51 ID:???
あっそ。
340NAME IS NULL:2008/03/11(火) 09:30:55 ID:???
>>338
困っていますで止められても(´・ω・`)
で、質問は?
341NAME IS NULL:2008/03/12(水) 00:42:31 ID:???
文字コードが違うだけってオチでしょ
342NAME IS NULL:2008/03/12(水) 20:08:57 ID:???
>>340
?になると見栄えが良くないので、空白等の別の文字に
置き換えたいのですが 可能でしょうか。
343NAME IS NULL:2008/03/12(水) 21:48:09 ID:???
?をブランクに変換するのは文字列を切り出して?と
一致したら?にすればいいだけだから簡単だろうけど・・・

でも、それでは本質的な解決にならないのでは?
DBとPHPがやりとりする文字コードが合ってないっていう>>341の意見を
聞いて文字コードを確かめたのかしら??php.iniでは何を設定していて、
Oracleには何を設定しているのかね??

344NAME IS NULL:2008/03/13(木) 17:55:38 ID:???
OracleのシャットダウンをVBScriptで行いたいのですが

以下のコマンドをVBScriptで実行するにはどうしたらよいでしょうか?

Sqlplus sys/password as sysdba
Shutdown immediate
Startup
Shutdown

以上ですがよろしくお願いいたします。
345NAME IS NULL:2008/03/15(土) 16:27:17 ID:???
>>344
つ「shell関数&バッチファイル&SQL*PLUS&コマンド定義ファイル」
346NAME IS NULL:2008/03/15(土) 23:10:48 ID:vdIcUnbN
GUROUP BY ROLLUP」とか「GROUP ID」「SETS」とかの小計行とか合計行の詳しく解りやすく解説してあるサイトを教えてください。
お願いします
347NAME IS NULL:2008/03/16(日) 11:49:23 ID:2bM+0JgV
家でオラクルの勉強をしようと思い、オラクルを自宅PCに入れたいのですが、
タダで手に入りますか?(勉強版みたいなものはありますか?)
348NAME IS NULL:2008/03/16(日) 14:04:57 ID:???
オラクルを買うとは豪勢な。時価総額何億ドルくらいかな。

349NAME IS NULL:2008/03/16(日) 15:27:01 ID:???
Oracle VM を使ってみようかと思うんだが、
Oracle Enterprise LinuxとOracle VMをダウンロード(保守なしなら無料) してインストール
Oracle VM上でゲストOSとしてWindowsサーバを複数セットアップ

上記のやり方でWindowsのOracleDBサーバをまとめられる?
やった人いますか?うまく動きますか?
350NAME IS NULL:2008/03/16(日) 21:21:45 ID:???
毒餃子でも売ってろよ
351NAME IS NULL:2008/03/16(日) 22:07:38 ID:???
PCにインストールしたOracleデータベースと別に用意したWebサーバ(Linux)
が通信するためには、LinuxにOracleクライアントがないと
駄目なんっすよね?

そもそも、Linux側で、コンパイルすっからLinux版のヘッダやLibが必要なんだよね、、、
352NAME IS NULL:2008/03/16(日) 22:18:57 ID:???
>>351

何が言いたいの?

エスパーしてみると Instant Client を使えばいいのでは。
Java なら JDBC ドライバがあればいいけどね。
353351:2008/03/16(日) 22:31:06 ID:???
説明が下手ですまんす。。。

C言語のAP(Linux)からDB(Linux)にアクセスするにはLinuxにOracleクライアント
が必要なのか聞きたかったとです。

Instant Clientは初めて聞いたので見てみましたが、当方Oracle8i、、、、
ざっとみ、Oracle8のInstant Clientはなかったので、Oracleクライアントを準備しないと
いけないんでしょうかね。

354NAME IS NULL:2008/03/16(日) 23:16:42 ID:???
Oracle8 と 8i で違うし細かいバージョンでも違うけれども、
http://www.oracle.co.jp/products/system/matrix_db.html
を参考に。OCI というのが Instant Client が提供する C の API ね。

8i が 8.1.7.4 より前なら、そこまで更新してからのほうが不具合が少ないと思う。
後はサポートに聞いてねー
355NAME IS NULL:2008/03/18(火) 00:37:22 ID:???
>>349

DBサーバーをまとめるというのはどういう意味?
RACを構築可能かということ?
OracleのVMではないけど、VMWAREでならGuest O/SをCent O/S 5にして11g
RACを組んで確認した。
356NAME IS NULL :2008/03/18(火) 02:53:03 ID:???
>>353

9iだったら8iとの下位互換性が保障されているから、9iのインクラ入れれば?
357NAME IS NULL:2008/03/18(火) 21:01:09 ID:???
>>355
まとめるというのは、たとえば、Aサーバ(AシステムのDBサーバ)、Bサーバ、Cサーバの3台のDBサーバを1台のマシンX上で仮想的に構築することです。電気代、スペースの削減になる。同じ構成を複数構築すれば(X1、X2....)RACみたいなこともできるね。
ぶっちゃけ言いたいことは、VMWAREやXenやVirtialPCとどう違うのってことです。
358NAME IS NULL:2008/03/18(火) 22:30:58 ID:???
>>357

そういう意味なら可能。
アプリの特性にもよるけど、それなりにメモリー容量とCPUには配慮は必要だろうけど。

ちなみにOracleのVMはXenがベースだよ。
359NAME IS NULL:2008/03/19(水) 00:43:48 ID:???
オラクル10gについての質問です。

EM使っていろんな管理作業する際に、
OSユーザのパスワード入力が求められることが多々あるかと思いますが、
OSユーザにパスワードを設定していない場合、
パスワード未入力で進めようとすると
「パスワード入力は必須」の旨のエラーが出ます。

回避手段って何かありますか?
360359:2008/03/19(水) 00:48:16 ID:???
補足ですが、
「OSユーザにパスワードを設定する」以外の
回避策を望んでいます。
よろしくお願いいたします。
361NAME IS NULL:2008/03/19(水) 01:52:12 ID:???
DBを入れるようなサーバにOSのパスワードが設定されていない
ということ自体が間違い。

回避策としてはEM10gを自分で直すとか。
362NAME IS NULL:2008/03/20(木) 16:53:02 ID:???
Oracle8で運用されてるシステムってまだそんなあります??
363NAME IS NULL:2008/03/20(木) 18:11:55 ID:vlU0awbG
>>362

どうでもいいようなシステムやOracle8でも運用に耐えれるようなところでは
使っているところはある。
でもサポートは終了しているからそのうち無くなると思われる。
364359:2008/03/20(木) 23:58:24 ID:???
>>361
確かに普通に考えたらそうですね。

私用PCに学習用としてトライアル版を入れて動かしているので、
特にOSのパスワードを設定しておらず、何か回避策はないかな?
と思い質問してみました。

ちなみに余談ですが、以前以下のようにしてみたところ、
レジストリの不整合が原因か、マシンが立ち上がらなくなって
しまいました。

・OSパスワード入力が必須だと気づく
 ↓
・OSパスワードを設定
 ↓
・EMで優先接続情報(パスワード)の設定
 ↓
・OSパスワードを無効

(データベースの本質とは無縁のところの説明ですので、
読み飛ばしてもらっても結構です。)
365NAME IS NULL:2008/03/26(水) 00:08:29 ID:???
Oracle10gを新しくインスコし、一からDBを作成してみようかと思っています。

ツールなどを使わずにSQLのCreate DataBase文から作ってみようかと
思っているのですが、そのあたりについて詳しく書かれているサイトなどありますか?
366NAME IS NULL:2008/03/26(水) 00:42:31 ID:???
>>365

マニュアル「Oracle Database 管理者ガイド」。
367NAME IS NULL:2008/03/26(水) 16:32:05 ID:77YWGQXO
他人が書いたストアドプロシージャを見ながら勉強している初心者です。
DB環境はLinux+Oracle10gで、アプリケーションがRuby+sqlrelayです。

あるプロシージャを実行すると
person1,male,age1
person2,female,age2

みたいな結果を返したいとします。

で、もらったプロシージャでは、この結果をプロシージャの中でdbms_output.put_lineを使って一行ずつ出力し、
アプリケーションから新たにdbms_output.get_lineクエリを発行して結果を取得、
アプリケーションで結果行をパースしているのですが、
これって一般的なのですか?

ネットで調べると「dbms_outputパッケージはデバッグ目的で使います」みたいなことが書いてあるので、
通常の結果の受け渡しに使っていいのか疑問なのです。

# sqlrelayのfetch_rowみたいな関数も動かないし...

もっと調べると「そもそも結果を返すんだから、プロシージャじゃなくてファンクションなんじゃないか?」
とかも思うのですが…
どうなんでしょうか?

的外れなことを言っていたらすいません。
識者の皆さん、よろしくお願いします。
368NAME IS NULL:2008/03/26(水) 17:31:49 ID:???
試験番号1zo‐311j
oracle master silver
oracle application server10g
ってのを取れって言われちゃったんだけど、何がなんだかわからんw

これって黒本売ってないの?
まったくわかんない状況なんで些細なことでもいいのでわかる人情報ください。

泣きそうですw
369NAME IS NULL:2008/03/26(水) 19:44:50 ID:???
>>368

馬鹿には教えてやらない。勝手に泣け。
370NAME IS NULL:2008/03/27(木) 00:37:36 ID:???
>>367
表関数とかテーブルファンクションとかで調べてみたら。
371NAME IS NULL:2008/03/27(木) 00:44:37 ID:???
>>367

ちょっと google ってみたけど
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_pl15.htm

こんな感じのことを標準出力に出せればいいということかなぁ。

どうもやりたいことがよくわかんない。
372NAME IS NULL :2008/03/27(木) 02:37:32 ID:???
>>365

取りあえずDBCA起動して、スクリプトだけでも吐き出して貰えばいいじゃん。
でもって、その中身を見て勉強すると。
最近のDBCAはそこそこ使える用になったよ。
一昔前まではバグだらけでイライラさせられていたけどな。
373NAME IS NULL:2008/03/27(木) 03:35:08 ID:???
>>372

でも結局管理者ガイドを読まないと意味不明だと思うよー
374NAME IS NULL:2008/03/27(木) 09:56:21 ID:???
Oracleのマイグレーションをやっている者です。
出先でも開発できるように、中古のノートPCに
coLinuxとOracle10gR2試用版を入れようと思ったのですが、
システム要求条件の高さに驚きました。

もっと小さな環境でも入れられる、古いOracleの試用版を
手に入れる方法はないものでしょうか?
375367:2008/03/27(木) 13:45:33 ID:???
>>370
表関数!そんなものもあるのですね。
ありがとうございます。

>>371
説明がうまくできなくてすいません(´д`;)

やりたいことは単純なことで、プロシージャでSELECTした結果(複数レコード)をrubyスクリプトに渡したいのです。

自分が気になっているところは、
「複数レコードの受け渡しは標準入出力経由でいいの?IN/OUTパラメータみたいに専用の仕組みがあるんじゃないの?」
ってところです。

oracle内のデータのやり取りでなくて、外部プログラムへのデータの渡し方なので、もしかしたらスレ違いの質問なのかもしれません。
プログラム板のデータベース関連で聞いたほうがいいのかな…
376NAME IS NULL:2008/03/27(木) 17:32:57 ID:???
oracleの試供版をダウンしようと思ったんですが、
オラクルのHPからいつまでたってもリンク先に飛びません
どういうことなんでしょう?

ちなみに他のHPは普通に見れます

377NAME IS NULL:2008/03/27(木) 18:54:52 ID:???
>>376

ダウンって SHUTDOWN ABORT のこと?
オラクルのHPというのはHPがアライアンスパートナーとして売っているOracleのこと?
でも試供版なんだよねぇ。。

リンク先に飛ぶというのはEMで操作してるのかな。
何を言ってるのかさっぱりわからん。


… 釣られてみたよ。
378NAME IS NULL:2008/03/27(木) 21:42:04 ID:???
え?普通にホームページからダウンしようとしたんじゃ?彼。
ダウンする時、ログインするためにウィンドウが別窓として出て
そのウィンドウに気づいてなく、一向にダウンロードが始まらないとか。
379NAME IS NULL:2008/03/28(金) 02:22:47 ID:???
>>374
Oracle10g Express Editionでも入れたら?
普通に10g入れるよりは若干軽いよ。
っていうか古いバージョンでもそれなりにメモリもCPUも食う。
380NAME IS NULL :2008/03/28(金) 02:35:41 ID:???
>>376

U.S. OTN、たまに腐っているよ。
諦めずに何度もトライ!
381NAME IS NULL:2008/03/28(金) 12:34:38 ID:???
>>377-378
説明不足すみません
http://www.oracle.com/lang/jp/index.html
に飛んで右の方FEATURED DOWNLOADSの下で
11gクリックしてもダウンロードが始まりません
ファイアフォックス使ってまして、いつまで経っても
タブの部分に輪っかがグルグル回っていて、画面が変化しません
382NAME IS NULL:2008/03/28(金) 13:06:07 ID:???
>>381
ダウンロード可能なファイル名が書かれてある上にある
"ライセンス規約への同意"のラジオボタンをチェックし忘れている予感
383NAME IS NULL :2008/03/29(土) 12:48:02 ID:???
>>381

良く分からんから、取りあえずここからダウソしろよ。

http://www.oracle.com/technology/software/products/database/index.html

ちゃんと上のライセンス規約で「accept」を選んでからリンクをクリックしろよ。
384NAME IS NULL:2008/03/30(日) 14:57:43 ID:???
Oracleの人から検索対象が全体の5%以上ならFullScanの方が早いと
聞いたのですが本当ですか?
あとindex作っても使用してくれないのでヒントがかかせません
これ普通ですか
385NAME IS NULL:2008/03/30(日) 18:25:01 ID:???
>>384
パーセンテージは諸説あるが割合が一定以上ならそのとおり。
索引の使用についてはプランを調べてみる。ケースによる。
386NAME IS NULL:2008/03/31(月) 06:42:50 ID:???
>>384

ちゃんとAnalizeしていれば索引を使ってくれる方が多いと思うけど?
387NAME IS NULL:2008/03/31(月) 23:31:14 ID:G8a55WHb
Oracle XEで新規でデータベース作った後に
Webの管理画面がでなくなりました。
APEX入れ直さないとでないんでしょうか。
388NAME IS NULL :2008/04/01(火) 02:16:55 ID:???
>>387

emctl status dbconsoleを試してみてNot runningとか出ているのならemctl start dbcosoleで
起動させろ。
389NAME IS NULL:2008/04/01(火) 14:05:40 ID:NRBC4VGC
お世話になります
トリガよりストアドパッケージを呼び出し
その中であるテーブルのレコードを取得し別のテーブルに挿入しています
データ量が多いときと思われますが
ORA-01013: ユーザーによって現行の操作の取消しが要求されました。
のエラーが出ています
ODBCやADOでタイムアウトの調整等はよく聞くのですが
ストアドパッケージでこのエラーの対処法はありませんでしょうか?

OS:Windows2003Server
DB:Oralce9i

よろしくお願いいたします
390NAME IS NULL:2008/04/01(火) 22:58:05 ID:???
それタイムアウト?
391NAME IS NULL:2008/04/02(水) 10:41:41 ID:???
アラート見るとORA-600出てそうな希ガスwww
392NAME IS NULL:2008/04/02(水) 11:35:29 ID:???
ORA-600だったら死亡フラグw。
393NAME IS NULL :2008/04/02(水) 23:56:35 ID:???
まあ、待て。
ORA-7445かも知れないじゃまいか。
394NAME IS NULL:2008/04/03(木) 11:30:43 ID:???
>>393
何の気休めにもならないwww
395NAME IS NULL:2008/04/06(日) 22:28:30 ID:KZufWnQN
オラクルって無料版あるのですか?
396NAME IS NULL:2008/04/07(月) 21:16:23 ID:???
初心者です。
別のサービスからテーブルをインポートしたいのですが、
調べるとダンプファイル等と書いてありやり方がわかりません。

user/pass@serve1
のzzx1というテーブルを

user/pass@serve2
にインポートする方法を教えてください。
397NAME IS NULL:2008/04/07(月) 22:21:46 ID:???
@
398NAME IS NULL:2008/04/07(月) 22:28:22 ID:???
初心者ですと書けば何でも手取り足取り教えてもらえるかと思えば
大間違いだ。

exp と imp のマニュアルくらいちゃんと読め。
399NAME IS NULL :2008/04/07(月) 22:58:25 ID:???
>>396

Versionぐらい書け。
10g以降ならDatapumpという手もあるんだから。
400NAME IS NULL:2008/04/07(月) 23:11:17 ID:???
Version・・・
すみません今はわからないです
ダンプファイルってバックアップですよね?

バックアップってテーブルの名前を変更するだけじゃ不十分なのでしょうか?
明日中に終わらせないといけないのでマニュアル探す余裕がなかったので・・・
ごめんなさい。

もし違っていたらすみません。
expでダンプファイルをエクスポートして
それをimpでインポートすることでテーブルが作成されるんでしょうか?
401NAME IS NULL:2008/04/08(火) 00:42:52 ID:???
だーかーらー

明日中に終わらせないといけないんだったらここで聞くんじゃなくて
マニュアルを読め。それがどう考えても一番早い。

exp したダンプファイルを imp すれば確かにテーブルのデータの移動はできるけど、
お前には無理だろう。

お客さんには上司にお願いして謝ってもらえ。
402NAME IS NULL:2008/04/08(火) 00:47:07 ID:???
オマイがやりたいのは多分create table asだ
詳しくはググれ
403402:2008/04/08(火) 00:49:18 ID:???
ああ、スマン>>400しか読んでなかった。
imp/expであってる
404NAME IS NULL :2008/04/08(火) 00:57:51 ID:???
>>402

どうかな?
俺も最初はそう思ったけど、接続子がserve1からserve2に変わっているから
対象DBが違うと判断したぞ?

DB1(serve1)にて
exp user/pass tables=zzx1 rows=y file=hoge.dmp direct=y compess=y

DB2(serve2)にて
imp user/pass full=y rows=y ignore=y file=hoge.dmp

これでいいだろ。

405NAME IS NULL:2008/04/08(火) 09:13:57 ID:???
DBリンクで流し込めば?
406NAME IS NULL:2008/04/08(火) 10:50:17 ID:???
>>404

すぐ答えを教えちゃだめだよー
ちょっとオプションが間違ってるけど。(compess → compress)

ああいう奴はまたちょっと困ったら簡単なことでも聞くに決まってる。

仕事でやってるというのに、ダメなエンジニアもどきが氾濫すると
我々の仕事がますますなくなっちゃうじゃない。
407NAME IS NULL:2008/04/08(火) 19:55:04 ID:???
>>404
どうもありがとうございます。
助かります。

>>406
私は事務員ですから。
人手が足りなくて開発のお手伝いしてます。
ひどい言われよう・・・


明日会議に出してあさってリリースします。
ありがとうございました。
408NAME IS NULL:2008/04/08(火) 21:56:12 ID:???
事務員でも調べることは調べないとだめでしょ。
自分の仕事なんでしょ?

高い金だして Oracle を使うようなデータベースだったら、
その中身も重要なデータなんだろう。
ちゃんとわかっている技術者に扱わせたほうがいいんじゃないのかね。

そういうところから情報漏洩とか誤操作とかの被害とかが起こるんだよ。
409NAME IS NULL:2008/04/08(火) 22:38:06 ID:???
>>408
反論はありますが愚痴になるので控えます。
おっしゃる通りなのですが、上の方針ですので。
経験ないぶん時間はかかりますが
データの重要性等は理解しているつもりなので、
誤操作ないよう念には念をでバックアップや
チェックはしてもらおうと思います。
410NAME IS NULL:2008/04/08(火) 22:44:06 ID:???
まぁ、がんばれ。
無能な上司と一緒に土下座するのもいい経験だろう。
411408:2008/04/08(火) 22:53:52 ID:???
おっ。同意してくれる人がいた。

俺もただ罵倒したいだけじゃないよ。
魚の釣り方を教えてやりたいだけだ。
412NAME IS NULL:2008/04/08(火) 23:01:13 ID:???
なんというか、
こんなこというのはおかしいのかもしれませんが
「これは私のやるべき仕事ではない」
と思います。
次は絶対に引き受けないようにしようと思います。
いい経験になりました。

システムの製造は終わったので明日手順の確認をして
無事リリース完了させます^^
413NAME IS NULL:2008/04/08(火) 23:04:13 ID:???
あんたらエスパーすぐるww
414NAME IS NULL :2008/04/08(火) 23:17:34 ID:???
>>406

まあ、typoはご愛嬌ということでw

exp/imp如きは別に技術でもなんでもないから、教えたところで
何の支障もあるまいて。
ダメにエンジニアもどき如きが決して追いつくことが出来ない技術を
身に着けてナンボの世界っしょ。
415NAME IS NULL:2008/04/09(水) 20:25:32 ID:CidHgDxH
SQLの取得方法で質問です。

以下のデータが存在するとします。

ID | KINGAKU
-------------
0001 | 1000
0002 | 2000
0003 | -1000
0004 | 3000

このときIDの0001と0003で0(ゼロ)になるため抽出結果から省きたいのです。
0001と0003は打ち消しになるので抽出する必要はない、そういうことです。
要は一度その金額で購入したのですが、その後検査でNGになったので返却する
のでプラマイゼロになるので、その分の表示の必要はないとのことです。


SQLの抽出結果は

ID | KINGAKU
-------------
0002 | 2000
0004 | 3000

となるようにしたいのですが、何か良いSQL文を生成出来ないでしょうか?
416NAME IS NULL:2008/04/09(水) 20:40:12 ID:???
0005 | -1000
とか
0006 | 1000
てのもあったらどう打ち消すんだ?
それともKINGAKUはuniqueか?
417NAME IS NULL:2008/04/09(水) 20:40:41 ID:???
imp/expはむしろ指示した人間がスクリプト書いて
「これ流しといて」とかが正しいと思うけどな。
事務の人間に覚えさせる気があるなら別だけど。

>>415
テーブルの設計が間違ってて、相殺フラグを持たすべきだと思うけど。

ID | KINGAKU
-------------
0001 | 1000
0002 | 1000
0003 | -1000
0004 | 3000

とかだったら0001と0002のどっちを表示してどっちを消せばいいのかわからんし
418417:2008/04/09(水) 20:44:40 ID:???
ああ、かぶった。
仮に金額が一意であれば

SELECT * FROM TABLE A
WHERE A.KINGAKU > 0
AND NOT EXISTS
(
SELECT * FROM TABLE B
WHERE B.KINGAKU = (A.KINGAKU * -1)
AND B.KINGAKU < 0
)
とかかな。
419NAME IS NULL:2008/04/09(水) 21:24:32 ID:???
事務員だから、初心者だから優しく教えてよね

か・・・。
420NAME IS NULL:2008/04/09(水) 21:38:13 ID:???
>>417
こんだけの条件じゃ_

あと、マルチやめれ
421NAME IS NULL:2008/04/09(水) 21:39:21 ID:???
すまね
×>>417
>>415
422NAME IS NULL:2008/04/09(水) 21:46:41 ID:???
仕様正確に聞いてますか?
id 0004 kingaku -5000とかあった場合ってどういう表示が正解なんですか?
1401?
423NAME IS NULL:2008/04/09(水) 21:48:47 ID:???
連投スマソ
>>417
そこまでするならジョブでも組んで自動化してくださいw
424NAME IS NULL:2008/04/09(水) 21:56:59 ID:???
>>423
定期バックアップとか○○流した後バックアップとかなら自動化できるけど
「俺の気が向いたときにバックアップ」はどうしようもないからな
425NAME IS NULL:2008/04/10(木) 22:04:59 ID:???
SQLServerでいう
select * from table with (nolock)
と同じようにロック掛けないでselectするにはどうしたらいいですか
426NAME IS NULL :2008/04/10(木) 22:31:30 ID:???
>>425

意味が良く分からんが、SQL serverでnolockというのはどういう
状態なんだ?
ダーティリードさえも許してしまう様な状態なのか?
427NAME IS NULL:2008/04/10(木) 22:38:05 ID:???
>>426
そうです。許します。
428NAME IS NULL:2008/04/10(木) 22:42:27 ID:???
いやSQL SERVERでダーティーリードを許すのは
(READ UNCOMITTED)か何かだったと思うが。
429NAME IS NULL:2008/04/10(木) 22:55:26 ID:???
SQLServerのBooksOnlineによると「ロック ヒントは、セッションの現在のトランザクション分離レベルを無効にします。」とある
430NAME IS NULL:2008/04/10(木) 23:04:27 ID:???
SQLサーバーの場合はその両方の方法があるで正解。
Oracleの場合はマルチバージョニングが必ず働くから、
READ UNCOMMITTEDとREAD COMMITTEDの区別なく
ダーティーリードは発生しない。
431NAME IS NULL:2008/04/10(木) 23:55:40 ID:???
>>430
ありがとうございます
432NAME IS NULL:2008/04/12(土) 19:59:11 ID:???
Oracle9iのPL/SQLで
DELETE文の実際に削除された件数を取得する方法はないのでしょうか?
SQL*PlusでDELETE文を実行すると
『○行が削除されました。』
と表示されますが
削除前後にSELECTでCOUNTし比較ではなく
PL/SQL内からの実行だと何処かシステム変数などに入らないのでしょうか…
SQLCODEやSQLERRMには出てきませんでした。
よろしくお願いします。
433NAME IS NULL:2008/04/12(土) 20:06:10 ID:???
ROWCOUNT
434NAME IS NULL:2008/04/12(土) 20:26:19 ID:???
%ROWCOUNTはFETCHの取り出した件数ですよね?

どういう関係があるのかよくわかりません…。
435NAME IS NULL:2008/04/12(土) 20:37:32 ID:???

そもそも「oracle delete 件数 取得」あたりで検索した上で聞いてるんだろうね。
1件目でROWCOUNTを使った取得がヒットするけど。
436NAME IS NULL:2008/04/12(土) 20:49:09 ID:???
関係無いけど、「〜無い」事を確かめるのはめんどうだね。
「出来る・有る」事ならgoogle先生が簡単に教えてくれるのに
437NAME IS NULL:2008/04/12(土) 21:00:23 ID:???
職場の端末が外部と接続出来なくて
携帯からなんです…。
PCサイトもメモリが足りなくて表示できませんが
キャッシュのページに少し見えるので試してみますね。
438NAME IS NULL:2008/04/12(土) 21:12:20 ID:???
>>436
マニュアルに書いてあることも多いけどね。
〜は…でのみ使用できます、とか。

>>435
他のDBならともかく、Oracleに関する情報なら
Webにも沢山あるのに、ソレを調べもせず2chに頼るって時点で
視野と見識は推して知るってモンだ。
少なくとも試してみればいいのに。
439NAME IS NULL:2008/04/12(土) 21:24:03 ID:???
SQL%ROWCOUNTで取得出来ました!
ありがとうございます><

携帯がしょぼくてPCサイトの殆どがメモリオーバーで表示されないんです…。
あと本もSQLの本さかなくて^^;
でも何とか解決しましたありがとうございました!
440NAME IS NULL:2008/04/12(土) 22:12:12 ID:???
Oracle のマニュアルだけでも見えるところに置いてもらったら。
仕事にならないでしょ。

昔は買うと高かったけど、いまはOTNからダウンロードできるよ。
441NAME IS NULL:2008/04/13(日) 20:30:43 ID:???
SQL*PLUSで
@ファイル名
として実行するファイルの初期フォルダを設定するにはどうしたらいいですか?
@C:\Documents and Settings\xxxx\ファイル名
のパス部分を省略したいです。
442NAME IS NULL:2008/04/13(日) 21:33:36 ID:???
>>441

レジストリのSQLPATHをいじる。

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch2.html#8672

何でみんなマニュアル読まないのかなぁ。
443NAME IS NULL:2008/04/13(日) 22:26:34 ID:???
>>442
ありがとうございます。
444NAME IS NULL:2008/04/15(火) 06:30:20 ID:???
質問です。
Oracleの10gをPCサーバにインストールして、クライアントを別のPCに
インストールしています。
Pro*C/C++を使って、DBを操作したいのですが、
C/C++の開発環境がサポートしていないためか
うまくいきません。
開発環境は、Visual Studio C++ 2008
です。
2008は新しいので、無理なのでしょうか?
VC++2005や2003だとよろしいですか?
教えてください。
445NAME IS NULL:2008/04/15(火) 07:53:27 ID:???
>>444
マルチうざ。
446NAME IS NULL:2008/04/15(火) 09:07:42 ID:???
>>444

何がどううまくいかないのかさっぱり伝わらないではないか。
俺らに一から同じ環境を作って再現させろとでも言うのか。

やはり人間としての初心者だったようだな。
義務教育から出直してきたらいいよ。

半島へ帰れ。
447NAME IS NULL:2008/04/15(火) 09:17:03 ID:???
Win用のPPCてあんの?
そもそもなんでODBC使わないの?
448NAME IS NULL:2008/04/16(水) 16:41:59 ID:???
オラクルデータベース8i(8.1.6)にオラクルクライアント9i(9.2)から接続することは可能でしょうか?
449NAME IS NULL:2008/04/16(水) 20:50:26 ID:???
450NAME IS NULL:2008/04/17(木) 03:20:04 ID:???
Pro*Cに関して質問させてください。
Pro*Cで、引数で渡されたSQL文(カーソル)を実行し、
EXEC SQL DESCRIBE SELECT LISTでsqlda構造体にデータを入れてから
FやTなどの要素を参照して処理を行っているのですが、
この処理をベタなC言語+ODBCで代替することは可能なのでしょうか。

なんとなくSQLExecDirectを実行するまでは分かるのですが、
そこから自前でsqlda構造体にデータをセットする手段がわからないのです。
(特にデータ型を判別してT[]にセットすべき内容と方法)

Pro*Cで作ったライブラリとCとでsqlda構造体を介してのやり取りをするのは
やはり難しいのでしょうか?
451NAME IS NULL:2008/04/17(木) 08:36:52 ID:???
できちゃえば簡単なこと。
できなければ難しいこと。ただそれだけw
452NAME IS NULL:2008/04/17(木) 17:54:15 ID:Peraqhsc
SELECT A1
SUM('08-04-12' THEN 1 ELSE 0 END) "4月分",
(以下ry)

のときに日付指定じゃなくて月指定で出すにはどうしたらいい?
ちなみにDate型なんだが…
453452:2008/04/17(木) 17:59:01 ID:Peraqhsc
サーセン間違えたw
SELECT A1,
SUM( CASE WHEN SCORE_DATE = '08-04-12' THEN 1 ELSE 0 END) "4月分",

の間違い、ほんとすまん。
454NAME IS NULL :2008/04/17(木) 22:30:46 ID:???
>>453

SELECT A1,
SUM( CASE WHEN TO_CHAR(SCORE_DATE,'YY-MM') = '08-04' THEN 1 ELSE 0 END) "4月分",
455452:2008/04/18(金) 09:12:48 ID:eVdze1//
>>454
ありがとう、無事実行できた!
456NAME IS NULL:2008/04/19(土) 07:03:59 ID:???
誰か助けて!!

親テーブルがあって、それに子テーブルが7つくらいぶら下がってて、
子同士は紐付かないようなテーブルに対して、ユーザがwhere条件を自由に
書けるようなCSV出力画面を作っているのです。

それで、子のデータは親1件に対して複数件あるため、
子項目の場合はコロンで区切って、1行にするという仕様です。
(子が何件あろうが、親の件数=CSVの行数になる)

これを、1回で抽出してくるって無理ですよね・・・
子同士に関連が無いので、子の行数を次々乗じた件数が取得されちゃいますし。
AP側でテーブルを個別に抽出するにしても、whereを自由に書けるのが
癌で、この評価をAP側でやるのも、どうしようという状態で。。

例えば
where oya.pkey = ko1.pkey and oya.pkey = ko2.pkey and
((ko1.fld1 = 1 or ko2.fld1 = 2) and ko1.fld3 = 3)
とか、これを各テーブル個別に持ってきて、自力評価しか
ないんでしょうか・・・。
457NAME IS NULL:2008/04/19(土) 11:31:23 ID:???
結合キーを受け取り、コロン区切りの値を返す関数を作っておけば
SQL1回で取れる
458NAME IS NULL:2008/04/19(土) 11:34:26 ID:???
ああ、where句を自由に書けるなら
「where句を受け取ってコロン区切りの値を返す」関数か。

関数は、
受け取ったwhere句を元に動的sqlを組み立てて
それをカーソルでまわしてコロン区切りでくっつけていく感じで
459NAME IS NULL:2008/04/19(土) 12:02:00 ID:???
ご質問させてください。

パフォマーンスが良い、SQL分がわかりません。
リレーション?よくわかりません^^;

テーブルA.開始番号
テーブルA.終了番号
-----------------------
テーブルB.番号

(したい事)
テーブルB.番号がテーブルA.開始番号〜テーブルA.終了番号
の間を検索しヒットさせます。

どのようなSQL文を作成すれば良いのでしょうか?
あまり、外部結合等の経験がないためわかりません。
460NAME IS NULL:2008/04/19(土) 12:26:46 ID:???
>>459です

テーブル.Aが 5件
テーブル.Bが10件

だったとすると、5x10=50件考えるので
動作が遅くなる?と言われました。

これを リレーション?アクセス使用した事ないので
よくわかりませんが、
外部結合のパフォーマンスが良いベストなSQLはなんでしょうか?(^_^;
461456:2008/04/19(土) 14:08:05 ID:???
>>458
ストアドファンクション内で動的sqlですか?
これはやったことがありませんが、『カーソルでまわして』ということは、
結局、子を個別に抽出するということですか?where句で
異なるテーブルが混在して書かれていた場合、テーブル間で
条件式を評価する必要があると思うんですが、思いつかない・・・。

>>459
テーブルAが、なんらかの管理マスタのようなもの?でしょうか?
テーブルBが、データテーブル?とするなら、

select テーブルB.* from テーブルB
where EXISTS(select テーブルA.開始番号 from テーブルA
where テーブルA.開始番号 <= テーブルB.番号
and テーブルA.終了番号 >= テーブルB.番号)

とかで、どうでしょう?
462NAME IS NULL:2008/04/19(土) 20:01:31 ID:A1znnPt0
>>461 回答ありがとうございます。
勉強させてもらいます。m(__ __)m
テーブルAはパラメータです。
テーブルBがデータテーブルです。

ちなみに、テーブルAはレコードは1件なのでしょうか?
463NAME IS NULL:2008/04/19(土) 20:59:24 ID:???
EXISTSは条件に合致するレコードが存在すれば、
真とするってだけなので、件数は何件でも良いと。
464NAME IS NULL:2008/04/19(土) 22:40:57 ID:???
>>461
select fnc1(where句1),fnc2(where句2),fnc3(where句3)…
from oya
(fnc1は子テーブル1から取得、fnc2は子テーブル2から取得…)
とかそんな感じで。

465NAME IS NULL:2008/04/20(日) 01:11:02 ID:???
それはちょっとマズくないか?
>>461のSQLが何から走ってるのかわからんし。
466NAME IS NULL:2008/04/24(木) 21:34:13 ID:???
day
----
1
2
3
...
31

上記のような問い合わせをSQLから取得したいのですが、簡単な方法って無いでしょうか?
自分だと

SELECT 1 FROM DUAL
UNION
SELECT 2 FROM DUAL
UNION
SELECT 3 FROM DUAL

って感じになってしまいます(汗

やりたいことは日付毎に適当な列を結合した表を得たいのですが、
データが存在しない日も列の値がNULLの状態で取得したいんです。

day col1 col2 col3
--- --- --- ---
1 100 101 102
2 null null null
3 null 101 null
... ... ... ...
31 100 200 300
467NAME IS NULL :2008/04/24(木) 22:49:48 ID:???
>>466

('A`)つcase
468NAME IS NULL:2008/04/25(金) 00:13:43 ID:???
日付のテーブル作ったほうがはやそう
469NAME IS NULL:2008/04/25(金) 01:59:58 ID:???
|ー゚)つ PL/SQL
470NAME IS NULL:2008/04/28(月) 20:34:11 ID:???
全部の検索条件がLikeのあいまい検索で遅い場合、
バッファキャッシュに乗せて恩メモリで検索させる以外に高速化するにはどういう方法がありますか
471NAME IS NULL:2008/04/29(火) 00:38:46 ID:???
>>470
Oracle Text
472NAME IS NULL:2008/04/29(火) 00:50:38 ID:???
oracletextは区分条件の検索とかも可能ですか
分かりやすく解説のあるサイトとかないでしょうか
473NAME IS NULL:2008/04/29(火) 01:09:14 ID:???
区分条件の検索
というのはどういうものなのか説明してくりゃまいか。
474NAME IS NULL:2008/04/29(火) 01:40:12 ID:???
HOGE_KBN IN ('1','2','9')とか
475NAME IS NULL:2008/04/29(火) 22:45:34 ID:???
Oracle XE使ってます。

初期DBのXEを削除して、
文字コードをJA16SJISTILDEとしたXEを作成したのですが
Webの管理画面が見えなくなってしまいました。

同様の現象に陥っている人をチラホラ見かけますが
解決方法が掲載されているサイトは見たことがありません。
解決する方法はあるでしょうか?
476NAME IS NULL:2008/04/30(水) 11:35:14 ID:???
>>475
単純にOracle Application Expressパッケージが入っていないだけでは?

http://www.oracle.com/technology/products/database/application_express/index.html
477NAME IS NULL:2008/05/01(木) 16:09:40 ID:???
下記のURLの問題と同じものが発生して困っています。
http://otn.oracle.co.jp/forum/message.jspa?messageID=8095323

どなたか解決策をご存知ないでしょうか?
よろしくお願いいたします。
478NAME IS NULL :2008/05/02(金) 03:52:50 ID:???
>>477

まあ、バグにヒットしてるんでしょう。
TAR開くなりなんなりしないとダメっしょ。
479NAME IS NULL:2008/05/02(金) 09:35:55 ID:???
>>478
やはりそうですか・・・

とりあえずREGEXP_INSTRで逃げてみることにしました。
480477:2008/05/02(金) 14:54:47 ID:???
テーブルを作り直したらエラーが出なくなりました。
481NAME IS NULL:2008/05/02(金) 15:16:03 ID:???
REDOログファイルとアーカイブログファイルの違いがわからない・・・・
なぜわざわざ別の存在にしてるんだ
482NAME IS NULL:2008/05/02(金) 15:35:50 ID:???
SQLPLUSを起動して、あるSQL文を実行、SQLPLUSを終了
ってことをしたいのですが、どういった方法があるでしょうか?
483NAME IS NULL:2008/05/02(金) 15:48:37 ID:???
そのままやん?

手で実行orシェルスクリプト。
484482:2008/05/02(金) 15:51:06 ID:???
すみません、説明が足りませんでした
バッチファイル等による自動実行がしたいです
起動はATコマンドでやるとして、SQLPLUS起動後にどうやってSQL文を実行すればいいのか・・・・
485NAME IS NULL:2008/05/02(金) 16:49:24 ID:???
@SQLファイル名
486NAME IS NULL:2008/05/02(金) 20:30:49 ID:???
>>477
PSR含むバージョンとORA-600の引数までわからないと一緒の件とはわかんないでは。
まあそこわかってもTARでしょうけど。
487NAME IS NULL:2008/05/03(土) 16:24:27 ID:???
>>481
オンラインREDOをアーカイブしたのが
アーカイブログだよ。
488NAME IS NULL:2008/05/04(日) 01:42:48 ID:qNX5EArI
うちのプロジェクトで外結合の(+)演算子を使わない方向で標準規約をつくろう
としたら、一人だけ文句を言ってくるのがいた。
(+)を使わない理由として、Oracle以外に移植できない以外になにを言ったら
納得してもらえるだろうか?
489NAME IS NULL:2008/05/04(日) 01:50:15 ID:???
間違えやすい
490NAME IS NULL:2008/05/04(日) 03:34:21 ID:???
>>481

例えば日曜日にデータファイルのバックアップ取って、火曜日にDBがクラッシュして
リカバリが必要だとしよう。
完全リカバリするために必要になるのはどれだい?
火曜日までオンラインRedoだけでリカバリー可能だと思うかい?
普通は日曜日のバックアップを戻して、そこからアーカイブログ充ててDBを
ロール・フォワードして、そしてクラッシュ直前のオンライン・リドログ充てて、完全
回復するだろう?
これで分けている意味は分かったかい?
491NAME IS NULL:2008/05/04(日) 04:01:59 ID:???
>>488
規約を定める理由があるんだろうから、それを説明すればいいんじゃない?
移植性なら移植性で。
理由をきちんと説明できない規約を押し付けられんのは俺もやだ。
ここで聞いた後付けの理由を説明してもボロを出すだけだと思うがな。
492488:2008/05/04(日) 10:19:35 ID:qNX5EArI
なるほど。
まあ、もともと言い出したのは俺じゃなくて、移植性を考えたり、のちの
バージョンで(+)がサポートされなくなる可能性もあるからってことだった。
ただ(+)表記に慣れてるメンバーにも周知させるためにはもうちょっと説得力
が欲しかったわけです。

まあ(+)って、標準化されてないから、標準化されてるOUTER JOINを使うように
って色んな技術サイトにのってるしな。
493NAME IS NULL:2008/05/04(日) 12:06:07 ID:???
どうせOracleの方言が多少は残るんだろ?
だったら移植性に説得力がなくなる

OUTER JOINだと文字数が多く視認性が悪い
それに見た目的に直感的ではない

また、Oracleに限って言えば(+)のほうが先に実装されていることもあり
事実上の標準的な書き方だ

後のバージョンで(+)が無くなるなんてどう考えてもありえない
ISOで標準化されていない機能が後々消えるならOracleなんて使い物にならない
494NAME IS NULL:2008/05/04(日) 12:33:16 ID:???
標準化された書き方と方言の両方が書けるなら
標準化された書き方を優先させたほうがいいと思うけどね。
Oracleばかりやってる人はOracleこそ標準って思ってしまうから
困るよね。
495NAME IS NULL:2008/05/04(日) 15:05:15 ID:???
>>488
どんな職場でも、標準化に反対する人間は居るよ。
結論としては、そういう人間はプロジェクトからはずすしかないと思う。
オレが関係した職場では、結果としてそういう人間はみんな消えていった。
ちなみに、標準化が進めば進む程、そういう人間の能力のなさが露呈していってたよ。
496NAME IS NULL:2008/05/04(日) 17:10:36 ID:???
標準化しない事が標準な会社なので、自分が消えようと思います><
497NAME IS NULL:2008/05/04(日) 20:38:30 ID:???
その程度の方言なら変換カマせば済む。
後々のマイグレーションを想定してたら
Oracleの性能をフルには活かせない。
結局は割り切りだよ。
498NAME IS NULL:2008/05/04(日) 20:54:37 ID:???
標準化した場合としなかった場合のメリット・デメリットを説明できない奴は信用ならん
標準だからという理由しか持ってこない奴は100%勉強不足
499側近中の側近 ◆0351148456 :2008/05/05(月) 10:58:36 ID:jnM8X+/O
>>488
(っ´▽`)っ
そうだなー。
ANSI標準の結合では、USING使えば項目名の羅列で済むし、
結合キーがわかりやすいってことだね。
(+)だと結合キーと抽出キーが同じWHERE句の中だし。
だから、結合キーが漏れてしまう可能性がある。

でも、Oracle9以前では、
(+)を使う理由としては、
ANSI標準の結合にバグが多く含まれるってことが挙げられる。
これさえ改善されればANSI標準の結合を使うんだけどなー。
信頼性が高く求められるシステムでは、
ORACLEでANSI標準の結合は怖くて使えない。
500側近中の側近 ◆0351148456 :2008/05/05(月) 10:59:29 ID:jnM8X+/O
(っ`Д´)っ
Oracle自体怖くて使えないってのはナシな!
501側近中の側近 ◆0351148456 :2008/05/05(月) 11:01:54 ID:jnM8X+/O
(っ´▽`)っ
致命的なのはFULL OUTER JOINだね。
ORACLEでこれをやろうとすると自殺行為。
今まで(っ´▽`)っはこれのバグを3回ほど発見した。
これほど信頼できない機能はない。

(っ´▽`)っ
でも、(+)だと完全外部結合ができないんだよねー。
いちいち左外部結合と右外部結合の和集合を使わなければならない。
502側近中の側近 ◆0351148456 :2008/05/05(月) 11:04:36 ID:jnM8X+/O
(っ´▽`)っ 訂正!
>>501
>ORACLEでこれをやろうとすると自殺行為。

>ORACLE 9でこれをやろうとすると自殺行為。

(っ´▽`)っ
ORACLE 10ではまともになったぽい☆
503NAME IS NULL:2008/05/05(月) 11:07:25 ID:???
>>477もLEFT OUTER JOINを使っていますが
そのせいでしょうか?
504側近中の側近 ◆0351148456 :2008/05/05(月) 11:15:21 ID:jnM8X+/O
>>488
(っ´▽`)っ
そうそう一つ気になった。
>(+)を使わない理由として、Oracle以外に移植できない以外になにを言ったら
>納得してもらえるだろうか?
将来Oracleに移植する可能性が高いの?そういう計画が今あるの?
そりゃ未来は誰もわからないから、可能性としては少しはあるだろうけど。
もしそういう計画なければ優先度は低いよね。
むしろ>>499で言ったようにバグや信頼性、保守性のほうが優先度が高いはず。

"JOIN"でソースを検索すれば全ての結合文を拾えるってのも
保守性が高くなって優先度が高い。
ORACLEの内部結合は(+)も出てこないから結合文だかどうかわからないのだ。

というわけで、考えましょう。
505側近中の側近 ◆0351148456 :2008/05/05(月) 11:16:45 ID:jnM8X+/O
>>503
(っ´▽`)っ
LEFT OUTER JOINを使った文から
(+)を使った文に書き換えて実行してみれば?
もしエラーが出なかったらバグじゃないのかな?カナ?
506NAME IS NULL:2008/05/05(月) 13:32:56 ID:???
>>502
>ORACLE 10ではまともになったぽい☆

http://www.eygle.com/Notes/10204_buglist.htm#BABCEHHG
507488:2008/05/05(月) 13:35:28 ID:JT7x0CLO
>>504
色々詳しく教えていただき、ありがとうです。

20人くらいのプロジェクトで上(リーダークラス)が決めたことなので、
一人があがいたところでどうにもならないんだけど、そいつにも気持ちよく
OUTER JOINを使ってもらいたかったんです。

複数のテーブルの結合を複雑な条件でするので、書き忘れ、可読性とかも考慮
すると俺はOUTER JOINの方が好きなんだけど、みなさんはどうなんでしょ?
508側近中の側近 ◆0351148456 :2008/05/05(月) 15:59:52 ID:jnM8X+/O
>>506
(っ´▽`)っ
Oracleダメじゃん・・・
Oracle10でもANSI結合は使用不可か・・・。

>>507
(っ´▽`)っ
そのリーダークラスの人に
OracleのANSI結合でのバグの多さに対しては
どう対応するのか聞いてみて☆
509NAME IS NULL:2008/05/05(月) 16:41:16 ID:???
Oracleバグ多すぎ
510側近中の側近 ◆0351148456 :2008/05/05(月) 16:49:13 ID:jnM8X+/O
(っ´▽`)っ
しかも、そのバグをOTNで公開してはいけないという
わけのわからんルールだ
511NAME IS NULL:2008/05/05(月) 17:01:31 ID:???
だからといってANSI結合を使わないっていうのは
日本人として許せないよなぁ
512NAME IS NULL:2008/05/05(月) 20:26:06 ID:???
JOIN使うのは可読性低いからウチでは禁止
513NAME IS NULL:2008/05/06(火) 13:08:17 ID:???
11gのトライアル版って30にちたっても使える。資格取得に使いたいのだが
514NAME IS NULL:2008/05/06(火) 17:46:41 ID:???
後のマイグレーション考慮するなら最初からOracle使わんよ
515NAME IS NULL :2008/05/06(火) 23:38:00 ID:???
>>513

全部とは言わんが、せめて>>4ぐらいまでは嫁。
516NAME IS NULL:2008/05/07(水) 10:41:50 ID:dyy0ePra
Oracle 9i(9.2) で、パーティションテーブル(約100パーティション、億件レベル)の ANALYZE を ESTIMATE STATISTICS 10 PERCENT で実施。
DBA_TAB_PERTITIONS の LAST_ANALYZED は、ちゃんと日付が更新されているのに、DBA_TABLES の日付が変わらないって、ありえますか?
ちなみに、10万件程度、6パーティションで同じことをやると、DBA_TAB_PARTITIONS、DBA_TABLES 両方の LAST_ANALYZED はちゃんと更新されていました。
どうも腑に落ちなくて…。
517NAME IS NULL:2008/05/07(水) 14:13:26 ID:???
すいません。質問です。
Oracle10gで「oracle\product\10.1.0\Db_1\server_dbname\sysman\recv\errors\」
に大量のエラーログファイルが出力され、ディスクを圧迫しています。
このエラーログを出力しないようにする。もしくは、
定期的に削除してくれるような設定はありませんでしょうか?
宜しくお願いします。
518NAME IS NULL:2008/05/07(水) 16:05:58 ID:???
>>517
バッチかWSHで定期的に削除すればいいじゃん。
519517:2008/05/07(水) 17:06:39 ID:???
>>518
Oracleで定期的に削除してくれる設定がないのかなと思ったのですが・・・

バッチかWSHで定期的に削除するようにしたいと思います。
ありがとうございました。
520NAME IS NULL:2008/05/07(水) 22:11:40 ID:8dIsB95K
>>516

9iからは統計情報収集は、analyze じゃなくて、dbms_stats を使うことを
推奨しているので、dbms_stats を試してみてください。
521NAME IS NULL:2008/05/08(木) 23:16:33 ID:???
oracleでSUMやMAXなどの集合関数って作れますか!?

ポスグレでは作れるみたいですが。
522NAME IS NULL:2008/05/09(金) 01:17:29 ID:???
もともとあるだろが
523NAME IS NULL:2008/05/09(金) 01:50:28 ID:???
Javaストアドで出来たような。使う気にはなれないけど。
524NAME IS NULL:2008/05/09(金) 10:35:45 ID:???
PL/SQLでVARCHAR2型フィールドの長さを取得する方法ありますかね?
要は任意の長さの文字列をフィールドに収まるよう切り落としてINSERTがしたいんですわ。Ora8i。
525NAME IS NULL:2008/05/09(金) 10:51:32 ID:???
>>524
SUBSTRB
526525:2008/05/09(金) 10:54:39 ID:???
取り消し
無い
527525:2008/05/09(金) 10:59:45 ID:???
誤解連投スマン、PL/SQLのVARCHAR2型の長さじゃなくて
DBの型って事だな…DBMS_SQLかUSER_TABLESディクショナリを見ればわかる
528NAME IS NULL:2008/05/09(金) 23:09:21 ID:???
>>521
できる。
oracle ユーザー定義集計関数
でググってみ。

>>524
USER_TAB_COLUMNS
529NAME IS NULL:2008/05/09(金) 23:22:50 ID:???
>>522 >>523 >>528
サンコス!
もう一度調べてみる
530521:2008/05/09(金) 23:25:46 ID:???
>>528
>oracle ユーザー定義集計関数
でググったら即ハツケソ

これまで探しても見つからなかったのは、ググりかたが悪かった
531NAME IS NULL:2008/05/09(金) 23:28:55 ID:???
PRO*COBOLでWITH句使ったらコンパイルエラーになった。
動的SQLにしたらコンパイル通った。
WITH句ってPRO*COBOLのプリコンパイラで対応されてないのかな?
ちなみに10g
532NAME IS NULL :2008/05/10(土) 00:46:53 ID:???
COBOLなんて遺失言語をそもそも知らん。
533NAME IS NULL:2008/05/10(土) 07:11:43 ID:???
>>531

Precompiler のVersionによっては、未対応のSQLの句が
存在するので、プリコンパイル時にエラーになってしまう。
11gでSQL99構文サポートをしたようなので、
WITH句も対応するようになったかもしれない。
534NAME IS NULL:2008/05/10(土) 08:16:56 ID:???
>>533
サンクスコ!
sql*plusで対応してるからって
PRO*COBOLでも対応してる訳じゃないんだね!
Oracle自体は8iからSQL92に対応した
って言ってるのにね!
535NAME IS NULL:2008/05/10(土) 15:45:45 ID:???
そりゃ結局プリコンパイラだからな
536NAME IS NULL:2008/05/11(日) 09:05:35 ID:k9SWGyHP
ロ,バ面の宮腰佳,奈さんお勤めご苦,労様ですwww?[w略]?[w略]
最近.休日は引篭,もってばかりらしい,けど一体何してはるんですかww
その偏屈な面でもマッサー.ジしてはるんですかwwご苦労なこってww.
化粧では顔面の輪郭は誤魔化せませんよww自己アピ.ールも程々にしてくださいねww
537NAME IS NULL:2008/05/18(日) 11:11:09 ID:yw8nn6Dg
.NETとPL/SQLのやりとりについての質問です。

PL/SQL内部で複数のSELECT文を流し、
その結果を配列にセットして、
その配列をOutputするプログラムを作っています。

本当はレコードに格納して返したかったのですが、
レコードは扱えないようなので配列にしました。

.NET側でOutputパラメータの設定をしていますが、
その際、ArrayBindSizeというプロパティを
設定しないといけないみたいなのです。
ところが、何件のデータがとれてくるのか分からないので、
sizeの設定をしようが無いのです。
ArrayBindSizeプロパティをどう設定すればいいのか
ご存知の方いらっしゃいましたら教えてください。
よろしくお願いいたします。
538NAME IS NULL:2008/05/18(日) 11:19:57 ID:???
>>537
ドライバの種類は?ODPとかMSのでも何種類かあるけど。
539537:2008/05/18(日) 11:26:32 ID:yw8nn6Dg
すみません。ODPです。
540537:2008/05/18(日) 11:28:54 ID:yw8nn6Dg
間違えた。
ODP.NETです。
すみません。初心者なもので。
541NAME IS NULL:2008/05/18(日) 20:17:58 ID:???
Oracleのパッチってユーザが当てなきゃいけないの
サーポート契約してるのにどうにかなりませんか?
542NAME IS NULL:2008/05/18(日) 21:47:05 ID:???
>>541

日本語で
543NAME IS NULL:2008/05/19(月) 15:59:33 ID:???
>>537
多めに見積もるしかない。
544NAME IS NULL :2008/05/19(月) 22:49:53 ID:???
>>541

ユーザーっつ〜か、DBAが普通は充てるもんだけど?
545NAME IS NULL:2008/05/20(火) 09:04:20 ID:???
アプリケーションから投げられているSQLを収集する方法はありませんか?
Oracle10gです。
546NAME IS NULL:2008/05/20(火) 12:57:55 ID:???
ある。
547NAME IS NULL:2008/05/20(火) 14:06:40 ID:???
ありがとうございました
548NAME IS NULL :2008/05/20(火) 23:10:16 ID:???
>>545

EMやら、AWRやら、ファイングレイン監査やら、幾らでも方法はあるべ。
549NAME IS NULL:2008/05/21(水) 20:42:38 ID:???
アーカイブログモードで運用するOracle10gを、backupexec v9を使ってバックアップします。
v9にはバックアップ済みのアーカイブログの自動削除機能がないようなんですが、
バックアップ済みアーカイブログを削除するにはどういう手順が必要ですか?
550NAME IS NULL:2008/05/21(水) 22:48:17 ID:???
それようのジョブを作る、以上。
551NAME IS NULL:2008/05/21(水) 23:22:44 ID:???
バックアップ済みアーカイブログはどうやって判断しますか
552NAME IS NULL:2008/05/22(木) 00:07:36 ID:???
>>551

RMANやらせる。
553552:2008/05/22(木) 00:08:14 ID:???
>>551

RMANに、ね。
詳しくはRMANのマニュアルを参照。
554NAME IS NULL:2008/05/22(木) 00:22:17 ID:???
backupexec9はrman使わないとか見たんですけど
見間違いかな
明日もういちど見てみます

BE9とRMANで一連の作業はOKという認識でいいですか
555NAME IS NULL:2008/05/22(木) 05:54:49 ID:???
BEがどうだったか正確には知らんけど、Oracleオプションを買えば、RMAN(リカバリカタログ)連携ができるようになるんじゃね?
ただ、そんなものを使わなくても、rmanのコマンドを垂れ流すスクリプトを書けば大概のことは事足りる。
556NAME IS NULL:2008/05/22(木) 08:37:26 ID:???

ttp://mainichi.jp/enta/geinou/graph/200805/21/?inb=yt
ネット証券会社が主催するFX(外国為替証拠金)取引コンテストの発表会が21日、都内で行われた。
コンテストに特別参加するグラビアアイドルの滝沢乃南さん、山本彩乃さん、折原みかさん、山口愛実さん、佐々木梨絵さん
の5人が顔をそろえ、シストレに挑戦する意気込みなどを語った。
同コンテストは、自分で作成したトレードソフトの機能を評価する「シストレソフト部門」と、
FX初心者でも安心の仮想マネーを使った取引を体験できる「トレード部門」で賞金総額2000万円を争う。
シストレ優秀ソフトは、最高2000万円までの範囲内で買い取りの可能性もあるという。登録受付は22日から。
仮想取引は6月2日〜09年4月30日までとなっている。



▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
https://www.click-sec.com/corp/guide/demo/
ttp://www.yomiuri.co.jp/komachi/news/mixnews/20080521ok02.htm


▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
557NAME IS NULL:2008/05/22(木) 18:02:55 ID:???
sage
558NAME IS NULL :2008/05/23(金) 02:49:44 ID:???
>>554

もしbackupexec9がRMANと連携できるのなら、RMANでほとんどの処理が可能。
一度Backup済みのArchivelogを消したりとか、Backup時にArchivlogを消したりとか
幾らでもその辺りは応用が効く様になっている。
559NAME IS NULL:2008/05/23(金) 11:19:18 ID:rSZhI+Oj
tnsnames.oraを上書きしてDBの接続先を変更しようと思います。
DB接続中であってもtnsnames.oraの上書きは可能でしょうか?

【目的】
tnsnames.oraに接続先が2つ定義されており、
そのうち片方のHOST欄(IPアドレス)だけを変更したいと思っています。

【対応方法】
新しいtnsnames.oraを用意して、現行のtnsnames.oraを
上書きしようとしています。

【制約】
ただし、tnsnames.oraを上書きするときに、
アプリケーションが変更対象外の接続先のDB
(上書き前、上書き後、どちらも全く同一のIP)
を参照しています。

【疑問点】
この場合、DBの接続に影響はないのでしょうか。
「コネクトの際にtnsnames.oraの接続文字列を参照するのだから
 コネクトするタイミングさえはずせば特に問題ない」
と思うのですが、
「tnsnames.oraファイルを上書きする際に元ファイルが消えるから
 接続が切れてしまう?」
とも思うのですが…
560NAME IS NULL:2008/05/23(金) 12:52:39 ID:???
やってみりゃいいじゃん。
561NAME IS NULL:2008/05/23(金) 14:33:34 ID:???
>>560

それ言ったらこのスレで話されてるほとんどの話題全否定だろ。
562NAME IS NULL:2008/05/23(金) 14:37:34 ID:???
切れるわけないじゃん。やってみるまでもない。
563NAME IS NULL:2008/05/23(金) 15:25:41 ID:???
>>561
上書きするぐらい1秒でできそうな事は先にやってみればいいと思う。
564NAME IS NULL:2008/05/23(金) 22:48:15 ID:???
>>559

tnsnames.oraは接続時に必要なんだから、一度接続が確立されて
しまえば後は何の役にも立っていない。
だからO/Sによっては上書きも問題ない(窓だともしかして掴んで
いるかも?)し、現行の接続も影響を受けない。
565NAME IS NULL:2008/05/25(日) 04:01:51 ID:???
スレひととおり読んだが、恐ろしくレベルの低い開発者が
結構な数いるのだと知ってびびった。
566NAME IS NULL:2008/05/27(火) 06:47:11 ID:???
開発者のレベルなんてピンからキリまで。そんな事を知らない無知な奴の技術レベル
も底が見える。
567NAME IS NULL:2008/05/27(火) 21:30:59 ID:???
パラレルクエリーってパーティション表で無いと無意味ですか?
568NAME IS NULL:2008/05/27(火) 22:03:24 ID:???
パーティション表でなくてもできる。
569NAME IS NULL:2008/05/28(水) 01:41:05 ID:???
>>566

意味不明。

まあ、初心者スレってことなんでしょう。ここは。
570NAME IS NULL:2008/05/28(水) 05:00:42 ID:jSJWefUO
>>569
まともなレベルだったら、マニュアルとkrownでほとんど解決出来る。

書くのは初心者、ただし read onlyで他人の間違いを参考にするのはOKだと思う。
571NAME IS NULL:2008/05/31(土) 19:59:29 ID:???
>>568
いや 567は使って効果あるか聞いてるのでは?
パーティション表じゃないと使っても意味無いよね
572NAME IS NULL:2008/05/31(土) 22:48:52 ID:???
質問させてください。

oracle 10g のトライアル版をインストールしたら定期的にフロッピーディスクドライブ
にアクセスするようになりました。ぐぐってみたら↓同じ現象の方がおられるようですが、
明確な解決策はでていないようでした。
ttp://otn.oracle.co.jp/forum/message.jspa?messageID=2001722

この件に関して何か対処法をご存じの方はいますでしょうか?
宜しくお願いします。
573NAME IS NULL:2008/06/01(日) 10:00:40 ID:???
>>567

無意味でもなんでもない。
巨大な表の全件検索とかにも十分使える。
特に10g以降ではバインドピークによって、全件が選択される事が
良くあるから、そういった場合には有効だな。
574NAME IS NULL:2008/06/01(日) 19:25:42 ID:???
>>573
9の時はシーケンスに処理されると書いてあったど
10gで変ったのか。勉強たらんな俺
575NAME IS NULL:2008/06/02(月) 00:44:23 ID:???
576NAME IS NULL:2008/06/02(月) 07:53:07 ID:???
>>575
何年前の資料だろうが、基本は同じだよ。

並列化の効果を最大限に発揮するには、次の特性をすべて兼ね備えたシステムが必要です。
・ SMP、クラスタ、超並列システムなどのマルチCPU
・ 高いI/O帯域幅(高速ディスク、多数のディスク)
・ 十分なCPU処理能力
・ ソートやハッシング、I/Oバッファなどに使用できる、十分な容量のメモリー

…当たり前の事だけど、意外と満足されない罠www
577NAME IS NULL:2008/06/02(月) 11:09:27 ID:???
>>575
すんげえ寂しいな、そのサイト。
Oracle-HPの方は結構充実しているのに。
578NAME IS NULL :2008/06/03(火) 04:20:47 ID:???
俺、かつてhttp://hp.oracle.co.jpに所属していたよヾ(o゚ω゚o)ノ゙
結構ディープな検証ばかりしていたな〜。
フィードバックセミナーで何人かに会った事があるかもね。
579NAME IS NULL:2008/06/03(火) 05:02:54 ID:???
好意的に解釈すれば、ファーストターゲットがSolarisだったころはあまり必要なかったということかな。
580NAME IS NULL:2008/06/03(火) 22:14:21 ID:???
ORACLEじゃないんですが……
HyperionについてORACLE大学での講習を受ける前に
事前に知識を付けておきたいのですけど
他にセミナーとか書籍とかないんですかね?
必死に調べたけど全く見つかりません;;
581NAME IS NULL:2008/06/03(火) 22:24:58 ID:1DFe2Xk7
バッチ処理でsqlplusの実行に失敗したときに異常終了をさせる方法

-Lオプションを使う。
sqlplus -L schema/password@sid @sqlスクリプト

sqlスクリプト内部に問題があった場合

wheneverを使う。

これらの場合はパスワードとスキーマ、接続文字列になんらかの問題があった場合やsqlスクリプト内の構文エラーのときは異常終了させエラー値を拾うことが可能なのですが、
SQLスクリプトファイルの設定や環境に問題があった場合(SQLスクリプトファイルが存在しない、ユーザに読込権限がない)、異常終了させることができません。
sql*plusの接続だけには成功するのでそのままバッチ処理が止まりっぱなしになるという事象が発生します。。

この場合に異常終了させ、エラー値を拾う方法を教えていただけないでしょうか?
582NAME IS NULL :2008/06/03(火) 22:29:54 ID:???
>>581

Unix系ならshスクリプト内でファイルの存在確認や読み込み権限確認とか
そんなのしておけばいいじゃん。
何でSQL*PLUS内で処理させようとすんのさ?
583NAME IS NULL:2008/06/04(水) 07:43:59 ID:???
>>581
漏れはヒアドキュメントで書いてたからSQLファイルそのものがなかった。
584NAME IS NULL:2008/06/04(水) 20:32:41 ID:???
2ヶ月以内にデータベースズブの素人5人を
指示を与えて開発に従事できる程度まで仕上げないと
もれなく自分が死ねる状況になりそうなんですが
どんな風に調教したらいいでしょう?

きっちりMASTERをシルバーくらいまで勉強させるのが良いのか
とりあえず最低限の概念だけ教えて、後は必要な知識やテクだけ詰め込んじまうのが良いものなのか
良い知恵お授けください……
585NAME IS NULL:2008/06/04(水) 20:58:27 ID:???
>>584
経営者を甘やかせるだけなので
一人で5人相手にするなら素直に死んでください
586NAME IS NULL:2008/06/04(水) 21:55:17 ID:???
>>584
今アサインされてるヤツラを解雇して、
使える奴を1人連れてくればいい。
587NAME IS NULL:2008/06/04(水) 21:56:21 ID:???
>>584
外に依頼すれば?
hhtp://www.jsys.co.jp/oraken とか。
588NAME IS NULL:2008/06/05(木) 10:38:44 ID:???
2ヶ月あるなら何とかなる


と感じてしまうのは漆黒企業に居るからか・・・。
589NAME IS NULL:2008/06/05(木) 21:17:01 ID:OKUDql6p
10gR2なんですが、
スタンバイデータベースを本番データベースにするには
どんな呪文が必要なのか教えてください。

SQL> startup nomount;
SQL> recover standby database;

した後で open (あるいはshutdown して startup) すると
どうも read onlyで立ちあがるようで、
先に進めなくなってしまいました。
8iぐらいの昔のバージョンだと
これで動いてた気がするんですが。
590NAME IS NULL :2008/06/05(木) 22:39:32 ID:???
SQL> recover managed standby database cancel;
SQL> alter database recover managed standby database finish;
SQL> alter database commit to switchover to primary;
SQL> shutdown immediate;
SQL> startup;
591589:2008/06/05(木) 23:43:58 ID:???
>>590 さま
助かりました、感謝です!
592NAME IS NULL:2008/06/06(金) 01:11:18 ID:???
誰も頼る人がいない現場に2ヶ月も放り込めば
必死に何とかしようとして2ヵ月後にはそれなりになってるさ。

とか考えてる経営者はゴロゴロいるな。
593NAME IS NULL:2008/06/06(金) 06:30:58 ID:???
まぁダメなら辞めるだろうし、代わりはいくらでも居ると思ってんだろうなw
594NAME IS NULL:2008/06/06(金) 07:04:59 ID:???
>>581

亀レスだが。
WindowsのバッチファイルでSQLPLUSを実行させてる?
だったら、

sqlplus -L schema/password@sid @sqlスクリプト < nul

とすると、あなたの言ってる問題が発生した場合でも終了してくれる。
バッチ処理が止まりっぱなし、って言ってるのは、要は待ち状態に
なっちゃってるってことなんでしょ?

また、SQLPLUSで失敗してるから、ERRORLEVELにもゼロ以外の
値がセットされてると思う。エラー値っていうのがバッチ処理のリターン
コードを指しているならERRORLEVEL拾えば問題ないはず。
595NAME IS NULL:2008/06/09(月) 23:09:37 ID:???
RED HAT で動かしている ORACLE のテーブルデータを見るフリーソフトを探しています。
OBJECT BROWSER のようなソフトを紹介してもらえないでしょうか。
596NAME IS NULL:2008/06/09(月) 23:17:56 ID:???
>>595

全角はきもいな。

Oracle SQL Developer とか。
597NAME IS NULL :2008/06/10(火) 04:59:32 ID:???
>>595

ラプター。
598NAME IS NULL:2008/06/11(水) 21:07:43 ID:???
パラレルDML使えねぇ〜
599595:2008/06/11(水) 22:11:19 ID:???
>>596さん >>597さん
595です。
遅くなりましたがありがとうございます。
Oracle SQL Developer とラプターを探してみます。
600NAME IS NULL:2008/06/12(木) 09:48:07 ID:???
shutdown immediateでインスタンスが停止しないことって
ありますか?
601NAME IS NULL:2008/06/12(木) 11:24:54 ID:???
あります.

602NAME IS NULL:2008/06/12(木) 17:45:31 ID:???
shutdown abortでもインスタンスが停止しないことがよくあるしなw
603NAME IS NULL:2008/06/13(金) 00:35:45 ID:???
>>600
UNIX 系ではない。
Windowsでは良くある。
大量のロールバックが走っていて、なかなか止まらないならある。

>>602
それは経験ないw
604NAME IS NULL:2008/06/13(金) 02:27:32 ID:???
Unixであろうとなかろうと、immediateは失敗するものと思っていい。
つまり、自動バックアップなんかでは、必ず例外処理を入れるようにすること。

abortもWindows版に限っては、ハングする可能性がある。
(KROWNには、すべてのWindowsで起こりうるみたいに書いてあるけど、おそらく2000までの現象だと思う)
605NAME IS NULL:2008/06/13(金) 19:52:15 ID:???
net stop oracleserviceXXX最強説唱える
606NAME IS NULL:2008/06/14(土) 01:02:05 ID:???
shutdown abort失敗すると、net stop も効かない。kill oracle.exeするしかない。
Unix版は、abortについては、そのまんまサーバプロセスにSIGKILL送っているだけだから、コケようがないけど。
607NAME IS NULL:2008/06/14(土) 08:51:06 ID:???
俺はサーバのシャットダウンが最強だと思うがなwww
608NAME IS NULL:2008/06/16(月) 02:43:06 ID:???
はじめまして。
oracle8の環境で、Accessのクエリを使いテーブルのインポートを試みましたら
失敗して、「最大エクステント121に達しました。」と
エラーが出ました。それで、ストレージマネージャの表領域のUSERで
エクステントの値を変えたり、スキーママネージャで
そのテーブルの値を121から無制限に変えてみたりしましたがダメでした。

他の解決策を教えて頂きたいです…。
609NAME IS NULL:2008/06/16(月) 09:27:42 ID:???
>>608
ORAエラーのコードが分かるともっと良い。
メッセージからするとロールバックセグメントが
インポート対象のデータと比べて、
やたら小さいだけなんじゃないかと思うが。

クエリで実行できる程度のデータの移行だけなら、
条件つけてデータを小分けにして
ADOとかで処理するのが良いかもしれんがな。

610NAME IS NULL:2008/06/16(月) 14:33:43 ID:???
>>609
ありがとうございます。
コードはORA-01631です。
611NAME IS NULL:2008/06/16(月) 15:55:58 ID:???
>>610
…で、エクステントが最大に達した表はどれだ?
エラーメッセージに出てただろ?
それも余さず書けよ。
そういうのが結構大事なんだから。

これ参考にしてエラーがどのオブジェクトに対して
発生しているのかを特定しろ。
http://homepage1.nifty.com/k-umezu/oraerror/ora-01630.htm
612NAME IS NULL:2008/06/16(月) 17:27:35 ID:???
Oracle触るの初めてなのですが、セキュリティの対応で
リスナーにパスワードを設定することになりました。

lsnrctlからchange_passwordで設定するまではよかったのですが
そのあとにsave_configというコマンドが見つからなく(helpコマンドでも表示されない)
設定を保存することができません

オラクル9i以降じゃないとpassword保存できないのでしょうか?

オラクル7を使っているのですが、何かわかりましたら
アドバイスもらえないでしょうか
613NAME IS NULL:2008/06/16(月) 18:27:45 ID:???
>>612
change_password出来るのは
8.0.xからじゃね?
614NAME IS NULL:2008/06/16(月) 20:56:06 ID:???
>>611
どうもです。解決しました。

エクステント値を変更する表が同じ名前で2つありまして
その別のほうを変えてしまってました…
615NAME IS NULL:2008/06/18(水) 20:43:05 ID:???
ORACLEの試験の合格申請をしようと思っています。
ですが、2年以上前に受けたので受験日を忘れてしまいました。
(アールプロメトリックidは分かります)
これってORACLEに問い合わせたら受験日を探して教えてくれますか?
616NAME IS NULL:2008/06/18(水) 20:44:08 ID:hlqfkmnb
連投すみません。
あげます。
617NAME IS NULL:2008/06/18(水) 20:55:02 ID:???
>>615

Oracleに問い合わせるかどうかをここで聞くという神経が信じられない。
合格してるんだったら普通に聞けばいいだろうに。
618NAME IS NULL:2008/06/18(水) 20:58:04 ID:1zQxpBDX
>>615
ORACLEに問い合わせる。教えてくれるよ。
ただ合格したのが有効なのって3年だから、
早急に行動したほうが良い。
619NAME IS NULL:2008/06/18(水) 20:58:31 ID:???
>>617
今時間外で問い合わせできないからとりあえずここで聞きました。。
620NAME IS NULL:2008/06/18(水) 21:00:05 ID:???
>>618
レスありがとうございます。
受験日教えてくれるんですね!
よかったです。
教えてくださって本当にありがとうございました!
621NAME IS NULL:2008/06/18(水) 23:23:33 ID:???
>>619

ここで聞いた答えを正しいと思うのか…
622NAME IS NULL:2008/06/21(土) 12:18:14 ID:???
がーん、Windowsってdb_block_size 16kまでなのね
WindowsでOracle使っちゃいけないの?
623NAME IS NULL:2008/06/22(日) 05:32:01 ID:???
>>622

うん。
624NAME IS NULL:2008/06/22(日) 11:23:00 ID:???
「Instant Clientパッケージ - 基本」と「Instant Clientパッケージ - SQL*Plus」を
ダウンロード・解凍し同じフォルダに入れた上で
sqlplus.exeを実行したのですが、下記のエラーが発生しました。
何が足りないのでしょうか?


---------------------------
sqlplus.exe - コンポーネントが見つかりません
---------------------------
MSVCR71.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
---------------------------
OK
---------------------------
625NAME IS NULL:2008/06/22(日) 12:59:26 ID:???
>>622
Windowsっていうか、32bitはブロックサイズ16Kまでだったと思う。
626NAME IS NULL:2008/06/22(日) 19:34:15 ID:???
>>624
MSVCR71.dllでググって見つかったDLLをsystem32にコピー。
627NAME IS NULL:2008/06/22(日) 23:16:00 ID:DVCXVAyc
管理画面のポートを8080から80に変更する方法
ごぞんじないですか?
628NAME IS NULL:2008/06/23(月) 08:32:04 ID:???
>>627
なんの管理画面だよ。
629NAME IS NULL:2008/06/23(月) 22:44:46 ID:???
教えて下さい。
オラクルのトランザクション分離レベルがシリアライザブルのときの実装って、
ポスグレのように挿入や書き換えを許してしまう実装なのですか?
それともMySQLのようにロックが掛かり挿入、書き換えが出来ない実装なのですか?
630NAME IS NULL:2008/06/23(月) 22:50:48 ID:???
>>629
あくまでも読み込みにロックはかからないから前者。
後続のトランザクションの影響でトランザクションが失敗することがある。
楽観的排他と動作は似てる。
631NAME IS NULL:2008/06/23(月) 23:04:20 ID:???
>>630
ということは適当なロックを掛けなければファントムの挿入、アンリピータブルな
データの書き換えを許してしまうということですね!
ありがとうございました。
632NAME IS NULL:2008/06/23(月) 23:11:53 ID:???
>>631
どうすればそういう間違った理解ができるか不思議だ。
ファントムもアンリピータブルリードも起きないぞ。
633NAME IS NULL:2008/06/23(月) 23:23:31 ID:???
>>632
えっ、違うのですか?
ポスグレはファントムリードもアンリピータブルリードも発生しませんが、
ファントムの挿入、アンリピータブルな書き換えは許し、当該トランザクションからは
ただ見えなくしているだけの実装なので、前者というので同じものだと理解してしまいました。
634NAME IS NULL:2008/06/23(月) 23:27:17 ID:???
>当該トランザクションからは 
>ただ見えなくしているだけの実装
それがわかってるならいいよ。
更新時の失敗の可能性は置いといて、当該トランザクションから見えなければ問題ないでしょ。
この状態をシリアライザブルな状態とみなしよいかいなかは宗教論争になりやすいからおいとくけどね。
635NAME IS NULL:2008/06/23(月) 23:45:57 ID:???
>>634
私の解釈は合っているってことでいいんですね?
あと、不思議なんですがトランザクションの分離レベルの実装がこんなにも違うのに
トランザクションの分離レベルを適当なものに設定すれば、あとはデータベースが
上手くやってくれるみたいにいう人や、そのように書書いてあるオラクル、ポスグレも
対象に入っているSQL本があるんでしょうか?
636NAME IS NULL:2008/06/23(月) 23:48:16 ID:???
共有ロック方式でもシリアライズトランザクションは結構失敗するんだけどね。
この場合の失敗はデットロックで現れる。
637NAME IS NULL:2008/06/23(月) 23:50:56 ID:???
>>635
シリアライズトランザクションはどの方式でも要注意。
Oracleではread commited + select for updateがデフォだなぁ。
638NAME IS NULL:2008/06/25(水) 00:00:23 ID:???
RACでのバックアップについて質問です。

@ノードAで「begin backup」

Aデータファイルをコピー

BノードAで「end backup」
という流れでバックアップしようと考えています。
そこで、Aの最中にノードAがダウンした場合、
別のノードでBを実行することは可能なのでしょうか?

シングル構成やHA構成だと、AでノードAがダウンした場合
MOUNTモードにして「end backup」してやらないといけなかったので
RACだとどうなるんでしょう?
639NAME IS NULL:2008/06/25(水) 01:19:12 ID:???
>>638
念のため、10gR2-EE という前提で。
ノードBで alter database end backup すれば大丈夫なはず。
SE-RAC だとサポート対象外操作になるはず。
640NAME IS NULL:2008/06/25(水) 02:10:52 ID:???
バックアップのパラレル化はしないの?
641NAME IS NULL :2008/06/25(水) 04:37:31 ID:???
>>638

可能。
でもRACならRMAN使った方が何かと楽だぞ。
642NAME IS NULL:2008/06/25(水) 10:25:14 ID:???
SQL ServerのTEXT型のような型はOracleにはありますでしょうか?
643NAME IS NULL:2008/06/25(水) 10:39:53 ID:???
>>642
あえて言うならLONGとかCLOBだが、
使い勝手はTEXT型よりかなり悪い罠。
644NAME IS NULL:2008/06/25(水) 12:45:43 ID:???
〉〉639,641

情報ありがとう。
今回は10gR2-EEなので、
MOUNTモードでのリカバリの心配はなさそうですね。

RMANに関しては
容量が大きいので見送りました。
ストレージ機能でコピーします。
645NAME IS NULL:2008/06/25(水) 12:48:20 ID:???
>>644

RMANはその気になればストレージ機能を利用した方法にも
対応させる事が可能。
ちょっと面倒だけどね。
646NAME IS NULL:2008/06/25(水) 14:40:48 ID:???
>>643
ありがとうございます。CLOB使ってみました。
なんか普通にinsertもselectもできるんですが
どのあたりが使い勝手が悪いのでしょうか?
647NAME IS NULL:2008/06/25(水) 15:20:00 ID:???
>>641
可能です。
以上。
↓次の方どうぞ
648NAME IS NULL:2008/06/26(木) 00:27:37 ID:???
>>638
何ゆえ、MOUNTモードにする必要が???
649NAME IS NULL:2008/06/26(木) 02:52:52 ID:???
>>648
シングルインスタンスで
alter database begin backup;
shutdown abort;
startup;
してみれば判る。
650NAME IS NULL:2008/06/26(木) 21:03:33 ID:???
ORACLE 10g Express Editionはメモリが少ないパソコンでも問題なく動作しますか?
メモリ256Mしかつんでないのですが。
651NAME IS NULL:2008/06/26(木) 21:17:25 ID:???
>>650
動かないことはないけど、
Uses up to 1GB RAM of available memory in any size server.
ってDataSheetには書いてある訳だが。

652NAME IS NULL:2008/06/26(木) 21:48:04 ID:???
「問題なく動作」するかと言われれば「何か問題はあるだろう」としか言えない。
653NAME IS NULL:2008/06/26(木) 21:51:19 ID:???
XEにOEMがあったかどうか知らんが、そういう類のものをすべて止めれば逝けるだろう。
654NAME IS NULL:2008/06/27(金) 00:31:06 ID:???
いきなりWindows落としたら、次の日からSQLPLUS使えなくなっちゃった・・・・
っていうかORACLE動いてる気配ないんですけど
655NAME IS NULL:2008/06/27(金) 01:17:02 ID:???
>>651
日本語か英語の勉強が足りない。
656NAME IS NULL :2008/06/27(金) 04:54:53 ID:???
>>650

無理じゃん。
スワップしまくってアボンだと思う。
657NAME IS NULL:2008/06/27(金) 05:14:34 ID:???
>>654
メモリ256でOracleを動かしているとPCをシャットダウンすると
Oracleの終了処理が済む前に電源が落ちてしまう。
そのせいで再起動のときOracleはリカバリ処理が始まる。
これに数十分かかるのだが、待ちきれずにPCをもう一回落としたり
いろいろはじめるとさらに傷口が広がり回復に数時間を要するようになる。
658NAME IS NULL:2008/06/27(金) 05:37:00 ID:???
>>654
クラッシュリカバリに時間掛かってるか、
何らかのエラーで起動が失敗していると思われ。

アラートログ確認汁。
659NAME IS NULL:2008/06/27(金) 05:52:30 ID:???
ブハハ、256でオラクルはホント地獄だぜ・・・   某AA
660NAME IS NULL:2008/06/27(金) 05:55:53 ID:???
>>659
動かすだけなら良いが、
実用には向かん罠www
661NAME IS NULL:2008/06/27(金) 08:56:52 ID:???
512でもつらい。ってかちょっと複雑なSQLで内部エラー大量発生。
662NAME IS NULL:2008/06/27(金) 09:47:35 ID:???
質問です。
WinServer2003で9iを導入するのですが
Oracleが使用できる最大物理メモリはどのくらいですか?
要はOralceのためにServerに25Gの物理メモリを搭載しようと思うのですが
そこまで必要ないのかどうかが知りたいです。

663NAME IS NULL:2008/06/27(金) 09:55:33 ID:???
>>662
32bitOSと32bit Oracleの組み合わせなら2GB。設定弄って3GB。
当然、64bitなんだろ?

なら20GBくらい割り当てても問題ない。
664NAME IS NULL:2008/06/27(金) 10:03:24 ID:???
>>663
ありがとうございます。
割り当てるというのはSGAのことですか?
665NAME IS NULL:2008/06/27(金) 10:57:12 ID:???
>>664
SGA。
666NAME IS NULL:2008/06/27(金) 12:45:12 ID:???
>>665
ありがとうございます。とても参考になりました。
667NAME IS NULL:2008/06/27(金) 14:10:07 ID:???
つか、今からなら9iより10gR2のほうが良いように思うが。
668NAME IS NULL:2008/06/27(金) 19:37:54 ID:???
>>663
>32bitOSと32bit Oracleの組み合わせなら2GB。設定弄って3GB。

エッ! WindowsNTserver4.0にOracle7のサーバなんだけど、この間3GBに増設して動かしてる。
設定何も変えてないんだけど、何かしなきゃダメなんでしょうか?
669NAME IS NULL:2008/06/27(金) 19:39:41 ID:???
SGAだけじゃなくてPGAも考えないと。
SGA + 同時接続数 x PGA だろうな。

物理メモリに25GB(半端だね)も載せようというんだからDBもでかいんだろうし。
670NAME IS NULL:2008/06/27(金) 19:40:35 ID:???
>>668

どんな釣りだよ。

プロセスが使えるメモリの最大量って知ってるか。
671NAME IS NULL:2008/06/27(金) 19:52:07 ID:???
>>668
設定弄らずに32bit Windows上で
ユーザープロセスが使えるメモリの最大サイズは2GBまで。
覚えとけwww
672NAME IS NULL:2008/06/27(金) 22:22:34 ID:???
まてまて。
9iにx64版ってあったっけ?

っていうか、Oracleのシステム要件のページってどこいったんだ・・・。
673NAME IS NULL:2008/06/28(土) 02:05:57 ID:???
>>651
XE 使ったこと無いから知らないけど、結構要求すんのね。
10gR2 for Windows(32bit) の最小システム用件で 256MB なのに。
ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/windows/B25255-04/reqs.htm#62274690

>>668
物理メモリ増やしても、オラクルのパラメータ変えなければ意味がない。
そして上限が 2GB 。(設定だと SGA+PGA=1.7GB程度かな)

>>669
Windowsだとローカルメモリ+SGA+PGA+最大セッション数MB で概算してる。

>>672
IPF 版なら存在する。
システム用件は Metalink に移動。
Oracle Japan のトップから不思議なリンクを辿って行ける
トップ→[タブ]会社情報→[Oracle Resources]製品システム用件
使い辛い+判り辛い
674NAME IS NULL:2008/06/28(土) 04:13:10 ID:???
>>673
up to は上限。
675NAME IS NULL:2008/06/28(土) 08:07:09 ID:???
Oracle SQL Developer って開発者向けには便利なツールだけど
管理者向けのこの手のツールはないですかね?(SI Object Browser 以外で)
10g 標準のツールってweb版のみしか無いようだし、
そもそもバージョンが変わる度にツールも変わるので複数バージョンを扱ってると不便…
676NAME IS NULL:2008/06/28(土) 13:09:09 ID:???
10gにもEM(Web版OEM)あるでしょ。
使いやすいかどうかは保証しないけど。
677NAME IS NULL:2008/06/28(土) 21:20:01 ID:???
>>675

Grid Control は複数のバージョンが混在していても管理できるよ。

678668:2008/06/29(日) 00:06:38 ID:???
皆さんありがとう。
Oracleのプロセスが使える上限が2GBというのは、物理メモリエリアの2GB以下のアドレス
しかアクセス出来ないという意味ではないですよね。
もしそうなら全く駄目なんだけど、そうでなければOSや別アプリが使う分を含んで3GBにする
意味はあると思うのですが。
679NAME IS NULL:2008/06/29(日) 13:43:09 ID:???
>>678
何のためにメモリを増やしたの?
このスレの視点だと「オラクルのため」にメモリを増やしたと判断されて
当然だと思わない?。だから設定してないなら無意味ってだけ。
オラクル以外の部分のため(例えばSWAP発生してる対策)とかなら、
メモリ増設だけで十分かもしれない。
680NAME IS NULL:2008/06/29(日) 20:41:52 ID:???
>>679
いや、マシン自体が2GBしかメモリを積んでないなら、当然ORACLEは2GBよりかなり少ない
容量しか使えないから、ORACLEにフルに2GBを使いたいなら当然マシンには3GBとか積ま
ないといけないですよねっていう質問です。
681NAME IS NULL:2008/06/29(日) 20:51:15 ID:???
>>680
SGAやPGAサイズがOrcaleが使うメモリのすべてと誤解して大きくとりすぎてることはあるよね。
プログラムとしてのOracleのコードやスタック、ヒープはしっかり別に必要で、
OSのファイルシステムにDBおいてるなら、
特にNT系はファイルシステムのキャッシュに目いっぱいメモリ使うから要注意だ。
682NAME IS NULL:2008/06/30(月) 00:55:47 ID:???
>>680
物理メモリを 2GB → 3GB に増設した。
目的は Oracle で 2GB 使うため。
だったオラクルのパラメータ変更したの?

変更してなきゃ意味無いだろ。って言われてるの。
683680:2008/06/30(月) 13:27:22 ID:???
>>682
>目的は Oracle で 2GB 使うため。
>だったオラクルのパラメータ変更したの?

2GBで使う場合でも、コンピュータに搭載されているメモリ容量を変更する度に
オラクルのパラメータ変更が必要なのですか?
それなら、そっちの担当にどうしてるのか確認してみます。
684NAME IS NULL:2008/06/30(月) 13:50:40 ID:???
>>683
ttp://www.microsoft.com/japan/whdc/system/platform/server/PAE/PAEmem.mspx

boot.ini に/3GBスイッチ入れてるでしょ?
685680・683:2008/06/30(月) 14:05:37 ID:???
>>684
ありがとう。
これもずっと探してた情報です。 助かります。
686NAME IS NULL:2008/06/30(月) 14:17:56 ID:???
OiSCのパッチ情報見る限り、9iにもx64版(Linux、Windowsとも)あるな。
687NAME IS NULL:2008/06/30(月) 20:52:28 ID:???
>>683
メモリチューニングは当然実施すべき内容。
688NAME IS NULL:2008/06/30(月) 23:14:45 ID:4AUDEgeg
11g Enterprise ManagerにSYSでログインし、ユーザーの編集でユーザのパスワードを変更したいのですが
何故か6桁のパスワードに書き換えられてしまいます。

何か原因に心当たりがあればぜひ!
689NAME IS NULL:2008/07/01(火) 04:13:53 ID:???
評価版Windows用 10gR2 SEを入れ、SE-RACのテストをしています。
ClusterWare、Databaseを無事インストールし、EMへのログインを確認できました。

ここで、お尋ねしたいのですが、EMは、Databaseをインストール
したサーバ(rac1)で立ち上がっているようですが、、リモートインストール
したサーバ(rac2)では立ち上がっていないようです。

rac1が故障したときにも備えて、rac2でもEMを立ち上げておきたいのですが
そういったことは可能なのでしょうか?

690NAME IS NULL:2008/07/01(火) 07:45:54 ID:???
>>689

はい。可能です。
691NAME IS NULL:2008/07/01(火) 22:30:55 ID:???
>>676-677
サーバーマシン上で動作するツール(Web版)は避けたいんですよね
ツールがフリーズすると面倒だし…
やっぱりクライアント上で動作して
裏では管理用SQLをやりとりするだけで表示だけわかりやすくしてくれるってのがいいな、と
692NAME IS NULL :2008/07/02(水) 00:19:54 ID:???
>>689

余裕があるのなら、3台目のサーバーにOMS立ち上げて、中央管理とか
した方がいいかもな。
rac1とrac2が動いているサーバーにはagentだけ入れておけばいい。
693NAME IS NULL:2008/07/02(水) 00:36:49 ID:???
>>689
可能だけど、マニュアルに手順は載ってなかったと思う。
ちなみに rac2 で emctl status dbconsole すると rac1 と微妙に
表現が違うことに気付くでしょう。

>>691
10gから考え方が変わってるからね。
DBサーバ側で動かしたくないなら、素直にオラクルの考えに従って
Grid でも組んで Agent だけ動かすとかが正解じゃないかと。
694NAME IS NULL:2008/07/02(水) 00:59:08 ID:???
EMとそのリポジトリ用にXEで管理サーバー立ててるよ。ただでよかったXE。
695689:2008/07/02(水) 04:21:16 ID:upsbnzBw
>>690
>>692
>>693
>>694
皆様、レスありがとうございました。

やけっぱちで、RAC1でEMDCのアンインストールを実行し、RAC2で
EMDCのインストールを試みましたが、インストールに失敗し、私の手では復旧不能になりましたw

とりあえず、再度オラクルをインストールしなおして、各サーバにgridのエージェントをいれ、
管理サーバとして3つ目のサーバにXEとgridを入れようと思います。

素人が出を出すもんじゃないですね。
696NAME IS NULL:2008/07/04(金) 22:53:03 ID:c2n1ia/Z
サラのPCに11gをインストール後、リブートなどしてもCPU負荷がほぼ常時100%付近。
PCが使い物になりません。
Windows XP Pro:メモリ1.5GB CPU Celeron 540
同様なマシン3台チャレンジしてみましたが....
気になる点は、ネットワークアドレスが固定なので
DHCPについての確認MSGはでてしまいました
697NAME IS NULL:2008/07/04(金) 23:20:42 ID:???
>>696
SPECが低いんだろ。
698NAME IS NULL:2008/07/06(日) 01:27:05 ID:???
10gではどうなのだろう?
699NAME IS NULL:2008/07/06(日) 07:05:10 ID:???
>>698
同じマシンで10gならもう少しマシに動くはず。
700NAME IS NULL:2008/07/06(日) 12:06:46 ID:???
Oracle 10gをwindows server2003にいれて、
クライアント windows XP proからアクセスしています。

いまトリガーを作っているんですが、トリガーをステップ実行できるような無料のツールはないでしょうか。
Visual Studio2005が入ってるので、「Oracle Developer Tools for Visual Studio」を入れてみたんですが、
トリガーのステップ実行はできませんでした(ブレークポイント貼っても止まりませんでしたので)
701696:2008/07/06(日) 16:44:34 ID:8/VfbbrQ
>>698
11gをアンインストールして10gR2をいれてみました。
問題なくとっても快適に動きます。負荷も何もしてなければ
10%以内です。
その後11gをインストールしなおしたけど、何もしなくても
CPUは100%。

>>697
オラクルの言う最低要件はクリアしているが、スペックが低い、
ということだと、どれくらいのスペックがあればいいですか?

702NAME IS NULL:2008/07/06(日) 17:20:02 ID:???
もうoracleは64bit機じゃないと無理
703NAME IS NULL:2008/07/06(日) 17:21:38 ID:???
>>700
Object Browserをとりあえず試用してみるのが良いとオモ。


>>701
つか、最低要件はあくまで最低だからな。
32bitなら最低限Core2Duoと4GB RAMが欲しい。

704NAME IS NULL:2008/07/06(日) 17:59:05 ID:cz+zACqE
>>701

類似事例が下のURLのサイトに書いてある。

ttp://www.oraxcel.com/cgi-bin/yabb2/YaBB.pl?num=1211190566

Oracle 11g causes CPU 100%

After installing Oracle 11g on a clean windows XP machine (no service packs) it maxes out the CPU.
The CPU is always 100%. I have a 2GHz PC with 2 GB of memory...

I found the cause to be the service for enterprise manager. When you stop the service OracleDBConsole
for your database the CPU drops to idle after a minute or so.
I guess I have to do without the enterprise manager...
705NAME IS NULL:2008/07/06(日) 18:09:24 ID:???
JVMとの相性に問題があるのかもしれんな。
706田中さん:2008/07/06(日) 18:18:45 ID:pcnIKAGY
エヴァンゲリオンにあわせた曲(バンプのアルエ)みたいな曲ないですか
707NAME IS NULL:2008/07/07(月) 00:53:28 ID:???
>>700
Oracle SQL Developer ではできないんだっけ?
708NAME IS NULL:2008/07/07(月) 00:55:54 ID:???
>>701
DBconsoleサービスを止めたらどうなのだろう?
709696:2008/07/07(月) 07:26:02 ID:MBMmlGLV
>>708
停止でCPU負荷は下がりました。
でOEMは使えないっす。(これは管理上痛い!)

Oracle11gもVista化しちゃったのかな?
みんな11gって使えてるの?
710NAME IS NULL:2008/07/07(月) 08:09:07 ID:???
JVMのバージョンをいろいろ変えてみるしかないだろうなw
711NAME IS NULL:2008/07/07(月) 10:04:10 ID:???
それ以前にSPなしのWinXPにこだわる理由でもあるのか?
712NAME IS NULL:2008/07/07(月) 10:05:35 ID:???
>>711
普通に考えればない罠www
713NAME IS NULL:2008/07/07(月) 10:54:00 ID:???
それ以前にSPありで問題ないかどうかについて書かれて無いな
714NAME IS NULL:2008/07/07(月) 11:12:31 ID:???
質問です
バインド変数の宣言方法と使用方法(構文?)がわかりません。

Oracle9i リリース2
開発言語 .NET
ODPでOracleに接続しています

よろしくお願いします
715696:2008/07/07(月) 12:29:35 ID:MBMmlGLV
>>713
先月購入した国産F製XPパソコンですので、SP2はいっています。
XPの更新などはいれましたが、SP3は入れてません。
(一般的な状態かと?)

元々NTで動いていたシステムのリプレースで、機械も客先からの指定、
そんな感じです。
メモリは積むことは出来ますが、CPUはアップ無理〜。

716NAME IS NULL:2008/07/07(月) 12:51:16 ID:???
11gってついにoemapp版のコンソールは無くなってしまったのかな?
717NAME IS NULL:2008/07/07(月) 12:52:13 ID:???
>>715
ダメ元でメモリ奢ってみなよ。
718NAME IS NULL:2008/07/07(月) 20:14:20 ID:???
UpDate > '2008-04-01%'
うちOracleの人は普通に使ってる条件、UpDate はtimestamp型ね
これ普通?
719NAME IS NULL:2008/07/07(月) 20:33:25 ID:???
エラー:普通の定義があいまいです。
720NAME IS NULL:2008/07/07(月) 22:29:42 ID:87jAvxSS
SRCテーブルIDとCODEとDATEのフィールドがあります。
このテーブルにトリガを設定し、UPDATE・INSERT・DELETEされたタイミングで、
更新されたCODEと同じCODEの中で最大のDATEフィールドを、DSTテーブルにINSERTしています。

トリガ内で自テーブルを参照するのでやむを得ず文トリガーにしましたが、
この場合、:NEWや:OLDが使えないため、更新(や削除)されたレコードのCODEが欲しいのにわかりません。
文トリガーの場合、どうやってどのレコードが更新(削除)されたか取得するんでしょうか?
721NAME IS NULL:2008/07/08(火) 00:53:23 ID:???
web版じゃなくてapp版のoemが欲しいね
722NAME IS NULL:2008/07/09(水) 16:41:47 ID:???
すみません初心者です

11gの体験版をインストールし、サービス「orcl」を作成してSQL Developerからアクセスできました
次にODBC接続するためDNSを作成しようとしたのですが、
「ORA-12154: TNS: 指定された接続識別子を解決できませんでした」
と表示され接続できません。ローカルからの接続で、設定はSQL Developerからの接続と同様です。

tnsping orcl と入力しても名前の解決に失敗しました
sqlplus user/pass@orcl と入力しても指定された接続識別子を解決できませんでしたと言われます。

おそらくODBC以前の問題かと思うのですが、こういう場合はどこを確認すればいいのでしょうか?
723NAME IS NULL:2008/07/09(水) 16:51:50 ID:???
>>722
ORA-12154でぐぐる
724NAME IS NULL:2008/07/09(水) 17:06:41 ID:???
ググってるんですがわからない初心者です;;
もう少し調べてみます…
725NAME IS NULL:2008/07/09(水) 18:28:20 ID:???
tnsnames.oraだろ。
726NAME IS NULL:2008/07/10(木) 01:06:21 ID:???
んだな tnsnames.ora を上げてみるよろし
727NAME IS NULL:2008/07/10(木) 01:48:21 ID:???
エロイ人助けて... oracle10g linux です。

TABLE_A に NOT NULL かつ NUMBERな、COL1とCOL2 があります。
primaryなkeyとして IDX_A (COL1,COL2) が指定されてます。

これに対して SQL1 を実行すると、IDX_A の FULL SCAN になってしまいました。
[SQL1]
EXPLAIN PLAN FOR
SELECT SUM(CASE WHEN COL1=10 AND COL2=100 THEN 1 ELSE 0 END) FROM TABLE_A;

UNIQUE INDEX をフル指定してるのになぜ...と思って 念のため SQL2 を実行すると
こちらは順当に IDX_A の UNIQUE SCAN となりました。
[SQL2]
EXPLAIN PLAN FOR
SELECT COUNT(*) FROM TABLE_A WHERE COL1=10 AND COL2=100;

ひょっとして CASE の WHEN では、INDEX UNIQUE SCANしてくれないのでしょうか。

『oracle when full scan』とかでググったり、Oracle Database パフォーマンス・
チューニング・ガイドを見たりしたのですが、そのような記述は見あたりません。

ちなみに NOT UNIQUE な INDEX で同じ事をすると(っていうか発端はこっちなのですが)、
WHERE では INDEX RANGE SCAN、WHEN では INDEX FULL SCAN となり、同じ事でした。

よろしくお願いします。
728NAME IS NULL:2008/07/10(木) 03:36:28 ID:???
>>727
CASE WHEN の方は全部の行を集計対象にしているから、FULL SCAN は当然では?

COL1 COL2
10 9 -> 0
10 10 -> 1
10 11 -> 0
:
:
729727:2008/07/10(木) 04:13:43 ID:???
>>728
エロイ人、ありがとうございます!!

そういう事なのですね。
WHENに書く必要のない条件をWHEREに持ってきたら、RANGE SCAN になってくれました。
これで寝れます。お休みなさい。
730NAME IS NULL:2008/07/11(金) 17:53:30 ID:85FVEcl0
【iPhone】これで法人向け端末として会社に買ってもらえる? OracleやSalesforce.comが業務アプリを無償提供開始 Googleも
http://mamono.2ch.net/test/read.cgi/newsplus/1215766033/
OracleとSalesforce.comが、無料iPhoneへのチケットになるかもしれない。その方法は?
上司にお金を払ってもらうのだ。
エンタープライズアプリケーション大手のOracleと、CRM(顧客関係管理)の第一線にある
Salesforce.comは、7月11日に発売されるiPhone 3G向けにアプリケーションを開発する企業
の第一陣だ。
(中略)
あなたの上司はまだiPhoneをおもちゃだと考えているかもしれない。IT部門は新しい製品の
管理を嫌がるかもしれない。iTunesが管理コンソールにあるのならなおさらだ。だが一般社員
はiPhoneを使うだろう。OracleとSalesforce.comはそれを分かっている。実際に両社はそれ
を確かめるだろう。ほかのベンダーも後れを取ってはいない。

SAPは今春、BlackBerryにSAP CRMを搭載して成功したと考えている。おそらく成功だった
のだろう。だが、iPhone対応を検討した方がいい。

あなたのチームにiPhoneを支給しなければ、ライバルに後れを取ってしまうと上司を説得する
にはいい機会だ。
731NAME IS NULL:2008/07/11(金) 21:03:04 ID:???
質問します。列定義でTIMESTAMP型はどれになるのですか?
732NAME IS NULL:2008/07/11(金) 21:10:16 ID:???
>>731
9iより前には無い
733NAME IS NULL:2008/07/11(金) 21:53:11 ID:???
>>731
意味不明だが、とりあえずTIMESTAMP WITH TIME ZONEにしとけ。
734NAME IS NULL:2008/07/12(土) 21:43:42 ID:8NaFBB4m
質問です。
ひょっとしてLinuxのXEにx86_64の対応版はないですか?
735NAME IS NULL:2008/07/12(土) 22:05:36 ID:???
Windows版にも無いような
736NAME IS NULL:2008/07/12(土) 23:46:53 ID:???
確か、SGA_MAXが2Gまでじゃなかったっけ?
つうことで、32bit版しかないんだろう。
737NAME IS NULL:2008/07/13(日) 11:23:19 ID:???
表作成後にデフォルト値を追加すると今までの表にも反映されますか?
738NAME IS NULL:2008/07/13(日) 23:54:58 ID:???
なぜやってみない?
739NAME IS NULL:2008/07/14(月) 01:51:01 ID:???
アプリケーションビルダで1:Nの画面作れません
成功者いますか?
740NAME IS NULL:2008/07/14(月) 11:44:01 ID:???
Oracle Master の試験スレはどこかいのぉ。
741NAME IS NULL:2008/07/14(月) 12:15:13 ID:???
742NAME IS NULL:2008/07/14(月) 22:02:05 ID:???
表の容量調べるにはどうすればいい?
743NAME IS NULL :2008/07/14(月) 22:29:05 ID:???
>>742

(´д`)つdba_segments
744740:2008/07/15(火) 01:00:25 ID:???
>>741
サントス!!
745NAME IS NULL:2008/07/16(水) 23:24:55 ID:???
PL/SQLでVARCHAR2型列の最大長を知る方法ありますか?
746NAME IS NULL:2008/07/17(木) 23:25:17 ID:kAgTWgJL
Oracle9.1での事ですが、
オラクルのフィールドに、「何も入ってないけど、NULLじゃない状態」ってありえるんでしょうか?
ACCESSでリンクして、ACCESSからオラクルに書き込んでるデータがあるんですが、
ACCESSから書き込んだあと、オラクル上(SQLPLUS)で、あるフィールドがNULLのデータを取得しようとしたら取得できず、
でもそのレコードを見ると、対象フィールドには何も入ってない、という現象が発生しまして。
747NAME IS NULL:2008/07/17(木) 23:30:23 ID:???
どうやってNULLのデータを取得しようとして
どうやって何も入っていないことを確認したのか
748NAME IS NULL:2008/07/18(金) 00:17:59 ID:???
>>746
表示できない文字が入ってるってオチだろ
chr(0)とかコントロールコードとか
ちゃんとlengthとかdumpとかみてんのか?
749NAME IS NULL:2008/07/18(金) 01:18:07 ID:???
>>746
改行が入ってるとかよくあるよ
750NAME IS NULL:2008/07/19(土) 15:06:54 ID:???
とあるBronzeの学習書の問題で

・副問合わせがNULLを戻すと主問合わせは1行も結果を戻さない

真か偽か、で正解が真とあります。
副問合わせをWHERE/HAVING/FROMで使う時はわかるのですが
UPDATE文のSET句で使う場合は結果を返すような気がするのですが
どこか誤解があるでしょうか。
751NAME IS NULL:2008/07/19(土) 16:48:26 ID:???
その場合、主問い合わせってのが
SELECT文のみを想定してるんじゃ?
752NAME IS NULL:2008/07/19(土) 18:09:42 ID:???
なるほど、用語の問題でしょうか
「主問合わせ」と言うとき、SELECT文のことを指すものなのですかね

どうもこの書は用語の定義の説明が省略されていて初学者には戸惑います
まあでも更新操作は確かに問合わせではないですね
753NAME IS NULL:2008/07/19(土) 18:37:50 ID:???
>>752
資格試験の想定問題の場合、
厳密な用語の定義以前に
問題作成者の意図、ってのが関わってくるから、
そういうことが起きうるんだけどな。

資格試験の勉強の場合は
「まぁ、そんなもんか」としておくのが良いと思う。
754NAME IS NULL:2008/07/19(土) 23:16:16 ID:???
Oracle自信の質問ではないんですが、
皆さんはノートは何を使っていますか?
現在会社で使っているノートはレノボの重いノートで
ORACLEは問題なく動いているんですが出張には重い・・・
そこで出張にも大丈夫なようにノートを検討中です
Oracle10gや11gでさらにOracle自身も重くなってきていて悩んでいます
OracleはEnter PriseではなくてもStandardが動けば十分です
モバイルノートで探しているのですが参考にさせてもらいたいです
755NAME IS NULL:2008/07/19(土) 23:38:57 ID:???
昔、1Gのメモリのレッツに、JP1とOracleを入れてたな。
もちろん、Oracleは、使うときだけ起動するようにしてたけど。
756NAME IS NULL:2008/07/20(日) 10:14:32 ID:???
>>750
問合せ=SELECT
ちなみに選択列で副問合せを使った場合はどうなんだろうな。
SELECT ( SELECT b.a FROM b WHERE b.c = d.c ), d.e, d.f FROM d
757NAME IS NULL:2008/07/20(日) 11:21:42 ID:???
>>756
副問い合わせ=subqueryだな
758NAME IS NULL:2008/07/21(月) 10:13:46 ID:???
>>757
? sub = 副 だからな
759NAME IS NULL:2008/07/21(月) 12:22:09 ID:???
連休中にOSごとお亡くなりになりましたぁぁぁぁぁぁ
760NAME IS NULL:2008/07/21(月) 12:31:55 ID:???
>>757
subqueryからsubを取ってみろよ
761NAME IS NULL:2008/07/21(月) 19:54:10 ID:???
Oracleの資格の質問もここでいいかな?
10gゴールドのテスト受かったんで講習受けようと
思ってるんだけど、安くて期間の少ないSQL入門を
受けようと考えてます。
ただ、自分は完全ペーパーオンリーできたため
SQLのことなんてさっぱりなので心配です。
講習とはどのようなことをするのかどなたか教えて
頂けませんか?
762NAME IS NULL:2008/07/21(月) 20:06:46 ID:???
安心してガッカリしてこいや
763NAME IS NULL:2008/07/22(火) 22:16:35 ID:???
oracleの8080プロセスってどこにあるんですか?
764NAME IS NULL:2008/07/23(水) 07:16:10 ID:???
まっすぐ行って、コンビニを左に曲がったところ
765NAME IS NULL:2008/07/23(水) 11:50:31 ID:???
てやんでぃ
まっつぐいってしだり
766NAME IS NULL:2008/07/24(木) 06:39:33 ID:BudmsEYu
オラクルのインスタントクライアントについて教えてください。

インスタントクライアントを入れたいのですがOTNやググって見ても大した説明がなくわからないです。 パスを通しましたが繋がらないです。
基本パッケージをダウンロードし
Cドライブへ環境変数のシステムでパスを通しましたが・・・
無償版なのでサポートを受けられないことくらい分かっていますがどうしてもお金が使ってはいけない事情があるので・・・

767NAME IS NULL:2008/07/24(木) 06:49:50 ID:???
>>766
何をしたか詳細に書け。

接続しようとした際の接続文字列もな。
768NAME IS NULL:2008/07/24(木) 07:48:03 ID:eOuZyKHk
PDFにあった方法でCドライブ直下にinstancliantを作りそこのパスとNLSのファイルへのパスを通しただけです。
どうやったら接続まで辿り着けるかが記載されてなく困ってます。(文字列なんて先の話みたいです)
769NAME IS NULL:2008/07/24(木) 08:09:41 ID:???
>>768

話にならんな。
マニュアルにはちゃんと書いてある。
金払ってちゃんと教えてもらえ。
770NAME IS NULL:2008/07/24(木) 10:39:30 ID:eOuZyKHk
んな?書いてないやろ
771NAME IS NULL:2008/07/24(木) 10:58:46 ID:???
読めないならそう書きなさい
772NAME IS NULL:2008/07/24(木) 12:33:38 ID:eOuZyKHk
768です…
もう一回見直してみましたがよくわかりません。
正直何のファイルへパスを通すのか?
どうやって接続出来るのか?
と言ったようなことがなく初心者にはわかりづらいです…
申し訳ないですがどなたか一から教えていただけないですか?
773NAME IS NULL:2008/07/24(木) 12:43:26 ID:???
マルチだったのか、よそで答えてもらえばいいじゃない。
774NAME IS NULL:2008/07/24(木) 12:53:39 ID:???
ま、こんなに色々なサイトにマルチをする
初心者を名乗るバカ野郎に答えてくれるのは
OTNに常駐している連中くらいだろう
775NAME IS NULL:2008/07/25(金) 11:00:59 ID:???
まあ、でもインスタントクライアントという割には、インストールがめんどくさいんだよな。
環境変数についても、通常版クライアントでは使われなくなった変数を指定する必要があったり。
776NAME IS NULL:2008/07/25(金) 11:10:47 ID:???
>>775
まぁ、何もしたくなけりゃ普通のOracleClientインストールしろって事だよ。
777NAME IS NULL:2008/07/25(金) 15:11:16 ID:g0Qz5Cbj
ちょっとややこしいのですが
どなたかわかる方いましたらご教授お願いします
xpにvirtualpcをインストールしまして
virtualpcに20003サーバーをインストールしました。
2003サーバーにオラクル10gをインストールしようとしたのですが
オラクル10gインストール時のチェック?で警告がでまして
インストールをやめてしまったのですが、これだけの情報で原因と
思われるものがわかる方いらっしゃいますか?
778NAME IS NULL:2008/07/25(金) 15:29:05 ID:???
>>777
・仮想マシンの物理メモリの量が満足されていない
・ディスクの最大空き容量が満足されていない
779NAME IS NULL:2008/07/25(金) 16:27:29 ID:???
IPのチェックじゃね?たしかDHCPで貰ってる場合には警告が出たような・・・
780NAME IS NULL:2008/07/25(金) 16:30:31 ID:???
>>779
それもあり得る。
その場合はMicrosoft Loopback AdapterインストールしてIP割り当てるか、
DHCP使わないよう既存NICにIP割り当てるかするしかない。
781NAME IS NULL:2008/07/26(土) 10:12:44 ID:???
そもそも「インストール時のチェック?で警告がでまして」の
「警告」を正確に書かない時点で本当に解決したいのかどうか
782NAME IS NULL:2008/07/26(土) 11:10:22 ID:???
>>781
釣りだろwww
783NAME IS NULL:2008/07/26(土) 15:15:58 ID:???
エンタープライズって、
クライアントにはいってないよね?
データベースのほうでok?(10g)
784NAME IS NULL:2008/07/28(月) 00:34:37 ID:???
無理に分かっている感じを出そうとして省略して書かなくてもよろし
慣れないうちはフルに正確に書いたほうが良い
785NAME IS NULL:2008/07/31(木) 00:04:14 ID:iqcL6bpm
ルールベースのテーブルAに、インデックスが2つ(IDX_1、IDX_2)があって
とあるSQL文を投げたとき、もともとは特にヒントなしでもIDX_2を使用。

いろいろチューニングを試していたときに、ためしにアナライズをかけてみた。
そこから急にIDX_1を使うようになって、速度がめちゃめちゃおそくなってしまった。

実行計画を見ると確かにコストは低いみたいだけど、実行すると遅いんだよね。

で、テーブルのアナライズを削除してルールベースに戻したんだが、
同じSQL文を投げてもIDX_2ではなく、IDX_1を使うようになってしまい、
明示的にIDX_2または、RULEのヒントを入れないと、IDX_2を使ってくれない。

一度コストベースで統計情報作ったら、それがのこってしまうことってあるの?
786785:2008/07/31(木) 00:07:18 ID:???
あ、ちなみに9iです。
787NAME IS NULL:2008/07/31(木) 08:29:21 ID:???
「いろいろチューニングを試していた」がさっぱりわからないけれども、
統計情報作ったらそうなるだろう。
788785:2008/07/31(木) 12:31:11 ID:???
>>787
SQL文の条件部分をかえてみたり
インデックスの列をかえてみたり…
て感じです。

興味本意でアナライズかけたらこんなことに…
開発機だからまだよかったけど。

さっきDBMS_STATS.DELETE_TABLE_STATSで統計情報を削除してみた。
しかし元にはもどらん(´Д`;)

オラクル再起動とか必要?
789NAME IS NULL:2008/07/31(木) 17:30:12 ID:???
10gExpressを使い始めたんだけど、
データをロードする際に列名が日本語なせいか

ORA-20001: create_table エラー: ORA-20001:
Excelのロード実行でのDDLエラー: ORA-00972: 識別子が長すぎます。

っていうエラーが出る。何か回避方法ない?
790NAME IS NULL:2008/07/31(木) 18:22:32 ID:???
SJISかEUCで作り直せ
そもそもオラクルで日本語スキーマは地雷
791NAME IS NULL :2008/07/31(木) 21:09:56 ID:???
>>788

ルールベースなんて10gではサポート外なんだから極力使わない方がいい。
ヒントなりストアドアウトラインなりを使って実行計画固定しろ。
792NAME IS NULL:2008/07/31(木) 22:16:35 ID:???
>>791
9iと書いてあるが…

ちなみにIDX_1とIDX_2はどちらも単一列索引or複合列索引で同じランクになる条件なのか?
あとルールベースに戻したんだが…というはアナライズを削除しただけなのか?
統計情報は完全に全部消えているのか?
793NAME IS NULL:2008/07/31(木) 22:34:18 ID:???
TABLEの統計情報は消したけど、INDEXの統計情報は残っちゃってるとか?
794785:2008/07/31(木) 23:09:12 ID:???
>>791
ありがとう。
自分もそう思ってヒントにインデックス指定したら早くなったよ。

>>792
ランク・・・ごめ、勉強不足でわかんない。
明日調べてみます。

ANALYZE TABLE table_name DELETE STATISTICS と
DBMS_STATS.DELETE_TABLE_STATS をやったんだけど、
これだと、アナライズが消えただけの状態なのかな?
2番目のヤツで統計情報も消えたと思ってたんだけど・・・

>>793
え!
テーブルの統計情報消したらインデックスの統計情報消えると思ってたけど違うの?
795NAME IS NULL:2008/07/31(木) 23:36:13 ID:???
>>790
>SJISかEUCで作り直せ
なにいってんだ?
796NAME IS NULL:2008/07/31(木) 23:49:38 ID:???
>>790
exelデータだからSJISだと思うんだよな。
とりあえず文字数削って試してみたらこんなエラーが

ORA-20001: create_table エラー: ORA-20001: Excelのロード実行でのDDLエラー:
ORA-04089: SYSが所有しているオブジェクトに対してトリガーは作成できません。

わけわかんね。何がまずいんだろ。

oracleやめて日本語使用が容易なSQLサーバに移行したほうが良いのかな。
思いつかないけど。
797796:2008/07/31(木) 23:55:48 ID:???
×exel ○excel
×SQLサーバ ○データベースソフト
798NAME IS NULL:2008/08/01(金) 00:13:33 ID:???
>>795,796
DMLじゃなくDDLでエラー出る書いてあるだろ
テーブル名が全角で11文字以上だとそうなる

XEのデータベースはデフォルトでUTF8で作成されるから
SJIS/EUCで作り直せと言ってる

ttp://www.shift-the-oracle.com/guideline/multibye-character-objectname.html
> データベースのキャラクタセットを JA16SJIS (JA16EUC) で作成した場合では日本語は 1 文字が 2(3) バイト
> AL32UTF8 でデータベースを作成すると 1 文字が 3バイトになる。
799NAME IS NULL:2008/08/01(金) 00:25:56 ID:LuTRPpIR
>>794

DBMS_STATS.DELETE_TABLE_STATS でテーブルの統計情報を削除時には
cascade_indexes パラメータがデフォルトでtrueなので、INDEXの統計情報は
消えているはずなのですが、念のために聞いてみました。

念のため、user_tables や index_tables でlast_analyzed がNULLになっているかを
確認してください。NULLになっていれば統計情報は消えています。

あと、問題が発生した後にINDEXを作り直している場合には、いったん削除して、
作成順番を逆にしてみてください。
800NAME IS NULL :2008/08/01(金) 00:43:32 ID:???
>>792

10gにアップグレードさせられる時が来るだろうから、将来的に廃止される
ルールベースは使わない方が良いという意味。
801NAME IS NULL:2008/08/01(金) 02:10:31 ID:???
>>798
UTF8だと文字化け認識されるのに対し、
きちんと認識されるからSJISだと思うのだが。

まあそれはさておき、列名を全て半角英字にして、日本語未使用かつ
10文字以下に押さえたけど>>796のエラーが出る。

まさかデータのインポートで梃子摺るとは思わなかった。難しいね。
802801=796:2008/08/01(金) 08:54:55 ID:???
SYSでログインしっぱなしだったよ。
別ユーザーで入ってロードしたら普通にいけました。
どうもありがとう。
803NAME IS NULL:2008/08/01(金) 22:11:36 ID:???
>>800
アップグレードすることになるかどうかは人それぞれ
Oracle7を使いつづけるシチュエーションもある(ここにもいるのではないか)
バージョンアップを前提に命令形ってのもどうかと思う
それに将来的に9iから移行する場合にはルールベースだけの話ですむとも思えない
それよりも現時点での問題を回避したいのではないだろうか?
804NAME IS NULL:2008/08/02(土) 00:00:06 ID:???
>SYSでログイン
するなw
805NAME IS NULL:2008/08/02(土) 08:09:27 ID:???
>>803

ただでさえバグだらけなのに、サポート外のものを使い続けて何か
あったらどうするつもりなんだ?
806NAME IS NULL:2008/08/02(土) 08:19:35 ID:???
>>805
?
サポート契約に入っていれば旧バージョンでもサポートは受けられるだろうし
最新版でもサポート契約してなければサポート外と変わらんと思うが
807NAME IS NULL:2008/08/02(土) 12:10:39 ID:???
>>806
製品サポートライフサイクルというモノがあってだな。
Oracle7については、KROWNは引けるが、
新規の問い合わせやバグ対応は一切なされない。

ま、別に使い続けるのは構わないと思うよ。
Oracle7は軽くて良いRDBMSだし。
808NAME IS NULL:2008/08/02(土) 21:26:31 ID:???
話が逸らされているな
>>785は9iを使用している環境での質問をしていて
>>791は10gでは対応外だからその機能を使うなというレスなんだろ?
それが筋違いっていう流れではないのか?

まぁ、>>785は諦めたか解決したのか分からないけどしばらく登場していないようだから、
話を広げてもしょうがないとは思うが
809NAME IS NULL:2008/08/03(日) 01:03:49 ID:nR5uLz7c
いまさらなんですが、10gのクライアントとデータベースってどう違うんですか?
どんな時にクライアントのほうをインストールして、
どんな時にデータベースのほうをインストールするのでしょうか?
810NAME IS NULL:2008/08/03(日) 01:15:16 ID:???
>>806

>>807でも指摘されてる様に、旧バージョンは何かあっても新たに
バグがファイルされる事は無い。
同様にサポート外の機能を使って何かあったとしても、新たな
パッチをリリースして貰う事は出来ない。
サポートされるバージョン、及び機能だったらちゃんとバグもファイル
されるし、パッチもリリースされる。

将来的にサポート外の機能を使うよりは、将来を見据えて現行
バージョンからパフォーマンスチューニングを行うのも、ひとつの
手と言いたいんだろ。
811NAME IS NULL:2008/08/03(日) 01:17:50 ID:???
>>809

全く違う。
例えば君はクライアントが使うPCにメールサーバーやアパッチとかを
インストールしたりするのかい?
クライアント側に入れるのは、メールを送受信したりするソフトやブラ
ウザーを入れる訳だろ?
それと同じ事。
812NAME IS NULL:2008/08/03(日) 01:17:57 ID:MC5bENIF
>>809

データベースをインストールするのは、インストールした環境で
Oracle インスタンスを起動する場合。
813NAME IS NULL:2008/08/03(日) 01:30:10 ID:???
>>811-812
ありがとうございます。データベースについてはわかったのですが、
クライアントはどのような時にインストールするのでしょうか?
814NAME IS NULL:2008/08/03(日) 01:59:00 ID:???
インストールしたいときにインストールするのさ
815NAME IS NULL:2008/08/03(日) 03:53:41 ID:???
データベースを作成したい時にデータベースをインストール。

クライアントはデータベースをインストールしたサーバーなりに、
データを見に行きたい時のための接続するために必要であるから、
データを見に行きたいときにインストール。
って、自分は解釈してたんだが、違う?
10gのクライアントは、コンフィグレーションアシスタントってハイってたっけ?
816NAME IS NULL:2008/08/03(日) 04:00:54 ID:???
>>813

アプリケーションによっては、Oracl Clientを利用してDBに接続しに
いったりするのがある。
まあ、Thin ClientでもOkだったり、ODBCやJDBC接続経由のものも
あったりするけどね。
817NAME IS NULL:2008/08/04(月) 21:44:39 ID:fuOG4llV
ライセンスについて教えてください。
Named User PlusライセンスのUserとは、何をさすのですか?

実際に使用する人なのでしょうか?
同時使用する人数なのでしょうか?
あくまでデータベースのユーザ数(アカウント数)なのでしょうか?

例えば
コンビニで、データベース上に1ユーザ分のアカウントを作り、そのアカウントをJAVAで書いたレジ2台で使用。
アルバイト20人が3人ずつシフトを組んでそのレジを使っていた場合は何ユーザ必要なのでしょうか???
818NAME IS NULL:2008/08/04(月) 22:02:13 ID:???
たぶん、5名分必要。
そのケースなら、ネット2名分でいいわけだが、最低5名からしか買えないから。

11gから変わっているかもしれないし、そういうのは営業に確認しる。
819NAME IS NULL:2008/08/04(月) 22:13:15 ID:???
>>818
ありがとうございます!
820NAME IS NULL:2008/08/04(月) 23:10:16 ID:???
インデックスのブロックダンプを見たいのですが、うまくいきません。
間違ってますかね?

1.ツリーダンプとる(抜粋)
branch: 0x100084c 16779340 (0: nrow: 103, level: 1)
leaf: 0x100084d 16779341 (-1: nrow: 241 rrow: 241)

2.リーフブロックをとる
SQL> alter session set events 'immediate trace name blockdump level 16779341';
ERROR:
ORA-02194: event specification syntax error 231 (minor error 286) near
'BLOCKDUMP'

バージョンは 10g Express Edition Release 10.2.0.1.0 です。
821NAME IS NULL:2008/08/04(月) 23:23:36 ID:???
820の質問ですが、インデックスのリーフブロック内の空き領域
(PCTFREEで指定したところ)にキーが追加される場合(リーフ
分割が起こらなかったとして)、そのブロック内のキーはソート
されるのかどうか、目で見てみたいと思ったのがきっかけです。

-----
AAA
BBB
CCC
空き
空き
-----

上のブロックにAAAを追加した場合、

-----
AAA
AAA
BBB
CCC
空き
-----

こんな風にブロック内部でソートされる?

長くなってすみません。
822NAME IS NULL:2008/08/05(火) 02:53:34 ID:???
>>817
20人分じゃね?
823NAME IS NULL :2008/08/05(火) 05:56:02 ID:???
>>820

そのコマンドはOracle 7のやつだな。
8i以降は以下になる。

まずDBAからファイル番号を求める。
SQL> SELECT dbms_utility.data_block_address_file(116779341) "FILE#" FROM dual;

んでもって、DBAからブロック番号を求める。
SQL> variable BLOCKNUMBER NUMBER
SQL> execute :BLOCKNUMBER := dbms_utility.data_block_address_block(16779341);
SQL> print BLOCKNUMBER

上記の情報から、以下を実行。
ALTER SYSTEM DUMP DATAFILE <ファイル番号> BLOCK <ブロック番号>;
824NAME IS NULL:2008/08/05(火) 06:55:32 ID:???
>>818
まちがってるぞ〜。
Named User Plusは利用者数分必要だから、
この場合は20Named User Plusライセンス必要になる。

ので、>>822でOK。
825NAME IS NULL:2008/08/05(火) 09:13:15 ID:zIFuaY1j
OracleのviewをMysqlで直接リンクさせたいんだが可能?
826NAME IS NULL:2008/08/05(火) 09:21:17 ID:???
>>825
MySQL側にOCI経由でOracleに問い合わせかけて、
戻り値をあたかもMySQL内のテーブルから取得したように
戻すようなラッパーがあれば可能。

Oracleから他DBならオプションがあるんだがな。
827NAME IS NULL:2008/08/05(火) 21:20:09 ID:???
ぼったくりやな
828NAME IS NULL:2008/08/05(火) 22:38:17 ID:???
>>823
ありがとさん!見えました。
829NAME IS NULL:2008/08/05(火) 22:47:44 ID:???
>>817
まさかここで確認とって
それを理由に購入数を決めようとしているとは思えないので
ライセンス数クイズ(って何だ?w)か何かだとは思うが
その使い方の場合はシフトが重ならない前提で
ライセンス数としては3人でOKである可能性が高い
(但し3ライセンスでは買えないので結果的には>>818と同じ5ライセンス購入)
正解はOracle Directへの電話でどーぞ
830785:2008/08/05(火) 23:05:55 ID:???
すみません、報告が遅くなりまして。

原因がわかりました。
えー・・・お恥ずかしい話なのですが結論からいいますと、

 最 初 か ら ル ー ル ベ ー ス じ ゃ な か っ た

ようです(汗

・・・といいますのも、前回の書き込みの時には関係ないと思っていたので書かなかったのですが、
実は2つのテーブル(A-売り上げ情報、B-店マスタ)をwhere条件でつなげていて

 select col1,col2,・・・ from tableA,tableB
 where 〜
 and tableA.colX = tableB.colY

という風になっています。
自分がアナライズをかけたのはtableAだけで、こちらしか見ていなかったのですが
自分がいじる前からtableBの統計情報が存在していたようです。
(誰がやったのか、インポート時?とかは全く不明)

それで、自分がアナライズををかけたことで、実行計画がかわってしまったようです。

そのうえ、当然tableAの統計情報を消しても、tableBの情報が残っているのでルールベースにはならない。
もとの実行計画にも戻らない。

なんでだー!・・・と自分が混乱していた。というわけです。
最初のほうは手探りでいろいろやっていたため、tableBの統計情報が存在することにすら気づいていなかったんですよね。

まぁそういうわけで、ルールベースに戻すことはできました。
あと、インデックスはヒントで使うようにしました。

大変お騒がせしました。
答えてくれたみんなありがとう!
831NAME IS NULL:2008/08/05(火) 23:27:11 ID:???
>>830
調査乙&報告乙
原因が分かってよかったね
よく分からないまま別の理由を持ってきて
対応そのものを変えるってのもおかしいからね
832NAME IS NULL:2008/08/06(水) 23:23:40 ID:???
ノートPCでLinuxに11gを入れて試してるんだけど、
普通に使えてると思ってネットワークから外してノートPC単独でデモをやったら、すごく遅くなった。 

再起動でdbstartやったら体感的に1-2分かかった気がする。 普通は5秒もかかってないと思う。
select も 10-15秒くらいかかった気がする。普通は1秒もかからないと思う。画面表示のほうが遅いくらい。

固定IPだし、tnsname.oraとかもIP直接書いてるし、なんでだろ。

電池駆動でもなかったのでネットワークぐらいしか違いが無いのだけど、
そういう事例ってあるの? 127.0.0.1じゃないと遅くなるとか・・・?
833NAME IS NULL:2008/08/07(木) 00:01:33 ID:???
ネットワークからはずした状態でipconfigやっても固定IPアドレスは残ってる?
834NAME IS NULL:2008/08/08(金) 10:00:51 ID:???
ユーザー hoge が、テーブル A, B を持っています。
別のユーザー hage から、テーブル hoge.A は参照できるのですが、
hoge.B は参照できません (ORA-00942)。
権限の問題だと思うのですが、テーブル単位で参照権限を与えるには
どうすればよいでしょうか?
835NAME IS NULL:2008/08/08(金) 10:27:14 ID:???
grant select B on hage; で解決しました。
836NAME IS NULL:2008/08/09(土) 04:59:36 ID:Rz28Uwkk
Oracle Data Provider for .NETって.NETC#2008には対応してませんよね?
みなさん何を使われて接続されているのでしょうか?
837NAME IS NULL:2008/08/09(土) 05:33:44 ID:???
あぁ11gならできるのか・・
どうも失礼しました。
838NAME IS NULL:2008/08/09(土) 19:56:40 ID:3BmvVFUi
Oracle 10g XEって商用利用できるの?
839NAME IS NULL:2008/08/09(土) 20:16:10 ID:???
リモートマシンからEXP実行中、まるでサボタージュするかのように処理が停滞してしまいます。
10分ほど放置したり、別セッションで接続しにいったりするとまた動き出すのですが原因がよく解りません。

サーバー機上でEXPした場合はこんな事にはなりません。
EXP以外でも処理に時間がかかるプログラムだと停滞することがあります。
このような症状に心当たりは無いでしょうか?

バージョンは8i Standard、
サーバーはWin2000Server、
クライアントはWindowsXP、2000両方で試しましたが同じです。
840NAME IS NULL:2008/08/09(土) 20:35:58 ID:???
>>838
無問題


>>839
サポートに訊け
841838:2008/08/09(土) 21:04:42 ID:???
>>840
どうもありがとー
842NAME IS NULL:2008/08/10(日) 18:59:52 ID:???
オラクルがSQLサーバーより優秀な点を教えて
オラクル株で損しているので嫁を説得したいです
843NAME IS NULL:2008/08/10(日) 19:18:28 ID:???
必ずしも技術的に優れた製品が売れるとは限らない。
844NAME IS NULL:2008/08/10(日) 19:27:23 ID:???
ちょ それじゃあ 技術的に劣ってますって言ってるようなものじゃないですか・・・
含み損見られると困るんです(郵便局に配当取り入って郵便局員に同情されるくらい損してます)
ここが素晴らしいってだから売らないって言い訳できるのをどうかひとつ!
845NAME IS NULL:2008/08/10(日) 19:41:10 ID:???
>>844
今の状況なら長期塩漬けか、とっとと損切りするかどっちかだろ。
846NAME IS NULL:2008/08/10(日) 19:45:24 ID:???
>>844
君はオラクルの株価推移知らないからそう言うことが・・・
847NAME IS NULL:2008/08/10(日) 19:46:05 ID:???
>>845 アンカーミス
848NAME IS NULL:2008/08/10(日) 19:58:03 ID:???
>>846
知ってたところで意味無いだろ?
要は「これから」なんだから。

信じてるなら塩漬け、見切るなら損切り。
849NAME IS NULL:2008/08/12(火) 17:26:40 ID:???
>>844
何時買ったのかしらんけど、20%程度含み損があるだけでしょ?

チャート的には綺麗な下落トレンドで、今はバンドの上限に来てるね。
売りで入って、以前の最安値更新しないで上昇しはじめたらナンピンする位かな。

アメリカが死んで、
他国も不況に陥りつつあるから元の価格には戻らないだろう。
850849:2008/08/12(火) 17:33:21 ID:???
多分また下がるから売って、
最安値更新しないで反転して上昇したらドテンしろってこと。
買うのはバンドの上限突破したとき。

まー株やるならテクニカルを勉強してみてくれ。
851NAME IS NULL:2008/08/12(火) 23:33:17 ID:???
武装ピックアップですね。わかります。
852NAME IS NULL:2008/08/17(日) 12:33:34 ID:wFCwE3fm
夜中になると不定期にora-12528ってエラーが出てるみたいなんですけど
なんでしょうか?新規接続をブロックするエラーとのことですが…
oracle10gを使っていますが、データの登録や参照はできますし、
バックアップソフトにもエラーは出てません。
ora-12528が全くでない日も3回ぐらい連続で出ている日もあります。
853NAME IS NULL:2008/08/17(日) 14:28:16 ID:???
oracle 10g xeをインストールしてみたんですが、
functionとかprocedureってどうやって実行するんでしょうか?

いつもSIオブジェクトブラウザで実行ボタン押してるので・・・
call?execute?どちらも認識されません
854NAME IS NULL:2008/08/18(月) 08:04:57 ID:???
>>852

プラットフォームは何よ?
夜中にRMAN使ったコールドバックアップとかしてたり
とかしてない?
855NAME IS NULL:2008/08/18(月) 19:38:58 ID:u8+oPdxp
質問です、お願いします。

select
  a.name,
  b.name1
from
  table1 a,
  (
    select distinct
      key1,
      name1
    from
      table2
    where
      param_date between from_date and to_date and
      param_flag = flag
    order by
      key1
  ) b
where
  a.key1 = b.key1(+)
;

↑の様な場合に、サブクエリの結果との結合は必ず全検索(?)になってしまうんでしょうか?
Oracle10gです。
オラクルが上手い事最適化してくれないでしょうか…。2分探索とか…。
856NAME IS NULL:2008/08/18(月) 21:20:59 ID:???
実際には実行計画を見てみなきゃ分からんが、これを最適化するのは難しいだろうな。
まぁ、最適じゃなくてもある程度の最適化はされるはず。nested loop joinじゃなくて
hash joinになるとか。

多くのDBMSではこのクエリはこう書き換えれば最適化しやすくなる。

・相関サブクエリにする
・distinctを使わない
・outer joinを使わない
857NAME IS NULL:2008/08/18(月) 23:00:06 ID:u8+oPdxp
ありがとうございました。

そうですかあ…。

もっとパフォーマンスに関する拡張構文みたいなのって出ないんですかね。
    select distinct
      key1,
      name1
    from
      table2
    where
      param_date between from_date and to_date and
      param_flag = flag
    order by
      key1
↑の結果はレコード件数が少なくてkey1でユニークになるので、
「メモリ上に常駐させてソートして二分探索して」
って指示出来たら非常に嬉しいんだけど。
858857:2008/08/18(月) 23:02:49 ID:???
スレ汚しすみませんが、言い忘れてました。
今の職場では私は非常に下っ端で、PL/SQL禁止令とか出てるもんでして…。
859NAME IS NULL:2008/08/19(火) 01:17:13 ID:???
だから>>856の通りに書き直してみなよ
860NAME IS NULL:2008/08/19(火) 03:23:26 ID:???
DB管理者からの意見だとプログラマレベルでヒントを多用されると管理上非常に困る。
861NAME IS NULL:2008/08/19(火) 06:57:37 ID:???
どういう理由で?
862NAME IS NULL:2008/08/19(火) 13:08:55 ID:???
上級DBAが低級プログラマに意見するなら良いけど
低級DBAが上級プログラマに意見するのはイクないな

でも最近じゃ上級プログラマなんていないか・・・
863NAME IS NULL:2008/08/19(火) 14:28:41 ID:???
索引も見直した。統計情報も更新した。でもプランが変わらないなぜだ・・・
糞なヒントで縛ってあったっていうのは経験があるな。

最初は >>856 のようなアプローチ
次にDBAに索引やデータ構造の相談をして
最後の手段でヒントという手順を踏んでくれたら問題ないと思うよ。

864NAME IS NULL:2008/08/19(火) 21:51:47 ID:???
索引を勝手に見直すDBAなんて有り得えねぇ。
索引の変更には、関連する全PGの再レビューか検証が必要だろ。
865NAME IS NULL:2008/08/19(火) 22:10:51 ID:???
だよな。
「DB管理者が」困る理由ってのがよくわからん。
866NAME IS NULL:2008/08/20(水) 00:06:51 ID:???
役割分担の違いじゃないか。
DBAは単なるオペレータのこともあるし上級SEやSAに準じるポジションのこともある。
索引などはサーバーのリソースにかかわってくるから
特にカットオーバー後は運用側の専権事項のことも多い。
システムの主導権を開発メンテ部隊がもってるところと、
運用部隊がもってるところで変わってくるだろ。
867NAME IS NULL:2008/08/20(水) 20:18:07 ID:???
DBA兼SEだったとしても、「マ諸君、索引見直したからちゃんと使えよ」で済むだろ。
ヒントもSQLそのものも、責任の所在でいえば違いはない。
まぁ、糞SQLと同程度には糞ヒントは困りものといえるかも知れんが。
868NAME IS NULL:2008/08/21(木) 00:01:43 ID:???
ファイングレイン監査について教えて欲しいんですが、
黒本に「監査条件が無効の場合、監査対象のオブジェクトにアクセスすると
エラーが発生する」と書いてあります。

これは、無効な audit_condition を指定した場合、
対象オブジェクトにユーザが監査対象カラム(audit_column)にDMLを
実行した際に、そのDMLがエラーになるという意味なんでしょうか。
869NAME IS NULL:2008/08/22(金) 19:55:36 ID:???
Oracle 10g 64bit が Windows Server 2008 で動作保証されているかどうか知りたいです。

システム要件を探しているのですが、見つけることができません。
申し訳ありません、ご存じの方、教えて頂けないでしょうか?

どうして、トップ頁にデカデカとリンクしないのでしょうか?
ほんとに・・・
870NAME IS NULL:2008/08/22(金) 20:26:58 ID:359qtKYD
>>869

すぐ探せるだろが。
http://www.oracle.com/technology/support/metalink/index.html

保証はされてない。計画中だそうな。

Operating System: Microsoft Windows 2008 (AMD64/EM64T) Version 2008
Oracle Database - Enterprise Edition Version 10gR2 64-bit
N/A Version N/A
Status: Projected

Product Version Note:
None available for this product.

Certification Note:

Projected for CY2008
871NAME IS NULL:2008/08/23(土) 11:41:06 ID:???
USのサイトを統合してから使いにくくなったな
大量の技術資料も以前のURLに残ってるけどサイトからは到達不可能になったし・・・
872NAME IS NULL:2008/08/23(土) 13:35:25 ID:???
VLMを使用してなにか、こまった事とかありました?
素直にwindows 64bit版を使うべきでしょうか
873NAME IS NULL:2008/08/23(土) 14:20:26 ID:???
Oracle Instant Client ですが、OTN-J には 10g しかなく本家にしか 11g がないようです。
自分は OTN-J の会員なんですが、本家にはログオンできずダウンロードできません。

どうしようもないんでしょうか。
(できれば単体版が欲しい)
874NAME IS NULL:2008/08/23(土) 14:52:30 ID:???
>>873
この機会に向こうにアカウント作ればいい
875NAME IS NULL:2008/08/23(土) 16:45:07 ID:???
OTN-J から貰った PIN# で通るんですか?
876NAME IS NULL:2008/08/23(土) 19:51:05 ID:???
>>875

だからー

アカウント作れと >>874 が言ってるだろうが。
お前はアホか。
877NAME IS NULL:2008/08/24(日) 18:04:12 ID:???
やれやれ…
878NAME IS NULL:2008/08/24(日) 23:31:26 ID:???
    ___
  _l≡_、_ |_  (
   (≡,_ノ` )   )
   <__ヽyゝヽy━┛
   /_l:__|
   ´ lL lL
879edge:2008/08/25(月) 12:24:48 ID:???
オラクルのチケットを売りたいんですが、
どこで買い取りをして頂けるでしょうか?
880NAME IS NULL:2008/08/25(月) 12:45:54 ID:???
うってはいけません。
881NAME IS NULL :2008/08/25(月) 21:17:54 ID:???
チケットあるよ〜、チケットあるよ〜。
余ったチケット買うよ〜、買うよ〜。
882NAME IS NULL:2008/08/26(火) 00:03:03 ID:6R2m9/Oc
プラチナって難しいのかな?
883NAME IS NULL:2008/08/26(火) 08:16:20 ID:???
難しいよー
884NAME IS NULL:2008/08/26(火) 08:31:52 ID:???
>>882
難易度云々よりコストが掛かりすぎるのが問題。
885NAME IS NULL:2008/08/26(火) 14:21:17 ID:???
プラチナ悪行三昧
886NAME IS NULL:2008/08/26(火) 15:07:01 ID:???
ODP.NET は IIS x64 に対応してないの?
ODP.NET を使った ASP.NET アプリが IIS x64 上で動かねぇ
887NAME IS NULL:2008/08/26(火) 17:59:01 ID:???
>>886
サポートに訊け
888NAME IS NULL:2008/08/26(火) 21:14:17 ID:???
>>884
宣伝効果もろもろを含めたら安いもんだと思いますよ
そんなことより勉強にかけた時間はプライスレス
889NAME IS NULL:2008/08/26(火) 21:40:53 ID:???
プラチナは諸刃の剣
使えないプラチナの代打依頼は良くある話

手下がいて口だけ出して手は出さないような場合や
組織的なバックアップ体制があるなら相乗効果があるけど
フリーや派遣、中小が持つと痛め目見る確率の方が高いね
890NAME IS NULL:2008/08/27(水) 08:25:53 ID:???
バグ対策パッチを貰うのにサポート契約必要って、どんだけぇ〜て気分だよ最近は
既に衰退開始してるよな

新規案件は全て SQL Server で提案してる。
客がどうしても Oracle を希望すれば従いはするけどね
891NAME IS NULL:2008/08/27(水) 10:28:00 ID:???
>>890
パッチの無償提供があっても保守契約してないところに誰も適用しにいかないだろ
下手にエンドユーザーにやらせても動かなくなるとかあるから面倒が増えるだけ
それにサポート契約はSIerにとって良いスケープゴートになるって事でもある

ま、あんたの場合新しい機能に手を出したら時限付き地雷を踏んでいて大目玉くらった口だろう
892NAME IS NULL:2008/08/27(水) 11:00:41 ID:???
>>891
ORA-600でたらしく、
「サポート入ってないんだけど何とかならないの?」
と泣きつかれたことはあるなぁ。
「無理!」って回答したけどwww
893NAME IS NULL:2008/08/27(水) 21:23:46 ID:???
854です。遅くなりました。回答dです。
>>855
それが担当の人が失踪してるんでわからないんです。自分もオラクルなんて触ったこと事ないし。
平日はバックアップ取ってるとは聞いてるんですがどういった方式かはわからないです。
原因があるとしたらバックアップなんでしょうかね?
894NAME IS NULL:2008/08/27(水) 22:54:14 ID:ZF/Q06Py
object type が TABLE PARTITION か INDEX PARTITION となっているオブジェクトを消したいのですが、
どうすればいいでしょうか?

開発で、自分のスキーマが与えられていて、これをクリアしたいです。
普段は DBA の人にやってもらうのですが、夏休みでお休みです。
system のユーザ名、パスワードがわかっていれば drop user hoge cascade; とやればよいですが、
自分の権限しかありません。

(
SELECT OBJECT_NAME, OBJECT_TYPE, 'drop '||OBJECT_TYPE||' '||OBJECT_NAME||' ' ||'cascade constraints;'
FROM USER_OBJECTS
WHERE OBJECT_TYPE not in('PROCEDURE','PACKAGE','SEQUENCE','INDEX','PACKAGE BODY')
)
union all
(
SELECT OBJECT_NAME, OBJECT_TYPE, 'drop '||OBJECT_TYPE||' '||OBJECT_NAME||';'
FROM USER_OBJECTS
WHERE OBJECT_TYPE in('PROCEDURE','PACKAGE','SEQUENCE','INDEX') and OBJECT_TYPE!='PACKAGE BODY'
)

自分の権限でこのような SQL を実行すると drop *** が出力されるので、
これを sql*plus にコピペして消したのですが、以下のようなオブジェクトだけ、

drop INDEX PARTITION BIN$VWkukiiqlgzgQLAKFEsF8w==$0 cascade constraints;
drop TABLE PARTITION BIN$VWkukiirlgzgQLAKFEsF8w==$0 cascade constraints;

実行すると、ORA-00933: SQLコマンドが正しく終了されていません。と表示されて削除できません。
INDEX PARTITION と TABLE PARTITION を消せれば、
select * from user_objects; したときにすべてからの状態にできるのですが、どうしたらいいでしょうか?
895NAME IS NULL:2008/08/27(水) 22:55:11 ID:???
書きそびれました。
Oracle 10g R2 です。
よろしくお願いします。
896NAME IS NULL:2008/08/27(水) 22:59:22 ID:???
DBA夏休みが終わるのを待った方がいい
ここでのやりとりに時間が掛かっているうちにDBAの夏休み明けってオチだろうし
で、休み明けDBAに「勝手にそんなことすな!」って怒られたりして… orz
897NAME IS NULL:2008/08/27(水) 23:03:59 ID:???
>>894
そのオブジェクトはdrop済みのオブジェクトだから
purge user_recyclebinすれば終わり
898894:2008/08/27(水) 23:15:11 ID:???
レスどうもありがとうございます。

purge user_recyclebin;
を実行したあと、select * from user_objects; をやったら空になりました!
どうもありがとうございました。

INDEX PARTITION、TABLE PARTITION は初めて見たのですが、これは
PostgreSQL や MySQL にある、ひとつの大きなテーブルを分割させる機能だったんですね。

削除の正しい方法については↓を見つけました。
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19224-02/partiti.htm#466621

>>896
確かにおっしゃるとおりなのですが、何かあったら怖いので、ユーザ権限で行いました。
というか開発が緊迫しているのに DBA は休んでしまうので、休みの前日に一応確認は取りました。
(自分も火が吹いているプロジェクトにヘルプで放り込まれてまだ1週間なのですが、大急ぎで直さないといけないので・・・)
899NAME IS NULL:2008/08/28(木) 00:25:07 ID:???
緊縛という割には余裕がありそうだな。
900NAME IS NULL:2008/08/28(木) 21:17:27 ID:???
縛られてはいないだろう
緊縛されていたら開発できないじゃん
901NAME IS NULL:2008/08/29(金) 10:38:54 ID:???
緊縛ハァハァ
902NAME IS NULL:2008/08/29(金) 11:43:35 ID:???
同じマシンに現存するインスタンスと
全く同じ構成の別インスタンスを作成するのに
exp、impではなく、テーブルスペースの
コピー(バックアップから戻すイメージ)
操作で行う方法をご教示下さい。

SQLServerだと、バックアップから別の
データベースに復元するという
ことで可能ですが、同じことがしたいです。

ちなみにデータベースコンフィグレーションで
複製元と同一構成でインスタンスを作成し、
コピー元のテーブルスペースファイル・ログファイル等を
複製先のファイル群に上書きしたところ、
起動自体は出来ましたが、ログインが不可能でした。
エラー12528が出て、「該当するインスタンスは全て
接続をブロックしています。」
というエラーがでます。

環境はWin+10gです
903NAME IS NULL:2008/08/29(金) 12:55:36 ID:???
>>902
「トランスポータブル表領域」でググれ
904NAME IS NULL:2008/08/29(金) 13:24:32 ID:???
>>903
どうもありがとうございます。
調べてみます。
905NAME IS NULL:2008/08/29(金) 19:18:38 ID:???
コールドバックアップを採って、復元先にコピーして、
SIDサービスを作って起動させるだけ。
906NAME IS NULL :2008/08/29(金) 23:35:08 ID:???
>>902

RMANを使ったduplication。

1. RMANを使って現存DBのバックアップを作成。
2. oradim使ってコピー先のインスタンス(サービス)を作成
3. 現存DBのinit.oraなどを元に、コピー先のinit.oraを作成(当然SIDは違う)
4. orapwd使ってコピー先インスタンス用にパスワードファイルを作成
c:\> orapwd file=%ORACLE_HOME%\dbs\orapw<コピー先SID名> password=xxxx entries=10
5. コピー先インスタンスをnomountモードにて起動
6. rmanを起動して現存DBとコピー先インスタンス(Auxiliary)の両方に接続
(ちゃんとtnsnames.oraに両方の接続先書いておけよ)
c:\> rman
rman> connect target sys/xxxxx@hoge
rman> connect catalog xxx/xxx@boge (もしcatalog DBを使っていれば)
rman> connect auxiliary /
7. リストア先のパスをset new nameにて指定しなおして、duplicationコマンドを
 発行。

rman> run {
allocate channel ch1 type disk;
allocate auxiliary channel ch2 type disk;
set newname for datafile 1 to 'd:\hoge\boge\system01.dbf';
set newname for datafile 2 to 'd:\hoge\boge\sysaux01.dbf';
set newname for datafile 3 to 'd:\hoge\boge\undo01.dbf';
set newname for datafile 4 to 'd:\hoge\boge\users01.dbf';
duplicate target database to コピー先SID名
group 1 ('d:\hoge\boge\redolog01.dbf') size 300m reuse,
group 2 ('d:\hoge\boge\redolog01.dbf') size 300m reuse,
group 3 ('d:\hoge\boge\redolog01.dbf') size 300m reuse,
}

datafile番号は現存DBのselect file#,name from v$datafile;に対応しているから
適当に変える様に。
907NAME IS NULL :2008/08/29(金) 23:38:50 ID:???
>>906
redologの再作成の所で間違えていた(・A・)

正しくは
group 1 ('d:\hoge\boge\redolog01.dbf') size 300m reuse,
group 2 ('d:\hoge\boge\redolog02.dbf') size 300m reuse,
group 3 ('d:\hoge\boge\redolog031.dbf') size 300m reuse,

それとrman使うとtempはコピーされないから、コピー先のDBが
上がったらcreate temporary tablespace文打って、一時表領域を
追加しておくように。
908NAME IS NULL :2008/08/29(金) 23:45:47 ID:???
>>905

それだとコントロールファイルに登録されているDBとサービス名が
違うからDBは上がらない。
controlファイルの再作成してDB名を変更する必要がある。

CREATE CONTROLFILE set DATABASE "コピー先DB名" RESETLOGS....
909NAME IS NULL:2008/08/30(土) 00:25:42 ID:???
違うマシンだから、DBNAME変える必要ないじゃんw
910NAME IS NULL :2008/08/30(土) 00:35:14 ID:???
>>909

日本語、読めますか?

>>902
>同じマシンに現存するインスタンスと
>全く同じ構成の別インスタンスを作成するのに
911NAME IS NULL :2008/08/30(土) 02:32:47 ID:???
>>906 >>907

なんかまた間違えて、最後にセミコロン入れるの忘れているし・・・orz

group 1 ('d:\hoge\boge\redolog01.dbf') size 300m reuse,
group 2 ('d:\hoge\boge\redolog02.dbf') size 300m reuse,
group 3 ('d:\hoge\boge\redolog03.dbf') size 300m reuse;

逝ってくるわ・・・。
912NAME IS NULL :2008/08/30(土) 05:51:34 ID:???
rman duplicationは慣れると結構使える。
Raw Device上のRAC => ファイルシステム上のSingle Instance
Raw DeviceやASM上のRAC => クラスターファイルシステム上のRAC
と言った様に自在にクローニングが出来る。

後はset until time句とかと組み合わせれば、過去の特定の時点
までDBのリカバリとか出来るから、ちょっとしたフラッシュバック
DB代わりになったりする。
913NAME IS NULL:2008/08/31(日) 03:10:25 ID:m1/SMdi2
914NAME IS NULL:2008/08/31(日) 03:28:03 ID:m1/SMdi2
915NAME IS NULL:2008/09/01(月) 23:25:44 ID:???
instant client 入れて cse で接続しようと思っているのですが、
ociw32.dll がらみのエラーがでて接続できません。
instant client のディレクトリにパスは通しているだけじゃ、
無理なんでしょうか。
916NAME IS NULL:2008/09/03(水) 20:57:21 ID:boZafWCi
みんな助けて。

oemにつなげたいんだけど、何でだろう。つながらない

oracle 11g enterprise edition
osはxp pro sp3

url http://127.0.0.1:1158/em

なんか、「「」」見たいな変な文字が表示される。
virtual pc で環境構築、接続してるんだけど、昨日は確か繋げることできた。

何でだろう。サービスは起動してるよ。
917NAME IS NULL:2008/09/03(水) 21:00:09 ID:boZafWCi
みんな助けて。

oemにつなげたいんだけど、何でだろう。つながらない

oracle 11g enterprise edition
osはxp pro sp3

url http://127.0.0.1:1158/em

なんか、「「」」見たいな変な文字が表示される。
virtual pc で環境構築、接続してるんだけど、昨日は確か繋げることできた。

何でだろう。サービスは起動してるよ。
918NAME IS NULL:2008/09/03(水) 21:00:18 ID:boZafWCi
みんな助けて。

oemにつなげたいんだけど、何でだろう。つながらない

oracle 11g enterprise edition
osはxp pro sp3

url http://127.0.0.1:1158/em

なんか、「「」」見たいな変な文字が表示される。
virtual pc で環境構築、接続してるんだけど、昨日は確か繋げることできた。

何でだろう。サービスは起動してるよ。
919NAME IS NULL:2008/09/03(水) 21:18:22 ID:EOhEi18I
11gからのセキュリティ機能を使用しているのなら、https でつながると思うが。
920NAME IS NULL:2008/09/03(水) 21:27:21 ID:boZafWCi
>>919
お前wwwwwwwwww
好きだwwwwwwwww
そこか!!!!

ちょっと自己紹介してくれよ><
921NAME IS NULL:2008/09/03(水) 21:28:18 ID:boZafWCi
つながったよありがとうw
本当にありがとう><
922NAME IS NULL:2008/09/04(木) 14:04:03 ID:???
データベースのコピーで質問した者です。
返事が遅れてすみませんでした。
>>903-904
ご回答ありがとうございました。

調べておお!と思い、
実際にトランスポータブル表領域で
別のインスタンスにコピーして追加しました。
テーブルはコピーOKでしたが、
それ以外のオブジェクト(ストアド・ファンクション等)
がコピーされていませんでした。

表領域をOSからコピーして、
コピー先のインスタンスでユーザ作成して
exp、impでメタデータをコピーしました。

よく見ると、expで出力したメタデータが
テーブルしかはき出されていませんでした。
exp、impは
exp 'sys/パスワード@コピー元sid as SYSDBA'
transport_tablespace=y
file=データファイル.dmp
tablespaces=(コピーの表領域1,コピーの表領域2)

imp 'sys/パスワード@コピー先sid as SYSDBA'
transport_tablespace=y
file=データファイル.dmp
datafiles=(表領域ファイル1,表領域ファイル2)

です。
ストアド・ファンクションはexpのユーザ指定でないと
出力されないのでしょうか?

rmanの方法も今悪戦苦闘中です。
923NAME IS NULL:2008/09/04(木) 14:21:42 ID:???
>>922
トランスポータブル表領域の制限事項として、

「SYSTEM表領域またはユーザーSYSが所有するオブジェクトはトランスポートできません。
これに該当するオブジェクトは、PL/SQL、Javaクラス、コールアウト、ビュー、シノニム、
ユーザー、権限、ディメンション、ディレクトリ、順序などです。」
とあるが、心当たりはないか?
924NAME IS NULL:2008/09/04(木) 14:46:42 ID:???
>>923
即レスありがとうございます。
>これに該当するオブジェクトは、PL/SQL
これですね

調べてみると
ストアドやファンクションって
system表領域に作成されるんですね。
ということは、もう一度expでrows=nにして
ユーザ単位でimpしなければ
いけませんね。
925NAME IS NULL:2008/09/04(木) 19:39:22 ID:???
>>924
だって、やりたかったのは表領域単位の移行であって、
SYSTEM表領域に格納されたスキーマオブジェクトを含めての移行じゃなかっただろ?
926NAME IS NULL:2008/09/04(木) 22:21:49 ID:???
いや、ただの複製だろ。
であれば、
>>905+908でいいわけだ。
927NAME IS NULL :2008/09/04(木) 22:48:09 ID:???
>>922

DBを止めていいんだったら、905+908が楽。
全てをオンラインで出来るのがRMANの強み。

気をつける点としては、RMANのバックアップ先を
ディスク上にしておいて、クローニング先からもそれを
見れる様にしておかないとならない事かな。
後はset until time句を使う場合には、そのuntil句で
指定した時間よりも後になるソースDBのアーカイブ
ログもRMANによってバックアップされていなければ
ならない。

例えばset until time "to_date('Sep 04 2008 20:10:00','Mon DD YYYY HH24:MI:SS')";
と指定していた場合には、RMANのバックアップピースに
Sep 04 2008 20:10:00以降のソースDBのアーカイブログが
無ければならない。
928NAME IS NULL:2008/09/05(金) 08:17:37 ID:???
複製でよけりゃ、exp/impで良いような…
929NAME IS NULL:2008/09/05(金) 10:41:05 ID:???
>>928

exp/impはsysのオブジェクトが転送されねぇべ。
930NAME IS NULL:2008/09/05(金) 20:25:00 ID:???
>>929
やったこと無いけど exp_full_databaseとimp_full_databaseロールを持ってれば
いけるんじゃないか?
931NAME IS NULL :2008/09/05(金) 22:34:22 ID:???
>>930

だから、exp/imp及びdatapumpではsys関連のオブジェクト・権限は
移行されない仕様になってんだってば。
マニュアル嫁。
932930:2008/09/06(土) 04:07:28 ID:???
>>931
そんな事マニュアルのどこら辺に書いてある?
expdpじゃなくてオリジナルのexp/impでヨロ

USER単位でしか使わないから、俺の知ってるだけの範囲なら
> 全体エクスポートでは、スキーマSYS が所有する**トリガー**はエクスポートされません

> **システム・オブジェクト**を全データベース・エクスポート・ファイルからインポートする場
合は、IMP_FULL_DATABASE ロールを使用可能にする必要があります。エクスポート・
ファイルが全体エクスポートの場合にパラメータFULL を指定すると、次のシステム・オブ
ジェクトがインポート対象に含まれます。
・・・・・
> 他のユーザーに付与されている権限をインポートするには、インポートを開始したユーザー
がそのオブジェクトの所有者であるか、With Grant Option 付きのオブジェクト権限を所
有している必要があります。

あたりなんだが、本当にシステムオブジェクトをインポートできないのか?
933NAME IS NULL:2008/09/06(土) 16:07:28 ID:SPQMBvJG
シノニムってどういうときに使うの?
使いどころがわかりません
934NAME IS NULL:2008/09/06(土) 20:28:05 ID:???
>>933
別スキーマの表をスキーマ修飾せずに使用するときとか、
DBLINK先の表をDBLINKの修飾せずに使用するときとか。
935NAME IS NULL:2008/09/06(土) 20:45:55 ID:???
>>933
ちゃんとググル先生に聞いたか?
> シノニムとは、ある スキーマオブジェクト、非スキーマオブジェクト へのエイリアス(別名)である。
> 主にセキュリティや別スキーマ(リモート含む)オブジェクトに対して透過的にアクセスするために使用される。
> プライベート・シノニム
> プライベート・シノニムとは、ある特定ユーザーだけに所有された別名である。
> シノニムを使用する基本的かつ有効で代表的な利用方法のひとつに、表のオーナ(管理者)とユーザー(閲覧者)を切り分ける、
> または、複数ユーザーでスキーマを共有するという使用方法がある。
936NAME IS NULL:2008/09/07(日) 00:08:24 ID:???
Windows NT4.0にOracle 9i ClientをインストールしてOracle 8のサーバーに
接続しようと試みましたが、インストール終了後にSQL*PLUSとSQL WorkSheetと
Enterprise Managerを立ち上げようとすると強制終了してしまいます。

ランタイムでインストール→カスタムでOracle Windows Interfacesを追加でインストール
しNet Configration Assistantで接続テストを行った時は正常に接続できてますが、
上記の3つが落ちてしまう原因は何なのでしょうか?
937NAME IS NULL:2008/09/07(日) 06:08:11 ID:???
ゆっくりサービス残業していってね!
938NAME IS NULL:2008/09/07(日) 10:28:06 ID:???
立ち上げようとすると強制終了
接続テストを行った時は正常に接続
939NAME IS NULL:2008/09/07(日) 16:23:02 ID:???
PDOで使ってる人っているのかね・・・
940NAME IS NULL:2008/09/09(火) 22:13:53 ID:???
オラクル10gでバックアップモード設定をオンラインバックアップにしてバックアップを取っている途中で
データベースのアクセスって出来るんでしょうか?エラーが出たりするんでしょうか?
データベースに繋げている開発環境のシステム自体は24H動いたままにしているので
バックアップモードの設定はどうしようかと悩んでいます。
通常バックアップ時はシステムのサービスも止めてオフラインバックアップに設定して運営しておくべきなんでしょうか?
941NAME IS NULL :2008/09/09(火) 22:55:07 ID:???
>>940

オンラインバックアップが意味している様に、当然DBにはアクセス
出来るぞ。
データベースファイルをオンラインバックアップモードにした時点で
それ以降のブロックの変更に「バックアップ中」というフラグが立つ
から、通常よりもRedoの量が増える。
まあ、あとバックアップが走っていれば、I/Oは影響受けるが、それ
以外は普通と同じ様に使える。
942NAME IS NULL:2008/09/11(木) 00:50:18 ID:???
>>941
即レス感謝。参考になりました
943NAME IS NULL:2008/09/11(木) 05:29:59 ID:h9BT3j3I
11g評価版のオラクルクライアントforWINDOWSのsqlplusってGUIがDOSなんだけど、
製品版は今までの白いCLIなの?
まぁ、どっちも使いづらいけどさ。

それと11g評価版で作成したテーブルに「add column not null default 0」でカラム追加して
そのテーブルをエクスポートしたんだけど、インポート時に「not null制約違反でデータ移行失敗」
これって既知バグ?
製品版ではないよね?こんなん恐ろしくて顧客に提案できねぇよ・・・
944NAME IS NULL:2008/09/11(木) 22:16:00 ID:???
白いCLIって何だ?
まぁ使いづらいならSQL Developerを…
って結局 SQL*Plus に帰ってくるかもw
945NAME IS NULL:2008/09/11(木) 22:33:22 ID:???
>>943
エクスポートってexp(オリジナルのエクスポート)の事か?
946NAME IS NULL:2008/09/11(木) 22:38:54 ID:???
>>943

もしかして、「白いCLI」っていうのは、昔Windows版にのみ付属していた
GUI版のSQL*Plusのことだろうか?

それなら10gから廃止されたと思うんだけど。
947NAME IS NULL:2008/09/11(木) 23:01:23 ID:???
「GUIがDOS」ってのも謎だw
948NAME IS NULL:2008/09/11(木) 23:46:37 ID:???
コマンドプロンプト
それは完全無欠のGUI
949NAME IS NULL:2008/09/12(金) 01:11:31 ID:???
>>943
それって11g以前ではおきないのか?
あとづけの列に0が入ってるんか?
950NAME IS NULL:2008/09/12(金) 01:27:44 ID:???
>>949
11gって、そこに新しい機能が追加されたんで
昔のオリジナルのexp/impだと怪しそうな雰囲気
951NAME IS NULL:2008/09/13(土) 09:48:19 ID:???
GUIの"G"
952NAME IS NULL:2008/09/14(日) 14:50:46 ID:???
ログのバックアップフォルダの容量制限を200GBにしていたんだけど
作業中にログバックアップのサービスを落としたままにして
容量一杯になってしまいDBに接続できないという
情けない事態になってしまいました。
これってOracle落としてフォルダの中を掃除するだけじゃだめなんでしょうか?
953NAME IS NULL:2008/09/14(日) 17:32:31 ID:???
アーカイブREDOログ用の領域のこと?
それともUSER_DUMP_DESTとかの、プロセスが吐くトレースファイルの領域?
どちらにせよ、ディレクトリに空きができればOracleはまた動き出すとおもうけど。
954NAME IS NULL:2008/09/14(日) 18:07:04 ID:???
>>952
エラー詳細が分からんけど、
取り合えず、>>953がいうように、
アーカイブログ用のディスクに空き作ればいいんじゃね?
直近のログをいくつか残した上で、
古いログから削除すればいいと思われ。

で、正常起動したら、いったんコールドバックアップ取得しておけば、
今までのアーカイブログは不要になるから。
955NAME IS NULL:2008/09/14(日) 23:33:51 ID:???
>>953-954
コメントありがとうございます。
トレースファイルの領域だったと思います。
メーカーの人間がリスナーを止めてもoracleがファイルがどこに
何のファイルが有るか管理してるからリスナーを止めてファイル
を消しても駄目なんですよ、確かーとか言っていたので...
(DB周りの設計はoracle技術者がしていてその人は詳しくないようでしたが)
当方Oracle7位の頃の知識しかないのでそんなものかとその場
は思ったんですが、ここで聞いてみれば真偽がはっきりするかと
思ったもので。

956NAME IS NULL:2008/09/14(日) 23:57:18 ID:???
957oracleどころかunix素人:2008/09/21(日) 23:37:25 ID:???
solaris10にoracle10gを入れてみました。

emctl.plの中で
ps -p $PID -o cmd --cols 1000 |grep DEMDROOT
というコマンドを使用していてemctl start dbconsoleをすると
psの使い方がおかしいと怒られます。
これを
ps -p $PID -o args | grep DEMDROOT
で書き換えたのですがこれで同じ動きをしてくれますか?
そもそも最初のpsコマンドが通るpsはどこのpsなんでしょう。

もしスレ違いでしたら誘導おながいします。
958NAME IS NULL:2008/09/22(月) 00:16:30 ID:???
常識的に、Solarisスレだろw

そのpsは、環境変数いじってなければ、/usr/bin/psだろう。
10にはgnuツールがはじめから入っているから、そっちを使う方が確実だろうな。
/usr/sfw/bin/ps -p $PID -o cmd --cols 1000 |grep DEMDROOT

以上、適当。
959943:2008/09/22(月) 23:37:36 ID:???
久々に来たら結構レスついたのね・・・、放置しててごめんなさい。
なので長文レスになります。

>>946
え〜?あの使いづらくも愛らしいsql/plusはなくなったの???
あれはGUIっていうのか?コマンドラインを入力するための画面だから
GUIというべきかCLIというべきか迷ったらDOSのことGUIとか書いちゃって不統一になっちゃったのw

まぁなくなっても困らないけどねw
一番使いやすかったのは8についていたsql/worksheetだったなぁ・・・
9iになったらとたんに劣化しちゃったねw


>>945
エキスポートは昔ながらのオリジナルのexpのこと(8まではexp80とかだったけど)
テーブル作成後にファイルレイアウト変更でカラム追加するときに、
ついでに、そのカラムにデフォルト値を設定してやることができるんだけど、
それが「add column not null default expr」オプション(確かこんなんだった)
これって10gにはついていた機能だけど、
つまり、追加したカラムに値は入っているはずなのに、expすると中身が空で出力される模様(11g評価版でのこと)。

>>949
10以前では不明っす。

つまりはexpdpしなさいってことかしらね?
新しいコマンドのスイッチ覚えるのめんどくさいなぁ・・・
960NAME IS NULL:2008/09/23(火) 00:43:48 ID:WKl6pFyh
表領域の拡張(自動)上限サイズを無制限って具体的に言うとどれくらいのサイズまでOKなんでしょうか。

ハードディスク一杯まで表領域を拡張することが可能ってことなんでしょうか?
ログなども出力してるから、仮にそうだとしても空き容量全部が使えるとは思ってないのですが。
961NAME IS NULL:2008/09/23(火) 02:21:52 ID:???
データファイルの最大サイズはブロックサイズ*4Mブロックなので、8KBブロックなら32GB。
1つの表領域は1022個のデータファイルを持てるので、8KBブロックなら32GB*1K=32TBだね。
962NAME IS NULL:2008/09/23(火) 06:34:29 ID:???
10g 以降ならBIGFILE表領域で実質無制限も可能。

CREATE {SMALLFILE|BIGFILE} TABLESPACE ...
(デフォルトはデータベース作成時に設定される)

BIGFILE表領域の欠点は「データファイルを一つ」しか持てない事。
Diskが一杯になったら終わり。
963:2008/09/23(火) 10:49:40 ID:3Nf8blkz
他人のスレを編集するやり方分かる方いますか


スレ違いであればすみません
964NAME IS NULL:2008/09/23(火) 14:56:05 ID:???
>>963
日本語でOK
965NAME IS NULL:2008/09/23(火) 22:19:51 ID:???
>>961-962
ありがとう!拡張しようと思えば凄い量になるんですね。
参考になりました
966NAME IS NULL:2008/09/27(土) 22:09:25 ID:iV73fY6A
Oracle10.2で、マテビューについて質問です。
2分くらいかかるマテビューの完全リフレッシュを、RMDB_MVIEW.REFRESH()でやってるのですが、
関数を抜けてくる時間とEnterprise Managerの最終リフレッシュ時間がずれます。
EMの最終リフレッシュ時間が、REFRESH関数を抜けた30秒後くらいになります。
REFRESH関数を抜けた=リフレッシュ完了とならないのでしょうか?
967NAME IS NULL:2008/09/27(土) 23:28:11 ID:???
むりなんじゃね?
というか、普通、いつ時点のデータか(つまり始まった時間)を表示してくれる方が、都合いいと思うけど?
968NAME IS NULL:2008/09/30(火) 01:51:44 ID:7RG/MF7o
表領域にある各テーブルの使用サイズをみるSQLってありますか?探し方が悪いのか見つからなかった

そんなに大きいデータは入れてないと思ったんだけど
毎日2・3MB増えてるとのことで、どこのテーブルにそんなにデータが入れられてるのかなーと
969NAME IS NULL:2008/09/30(火) 03:37:13 ID:???
>>968
「使用サイズ」ってのが微妙な表現だが、とりあえず USER_EXTENTS かな。
970NAME IS NULL :2008/09/30(火) 21:55:13 ID:???
>>968

こんなんでイケるんじゃね?

select
segment_name,sum(bytes),segment_type,tablespace_name
from dba_segments
group by segment_name, segment_type,tablespace_name
having segment_type='TABLE' and tablespace_name='&Tablespace_Name'
971NAME IS NULL:2008/10/01(水) 01:05:24 ID:???
>>970
その having の中身は where に書くべき。
972NAME IS NULL:2008/10/02(木) 08:19:48 ID:???
LinuxOSに11gとAPEX3.1をインストールしたんですけど、
APEXにWebブラウザからログインする段階で詰まってます。

次は何の設定が必要でしょうか?
973NAME IS NULL :2008/10/02(木) 21:14:35 ID:???
>>972

えらいまた抽象的な質問だな。
DADの設定やhttpd.confの設定とかちゃんとやったのか?
974NAME IS NULL:2008/10/02(木) 21:57:32 ID:???
oracle 9.2 で質問です。
Oracle Management Server ローカルデータベース
OEMREP を削除したいのですができません。
Enterprise Manager Configuration Assistantから
リポジトリの削除をしても OEMREP は残っています。

Database Configuration Assistant には出てこないんですが
正常なんでしょうか?削除する方法はありますか?

 
975NAME IS NULL :2008/10/02(木) 23:26:18 ID:???
>>974

プラットフォームは?
そもそもDBなんてマニュアルで削除すればいいじゃん。
976974:2008/10/03(金) 00:32:24 ID:???
>>975
Windows2000 で Oracle10g も入っています。
マニュアルで削除というのはSql*Plus からの削除のことでしょうか?
sysdba で 接続して drop database OEMREP とやってみたら
失敗したんですがもうちょっと調べてみます。
977NAME IS NULL:2008/10/03(金) 00:48:29 ID:???
いやいやw
OSの方でファイルを削除するってことだw
ただ、windows版はレジストリ使ってるから、その後にサービスを削除したりする必要があるが。
978NAME IS NULL :2008/10/03(金) 03:37:18 ID:???
>>976

つーか、drop databaseコマンドは10gからだ。
マニュアルでファイル削除して、oradim使ってサービス消して、後はレジストリから
余計な情報消せばいいべ。
979974:2008/10/03(金) 06:45:29 ID:???
OSから!わかりました。
もう oracle9i をアンインストールするしかないかと
悩んでましたがその手があったんですね。
ありがとうございました。

980NAME IS NULL:2008/10/06(月) 01:22:49 ID:odTAjKt2
すみません。Oracle10のExpressEditionなるものをインストールしました。
私の持ってる書籍はempテーブルで色々SQLを試していくものなんですが、ExpressEdition
にはempテーブルがないみたいです(´;ω;`)どこかにempテーブル落ちてないですか?できればインポートしたいんですが。
981NAME IS NULL