Oracle 総合 Session2

このエントリーをはてなブックマークに追加
1NAME IS NULL
びんちょうタンには両親がいません。山で一人暮らしをしています。
けれどウバメガさんという紳士がびんちょうタンを援助してくれています。
びんちょうタンはウバメガ氏が定期的に送ってくれる備長炭と
雨にも負けず風にも負けず培ってきた忍耐力をもって
街でお仕事を得て生計を立てています。

■公式
ttp://www.oracle.co.jp/

■前スレ
Oracle 総合
http://pc5.2ch.net/test/read.cgi/db/1091508494/

関連>>2-5くらい
2NAME IS NULL:05/03/19 07:38:49 ID:???
■トライアル版のダウンロード
ttp://otn.oracle.co.jp/software/index.html

■Oracleに関する質問はここで捜してから汁
ttp://support.oracle.co.jp/ind_faq.html

■Oracle Technology Network - 掲示板
ttp://otn.oracle.co.jp/forum/

■関連スレっぽい
【レア技術者】 ORACLE DEVELOPER R6i 【狂え!】
http://pc5.2ch.net/test/read.cgi/db/1077801021/

【Oracle】 オラクルマスター 【Master】
http://pc5.2ch.net/test/read.cgi/db/1059136831/
3NAME IS NULL:05/03/19 07:39:34 ID:???
質問テンプレっぽいもの

■どの様な問題が起きて、どんな結果を得たいのか?
■フロントエンド、バックエンドどちらの問題か?
■フロントエンドのプラットフォームは何か?
■バックエンドのプラットフォームは何か?
■フロントエンドはどの様なドライバ/ソフトウェアを使用してアクセスしているか?
■Oracleのバージョンは?(バージョンと一言で言っても、フロントエンドなのかバックエンドなのか色々ある)
4NAME IS NULL:05/03/19 11:22:22 ID:???
スレ番号が…
5NAME IS NULL:05/03/19 12:09:56 ID:LLPZ50M8
>>1に前スレURLない上にキチガイ文章入ってるし、
Session3で立て直しても文句言われないと思うが
6NAME IS NULL:05/03/19 15:57:38 ID:c/c0RD8l
質問させてください。

DBのインストール中に「OCRの初期化に失敗しました」とメッセージが出ました。
そのせいかOracleCSServiceが開始中のまま開始してくれません。

HP掲示板で検索してみたのですが、同じ話題はあるものの解決策がありませんでしたので
ここで質問させていただきます。

RAC環境では使えないとかどうのこうのという話もあるようですが、実際どうなのでしょうか。
問題なくインストールできる方法があれば教えてください。

機種 NEC Lavie
OS WinXP Pro
Oracle10g

7NAME IS NULL:05/03/20 16:18:58 ID:Ack6dFl6
教えてください。

Oracle 8.1.7→9.2.0.4でインポートエラーが出ます。
「要求されたキャラクタ・セットの変換(830から832)はサポートされていません。」
というものですが、原因がわかりません。
v$nls_parameters,sys.props$の内容はどちらも同じであることは確認済みです。
他にどのような可能性があるでしょうか?
8NAME IS NULL:05/03/21 00:26:50 ID:???
>>7
exp/imp時のNLS_LANGの値を同じにしてやり直してください。
9NAME IS NULL:2005/03/21(月) 18:19:08 ID:???
一時表に対してmerge文使えますか?
10NAME IS NULL:2005/03/21(月) 19:53:09 ID:4ffqKeKS
>>6

DB作る前にO/Sのグループとして「ORA_DBA」を作って、そこにインストール
ユーザーを加えておけ。
11NAME IS NULL:2005/03/22(火) 21:02:05 ID:???
>>9

一時表って何ですか?
外部表の事?
12NAME IS NULL:2005/03/23(水) 13:48:12 ID:???
>>9
何で「一時表だとマージできないかも」と思ったか知らんが
そりゃ出来ますともさ。

>>11
Oracle 9i って知ってる?
13NAME IS NULL:2005/03/24(木) 01:05:21 ID:???
>>12

一時表は8iからの機能だけどな。
1410:2005/03/25(金) 18:39:22 ID:???
はずかすぃ。
appendヒントつけてました。
>12
ありがと
15NAME IS NULL:2005/03/25(金) 23:57:11 ID:XYLAxrVG
ORA-04031について質問させてください。
マシンの物理メモリのサイズによって、SGAのメモリアロケートなどは変化するのでしょうか?

[現象]
2つのDBサーバ(どちらもOS:Solaris8、DB:9.2.0.1)で物理メモリのみ異なる環境(1GB、4GB)
があり、開発用(1GB)と試験用(4GB)で分けています。
WEBアプリからマテリアライズドビューのリフレッシュ処理を実行しているのですが、
メモリが4GBの環境だけ、ORA-04031が発生してしまいます。

[実行コマンド]
dbms_snapshot.refresh('T_TABLE','f'); //高速(差分)リフレッシュ

[initパラメータ]
java_pool_size= 134217728
large_pool_size=67108864
shared_pool_size=134217728
他はほとんどデフォルト値

[サーバ構成]
共有サーバ構成

[調査]
V$SGASTATをモニタすると、ORA-04031が発生する4GBのlarge poolの空き容量は
実行前:67100045 実行後:329752
となっており、エラーの発生しない1GBでは
実行前:66964336 実行後:22589752
となっていました。
これは、登録件数(1,5,100,8000件での差分リフレッシュを実行)で、ほぼ同じ空き容量でした。
また、リフレッシュ処理を完全リフレッシュ(dbms_snapshot.refresh('T_TABLE','c'))
にすると、4Gの環境でもエラーは発生せず、large poolの空き容量も変化がありませんでした。

このような現象について、
どなたかご存じの方がいらっしゃったら、是非ご回答をお願いします。
宜しくお願いします!<(_ _)>
16NAME IS NULL:2005/03/26(土) 01:17:50 ID:???
>>15

LARGE_POOL_MIN_ALLOCの値はどげんなっとると?
17NAME IS NULL:2005/03/26(土) 01:18:55 ID:???
>>15

SHARED_POOL_RESERVED_MIN_ALLOCの値も教えてけろ?
1815:2005/03/26(土) 08:55:10 ID:TIyQX7Ji
>>16-17
うっ、二つとも知らない値です。
これらの値はどこで見ることが出来ますか?
19NAME IS NULL:2005/03/26(土) 09:14:01 ID:???
>>15
さっさと共有プールを大きくしろや
2015:2005/03/26(土) 10:02:45 ID:???
>>19
うう、原因がわからないと変更できないんですよぅ。。
21NAME IS NULL:2005/03/26(土) 10:45:27 ID:4xoY5sZt
専用サーバモードで動いているか、共有サーバモードで動いているか、は
どうやって見分けるのですか?
また、どうやって切り替えるのですか?
22NAME IS NULL:2005/03/26(土) 11:46:43 ID:???
>>21
v$sessionのSERVER列で確認できます。
設定は、
(1)tnsnames.oraに
(SERVER = DEDICATED) を設定すると専用サーバモード
(SERVER = SHARED) を設定すると共有サーバモード
デフォルトは共有サーバモード(SID等が設定されている場合)
(2)tnsでの接続全てを専用サーバモードにしたい場合は、
sqlnet.oraに
use_dedicated_server=ON
を追加する。((1)の設定より優先される)
23NAME IS NULL:2005/03/26(土) 12:14:08 ID:???
>>22
早速の回答ありがとうございます。

(2)はクライアント側の設定ですよね。サーバ側で指定する方法はないでしょうか?

9.0.1です。
24NAME IS NULL:2005/03/26(土) 14:03:30 ID:???
>>23
共有サーバモードに設定する場合、サーバ側では、初期化パラメータに設定が必要です。
 【dispatchersの設定】
  dispatchers="(PROTOCOL=TCP)"
他にも
  max_dispatchers
  shared_servers
  max_shared_servers
  circuits
  shared_server_sessions
などがあります。
また、DISPATCHERSを使用するとデフォルトリスナーの登録は上書きされてしまうので、デフォルトリスナーにも動的サービス登録を行う場合は、デフォルトリスナーも設定します。
 【local_listenerの設定】
  local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.x.)(PORT=1521))"
2521:2005/03/26(土) 23:44:21 ID:???
>>24
丁寧にありがとうございます。
逆に、専用サーバモードにするにはどうしたら良いのでしょうか?
26NAME IS NULL:2005/03/27(日) 07:17:24 ID:???
>>25

>>21を良く読め。
それとサーバー側はデフォルトが専用鯖モードだ。
27NAME IS NULL:2005/03/27(日) 07:30:11 ID:???
>>18

はわわ、良く見たら二つとも隠しパラメーターだったあーるよ。
いじくっていないんだったらデフォルトだね。
28NAME IS NULL:2005/03/27(日) 12:40:13 ID:???
>>26
21は二つともクライアント側の設定ですよね。
サーバ側で共有サーバモードを専用サーバモードにする方法を知りたいです。
2915:2005/03/27(日) 13:34:38 ID:???
>>27
か、隠しパラメータ!
今回とは関係ない気もしますが、
是非、値を見る方法を教えてください!!!お願いします!
30NAME IS NULL:2005/03/27(日) 15:00:13 ID:???
>>15=21
お前、ウザイ。
31NAME IS NULL:2005/03/27(日) 22:32:44 ID:???
>>28
DISPATCHERS を設定しない
3221(≠15):2005/03/28(月) 00:11:38 ID:???
>>31
ありがとうございます。やってみます。
33NAME IS NULL:皇紀2665/04/01(金) 18:02:34 ID:???
オラクル初心者です。
お手数ですがどなたか教えてください。

下記のSQLがうまくいきません。

UPDATE ORDER_TBL SET SETTLE_DATE = DATE ('2005-03-31 16:33:37','YYYY-MM-DD HH24:MI:SS') WHERE ORDER_NO = 59;

ORA-00936: missing expression
※SETTLE_DATEはDATE型です。


どうすればいいでしょうか?
34NAME IS NULL:皇紀2665/04/01(金) 18:17:19 ID:???
TO_DATE('2005-
35NAME IS NULL:皇紀2665/04/01(金) 18:20:22 ID:???
>>34

どうもです。
36NAME IS NULL:2005/04/04(月) 08:59:43 ID:???
Pro*Cの質問ってここでよいでしょうか?

コネクションを2つ作るサンプルソースってないでしょうか?
37NAME IS NULL:2005/04/04(月) 10:15:06 ID:???
>>36
君はあれか、PDFが嫌いだから Oracle のマニュアルも
読まないとかそういうあれか?

「Pro*C/C++ プリコンパイラ・プログラマーズ・ガイド」で
「複数の明示的接続」を検索汁。
38NAME IS NULL:2005/04/04(月) 10:20:23 ID:???
>>37
すみません。手元にマニュアルがありません。
どこかでダウンロードできますか?
39NAME IS NULL:2005/04/04(月) 12:20:10 ID:???
つ[OTN]
40NAME IS NULL:2005/04/06(水) 02:04:56 ID:Zs66GZt5
Oracle10gなんですが、Solarisに入れようと思ったら、
デフォルトだとルートディレクトリに/u01と/u02を作って入ります。
な〜んか気もち悪いんで
/opt/oracle/に実行ファイル、
/var/oracle/にデータベースファイル
を入れて運用しようと思ったら、「なんでデフォルトに入れないんだ!!」って言われました。
みなさんも、Unix系のOSに入れるときはルートの直下にオラクル用のディレクトリ作ってるんでしょうか?
41NAME IS NULL:2005/04/06(水) 04:47:51 ID:???
>>40

入れてねぇっす。
/u01とか/u02とかってボラクルのトレーニングとかで使われているけど、
勝手にそこにDB作られると気持ち悪いっす。
42NAME IS NULL:2005/04/08(金) 16:12:19 ID:3Tyj3NWl
Oracle初心者です。
OSはWindows2000 Server Familyです。
Oracle8.1.6から8.1.7にバージョンアップしたのですが、
エクスポート時に次のようなエラーが出てきます。

<前省略>
. スナップショット・ログをエクスポート中
. ジョブ・キューをエクスポートしています。
EXP-00008: Oracleエラー 904が発生しました。
ORA-00904: 列名が無効です。
EXP-00000: エラーが発生したためエクスポートを終了します。

その後にネットで調べてみた所、catalog.sqlファイルを実行すればいいと
書かれていたのでcatalog.sqlを実行しましたが、
その後systemユーザでログインしますと

「テーブルが存在しません.
ORA-00942: 表またはビューが存在しません。
エリアス: DB1.」

とエラーが出てしまい、sysユーザ以外でのデータベース接続が出来なくなりました。
catproc.sqlやcatrep.sqlなど実行してみましたが直りません。
どなたかわかる方がいらっしゃいましたらよろしくお願いします。
43NAME IS NULL:2005/04/08(金) 21:37:35 ID:bFpLmTVC
会社から業務命令としてオラクルシルバーの取得を義務付けられました。
私は文系卒の新入社員で、一切何も経験のない全くの素人なんですが、
期限は6月末でシルバー取れるもんですか?
ちなみに、大半は自習だそうです。オラクルのソフト自体やサーバはいじれる環境にあります。
死に物狂いですかね?
4443:2005/04/08(金) 21:39:04 ID:bFpLmTVC
スレ違いでしたか?
こっちで質問した方がいいですか?
http://pc8.2ch.net/test/read.cgi/db/1061746086/l50
45NAME IS NULL:2005/04/08(金) 22:08:40 ID:???
>>44
答えは出てるはずだ。
46NAME IS NULL:2005/04/08(金) 23:16:30 ID:???
>>42

expに関しては$ORACLE_HOME/rdbms/admin/catexp.sqlをsysユーザーで流せ。
でもって、catporc.sqlとcatalog.sqlをもう一度流しなおしてみろ。
47NAME IS NULL:2005/04/09(土) 15:08:37 ID:cNvZSWa2
オラクルで5NamedUserライセンスを購入して、
Webサーバ経由で使用した場合、
6人目の人が接続しにくるとサーバは結果を
はき出さないでエラーになるのん?
48NAME IS NULL:2005/04/09(土) 16:50:48 ID:???
>>47
システム上の制限はかかってないが、ライセンスは必要。
49NAME IS NULL:2005/04/09(土) 18:25:08 ID:???
>>47

ガイシュツだがボラクルのライセンスは基本的に紳士協定だよ。
50NAME IS NULL:2005/04/09(土) 18:38:01 ID:???
>>49
ボラクルは中国ではどうやってるんだろ・・・。
CPU単位のみでの価格帯にしないとやってけないと思うのだが・・・。
51NAME IS NULL:2005/04/10(日) 09:52:43 ID:???
キスからはじまるオラクルだってあるよねー
52NAME IS NULL:2005/04/10(日) 10:13:14 ID:???
Pro*CってTAFに対応してますか?
53NAME IS NULL:2005/04/10(日) 10:36:29 ID:???
>>52
「透過的」の意味が解らないのか…
54NAME IS NULL:2005/04/10(日) 11:11:22 ID:???
>>53
フェイルオーバーイベントとかとれますか?
55NAME IS NULL:2005/04/10(日) 13:50:39 ID:???
v$instance とかを取れば。
56NAME IS NULL:2005/04/12(火) 22:14:13 ID:???
52ではないのだが、

正直TAFについてメリットをあまり感じられない。
実際そんなに必要な場面があるか?
顧客前でのデモの時はいいけどな。

誰かこれぞというメリットを教えてくれ。
57NAME IS NULL:2005/04/12(火) 23:27:55 ID:???
>>56

selectに10時間かかるバッチ処理があったとしよう。
7時間終わった時点でインスタンスが死んだ時に、TAFでそのまま
カーソルを引き継いでselect処理を続けられる。
もしTAFを設定していなかったら、また最初からやり直し。
58NAME IS NULL:2005/04/13(水) 01:21:56 ID:???
>>57
TAFだと処理中のSQLの処理も引き継いでくれるのか。
セッションの引継ぎと未コミットの命令の再発行くらいかと思っていた。
59NAME IS NULL:2005/04/13(水) 06:42:02 ID:???
>>58

selectに関してはカーソルを引き継いでくれる。
未コミットのDML文に関しては、残念ながら再発行はしてくれない。
単にセッションの引継ぎだけだから、アプリ側で明示的に処理の再投入を
ハンドルしてやらないとならない。
60NAME IS NULL:2005/04/13(水) 10:41:17 ID:CHmUkOen
はじめまして。
解らないことがありまして、質問させていただきます。
よろしくお願い致します。

DB - OS:MiracleLinux Std v2.1 + oracle8.1.7
Web - OS:Redhat7.3J + OracleApplication Server9i
という構成でWebサーバのApacheからDBのoracleパッケージを読み込み
表示させています。

ですが、Webに表示させると日本語が"?????"と文字化けしてしまい
うまくいきません。

oracleのNLS_LANGはSJIS、WebのNLS_LANGはEUCとなっています。
いろいろと文字コードの組み合わせを試してみたのですが、
どうしても日本語が表示されないのです。
解決策をご存じの方、どうぞよろしくお願い致します。m()m
61NAME IS NULL:2005/04/14(木) 00:05:58 ID:???
>>57
サンクス

そういうのが必要な要件は今までになかったし思いもしなかったよ。
なるほどね。

オレの携わるシステムは毎度設計のときにすったもんだがあって
結局はVIPによる解決になるんだな。
62NAME IS NULL:2005/04/14(木) 08:10:11 ID:+dl6VGM6
そんなバッチを作る方がうんこちゃん
63NAME IS NULL:2005/04/14(木) 22:58:06 ID:???
プロシージャ名を動的に取得して実行することは可能ですか?
例えば
declare
abc varchar2(40);
begin
sp2.sp1(abc);
end;
/
だと上手くいくのですが
declare
p_name varchar2(40);
abc varchar2(40);
begin
p_name := 'sp2.sp1(abc)';
execute immediate p_name;
end;
/
だと
ORA-00900: SQL文が無効です。
のエラーとなってしまいます。
64NAME IS NULL:2005/04/14(木) 23:31:42 ID:???
>>63
 p_name := 'begin sp2.sp1(abc); end;';
マニュアルくらい読んだら?
65NAME IS NULL:2005/04/15(金) 00:14:10 ID:???
>>64
出来ました!
マジ感謝!ありがとうございます。
66NAME IS NULL:2005/04/21(木) 23:12:31 ID:???
200万レコードのLOGテーブル(NO INDEX)があるのだが
エンドユーザーではなくユーザー(管理者)がたまにオンライン業務で
参照します。その再にかなり時間がかかる(5分位)

漏れ的にはLOGテーブルにINDEXを1カラムだけ付けたい。
USR-_IDに付けるので、ほぼほぼユニークみたいな感じ(USR_IDだけで30件位までしぼれる)
LOGテーブル事態はユーザーがSELECT(管理者)とエンドユーザーがINSERTするのみ。
張ったINDEXカラムに対してまとめてupdateする事もないんだ。

INDEXカラムをまとめて更新とかすればINDEX再構築で
書き子が遅くなると思うけど、ただただINSERTするだけなら
INSERT処理にそんなに時間がかからないと思ってる。

ただ現場の椰子は件数が多いいINDEX張ってるテーブルにINSERTするだけて
処理時間がかなり変わると思ってINDEXを張ろうとしないんだ。
よってユーザー(管理者)が参照する再は泣き寝入り状態です。

INDEXを張ったテーブルにINSERT処理をするとそこまで変わるのでしょうか?
本来なら同じテーブルを別テーブルで作って確認するのが良いと思うのだが
空きスペース的にそれは無理。
ある程度の下調べが無いとディスク容量を増やして貰えないので。。。
どうなんでしょう?

そんなにINSERTって時間かかりますか?
67NAME IS NULL:2005/04/21(木) 23:45:47 ID:???
>>66
テスト環境作って試せば良いだろ。
似たようなことがある度、ここで誰かに試させるのか?
68NAME IS NULL:2005/04/22(金) 00:19:52 ID:???
ここで仮に時間はかからない。という回答があったら、
そのまま検証もせずに適用するのだろうか。
適用したその環境で遅いというクレームが来たら、
どういう理由をつけるのだろう。
○ちゃんで聞いたからという理由なら何もいうことない。
69NAME IS NULL:2005/04/22(金) 01:08:18 ID:???
>>66
かわらんはず
200万行くらいでがたがた言わず、さっさとCREATE INDEXしる!
70NAME IS NULL:2005/04/22(金) 01:57:44 ID:wnNnVqqM
>>66
>本来なら同じテーブルを別テーブルで作って確認するのが良いと思うのだが 
>空きスペース的にそれは無理。
そんなギリギリな空きしかないDBを使ってるのか? ( ゚Д゚)ポカーン
物理設計をやり直せ。
というか、別テーブルでなくても、既存のテーブルで十分試せるだろ?。


>INDEXを張ったテーブルにINSERT処理をするとそこまで変わるのでしょうか? 
数少ない追加なら、気にするほどの時間は掛からない。
71NAME IS NULL:2005/04/22(金) 05:43:21 ID:???
>>66

リーフ分割やITLの競合とかがガシガシとおきない限りInsert処理で
Indexがあってもそんなに変わるもんじゃないよ。
>>69が言っているように、早くIndexを作成すべきだね。
72NAME IS NULL:2005/04/23(土) 13:36:38 ID:???
>>66
index作る領域はちゃんと確保してあるんだろうな。そっちのほうが心配だぞ。
73NAME IS NULL:2005/04/24(日) 09:22:11 ID:???
>>66
それを説得するのがオマエの仕事だろ
(ところでアンタDBA?)

テーブルよりインデックスが複数張ってあってサイズがデカイ場合は
遅くなる。
きちんと設計しているDBの場合、1カラムだけのインデックスを1つぐ
らい追加しただけではでは問題にならんと「思う」
74NAME IS NULL:2005/04/24(日) 13:50:08 ID:RamdldR4
初心者です。オラクル9iについて質問です。
WINDOWS2003serverにオラクル9i(WINDOWS2003server用)を
インストールし、クライアントのXPにもオラクル9i(クライアント用)を
インストールしました。クライアントからserverのオラクルに接続しserver
の方にSQLスクリプトで、あるテーブルを作成しました。そしてEXCELで作られた
テーブルデータ(クライアントにある)をインポート(serverのオラクルテーブルに)
したいのですが、どのようにすれば良いのでしょうか?もちろんオラクルの方のテーブルと
EXCELの方のテーブルデータの順番等は一致しています。詳しい方
よろしくお願いします。
75NAME IS NULL:2005/04/24(日) 14:23:49 ID:???
>>74
訊き方も初心者?4行目辺りで読む気失せそうになった。
(2バイト英字の所為もあるが)
取り敢えず Excel から CSV 吐かせて SQL*Loader。
76NAME IS NULL:2005/04/24(日) 14:34:55 ID:RamdldR4
ありがとうございました。
訊き方は以降気をつけます。
77NAME IS NULL:2005/04/25(月) 10:15:12 ID:P5ZlQ0im
おはようございます。
Oracle9のDBをVB6を使って事務処理系ソフトを作っているものです。
最近になってOracleに接続すると[ora-12571:パケット書き込み機能に障害
が発生しました]のエラーが出て、作業が全くできない状態です。始めは自分
のPCがOracleの8が入っていたので、サーバー側と合わせないとまずいと思い
、9を入れなおしました。その直後の1度目は接続に成功したのですが、今日に
なって再びエラーが発生しています。
いくつかのサイトを[ora-12571]で検索してみたのですが、原因・解決策が
みつかりませんでした。もしご存知の方がいましたらよろしくお願いします。
セキュリティソフトの関係もあるのでしょうか?今現在は「ウィルスセキュリ
ティ」が入っています。以前はノートンだったのですが、同様のエラーが出ま
した
78NAME IS NULL:2005/04/25(月) 10:17:30 ID:???
>>77
SQL*Plus では接続出来るの?
79NAME IS NULL:2005/04/25(月) 11:33:04 ID:P5ZlQ0im
>>78
レスありがとうございます。
SQL*Plusも同様にエラーがでました。ためしに「ウィルスセキュリティ」を削除して
みたところ、接続に成功しました。セキュリティソフトが原因だとは思うのですが、
同僚も同じ環境なのにエラーが出ていません。
80NAME IS NULL:2005/04/25(月) 11:46:39 ID:???
>>79
じゃぁ、セキュリティーソフトが問題だべさ。
サーバまでのpingも通らないんだろ?

セキュリティーソフトを同僚のと同じ設定になってるか確認してみれば?
81NAME IS NULL:2005/04/25(月) 12:04:19 ID:???
つ ーか「ウィルスセキュリティ」って何?
82NAME IS NULL:2005/04/25(月) 12:56:37 ID:P5ZlQ0im
>>80
その同僚がインストール作業をしてくれました。
設定は特にせず初期設定のままです。

>>81
ソースネクストから出ているソフトです。ノートンだと動作がかなり遅く
なるので、最近入れ替えました。
83NAME IS NULL:2005/04/25(月) 14:26:11 ID:???
>>「ウィルスセキュリティ」を削除して
>>みたところ、接続に成功しました。

>>・・・ ソフトです。・・・最近入れ替えました。

ドー考えてもそいつが原因だろ  (´ー`)y─┛~~

>> その同僚がインストール作業をしてくれました。

なんちて人任せにしておいてからに

>>設定は特にせず初期設定のままです。

同僚の設定を真似れば巧くいくだしょ。
いちいち2ちゃんで聞かないの (゚д゚) メッ
84NAME IS NULL:2005/04/25(月) 14:59:58 ID:P5ZlQ0im
>>83
設定はその同僚も初期設定のままだそうです。一応設定の確認をしたん
ですが、自分がみたところはどれも同じでした。
同じセキュリティソフトが入っているのにエラーが出ない場合があるの
が謎です。念のため、同僚だけではなく上司にも見てもらったんですが
原因が不明で、とりあえずセキュリティをアンインストールして作業す
るようにとの指示を貰いました。
85NAME IS NULL:2005/04/25(月) 21:22:28 ID:???
>>84

McAfee VirusScan Professional 7.03が入っていると、勝手にインターネット
コネクションをブロックされるらしいな。
対策はウィルスソフトではなく、Oracleクライアント自身の再インストールだ
そうだ。
という訳で、もう一回クライアントをサイインスコしてみろ。
86NAME IS NULL:2005/04/25(月) 22:17:48 ID:???
>>85
再インストールしても、またブロックされるんじゃないの?
87NAME IS NULL:2005/04/25(月) 22:41:27 ID:???
88NAME IS NULL:2005/04/25(月) 23:20:55 ID:???
>>86

良くは分からんのだが9iクライアントからは対策がされているらしい。
89NAME IS NULL:2005/04/26(火) 09:20:46 ID:qXbtpqfC
>>85
Oracleの再インストールはしてみたのですが、残念ながらだめでした。
このままセキュリティソフトを入れないままで作業していていいもの
か。
90NAME IS NULL:2005/04/26(火) 12:37:20 ID:???
>>89
E.わけねーだろ Σ(´Д` ズガーン
ステキなおちがついたので      糸冬   了 。
91NAME IS NULL:2005/04/26(火) 13:32:35 ID:???
>>89
お金が無いのなら、AVG か AVAST を入れろ。
92NAME IS NULL:2005/04/26(火) 15:55:07 ID:APaHcUAf
サーバ:WinNT4.0 オラクル8.0.5
クライアント:RedHat7.3 java jdbc
の環境で

クライアントにてjdbc経由でオラクルのデータを検索し、
検索結果をテキストファイルに出力するプログラムがあります
そのプログラムで全角ハイフンが?に化けました。

OracleのCode → java Unicode で化けているのか
java Unicode → EUC-JP で化けているのか

どちらでしょうか?
93NAME IS NULL:2005/04/26(火) 16:04:59 ID:???
>>92
これはかなり有名な仕様。
Oracleの持つUnicode変換テーブルとWindowsの持つUnicode変換テーブルで
ハイフンの扱いが異なるために発生します。
Oracleデータベース内で使用する文字コードをSJIS(或いは逆にUnicode)にする
(つまりOracle内部で変換が発生しないようにする)と解決するはず。
94NAME IS NULL:2005/04/26(火) 16:08:56 ID:APaHcUAf
>>93
どちらでもなく
別の問題ということでFA?
95NAME IS NULL:2005/04/26(火) 16:17:25 ID:???
>>94
Oracle側のコードをSJISに代えて試してみれば?
9692:2005/04/26(火) 18:12:39 ID:APaHcUAf
理解してきますた

OracleのCode全角ハイフンとUnicodeのマッピング
EUC-JPの全角ハイフンとUnicodeのマッピングが
ずれているから起きている問題なんですね

で、あってます?
97NAME IS NULL:2005/04/26(火) 18:59:24 ID:???
>>96
ぶっちゃけた話、Java使った場合、プログラムのソースも
HTML出力もデータベースもUnicodeにしない限り、どこかで文字化けの問題が出るぞ。
98NAME IS NULL:2005/04/27(水) 00:14:39 ID:???
最近のOracleだとJA16SJISTILDE、JA16EUCTILDEっていう
コードがあるみたい。
8.0.5じゃつかえんけど。
99NAME IS NULL:2005/04/28(木) 02:56:17 ID:7B2a0dMG
Oracle 9i Clientに最新のODBCドライバを入れようとしたら、
OUIのバージョンが古くてインストールできませんといわれた。
9i用の製品を9iに入れられないってどういうことだよ…。
OUIみつからんし。
100NAME IS NULL:2005/04/28(木) 22:20:37 ID:???
>>99

9.2.0.6とかのもの入れようとしたんだろ?
U.S. OTNからダウソしてくれば?
101NAME IS NULL:2005/04/29(金) 10:43:17 ID:???
>>100
OUIはU.S. OTNにもないみたいなんだが。
探し方が悪いのか?
102NAME IS NULL:2005/04/29(金) 16:50:38 ID:???
>>101

DBのCD Imageをダウソ汁!
そこにOUIが入っている。
103NAME IS NULL:2005/04/29(金) 20:11:49 ID:???
>>102
自分ではそうした。
でも人にそうしろとは言えない。
言ったけど(爆)
104NAME IS NULL:2005/04/29(金) 23:00:20 ID:???
最新か知らないがOUI単体あったぞ
2003Server関係のページだったかな?
去年の8月頃にはあった
105NAME IS NULL:2005/04/30(土) 13:54:26 ID:???
PSRにあるOUIを入れるっていう選択肢はないの?
106NAME IS NULL:2005/04/30(土) 18:02:18 ID:???
>>105
というか、そうしなければならないのでは。
107NAME IS NULL:2005/04/30(土) 23:31:07 ID:???
>>105
現在のバージョンでシステムの検証が終わっていて、仮運用中に問題が
発見され、その対応でODBCだけ上げるという流れなので、PSRを上げて
今までの検証をもう一度という工数はない。_| ̄|○
OracleがPSRごと上げろと言ってきたら別だが言ってきてないし。
108NAME IS NULL:2005/05/01(日) 10:02:31 ID:???
>>107
PSRをあげるというか、PSRに含まれているOUIをあげる。
109NAME IS NULL:2005/05/02(月) 23:46:27 ID:???
今、参考書についていた、9iの30日トライアル版を使用しているのですが、
これは30日過ぎるとどうなるのでしょうか?
まったく使えなくなるのでしょうか?
それとも機能制限がでてきたりするのですか?
110NAME IS NULL:2005/05/02(月) 23:56:04 ID:???
>>109
別にどうにもならない。
紳士協定みたいなもの。
111NAME IS NULL:2005/05/03(火) 00:11:40 ID:???
>>109
>>110の言うとおり。

期日が過ぎても制限事項もなく、通常通りに使用できる。
「もう使わないでアンインストールしてね♥」
てな感じ。
112NAME IS NULL:2005/05/03(火) 17:24:12 ID:pGFeL5xu
性能    DB2 > ORA
費用    DB2 > ORA
知名度   DB2 < ORA
開発者数  DB2 < ORA
113NAME IS NULL:2005/05/03(火) 21:53:20 ID:???
>>112
> 性能    DB2 > ORA

異議あり
114NAME IS NULL:2005/05/03(火) 22:20:04 ID:???
DB2って全然売れてないんでしょ?
IBMはInformixを買収したけどInformixを使っていたユーザにDB2への乗り換えを提案しようにも
みんなOracleに乗り替えたがるもんだから、慌ててInformixの次期バージョンをリリースすることにしたらしい。
スレ違いスマソ
115NAME IS NULL:2005/05/04(水) 01:32:04 ID:???
>>112
>性能    DB2 > ORA

(゚Д゚)ハァ?
116NAME IS NULL:2005/05/04(水) 10:43:51 ID:WN3q55GR
Oracle9i使ってます。
Timestamp(6)というフィールドに
どうやっても入力されないんですが知ってる方いましたら
お願いします。
117NAME IS NULL:2005/05/04(水) 12:21:34 ID:???
>>112
> 費用    DB2 > ORA

(゚Д゚)ゴゥ?
118NAME IS NULL:2005/05/05(木) 04:26:38 ID:???
>>116

一体どういった値を入力しようとしているかぐらい書けや。
119NAME IS NULL:2005/05/05(木) 04:29:17 ID:???
>>114

それが最近はコンペで負ける事が結構あるのよw
なんといってもI社は保守費用とひよっ子のSEとの格安セットで
提案してくるんだわ。
まあ、お客からしたらいつもSEが常駐しているのは心強いとかで
そのままうやむやのままに購入というパターンが良くあるらしい。
あと一つ加えるとしたら「マニュアル ORA>DB2」ね。
大体「View」を「視点」とかって言う「DB2」は如何なものかと(プゲラ
120NAME IS NULL:2005/05/05(木) 09:58:15 ID:???
>>119
>大体「View」を「視点」とかって言う「DB2」

ワラタ
機械翻訳したんじゃないかなw

今のVerは解らんが、DB2のエラーメッセージの内容が解りにくくて開発する時に苦労した。
121NAME IS NULL:2005/05/05(木) 11:46:14 ID:???
Oracle9iのバックアップ方法に関して質問です

現在稼働中のOracle9iの環境をそのまま別な環境に移したいのですが、
コールドバックアップ(Oracleを停止させて、バックアップ対象のファイルをWindowsコピー)にて、
移してみたところ正常に動作しませんでした。

Enterprise Managerなるツールを使用してバックアップをとる方法があるみたいなのですが、
使い方がわからないです。

宜しければ御指南下さい。
122NAME IS NULL:2005/05/05(木) 12:32:48 ID:0ykLssaN
1. ALTER DATABASE BACKUP CONTROLFILE TO TRACE
2. コールドバックアップ(ocopy)
3. 別の環境にリストア後、初期化パラメータ調整、パスワードファイル作成
4. nomoutで上げて、作成した制御ファイル再作成スクリプトを若干修正して実行
5. open

「正常に動作しない」だけでは状況がわからないから、エラーを書いた方が良いよ。
間違っているかもしれないので、どなたかフォローよろ。
123NAME IS NULL:2005/05/05(木) 13:01:20 ID:???
レプリカしちゃえば?
124NAME IS NULL:2005/05/05(木) 13:27:25 ID:???
>>122さん
Enterprise Managerを色々調べてみたのですが、
ALTER DATABASE BACKUP CONTROLFILE TO TRACE
を実行できそうな場所はありませんでした。
SQL+に打ち込んでみましたが、CONTROLFILEでエラーが出てしまってます。

Windowsコピーに関してのエラー内容としては、
SQLでシステム権限でログインしようとしますと、
ORA-01033: ORACLE initialization or shutdown in progress
と出てしまってました。
色々と調べてみましたが、解決できませんでした。

>>123
レプリカとはどのようなものでしょうか、Oracleの用語集を見てみましたが見つかりませんでした。
125121=124:2005/05/05(木) 13:27:59 ID:???
>>123さん
さんが抜けてました、失礼しました。
126NAME IS NULL:2005/05/05(木) 13:38:24 ID:???
UNIX版ならありえる話だな。<レプリカ
インストールディレクトリもDBもすべてSANディスクにしてしまえば、可能だし。
Windows版は知らん。
127NAME IS NULL:2005/05/05(木) 13:50:01 ID:???
レプリカってレプリケーションの事だろ?
UNIXとかWindowsとか関係あるのか?
Oracleというか殆どの商用DBには付いてる機能だろ。
128NAME IS NULL:2005/05/05(木) 13:52:24 ID:dmQimnB5
>>127
m9(^Д^)プギャー
129NAME IS NULL:2005/05/05(木) 15:04:40 ID:zxspLPYf
>>124
移行先の環境ではDBのサービスを作成してないんだろ?

とりあえず、非常にシンプルな手順を下記に示してみた。

@移行先にて、ダミーのデータベースを作成(ファイル配置や、データベース名は移行前と同じ)
A作成したダミーデータベースをシャットダウン
Bコールドバックアップしたデータファイルや制御ファイルや初期化ファイルなど
 もろもろ全てをダミーデータベースの環境に上書き
Cデータベースをオープン
D移行出来て幸せ
130121:2005/05/05(木) 15:25:02 ID:???
>>129さん

@のダミーのデータベースは作成していませんが、
移行先にも元々データベース環境はありました。

A〜Cに関しては実際に行いました結果が124です。

今も色々なサイトを巡っているのですが、Enterprise Managerにおいてのバックアップ方法を未だ理解できません。
131NAME IS NULL:2005/05/05(木) 15:29:12 ID:???
ちなみに行った手順は以下の通りです。

移行先環境Oracleデータベース停止
@.OracleORA92TNSListerのサービスを停止
A.OracleServiceGRのサービスを停止
移行元環境Oracleデータベース停止
@.OracleORA92TNSListerのサービスを停止
A.OracleServiceGRのサービスを停止
移行元環境のファイルを開発環境へコピー
移行元サーバー\\D:\ORA92\ORADATA\移行フォルダ

移行先サーバー\\D:\ORA92\ORADATA\移行フォルダ
移行先環境の再起動(サービスの開始)
132NAME IS NULL:2005/05/05(木) 20:09:01 ID:S9wJQiUL
どんなエラーがでてうまくいかなかったの?
133NAME IS NULL:2005/05/06(金) 06:46:43 ID:???
>>131

RMAN Duplication使えば?
これだったらDB止めなくても出来るよ。
134NAME IS NULL:2005/05/06(金) 18:53:44 ID:F7p3BlwR
Win2000ServerでOracle8iのDBを使用しています。
テーブルの構造を別のSIDにコピーしたいのですが、可能でしょうか?
135NAME IS NULL:2005/05/06(金) 19:37:22 ID:???
>>134
rows=no で、exp/imp か、
メディアバックアップをそのままリストアして、
コントロールファイルだけ作り直し。
136NAME IS NULL:2005/05/09(月) 15:57:48 ID:???
Oracle10gってログインに時間がやたら掛かるんですけど
速くする方法はありませんか?
137136:2005/05/09(月) 16:59:24 ID:???
過去にPro*CでCGIを作成したのですがOracleを10gにあげることになり
CGIなのでコネクションプーリングができず、コネクションが遅いと
CGIも激遅になってしまいます。
CGIでコネクションプーリングする方法でもあればよいのですが・・・
よい解決方法があればご教授ください。よろしくお願いします。
138NAME IS NULL:2005/05/09(月) 17:47:23 ID:???
もしその環境がWindowsで以前のバージョンでは妥当な速さで
ログオンできていたのならsqlnet.oraの
SQLNET.AUTHENTICATION_SERVICES=(NTS)
を下のように書き換えればもとの速度でログオンできる。
SQLNET.AUTHENTICATION_SERVICES=(NONE)
139136:2005/05/09(月) 17:57:36 ID:???
>>138
(TдT) アリガトウ
ログイン爆速になりました。
久しぶりに本物の神に遭遇した気持ちです。感謝age
140NAME IS NULL:2005/05/09(月) 21:33:37 ID:Daffy6EZ
AUTHENTICATION_SERVICESのことって意外に知らない人多いよね。FAQ?
141はるか:2005/05/09(月) 22:08:51 ID:HjfK1arS
oracleにSQLを投げたところ
「ORA-03113: 通信チャネルでファイルの終わりが検出されました。」
のエラーが出てしまいました。
他のデータベース(oracle)ではエラーになりませんでした。
私なりに色々調べましたが原因が全く判りません。
何かお判りになる方いらっしゃたらお教えください。
よろしくお願いいたします。
142NAME IS NULL:2005/05/09(月) 22:16:52 ID:???
>>140
OTNでもしょっちゅう立ってる。
Win鯖は他OSに比べて敷居が低いから、よく分からずDBAやってるヤシが多いんだろう。

>>141
アラートログに他のエラー出てない?
143NAME IS NULL:2005/05/09(月) 22:42:16 ID:???
PL/SQLでループをC言語みたいにcontinueする方法を教えてください。
144NAME IS NULL:2005/05/10(火) 00:13:05 ID:???
>>141
セッションが生きている状態でTCP通信が途切れるとORA-03113
145NAME IS NULL:2005/05/10(火) 01:20:03 ID:???
>>141

DBシャットダウソ中に接続しようととしているとか、もしくはバグにヒットとしていると出るな。
146136:2005/05/10(火) 08:56:04 ID:???
>>138
その後、再起動したらOracleがずっと起動処理中のままになって
しまいました。
sqlnet.oraを元に戻して再起動したらOracleが起動されたのですが
どうしたらよいでしょう(´Д⊂グスン
147はるか:2005/05/10(火) 09:58:24 ID:32FXdx93
>>144 >>145の方、ご意見有難うございました。
特定のDB、SQLだけなので
>>145さんが言われた様にoracle(特定バージョン)の
バグなのでしょうか。
148NAME IS NULL:2005/05/10(火) 13:01:35 ID:???
>DBシャットダウソ中に接続しようととしているとか
起動時にリカバリが発生してるときにも起きることがあります。
つながらないので途中でリブートかけると、再びリカバリが走るので
いつまでたっても治らないので、ほっとくしかない。
俺の貧弱な開発マシンでこの状態になると30分くらいかかる。
149NAME IS NULL:2005/05/10(火) 22:24:48 ID:???
>>146
再起動はどうやった?
150136:2005/05/10(火) 22:42:07 ID:???
>>149
普通にスタートボタンから再起動を選らんで再起動しました。
151136:2005/05/10(火) 22:43:50 ID:???
ついでに起動処理中になってしまっても
サービスを一旦停止して開始したら起動されました。
でも自動起動したいです(´Д⊂グスン
152NAME IS NULL:2005/05/10(火) 23:29:27 ID:???
>>150
OS再起動する前にインスタンスは停止させておけ。
レジストリにサービス停止時の停止方法みたいなエントリがあるけど、あてにならない。
多分インスタンスが強制終了されて、再起動時にインスタンスリカバリをしてるはず。
アラートログにcrash recovery...って出力される。

153NAME IS NULL:2005/05/10(火) 23:41:19 ID:???
SQLNET.AUTHENTICATION_SERVICES=(NONE)で自動起動
ってできんの?今手元にないから試せない。

SQLNET.AUTHENTICATION_SERVICES=(NTS)
のままで、
TCP/IP設定のNetBIOS over TCP/IPを無効にするか、
Windowsドメインに入ってドメインユーザーにしてみれ。

NTSで認証に時間がかかるのはKerberosのタイムアウト待ちがくさい。

154NAME IS NULL:2005/05/11(水) 07:14:47 ID:???
Kerberosて頭が3つある冥府の犬のこと?
155NAME IS NULL:2005/05/11(水) 10:31:17 ID:???
>>154
そう、Windowsの認証につかわれてる
156136:2005/05/11(水) 10:37:43 ID:???
そもそもデータベースサーバーとWEBサーバーが
一緒のPCというのが(・A ・) イクナイ!ですね
157NAME IS NULL:2005/05/11(水) 11:28:12 ID:???
(・A・)イクナイ!!

まー客先でDMZにDB鯖とWeb鯖を置いていたのを見た事はあるが・・・
158NAME IS NULL:2005/05/11(水) 13:00:44 ID:???
>>154
右上に飛んでるのがそう
ttp://www3.nhk.or.jp/anime/sakura/

(NONE)だと / as SYSDBA で入れないようになるからこの辺が
影響しているのかも。
159NAME IS NULL:2005/05/12(木) 06:10:42 ID:???
>>164

地獄の番犬も地に落ちたもんだな・・・。
まあ、何処もリストラの嵐だから仕方ないのかな・・・。
160NAME IS NULL:2005/05/13(金) 09:59:41 ID:???
>>157

テラワロス。
SIer何処よ?
161NAME IS NULL:2005/05/13(金) 14:15:48 ID:???
LOOPして複数テーブルの特定レコードだけ削除するストアドで作ったんだけど
これCtrl+CでもセッションKILLしてもトマラナス。

どうすればいいんだー。
162NAME IS NULL:2005/05/13(金) 19:10:48 ID:???
ttp://www.ee-max.co.jp/oradou/ora_back1/ora_back1010.htm
この中の「□読者より」の内容が絡んでそうだけどよくわからん。

うわーん。
163NAME IS NULL:2005/05/13(金) 19:17:18 ID:???
DBクローズしたら?
164NAME IS NULL:2005/05/13(金) 19:47:21 ID:???
>>163
時間掛かってるのか、クローズできない。
abortでしか落とすしかないのかな。
165NAME IS NULL:2005/05/13(金) 19:54:54 ID:???
SVRMGR> shutdown abort
SVRMGR> startup
SVRMGR> shutdown
SVRMGR> startup

これでとりあえずやりたいことはできた。
いいのか?orz
166NAME IS NULL:2005/05/13(金) 20:55:40 ID:???
ステータステーブルみたいなの作って
LOOP中にチェックするようにした。これでいいのか。。

人稲なんだね。この板。
167NAME IS NULL:2005/05/14(土) 02:01:37 ID:???
いるんだけど、開発系の人が少ないんだよ(´Д⊂
かくいう漏れもDBA系なもんで・・・。
168NAME IS NULL:2005/05/14(土) 04:43:27 ID:hkpA4MK5
 Solaris7にoracle8.0.6です。
 oracleを入れておいたディスクがぶっ飛び、別のドライブに入っていた
データファイルだけが生き残りました。
 ディスクを交換し、oracleのインストールをしました。前任者が残して
いったインストール時の資料だけが頼りで、なんとかそれらしくインストー
ル出来たのですが、肝心のデータファイルをマウントすることが出来ません。

 インストール後、DBファイル上書きなども行ってみましたが、sqlplusで
user_tablesを確認しようにもORA-00600: internal error code, arguments:
となってしまいます。
 
 このような場合、どのようにすればマウント出来るようになるのでしょうか?
169NAME IS NULL:2005/05/14(土) 05:12:50 ID:???
>>168

データファイルだけが残ったということだな?
だとしたら以下の方法を取って復旧しないと駄目だ。

0. Oracleのアプリケーション部分の再インストール(済み)
1. OracleのControl Fileの再作成
2. DBをOpen resetlogsでOpen

ちなみに聞くだけ聞くけど、バックアップは取っていなかったのかい?
170168:2005/05/14(土) 05:58:55 ID:hkpA4MK5
>169
 こんな時間にありがとうございます。

>ちなみに聞くだけ聞くけど、バックアップは取っていなかったのかい?
 データファイルしかバックアップとってなかったようです。

 Control Fileの再作成とOpen resetlogsをキーワードに、ぐぐってみます。
171NAME IS NULL:2005/05/14(土) 06:15:00 ID:???
>>170

日本じゃないからw
確認したいんだけど、データファイルというのは、純粋にOracleのデータファイル
のみということ?
大別してオラクルのファイルは「control file」「online redolog file」「data file」の
三つに分けれるんだけど、バックアップはその全部を取っていたということ?
それともOnline Backupしかとってなくて、それでdata fileしか残っていないと
言っている?
この当たりをまず切り分けてから、169を実行する必要があるので、結構重要。
172NAME IS NULL:2005/05/14(土) 06:26:03 ID:???
取り合えず可能性を考えてみたぞ。

a. 純粋にOracleのデータファイルしか残っていない場合。
=> 169を実行

b. Controlfile, Redoog File, Datafileが全て残っている場合。
=> OracleのApplication部分にパッチが当たっていない可能性を疑う。
パッチレベルはちゃんとクラッシュ前と同じか?
「8.0.6.X」のこの「X」の部分は同じか確認したか?
そうでなければ、まずパッチを充て、その後に普通に起動してみる。
173168:2005/05/14(土) 06:28:47 ID:hkpA4MK5
>171

control01,02,03 rbs01 redo01,02,03 system01 temp01,02 tools01
users01,02

 以上のファイルがあります。
 おそらくコードバックアップではないと思われます。
174NAME IS NULL:2005/05/14(土) 06:33:11 ID:???
>>173

おおっ、全部残っているじゃん。良かったねぇ。
という訳で172の可能性bを疑ってください。
175168:2005/05/14(土) 06:39:12 ID:hkpA4MK5
>172,174
 なるほど、パッチですね。了解しました!

 しかし、クラッシュ前のリビジョンがいくつだったか...
 オラクルを始めてインストールして、9時間目。分からないことばかりです。
176NAME IS NULL:2005/05/14(土) 06:43:09 ID:???
>>175

調べてみたが、Solaris SPARC 32-bit版は8.0.6.3がターミナルリリースの様だ。
取り合えずこいつまで上げて、起動してみては?
リビジョンが違っていても、ターミナルリリースだから上がるはず。
その後、catlog.sqlとcatproc.sql流せばいいだけだし?
177168:2005/05/14(土) 07:10:54 ID:hkpA4MK5
>176
 oracleをcreatedbでインストール。その後、データファイルを差し替え。
 dbora startすると、プロセスが消し飛びます。
 SVRMGRにも、マウントできないと怒られます。

>8.0.6.3がターミナルリリースの様だ
 これって、登録とかしてないとダウンできないのではないでしょうか?
178NAME IS NULL:2005/05/14(土) 08:49:57 ID:???
>>177

そりゃあ、ふっ飛ぶって。
というよりも何でcreate dbなんてしてるん?

バックアップから「control file」「online redolog」「datafile」を
全部戻して、でもって「svrmgrl」を起動して「startup db」って
やったらどうなる?
179NAME IS NULL:2005/05/14(土) 08:50:56 ID:???
>>178

「startup db」なんてコマンドないや。
「startup」の間違いね。
180168:2005/05/14(土) 09:13:26 ID:hkpA4MK5
>179
 神! 私にとっての神!

 リカバリー系の情報を追っていくと「startup」って出てこないんですよ
 ありがとうございます。

 さっくり動きました。
181NAME IS NULL:2005/05/14(土) 09:26:44 ID:???
>>180

おめ〜ヽ( ´ー`)ノ
つ〜か、DB起動にdboraなんて懐かしすぎるツール使っている人久しぶりに見たよ。
というのは、普通は7ぐらいから「svrmgrl」でDB起動するからさ。
9iになるともう「svrmgrl」さえなくなってしまって、全部「sqlplus」から起動だよ。
時代は変わるもんだ。
182168:2005/05/14(土) 09:40:01 ID:hkpA4MK5
 結構周りにもありませんか?
 古くから動いてて、結構重要なくせに、誰も面倒見てないようなサーバー。
 それが突然壊れて、かり出されたって感じです。

 ありがとうございました。
 本当に助かりました。

 
183NAME IS NULL:2005/05/14(土) 11:04:52 ID:PuSZQHpA
これからオラクルマスター目指すんだけど
やっぱり新しい10gとるほうがいいんですか?
184NAME IS NULL:2005/05/14(土) 11:36:24 ID:???
業務で使ってるバージョンが良いけど、特に無かったら10gで良いと思うよ。
185NAME IS NULL:2005/05/14(土) 12:40:04 ID:???
昨晩のようなやりとりを読むとなんかジーンとくる。
しかし壊れたDBを真夜中に復旧か・・・すげー親近感だよ168さん。
186NAME IS NULL:2005/05/14(土) 13:10:25 ID:???
oracle GOldを取得後に、データベースの請負で独立をしたいのですが、
僕のように一人でデータベースを請け負う方はいらっしゃるのでしょうか?
187NAME IS NULL:2005/05/14(土) 13:43:58 ID:???
>>186
Gold程度、普通の会社にも数名は居る。
この資格だけで独立して仕事は来る事は無い。

データベースだけ請け負ってもらっても何のメリットも無い。
188NAME IS NULL:2005/05/15(日) 21:31:00 ID:???
DBAだけ請け負うのは依頼する側にとって大きなメリットがない。
業務フローを含めたコンサル的な仕事なら個人でも請け負えると思うが、
Oracle Goldの資格だけじゃ足りないな。
189NAME IS NULL:2005/05/15(日) 22:36:36 ID:+wdAlGm3
請負はよっぽどのことがない限り、出す方も受ける方も相当覚悟がいる。
責任がほぼ無限だからな。
派遣と大差なくなるが、委任契約の方がいい。
190NAME IS NULL:2005/05/16(月) 03:33:03 ID:???
かれこれ7年以上ボラクル触っているけど、ボラクルマスターは銀さえ持って
いないやw
今はLunixで10g RAC+Dataguard(PhysicalとLogical)組んで遊んでいたり
するけど、そんなに資格の必要性を感じないな。
軍隊で言うと叩き上げの軍曹止まりという感じなんだろうなw
191NAME IS NULL:2005/05/16(月) 07:43:55 ID:???
>>190
そりゃ、遊んでいる人にはいらんだろうよ。
192NAME IS NULL:2005/05/16(月) 07:46:49 ID:???
たいていの人は会社がお金(試験費用+α)を出してくれたり
出世の条件になんらかの資格取得(講習費用は会社持ち)が課せられている
から資格をとるんだよ。
会社にそういう制度がないという時点で >>190 は軍隊というよりは傭兵っぽいカモね〜
193NAME IS NULL:2005/05/16(月) 08:02:05 ID:???
>>190
ORACLEの実務経験が無い奴が、資格を持った方が説得力はある。
194190:2005/05/16(月) 08:39:26 ID:???
7年前、ボルクルのボの字も知らなかった漏れは、部署のマネージャーから
ボラクルのSQL入門、DBA管理Iのコースを受けに逝けと言われた。
コースを受け終わって戻って来たら、アメリカ本国でシンメトリックレプリケーションを
やっているマスターDBのデータを、シンガポールを始め、各国にスナップショットで
データレプリケートやっているというとんでもない代物の、その日本のDBAの仕事
だったw
信じられるか?
DBA管理Iしか受けていないのに、担当がいきなりスナップショットがどうのとか、
レプリケーションがどうのとかっていう代物なんだぜ?
地獄を見たよ、ほんとw
195NAME IS NULL:2005/05/16(月) 11:37:37 ID:???
>>194
良い経験したじゃん
196NAME IS NULL:2005/05/16(月) 22:29:48 ID:???
>>194
上司も遊んでいたのか。
197NAME IS NULL:2005/05/16(月) 23:10:55 ID:???
>>194
普通。どこでもそんなもんだよ。
それでできないやつは何をやらせてもダメ。
それと講習受けさせてくれるだけまし。
198190:2005/05/17(火) 00:22:41 ID:???
>>197

まあ、結局2年の歳月をかけて(部署の教育予算の都合上)レプリケーションの
コースまで受けさせて貰ったけどな。
でもって、その会社は3年で辞めて、その後ボラクルに転職したw
199NAME IS NULL:2005/05/17(火) 00:45:37 ID:???
「どこでも」は言いすぎだろー
200NAME IS NULL:2005/05/17(火) 07:55:55 ID:???
>>190さんの自己顕示欲旺盛さには頭がさがっちゃいます。
敬意を表して「るにくす」ちゃんと呼んであげよう
201NAME IS NULL:2005/05/20(金) 16:15:40 ID:TvuwvY2x
すみません、dmpのインポートについて教えてください。

Oracle10g からエクスポートしたdmpを、下位のバージョンの Oracle8.1.7 にインポート
しようとしたら「ヘッダーが認識できません」と言われてしまいました。
因みにオプションは全てデフォルトで指定しました。

このようなインポートは可能なのでしょうか?
また、可能なら適切な方法を教えてください。
202NAME IS NULL:2005/05/20(金) 21:06:54 ID:???
>>201

不可能。
やりたかったらOracle 8.1.7のexpを使って10g DBからExport、
でもって8.1.7にImportだろうな。
203NAME IS NULL:2005/05/22(日) 17:17:20 ID:RWKQivPE
現在9iの正規版を使用しています。
今回10gに移行しようと思い、ひとまず評価版の導入を検討しているのですが、
評価版には同時セッション数などの上限はあるのでしょうか?
予定では、10人ほどが同時に繋ぐ事になると思います。
204NAME IS NULL:2005/05/22(日) 21:41:03 ID:???
>>203
OTNにあるものの中身は製品版と同じだYo
使用日数制限も紳士協定だ
205201:2005/05/23(月) 11:27:07 ID:M0MPUZ46
>>202
ありがとうございます。やり方によっては可能と言うことでしょうか?
現在、Oracle10g は Oracle 8.1.6(すみません、8.1.7ではありませんでした)
とは離れた場所にあるのですが、
これは 10g マシンに 8.1.6版の exp を入れて使用すると言うことですか?(可能?)
それとも Oracle10g のイントラに 8.1.6 が入ったマシンを接続して Export すると
いうことですか?
206NAME IS NULL:2005/05/23(月) 17:12:08 ID:???
>>205

Support Matrixを見てみたが、まずはTarget DBを8iのターミナルリリースの
8.1.7に上げないと駄目だな。
でもって、8iのExport Utilityを10g DBの入っているマシーンにインストールして、
でもってこいつでExportする。
後は、そのDMPをメディアなり、N/W経由で8iの入っているマシンに持って来て、
ImportすればOk。

簡単に言うと・・・
1) 8.1.6にパッチあてて8.1.7にする
2) 10gの入ってする鯖に8.1.7のバイナリをインスコ
3) インスコした8.1.7のexpを使って、10g DBからexport
4) 何らかの方法でexpしたdmpを8iの入っている鯖から見える様にする
5) 8iのimpを使って、import
207205:2005/05/23(月) 18:36:03 ID:M0MPUZ46
>>206
ありがとうございます。
手順はよくわかりました。と同時に自分の環境ではその方法は難しい
ということもわかりました。泣。

CSVファイルに落とす方法で検討してみます。
勉強になりました。
208NAME IS NULL:2005/05/23(月) 20:22:03 ID:???
>>207

まあ、環境によっては仕方ないわな。

基本的にExpとImpには以下の法則が成り立つ。

Export元のDBのVerが下位だった場合=>Import先の上位VerのImportを使う
(例: Export元が8iで、ImportしたいDBが9iだった場合には、9iのImportを使用)

Export元のDBのVer.が上位だつた場合=>Import先の下位のVerのExport/Importを使う
(例: 今回の様にExport元が10gで、Import先が8iの場合には、Exp/Impの両方に
おいて8iを使う)
209NAME IS NULL:2005/05/23(月) 21:41:50 ID:???
Support Matrixみてないが、8iと10gで会話できるなら、
expのためにサーバーに8iを入れなくても、別のPCに入れた
8i Clientから、ネットワーク越しのexpで引っこ抜ける。
Note PCでも使えばよい。
過去バージョンのCD-ROMも、最悪、別途注文できたと思う。
210207:2005/05/24(火) 16:30:05 ID:Cqi0T8Kx
出来ましたー!できましたー!デキマシター!
無事にExportできましたー

ノートPCにOracle8.1.6を入れて10gのイントラに混ぜてもらい、
10gClientのtnsnames.oraをぺたり。
これで会話が出来るようになったのでExp/Impを実行しました。

impの際、

IMP-00003: Oracleエラー 439が発生しました。
ORA-00439: 機能は使用できません: Materialized view rewrite

と警告が出ましたが、これは indexes=y にしていたからかなあと思いました。
ひとまず正常に動いているようです。これで様子をみてみます。

もっと精進します。本当にありがとうございました!
211NAME IS NULL:2005/05/24(火) 16:51:04 ID:???
>>210

純粋にMaterialized view の機能がインストールされていないか、もしくは
セットされていなかっただけでは?
8iではMaterialized viewの機能はEEでしかサポートされていないし、EEでも
以下の初期化パラメーターもinit.oraの中で指定しなければ有効にならないよ?

QUERY_REWRITE_ENABLED = TRUE (デフォルトはFALSE)
QUERY_REWRITE_INTEGRITY = ENFORCED, STALE_TOLERATED, TRUSTED
212NAME IS NULL:2005/05/25(水) 04:12:45 ID:???
>>211
事例検索、ご苦労。
EE機能の奴は、MVIEW じゃなくて、MVIEW rewrite ね。
213NAME IS NULL:2005/05/25(水) 07:44:45 ID:???
>>212ツッコミご苦労。
MVIEW rewrite じゃなくて QUERY rewrite ね。
214NAME IS NULL:2005/05/27(金) 14:05:03 ID:SVEAfcHY
Import ユーティリティが必ず下記の場所で沈黙します。
Disk I/O も殆ど無く、CPU も殆ど使っていません (どちらも限りなく 0%)。
オプションは ignore=y destory=y full=y を指定しています。
せめて何か文句を垂れてくれれば対処のしようもあるのですが、
沈黙されているので原因が判らず数日、悩みの種となっています。

何か考えられる要因はありますでしょうか。

Import: Release 8.1.7.4.0 - Production on Fri May 27 13:54:35 2005

(c) Copyright 2000 Oracle Corporation. All rights reserved.


Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
With the Partitioning option
JServer Release 8.1.7.4.0 - Production

Export file created by EXPORT:V08.01.07 via conventional path
import done in US7ASCII character set and US7ASCII NCHAR character set
215214:2005/05/27(金) 14:06:02 ID:???
×:destory=y
○:destroy=y
216NAME IS NULL:2005/05/27(金) 19:42:38 ID:???
Windows2000で
RAWデバイス使ってないんだけどさ、
オンラインバックアップするとき
ocopy使わないといけないのか?
217216:2005/05/27(金) 19:43:28 ID:Ftx4Ka8u
すいません、あげます
218NAME IS NULL:2005/05/27(金) 21:05:12 ID:qtLKBW4n
いえ、いりません
219NAME IS NULL:2005/05/27(金) 21:36:03 ID:+uA2ik5O
オラクル初心者だからかちょっと気になることがあります。

Oracle9i Solaris版を使っているのですが、
ふと listener.log のサイズを見ると何百メガにもなっています。
これってある程度サイズが大きくなると、別ファイルにリネーム
されて新規にログファイルが作成される&古いファイルから削除
というような処理が走るのでしょうか。

このままだとファイルシステムフルになってしまいそうで怖いです。
ログファイルを削除するなど、何か手を加えなきゃだめなのでしょうか?
220NAME IS NULL:2005/05/27(金) 22:00:03 ID:eZr5RIQk
>>219
走らない。各々でログを移行させる。

lsnrctl stop
mv listener.log listener.log.old # -> 必要に応じてバックアップ?
touch listener.log
lsnrctl start
221NAME IS NULL:2005/05/27(金) 22:14:29 ID:+uA2ik5O
>>220
ありがとうございます。
cronに組み込んで定期的にログを整理します。
222NAME IS NULL:2005/05/27(金) 22:21:01 ID:???
>>214
とりあえずこれまで問題はなかったのに
この数日だめなのか、とか特定のテーブルだけダメなのか、
など問題の絞り込みを行ってみては。
また、importしたいdmpファイルに問題があるかもしれません。
exportし直して再試行できるなら確認してみてください。
223NAME IS NULL:2005/05/27(金) 22:29:03 ID:???
>>216

窓でオンラインバックアップ取る時にはocopyしかサポートされていない。
勿論物理的にNTバックアップ等で取れない事はないけど、それでリカバリに
失敗して動かなくなっても、サポート外ということになるだけ。
224NAME IS NULL:2005/05/27(金) 23:50:01 ID:???
ntbackupってオープンされてるファイルをバックアップできなくない?
225NAME IS NULL:2005/05/28(土) 07:33:45 ID:???
SQL*PLUSでPL/SQLを使用し
ファイルの入出力をしようとした所、
invalid_path例外エラーが出ました。
色々調べて見たのですが、
init.oraのutl_file_dir=で指定されているディレクトリのみ
使用可能みたいでした。
しかし、SQL*PLUSを実行しているサーバはAPサーバでinit.oraがありません。
APサーバでのファイル入出力は無理なのでしょうか?

クライアント→APサーバ→DBサーバ
(win2000) (Solaris) (Oracle9i/Solaris)
226NAME IS NULL:2005/05/28(土) 09:40:34 ID:???
APサーバにinit.oraがあるかは関係ない。
utl_file_dirはDBサーバ内のディレクトリを指すパラメータ。

リモートからのsqlldrってできたっけ?できるんだったら
ファイルからの「入力」はこれでいいかも。
227225:2005/05/28(土) 11:31:26 ID:???
>>226
エラーの原因は別にあるってことですか・・・
ありがとう考えてみます。。
228NAME IS NULL:2005/05/29(日) 11:01:58 ID:???
> 227

UTL_FILEパッケージのINVALID_PATH例外は
「パスの指定間違い」なので、
パス指定の引数内容をよく確認して。
よくあるのがディレクトリの掘り忘れと、
WindowsとUnixの違いを忘れてパス名の
大文字小文字の区別し忘れかな。
229NAME IS NULL:2005/05/29(日) 12:56:13 ID:???
>>225
DBサーバ以外のディレクトリからファイルを読み込みたい場合はサーバ名もパスに入れる
WINだったら\\サーバ名 とか\\IPアドレス\C:\tmp とか
230NAME IS NULL:2005/05/29(日) 13:42:49 ID:???
> 229
今回はサーバがSolarisだから、UNCのようなネットワークパス指定は
できないね。事前にNFSでもsmbfsででも、mountしておかなければ
ならないでしょう。
231NAME IS NULL:2005/05/29(日) 15:03:31 ID:???
つかUTL_FILEをそのように使いたくなること自体設計が間違ってねーか
つかUTL_FILEってあまり使うべきもんじゃないと思う
232NAME IS NULL:2005/05/29(日) 19:31:58 ID:???
>>231

10g以降からUTL_FILEはなくして行こうという動きがあるしね。
233225:2005/05/30(月) 17:19:41 ID:???
UTL_FILE パッケージを利用してのファイル操作は、好ましくないのですね。
前任者が残したシェルを利用しようとしてました。
DBサーバの設定ファイルをいじるような権限なんて当然ない3次下請けの派遣要員です。
SQL*PLUSのみで何とか同じ機能にできそうです。
234NAME IS NULL:2005/05/31(火) 14:11:36 ID:6mt1ZZyJ
ちょっと教えてください。
コミットしてるのに、REDOログファイルの
更新日時が変わらないのは何で?
変わらないものなんですか?
235234:2005/05/31(火) 16:09:18 ID:???
オンライン中はOracleが掴んじゃってるから、
書き込まれてても
ログスイッチするまで更新日時変わらないんだってさ。
236NAME IS NULL:2005/05/31(火) 18:55:40 ID:???
>>231-232
俺も結構使ってるんですけど,テキストをDBに読み込む場合,
どうするのが良いのですか?
Loaderでワークに読んでからマスタ更新とかすると効率悪くない?

関係ないけど今日ApplictionsDayの基調講演だけでも登録しませんか?
て電話かかってきた。集まり悪いのかな?
237NAME IS NULL:2005/05/31(火) 19:55:35 ID:???
>>236
使いどころをわきまえて使う分にはいいんじゃないの?
俺は嫌いだけど。
PL/SQLはDB内で実行されるんだから、DB内に閉じてて欲しい。

俺なら
> Loaderでワークに読んでからマスタ更新
この「効率の悪い」やり方を選ぶな。
238NAME IS NULL:2005/05/31(火) 21:40:20 ID:FDMIbZ4f
すいません。質問させてください。

oracleの一時表領域は、一体どのように扱うのが、
よりスマートなやり方なのでしょうか?

社内(中小企業のシステム課)の先輩は、
自動拡張(AUTOEXTEND)をonにしておき、定期的にoracleを
再起動して領域を開放する。
または、自動拡張をオフにしておき、使用率が100%に近づいたら、
ALTER TABLESPACEで、新たにデータファイルの追加を行う
等の方法を行っているのですが、社内にoracleについての知識のある人間が
少ないため、oracleに詳しい諸兄がどのように一時表領域をあつかっているのか
教えていただければ幸いです。
239NAME IS NULL:2005/05/31(火) 22:29:43 ID:???
>>236

もう一つの方法は外部表だな。
もっとも、これもSQL*Loaderのドライバを使ってのアクセスなので、効率の
悪さという意味では同じかも知れん。
10gからならData Pumpのドライバも使えるので、相当早くなっているらしいが。
240NAME IS NULL:2005/06/01(水) 07:36:41 ID:???
>>238

AUTOEXTENDをOnにしておくと、誰かが腐ったSQL投げて膨大なSortが
行われてディスク領域を食いつぶすなんて事があるから、あんまりお勧めは
出来ない。

9i以降であれば、pga_aggregate_targetが正しく設定されていて、なおかつ
SQLそのものがきっちりとチューニングされてさえいれば、そんなに問題に
なる事は少ないと思うんだけどね。
241NAME IS NULL:2005/06/01(水) 21:05:13 ID:tKaTPZQ+
oracle9iASで悩んでいるoracle初心者です。
ご教授ください、、、

環境はwin2000svr+Apache+oracle9iASです(だと思います)
netstatでサーバの使用ポート状況をみると3001番ポート(tcp)のセッションが
数十個残っています、、、
3001番ポートを調べたところredwood-brokerという
聞いたことのない物でした、、、
これしかoracleを使用した環境がないため
良いのか悪いのかがわかりません、、、
セッションはESTABLISHEDです
正常なのでしょうか?
(そんな訳無いと思うのですが、、、)
242NAME IS NULL:2005/06/01(水) 21:54:14 ID:w4wl/7rs
Back Doorちゃうか?
243NAME IS NULL:2005/06/01(水) 22:23:50 ID:???
>>241

9iASは良く分からないのだが、AJPのデフォルトポートが
そこあたりの番号使ってるっぽい?
詳しくは「$ORACLE_HOME/opmn/conf/opmn.xml」の中を
見てみる!

<oc4j maxRetry="3" instanceName="home" numProcs="1&
quot;>
<config-file path="ORACLE_HOME/j2ee/home/config/server.xml"/>
...
<port ajp="3000-3100" jms="3201-3300" rmi="3101-3200"/>
...
</oc4j
244NAME IS NULL:2005/06/01(水) 22:31:38 ID:???
>>241
そのESTABLISHEDなコネクションはどことつながってんのさ。
相手がそのシステム内なら、接続相手のマシンも調べたらいいさ。
245NAME IS NULL:2005/06/02(木) 07:24:06 ID:vLLv95Q9
レスありがとうございます。

>>244さん
 すいません、、、
 コネクション先は自マシンです。
 ですので、元も先も同一マシンです。
 
>>242さん
 serverprotectでは引っかかっておりません、、、
>>243さん
 その通りでした、、、
<port ajp="3001-3100" rmi="3101-3200" jms="3201-3300"/>
と記述されておりました。
 となると、なぜセッションが切れずにポートが開きっぱなし
 になるのでしょうか? 
 使用しているプログラムのバグの可能性があるのでしょうか?
 (jspで開発したwebアプリが動いています)
246NAME IS NULL:2005/06/02(木) 08:03:53 ID:???
>>237,239
ありがとうございます。
なるほど,移植性とかを考えるとDBで閉じているほうがいいですね。
外部表。。。これは9iからの機能かな?なんか便利そう。
だけど,うちはやっとOracle7からOracle8iに移行しようというところ
なのでまだまだ関係ないかな。
247NAME IS NULL:2005/06/02(木) 09:19:33 ID:???
>>245
httpdとjavaの間でコネクションプールしてるんじゃない?
248NAME IS NULL:2005/06/02(木) 14:30:31 ID:???
DBA Studioの表エディタから項目にNULLを指定するにはどのように操作したらよいのでしょうか?
「SQL表示」にして見ていると、項目をクリック・Back spaceで消しただけでは
set 項目名 = ''
となっていて、これではNULLにならないと思います。
249NAME IS NULL:2005/06/02(木) 15:12:24 ID:???
Oracleでは長さゼロの文字列はNULLと同じ意味。
いい加減修正して欲しい仕様だけどね。
250NAME IS NULL:2005/06/02(木) 16:36:27 ID:???
Oracle7.xの頃は空文字列とNULLは別だったような。
なんかそれで苦労した記憶があるんですけど
もう忘れちゃったよ・・・。
251248:2005/06/02(木) 16:39:03 ID:???
>>249

VARCHAR2 型のとき、
項目 = '' は IS NULLでヒットする
ということですね。ありがとう御座います。

NUMBER型でも確かめてみたところ、同様にヒットするようです。

勉強になりました。
252NAME IS NULL:2005/06/02(木) 16:41:02 ID:???
NVL関数があるじゃん
253NAME IS NULL:2005/06/02(木) 16:53:42 ID:???
>>250
7.xや8.0.xでは values (xxx, NULL) とか set aaa = NULL が使えなくて
必ず values (xxx, '') とか set aaa = '' と書く必要があったと記憶している。
>>252
検索対象のフィールドなら関数を使うより IS NULL の方がいいと思う。
254NAME IS NULL:2005/06/02(木) 19:53:22 ID:???
NULLと空文字列を同一視してるのって標準からすれば外れてるんだろうけど
俺はこっちのが便利だな。
NOT NULL制約かけたいような場合って、大体は空文字列も拒否したいはず。
なんだけど、NULLと空文字列が同一でない場合、空文字列は通っちゃうよね。
こうなると、空文字列を拒否するにはCHECK制約とか使うしかなくなる。
それってなんか不便。

あと、ここ変えちゃうとかなり互換性に問題が出てきちゃうんで、Oracleは
変えられないんじゃないかな。
255NAME IS NULL:2005/06/02(木) 23:44:06 ID:???
A列B列でPKにしたいけど、B列が’’の可能性がある場合。
256NAME IS NULL:2005/06/03(金) 12:30:02 ID:???
UPDATE では、'' と NULL を同一視するくせに、
WHERE で = '' って書けないのがむかつく。

UPDATE 表 set カラム = ''
⇒ NULL がセットされる。

SELECT * FROM 表 WHERE カラム = ''
⇒ NULL となっている行をSELECTできない。
257NAME IS NULL:2005/06/03(金) 13:48:58 ID:???
ヌルヌルドロドロした事情がありそうな仕様だな
258NAME IS NULL:2005/06/03(金) 14:18:08 ID:???
>>256
''がつねにNULLと解釈されると考えれば、そうなるのは自然じゃないの。

SELECT * FROM 表 WHERE カラム = NULL
では検索できないからね。
IS NULLつかわないと。
259NAME IS NULL:2005/06/03(金) 14:21:39 ID:???
SELECT * FROM 表 WHERE カラム IS ''
が使えたら自然かもね。使いたくはないけど(笑)
260NAME IS NULL:2005/06/03(金) 14:56:12 ID:???
演算子の動作が、NULLのレコードを処理しないように定義されている
と考えることもできるね
261256:2005/06/03(金) 14:59:21 ID:???
>257
Prepared Statement を使っていると空文字列かどうかで処理を分けないといけない。

UPDATE 表 set カラム = ?

SELECT * FROM 表 WHERE カラム = ?

プレースホールダに空文字列をバインドすると (´・ω・`)ショボーン
262NAME IS NULL:2005/06/03(金) 16:40:15 ID:???
そこで

SQL質疑応答スレ Part 2
http://pc8.2ch.net/test/read.cgi/db/1103113155/l50

312-343
あたりの3値理論ですよ。
ってOracleじゃ使えないって話なんだよなー。
263NAME IS NULL:2005/06/06(月) 14:21:10 ID:???
すいません。
文字化けについて質問です。
いろいろ調べて、全角「−」の文字化けについては対応できたんですが、
「、薮、ア」等の漢字が、DBインサート時に文字化けします。
JSP(Windows-31J)→サーブレット(Unicode)→DB(EUC-JP)
なので、文字化けしないかな?と思っていたのですが、
もしかしてJDBCドライバが勝手に、SJIS変換とかしてるんでしょうか?
264NAME IS NULL:2005/06/06(月) 14:34:00 ID:???
>>263
文字化け関連の記事を読めば分かるけど、
Javaである限り一旦はUnicodeになる訳だ。

そこで、ソースがWindows-31JとかSJISで一旦Unicodeに変換された後、
さらにEUC-JPとかに変換されると、文字コードの対応が完全じゃないので化ける。(というより別文字として認識する)

ぶっちゃけ、解決策は、独自に不具合の出る文字の対応表などを作って対応させるか、
ソースコードもDBもUnicodeにしてしまう。(ソースコードとDBを同じにするだけでいいかも)
265NAME IS NULL:2005/06/06(月) 14:38:22 ID:???
なんだそりゃ?
その辺の89〜92区あたりってCP932特有の機種依存文字だろ。
DBがEUC-JPなら化けるわな。

・JSP/ServletではちゃんとMS932コンバータを使う
・DBはSJISまたはUTF-8にする(UTF-8の場合は面倒が多いので覚悟が必要)
・OracleのNLSのコンバータはMS932とはマッピングが違うからその辺も気をつけろ

ってぐらいやらないと、CP932の文字全てには対応できんぞ
266NAME IS NULL:2005/06/06(月) 14:43:53 ID:???
ttp://www.atmarkit.co.jp/fjava/rensai3/mojibake02/mojibake02.html

このページとかが参考になるかも。
『Java』 『文字化け』 『Windows-31J』をAND条件でググっても色々でてくる。

ただ、俺も実際にこういった場面に直面したし、
色々検索して調べたけど、何かに対応させようと思うと副作用がでる。

理想は>>264が書いた通り、ソースコードからDB、表示に至るまで、
全てをUnicode(UTF-8)に統一するのが一番楽で安全だと思う。
267263:2005/06/06(月) 15:06:11 ID:???
>>264-266
回答どうもです。
すでに稼動しているシステムなんで、DBの変更とかは効かないんですわ
MS932コンバータはかましてあるので、
一応、Eclipsのデバッグモードで、サーブレットまでは文字化けしてないのを
確認しております。
インサート時に化けているのでなぜかなと。
DBがEUC-JPだから化けちゃうよ、というのであれば、
そのまま上に報告してこの件は終了となります。
化けない策があるのなら、それを講じないといけないので(工数にもよりますが)、
調査しておりました。
268NAME IS NULL:2005/06/06(月) 15:18:19 ID:???
>>266

DBをUTF-8にすると、OracleのNLSとMS932のマッピングの違いが問題になって、
何もしないと〜が化ける(異なるUnicodeポイントにマップされてるため)

SJISでいいんならそのほうが楽だぜ。で、type4ドライバじゃなくてtype2
ドライバを使う。これで、Unicode<=>MS932変換がJava内に閉じるので、
文字化け問題は基本的になくなるはず。

269NAME IS NULL:2005/06/06(月) 15:23:48 ID:???
>>268
全てをUTF-8で統一したら、マッピングの違いとか無いんじゃないの?
だからこそ”統一”というような・・・
270NAME IS NULL:2005/06/06(月) 17:01:47 ID:???
>>269

「全てを」ってのは、「クライアントも」ってことか。
俺はWindows環境のOracle clientからアクセスするケースも想定していた。

その場合はOracle NLSのマッピングに従って変換されるから、問題が
おきる。
現実問題として、クライアントの実行環境も全てUTF-8に強制するのは
不可能ではなかろうか。少なくともWindowsでは無理だし。
271NAME IS NULL:2005/06/06(月) 21:19:53 ID:???
JA16EUCTILDE はこの場合は役に立たない?
272NAME IS NULL:2005/06/07(火) 15:40:49 ID:???
>>271
つーか微力
273NAME IS NULL:2005/06/07(火) 22:11:12 ID:???
>>268

>DBをUTF-8にすると、OracleのNLSとMS932のマッピングの違いが問題になって、
>何もしないと〜が化ける(異なるUnicodeポイントにマップされてるため)

化けねーよ。
274NAME IS NULL:2005/06/07(火) 23:01:09 ID:???
>>273
Oracleのバージョンによるのかな。
俺が試したのは8.1.7の頃なんだけど、〜のに割り当てられる
コードポイントは、OracleとMS932とは違ってたよ。だから
当然化けるよね。
275NAME IS NULL:2005/06/09(木) 14:31:43 ID:???
JA16EUCTILDEだのJA16SJISTILDEだの使ったことないので
使用感教えてほすい。
これだと、Javaのtype4ドライバで〜が化けなさそう、ってのは
想像がつくけれど
それぐらいかしら。
276NAME IS NULL:2005/06/11(土) 19:24:42 ID:/LXb0PBN
Oracle10g(10.1)ってMacOSX(Server版じゃないの)で動きますか?

動作環境のとこ見ると、Server版だけしか書いていなくて・・・
(実機があれば試してみるんですが、現在手元に無いもので)

用途は自宅学習用なので、動けばいいですw
277NAME IS NULL:2005/06/12(日) 00:58:08 ID:Nw+d8++k
Oracle9i です。

XML形式のデータをロードしたいのですが、何か良いユーティリティは無いでしょうか?
SQL*LOADER を調べたのですが、XML形式には対応していないようです。
278NAME IS NULL:2005/06/12(日) 02:21:19 ID:???
279NAME IS NULL:2005/06/12(日) 02:22:06 ID:???
>>276

とりあえず入れてみたら?
窓もDBは制式にサポートしているのは鯖版だけど、でも普通のWorkstationでも
サクッと動いたりするし?
280NAME IS NULL:2005/06/12(日) 04:27:22 ID:???
インストーラーが文字化けするのですが
対処方法はありますか?
281277:2005/06/12(日) 06:54:45 ID:???
>>278
おおおお、ありがとう!!


使えそうですね。
早速試してみます!!
282NAME IS NULL:2005/06/12(日) 12:32:51 ID:???
>>280

せめてどのプラットフォームにどのVer.を入れようとしているかぐらいは
書くあーるよ。
文字化けしてるのなら、文字コードを英語にするなりにしてみるあーるよ。
283NAME IS NULL:2005/06/12(日) 14:36:52 ID:???
CentOS 4に10gです。
スマセン。
284NAME IS NULL:2005/06/13(月) 20:03:57 ID:???
米国在住で Oracle Database 10g Personal Edition の購入を考えています。

米国で販売しているものと日本で販売しているものには
どのような違いがあるのでしょうか?

メニュー等が英語か日本語かの違い程度で
取り扱うことができるデータは変わらない
という理解で正しいでしょうか?

ご存知の方がいらっしゃいましたらご教示ください。
285NAME IS NULL:2005/06/13(月) 21:16:34 ID:???
ORACLEへ問い合わせれば済むことだと思います。
286NAME IS NULL:2005/06/13(月) 21:18:55 ID:???
また出た。

アックス....Bomber....自爆!
287NAME IS NULL:2005/06/13(月) 22:37:26 ID:???
>>284

違いは無い。
メニューもインストール時にデフォルト言語を日本語にして、かつO/Sが
日本語に対応していれば日本語に出来る。
288284:2005/06/13(月) 22:55:35 ID:???
>>287
情報ありがとうございます。非常に助かりました。
289NAME IS NULL:2005/06/14(火) 19:11:12 ID:lFQCDrfF
>>241です、、、
教えてください。

9iASのEnterprise Managerで表示されている
JDBC使用の「オープンJDBC接続」の数値というのは
延べ(?)の数値なのでしょうか?
更新したタイミングの瞬間の接続数なのでしょうか?
ずっと数値が増えっぱなしなので気になりました、、、
マニュアルを読んでも???です。
ご教授お願いします。

>>247さん
 お礼が遅くなってすいません。ありがとうございました。
 おっしゃる通りでした、、、
290NAME IS NULL:2005/06/19(日) 15:41:17 ID:n9q/trAx
MySQLだと、あるテーブルが次のような構造になっていて

COL1:PK
COL2:PK
COL3
COL4


WHERE句の条件指定で、COL2 = ?
とした場合、インデックスは全く使われないのですが(COL1とCOL2を連結したインデックスとなっているから)
Oracleで同様の条件指定で検索するとインデックスが使われるようです。
なぜですか?
291NAME IS NULL:2005/06/19(日) 16:04:48 ID:???
>>290
なぜって、そういう仕組みが実装されているからよ。
9.0.1か9.2あたりで実装されたような気がする。
292NAME IS NULL:2005/06/19(日) 16:29:32 ID:???
>>291
どうも
詳細は自分で調べます。
293Oracle似非信者:2005/06/19(日) 21:06:17 ID:???
Oracleって凄いだろ!
ヽ(´ー`)ノ
294NAME IS NULL:2005/06/19(日) 21:33:52 ID:???
オラ狂う
295NAME IS NULL:2005/06/19(日) 23:39:32 ID:???
PL/SQLについての質問なのですが、よろしいでしょうか?

-------------------------------------
OPEN CURSOR xxx_cur
LOOP
  FETCH xxx_cur INTO xxx_rec
  EXIT WHEN xxx_cur%NOTFOUND
  ≪データ加工&ワークテーブルにINSERT≫
END LOOP
CLOSE CURSOR xxx_cur
-------------------------------------
上記のようにCURSORループを行っているのですが、
実際にSQLをSELECT文として発行したときに比べて、
時間が非常にかかってしまっております。

SELECT文での実行時間は40秒弱だったのが
CURSORループの場合は12分以上となっています。

ログを取ってみたところ、最終行のフェッチまでは
SELECT文での実行と変わらないのですが、
CLOSE CURSORに10分以上かかっていました。

今までこのようなことはなかったため、
どうしたらよいかわからず困っています。

何かいい改善策はありませんでしょうか?
296NAME IS NULL:2005/06/19(日) 23:47:38 ID:???
INSERT INTO SELECT FROM が40秒で、
CURSORループにすると12分ってこと?

それとも、SELECTだけでINSERTしないなら40秒っていってる?

改善案としては、バルクFETCHとかバルクINSERTを調べてみたら?
297NAME IS NULL:2005/06/20(月) 00:15:54 ID:???
>>295

OracleのVer,いくつよ?
8.1.X移行なら>>296が言っている様に複数行のFetchの場合には
「bulk collect into」を使う!
298NAME IS NULL:2005/06/20(月) 00:19:09 ID:???
>296
回答ありがとうございます。
END LOOPまでは40秒で終わっているのですが、
なぜかCLOSE CURSORにめちゃくちゃ
時間がかかっているのです。

今はテスト環境がありませんので、
INSERT INTO SELECT FROMにしてどうなるかについても
明日試してみます。

また、バルクFETCH、バルクINSERTについて調べてみます。
ありがとうございました。
299NAME IS NULL:2005/06/20(月) 00:25:25 ID:???
>297
回答ありがとうございます。
OracleのVersionは9.2.0ですが、
参照元のテーブルは8.1.6のDBにあります。

最終的に抽出される件数は100件そこそこなので、
BULK COLLECTで一括取得するがよさそうですね。

ありがとうございました。
300NAME IS NULL:2005/06/20(月) 17:40:29 ID:???
Oracle10gをインストしたのですが
shutdown normalがすごく時間かかってしまう(abortならすぐ落とせる)ので
サービスのOracleDBconsoleを起動しないようにしたら
上記のような問題が起こらなくなりました。

OracleDBconsoleってどのようなサービスなのでしょうか?
またみなさんの環境でも同じような現象おこってますか?
もしよかったら教えてください。
301NAME IS NULL:2005/06/20(月) 21:48:36 ID:8U3l7tKS
>>300
EnterpriseManagerのWeb版。10gからの新機能
起動してればJava経由でDBにセッション貼っているから(←知ったかかも)
いつまで経過しても落ちません。immediateならどうだろ?

同じことを自分も悩んでた。 orz
302NAME IS NULL:2005/06/21(火) 00:41:53 ID:???
>>299

良かったらBULK COLLECTに変えた後の結果も教えてね。
303299:2005/06/21(火) 08:18:03 ID:???
>302
SELECT 〜 INTO BULK COLLECTにしたところ、
若干(数秒)速くはなったようですが、
あまり変わりませんでした・・・。

で、バインド変数で条件指定しているところを、
SQLで実行しているのと同じ固定値にしたら、
40秒で検索できました。

バインド変数を使っているから遅い、ってことのようです。
今日は動的カーソルを使って、全てリテラル文字列になるようにしてみるつもりですが、
こっちのほうが速いなんてありえるのかなぁ。
304NAME IS NULL:2005/06/21(火) 09:26:00 ID:???
>>301
レスありがとうございます。

新しく追加されたブラウザでの管理機能でセッション貼っているから
SHUTDOWNできないって事みたいですね。

さっき確認したのですが
OracleDBconsole止めてからブラウザでの管理機能は使えなくなってました。
使ったことないから気づかなかった・・orz
305NAME IS NULL:2005/06/21(火) 11:43:16 ID:???
>>303

Oracleのinitの「CURSOR_SHARING=SIMILAR」を設定してみるとか?
306NAME IS NULL:2005/06/21(火) 23:58:44 ID:7ULfsXQN
どなたか教えてください。

DBのレコードを大量に削除した後、
DBとそのINDEXにAnalyzeを実行しましたが、
逆に検索時間が遅くなってしまいました。

検索時間を早くする対処方法を教えて下さい。
307NAME IS NULL:2005/06/22(水) 01:18:19 ID:Xwpjr34c
無駄なBLOCKリードをしているのかもしれませんね。
DELETEではなく、Truncateしては駄目なのですか。
308NAME IS NULL:2005/06/22(水) 02:26:57 ID:???
>>306

OracleのDeleteは、そのBlockに将来また同じ値が挿入される事を
考えて論理削除しか行っていないからね。
307が言っている様にtruncateか、もしくはいったんtableをcompress=y
付きでexpして、impするしかないんでない?
309306:2005/06/22(水) 22:07:03 ID:???
>>307
>>308
truncateは運用の都合上できないので、
tableをcompress付きのexpして、
impする方法を考えてみます。

アドバイスありがとうございました。
310NAME IS NULL:2005/06/23(木) 01:34:18 ID:???
>>309
もう居ないかもしれんが・・・・・

テーブルの縮小(SHRINK)を使ってみては?
311NAME IS NULL:2005/06/23(木) 15:04:45 ID:GRcP4ShR
oracle10g を使ってるんだが、Web版のOEMが重すぎ。

Web版だからどの端末でも管理出来ると謳ってるが、セキュリティが甘くなるだけなんだよ。
OracleDBConsoleサービスはかなりメモリを取るし、CPU使用率も増えてやがる。

お願いだから、Oracleは余計な事をするな。
312NAME IS NULL:2005/06/23(木) 18:18:09 ID:???
PL/SQLでUTL_FILEパッケージを使ってファイル出力をする場合
改行コードをLFで出力するかCRLFで出力するか指定することは
可能でしょうか?
313NAME IS NULL:2005/06/23(木) 22:45:12 ID:???
>>312

PUTF
314NAME IS NULL:2005/06/24(金) 01:52:32 ID:5dUTvcr8
>>311

Grid Control鯖作ればいいじゃん?
これだったらエージェントのインストールだけですむし?
まあ、究極はOEMを使わないことだけどねw
315312:2005/06/24(金) 07:17:59 ID:???
>>313
ありがとうございます。
できればWindowsとUNIXで同じソースなのに
出力はcrlfとしたいのですがこういう場合はどうすればよいでしょうか?
316NAME IS NULL:2005/06/24(金) 19:28:54 ID:???
SQLローダーについて質問があります。

既存のテーブルにCSVファイルのデータを流し込みたいのですが、
条件によって処理を変えることはできますか?

既存テーブルにキーが同じデータが存在していなければ、そのままINSERT。
キーが同じデータが存在していれば、既存データのある項目とCSVの項目の合計値でUPDATEしたいのです。
317NAME IS NULL:2005/06/24(金) 21:07:49 ID:???
>>316

Trigger使えば?
318NAME IS NULL:2005/06/24(金) 21:20:34 ID:???
>>316
Where条件は出来るには出来るは、そんな複雑な事は流石に無理ポ

一度Workテーブルに一括ロードしてから、本番テーブルにInsert・Updateの方が良いのでは?
319NAME IS NULL:2005/06/24(金) 22:21:23 ID:???
やっぱり、SQLローダーでは無理でしたか。

今までは、PL/SQLで処理してましたが、毎日数万件から数百万件をバッチで処理してたので、
処理時間短縮になればと考えていました。
320318:2005/06/24(金) 22:40:47 ID:???
>>319
SQL*Loader ⇒ Insert Select ⇒ Update Select

の3発で出来るのではないかな?
恐らくPL/SQLでシコシコやるよりは、ずっと早いと思う。

もちろんSQL*Loader はダイレクト処理、Insert / Update はパラレル処理を行う。
321NAME IS NULL:2005/06/24(金) 23:01:20 ID:???
>>316

そのUPDATE+INSERTならMERGEにするのがいいかも。
322NAME IS NULL:2005/06/24(金) 23:49:50 ID:???
>>321
MARGEいいかもしれないですね。

ということは、SQLローダーで作業テーブルか何かに全部登録してしまって、
その後、MARGE使って一気に追加・更新してしまえば良いって事ですね。
323NAME IS NULL:2005/06/24(金) 23:51:30 ID:???
Pro*Cでやればいいよ
324NAME IS NULL:2005/06/29(水) 10:09:09 ID:G3urb/tw
質問です。

DBサーバ
WindowsNT4.0 + Oracle8.0.5(コードはSJIS)


クライアント
Red Hat Linux7.3 + java +jdbc(コードはEUC)


上記の環境で、
オラクルのとあるフィールドに半角カナが入っています。
それをクライアントからjava+jdbcで取得し
Stringに格納してファイルに出力をすると
特に、なんの変換も行っていないのに全角カナに
なります。

なぜでしょうか?
325NAME IS NULL:2005/06/29(水) 11:31:19 ID:???
>>324

自己解決しました。
GDの描画時点で変換されていました。

スレ汚しすんません。
326NAME IS NULL:2005/06/30(木) 00:10:59 ID:SHyCaJnD
Age
327NAME IS NULL:2005/07/02(土) 12:56:06 ID:5vQs+zhR
【OS】XP SP2
【DB】Oracle9.2.1
【事象】C#で、コネクトをオープン
【エラーメッセージ】System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
【対策】
調べたところ、「\oracle\ora92」にアクセスできる権限を増やすようになっていましたので、
「asp」、「network service」「iUser_xxx」「AUTHENTICATION_USER」を追加

XPのSP1では、上記対処方法で問題なくコネクトオープンできましたが、SP2ではエラーのままです。
他に対処する方法はありませんでしょうか?
328NAME IS NULL:2005/07/02(土) 13:58:11 ID:/sCLNsNm
FireWall関係じゃないの?あてずっぽうだけど。
329NAME IS NULL:2005/07/03(日) 00:19:06 ID:???
>>327
Oracleのバージョンは、9.2.0.1じゃなくてか?

9.2.0.6にパッチを当ててみれば?
330NAME IS NULL:2005/07/03(日) 01:50:32 ID:???
>>327

9.2.0.4+Patch 3095277を充てるか、もしくは一番手っ取り早い解決方法としては
9.2.0.5以上にしてしまえば解決する。
331NAME IS NULL:2005/07/03(日) 07:57:37 ID:B8mhAZ4F
>327 です。

すいません。Oracleは9.2.0.1でした。
客指定なんで、Oracleのバージョンをあげることはできないんです。
友人から、Oracleのポートを8080で指定してみれば?と言われたので、今日やってみます。
多分友人の言いたいことは、>328さんのおっしゃるFireWall関係の話だと思います。
9.2.0.5だったら、SP2問題は発生しないんですね。

また、報告します。みなさんありがとうございます。
332NAME IS NULL:2005/07/03(日) 15:26:15 ID:???
>>331

そのErrorはFirewallというよりも、ファイルのパーミッションに起因して
るんだわ。
もしパッチを充てられないのなら「\oracle\ora92」以下のファイルの共有
アクセスの設定で、一度許可のチェックボックスを外して、でもって再度
チェックを入れてみてくれ。
これで大抵の場合は解決するはず。
333NAME IS NULL:2005/07/03(日) 17:46:56 ID:NTB2FUF0
質問です。
SELECT - FOR UPDATE文ってどういう時に使うの?
そのトランザクション内でその値を使用している間は他から更新されないように、ってことかな?
#読み取り一貫性があるから他から参照するのは問題ないんだよね?

他に使うべきシチュエーションがあったら教えてください。
すいません、初心者で
334NAME IS NULL:2005/07/03(日) 18:41:27 ID:???
トランザクション分離レベルとして repeatable read を保証する必要がある場合。
動作としては>>333の理解で合っている。
335333:2005/07/03(日) 20:51:47 ID:NTB2FUF0
> 334
ありがとうございます。
ORACLEでは、SERIALIZABLEとREAD COMMITEDしかサポートしないときいたのですが、
データベースで明示的にトランザクションレベルが指定できないだけで、
SELECT FOR UPDATEを使えば REPEATABLE READになるということでしょうか。
もしよければ教えてください。

336NAME IS NULL:2005/07/03(日) 22:46:46 ID:???
他のトランザクションから更新されないならば、何度読んでも同じ値が返るのは当然
337NAME IS NULL:2005/07/03(日) 23:51:14 ID:j51O+RbF
>>332

あーーー。もう一回ここを見ておけば良かったと後悔しています。
結局、クライアント側のバージョンを9.2.0.5にしました。
9.2.0.5にUPしてもアクセス許可がどうたらというエラーが出ましたので、アクセス許可を与えて事なきを得ました。
これからもこんなエラーで泣く事が多々あると思いますので、次は、>332さんの方法で頑張ってみます。

ありがとうございました。

338NAME IS NULL:2005/07/05(火) 23:12:09 ID:uJo7tGIG
Pro*Cのトライアル版って入手できますか?
339NAME IS NULL:2005/07/06(水) 01:36:49 ID:???
DBの試用版にはいってるだろ。だぶん。
Client CD
340NAME IS NULL:2005/07/06(水) 05:15:54 ID:qLbhtRo3
>>333
SELECT ... FOR UPDATEは実際にUPDATEかます前にアプリ側で値のチェックをしたい時に使うんだと思うが。

>>334のいうようにREPEATABLE READの代わりに使用する、というのもあたってるけど、ちょい違う気が。

複数ユーザからの同時アクセス時に更新順位を保証するためには分離レベルだけで言うと
SERIALIZABLE以外には選択肢は無い。

しかしOracleのSERIALIZABLEは糞なんで、事実上、READ COMMITTEDしか使わない。

でもSELECT ... FOR UPDATEを使えばSERIALIZABLEを使わずとも更新順位の保証ができるので、
基本はREAD COMMITTEDで必要に応じてSELECTにFOR UPDATEを織り交ぜるんだと思う。
341NAME IS NULL:2005/07/06(水) 17:27:27 ID:R+DqNlQG
338 です。
>>339
入っていました。ありがとうございます。
342NAME IS NULL:2005/07/06(水) 20:39:46 ID:???
>>340
そもそもトランザクション分離レベルというのは更新の優先順位などとは全然
関係ないんだがな。トランザクション分離レベルが保証するのはあくまでも
複数のトランザクションが干渉しないという「トランザクション分離」について。
トランザクション間の更新順位などというものは複数のトランザクションの
依存関係の話だから真逆なわけ。
そのへん思い違いしているから「OracleのSERIALIZABLEは糞」なんて
誤解があるんだろう。

このスレの233からの流れが参考になるかも。

Oracle? DB2? Symfoware? HiRDB? SQL鯖?
http://pc8.2ch.net/test/read.cgi/db/1057059592/
343333:2005/07/06(水) 22:49:29 ID:gs8k9I9L
340,342 ありがとう。参考になります。
344NAME IS NULL:2005/07/06(水) 23:30:49 ID:WvE5DPIr
oracleでふりがなを50音順で並べたいのですが、
どうすれば一番早くできますか?
あ〜ん、A〜Zの順で出したいのです。
345340:2005/07/07(木) 01:39:28 ID:yi7K5JGB
>>342
残念。SQL92をよく読んでみろ。SERIALIABLEの説明のところには「更新をシリアルに行う」と書いてある。

先行トランザクションが後発のトランザクションの影響でロールバックを強制される場合があるOracleの
SERIALIZABLE実装は、別に「違反している」わけでないが・・・

SERIALIZABLEをどういう風に実装しているか、というのはRDBMSによってそれぞれ。
どれとは言わんがもっとましな動きをするRDBMSが実際にある。

で、結論はOracleのREAD COMMITTED + 必要に応じてSELECT...FOR UPDATEのパターンのみしか考えられんてこと。


346NAME IS NULL:2005/07/07(木) 02:24:56 ID:jdQVfjHg
>>344

alter session set nls_sort=japanese;とうまく組みあせろ。
347NAME IS NULL:2005/07/07(木) 07:14:18 ID:???
Oracleはかなり昔はREAD COMMITEDしかなかった。
TPC-CをやるためにSERIALIZABLEが後で追加された。

だってrollbackセグメントの読み取り一貫性があったから、分離レベルを使い分けなくちゃならんようなことが実質的になかった。

348340:2005/07/07(木) 07:33:17 ID:n7/aJRJ7
>>347 TPC-CをやるためにSERIALIZABLEが後で追加された。

そうなんですか。勉強になります。

「読み取り一貫性」は「マルチバージョニング」「MVCC」などの別の用語で
PostgreSQLやMySQL(InnoDB)にも実装されてます。

マルチバージョニングを使えるのを前提とすると、REPEATABLE READの存在価値というのが
わたしにゃどーしてもわからん。InnoDBが何でRRがデフォルトなのかいまだに謎。

Oracle開発者も「だっていらないでしょ」と思ってREPEATABLE READを実装していないんでしょうか。
349340:2005/07/07(木) 07:37:12 ID:n7/aJRJ7
>>347>>348

ああ、でもOracleもversionいくつだか(5? 6? 7?)になってから読み取り一貫性
(SCNを使ったrollbackセグメント読み取り)が実装されたと聞いています。

それ以前はどういう状況だったんでしょうか。
350NAME IS NULL:2005/07/08(金) 02:37:34 ID:???
>>345

serializableは、シリアルに実行した場合にとりうる結果以外の結果には
ならないことを保証するだけで、その順序を保証するわけじゃない。
やっぱりそのへんちゃんと理解してないんじゃないか?

規格で保証してないことを勝手に期待して「まし」だ「糞」だとか言ってもなぁ。
351345:2005/07/08(金) 03:43:14 ID:56uVMvCR
>>350
本当にSQL92読んだのか?

4.28 SQL-transactions
http://www.dementia.org/~shadow/sql/sql1992.txt

それに俺は更新順序まで保証するかどうかはRDBMS開発者による上記既定の解釈に委ねられていると言っているんだが。

だからまずいろんな実装があってよいわけで、その上で利用者としてはどの実装が良いかを評価するという話でしょうが。
352NAME IS NULL:2005/07/08(金) 13:14:02 ID:RBhrvYTe
ディスクやテーブルスペースなどの容量の見積もりをすることになったのですが
1.参考にできるサイトや書籍があったら教えてください。
2.あとからディスクの追加やテーブルスペースの拡張をしなくていいように
見積もれといわれているのですが、テーブルや索引に変更がないものとして、
どの程度正確に見積もれるものか教えてください。
3.容量見積もりをサポートしてくれるツールがありましたら教えてください。
Oracleは9iの予定。当方はOracleのプログラム開発は経験ありなのですが、
運用系はあまり経験がないレベルの者です。
353NAME IS NULL:2005/07/08(金) 13:55:01 ID:???
>>352

喪前の所はテストも何にも無しでいきなりエイヤッでDB作ってそのまま本番
運用に入るのか?すげぇな。

もし正確にDBのサイジングを実施したいのなら、まずはテストDB作って、
でもってそこに本番環境よりも少ないサンプルデータ流し込んで、その時の
サイズを参考にするのがベストだと思うが?
354NAME IS NULL:2005/07/08(金) 15:25:50 ID:???
質問させて下さい。
文字列の % をLIKEで検索出来るでしょうか?
postgreSqlなら
SELECT * FROM TABLE WHERE TABLE LIKE '%\\%%'
で出来るんですけどOracle9iだとヒットしません。
よろしくお願いします。
355オラオラ:2005/07/08(金) 15:29:19 ID:Ow+bqtop
Windows2003 server に 8.0.6を入れたんだけど、
data base assistantが起動しません。
インスタンスを作りたいんですけど、どうすればいいのでしょうか?
356NAME IS NULL:2005/07/08(金) 22:36:39 ID:plz9Q6QG
>>354

SELECT * FROM TABLE WHERE COL1 LIKE '%1\%%' escape '\';
357NAME IS NULL:2005/07/08(金) 22:43:27 ID:plz9Q6QG
>>355

dbcaなんて軟弱なものに頼るんじゃなくて、マニュアルで作れ。
窓だったらoradim使ってインスタンス作成、でもってそのあとは
sql*plusでcreate dbだっ!
358NAME IS NULL:2005/07/08(金) 23:17:59 ID:???
>>355
その組み合わせがそもそもサポート外なきがする
359NAME IS NULL:2005/07/08(金) 23:21:37 ID:???
>>352
1.ttp://otn.oracle.co.jp/skillup/oracle9i/index.html
2.見積り時に初期データ件数や今後の増分まで完璧に分かるなら100%
3.OTNにExcelがあったと思う。後はObjectBrowserERとか。

実際には2.で必要な初期データ件数なんかが設計時には分からないから
>>353のようなやり方になる。


>>355
8.0.6はWin2003の動作保証対象外。
そもそもOracle自体がサポート対象外のリリースだよ。
素直に9iか10gにしとけ。
360NAME IS NULL:2005/07/09(土) 02:51:19 ID:???
>>309

遅レスだけど、8i以降ならexp/imp使わなくても表の移動で表の
再編が出来る。

ALTER TABLE 表名 MOVE TABLESPACE 表領域名;
361NAME IS NULL:2005/07/10(日) 10:40:33 ID:aSsiSYyD
Oracle10gで、SQL文の長さって制限あるの?
開発言語にもよるのかな?
362NAME IS NULL:2005/07/10(日) 14:09:57 ID:???
>>361

9iは64kだった。
10gも変わってないんでないの?
363361:2005/07/10(日) 14:32:46 ID:aSsiSYyD
>362
サンクス
SQL文に改行入れた場合って、改行コード込みなんでしょうかね。
364NAME IS NULL:2005/07/10(日) 14:38:29 ID:???
>>363

試したことはないけど、多分込みになる様な気がする。
365NAME IS NULL:2005/07/11(月) 01:52:05 ID:9DSygcAc
質問っす。知ってたら教えて!!
Oracle10Gはコストベースがデフォでルールベースが廃止されて
いるのだとすると、テーブルに統計情報が無い場合って
ただ遅くなるだけ?もし統計情報が無いのにSQLが早い場合って
何が考えられるの?
366NAME IS NULL:2005/07/11(月) 10:24:48 ID:???
デフォルトのコスト情報がつかわれたような...
そのプランが早いか遅いかは状況次第。

それか、統計がなかったら統計をダイナミックサンプリングするから、同じプランでも微妙に遅くなるかも。
367NAME IS NULL:2005/07/11(月) 12:41:36 ID:???
>>361
開発言語に依存してどーすんだよ (((( ;゚Д゚)))ガクガクガクブルブル
368NAME IS NULL:2005/07/11(月) 16:33:32 ID:???
ORACLE初心者ですが、下記のようなSQLは実現出来ないのでしょうか?

DELETE FROM TABLE1
FROM TABLE1
LEFT JOIN TABLE2
ON TABLE1.A=TABLE2.A
WHERE TABLE1.B=TABLE2.B

A、BはそれぞれTABLE1とTABLE2の要素です。
稚拙な質問で申し訳ありませんが、どなたかご教授ください。
369368:2005/07/11(月) 18:17:08 ID:???
すいません。
自己解決しました。
お騒がせしました。
370NAME IS NULL:2005/07/11(月) 18:27:55 ID:???
>>353
>>359
返事が遅くなってすいません。回答ありがとうございます。
じつはテストDBを使っての容量の推測は終わってるんですが、納品物でこういう
計算資料が欲しいといわれて見せられたのがOTNのまさにその資料でした。
データ件数は予想可能なのですが、項目や索引の追加はありそうですし、
無駄に大きくとったvarchar2の使用率などわからないので計算では出せなそうです。
そのことはお客さんにも話したのですが、開発標準にあるので必要、誰もあとから検証
しないから形だけでよいとのこと。う〜ん世の中こうやって回ってるんですね。
371NAME IS NULL:2005/07/11(月) 22:11:55 ID:???
>>370

varchar2は無駄に大きくとってもそんなに要領を圧迫しないよ?
何のためのvarchar2よ?
372NAME IS NULL:2005/07/11(月) 23:21:44 ID:???
>>371
仮にvarchar2(100)で定義されていた場合、各レコードそれぞれ何バイトの
データが入っているかがわからなくて、レコードの平均長が求められないのでは?

>>370の場合は適当に資料揃えればいいんだから、
テストDBにanalyzeかけてレコードの平均長を算出。
後はOTNの見積りにぶち込んで適当に体裁整えれば完成。
373NAME IS NULL:2005/07/12(火) 00:54:51 ID:BXJ4PnWo
oracle8.0
drop table したテーブルを復旧する方法はありますか??
drop tableってデータファイルから完全に消えちゃうんで、
復旧不可能って聞いたことがあるんですが・・・。
374NAME IS NULL:2005/07/12(火) 01:01:08 ID:???
>>373

喪前に根性と気合と、かつ運と環境があるのなら出来る。

運とは・・・
・DBがArchivelog modeで動いていること
・Drop tableする前のDBのFull backupがあること
・Drop tableする前までのArvhive log fileが全てあること

環境とは・・・
・Drop TableをしてしまったDBの複製を作れる環境

上記の二つが揃っていた場合、point-in-time recoveryを行って
drop table直前のDBを別の環境に再作成しろ。
でもって、その後はexp/impするなりすれば復旧できる。
375NAME IS NULL:2005/07/12(火) 01:21:14 ID:BXJ4PnWo
>>374
運がなかったみたいです・・・。
本番DBのFULL BackUpではなく、
別環境に本番DBを毎日インポートしたインスタンスがあります。
本番はアーカイブログモードなんですが・・・。
これじゃあダメですよね?

374さんありがとうございました。
376NAME IS NULL:2005/07/12(火) 01:40:32 ID:???
>>375
別環境にimpした中に、drop前のテーブルがあるだろ?
ある程度は救えるんでないの?
377NAME IS NULL:2005/07/12(火) 02:11:43 ID:???
>>375

運が無かったか・・・。
それにしてもFull backup取ってないのに、archive logモードで
運用する意味って何なんだ・・・?
滅茶苦茶メリットが少なそうなのだが・・・。
378NAME IS NULL:2005/07/12(火) 09:06:36 ID:6PWarFlF
Nested Loop と Hash Joinのコスト比較ができる方法はないですか。
Hash Joinのほうが効率がよくなるケースを具体的に出したいのです。
#テーブルの50%以上結合の場合、とか何件以上結合する場合、とか
知恵があったらお願いします。
379NAME IS NULL:2005/07/12(火) 18:07:06 ID:+/u7RXhg
OracleにBログ、もしくはPログろ呼ばれるものってありますか?
380NAME IS NULL:2005/07/12(火) 18:10:25 ID:???
>>379
BLOB?
381NAME IS NULL:2005/07/12(火) 18:17:05 ID:+/u7RXhg
>>380
そうだ!そうです!!
先輩はきっとBLOBのデータを消せと言っていたのに、
私が勝手にBログと聞き違えたっぽいです・・・。
OracleにBログなんて呼ばれるものあったっけ!?
と思って聞いてみたのですが、BLOBです、きっと。
380さん、ありがとうございました。
382NAME IS NULL:2005/07/12(火) 18:33:55 ID:IGlVpn3D
>>332

もう見てないかもしれないけれど。
おっしゃるとおりの方法で、エラー回避できました。
ありがとうございました。
383NAME IS NULL:2005/07/12(火) 19:31:27 ID:duA3FLcb
>>381
いいから先輩にもう一度確認しろ。
「多分」でデータ消すのはアホ。
384NAME IS NULL:2005/07/12(火) 21:23:17 ID:???
>>382

見ているよ。
お役に立てて何より。
385NAME IS NULL:2005/07/12(火) 23:20:00 ID:???
>>365
10gでは自動的に統計情報が収集されるそうな
(どういうタイミングかはわからんけど)
386NAME IS NULL:2005/07/12(火) 23:21:09 ID:???
>>378
SQLトレースとると、オプティ麻衣座がみなすコストがわかる。
ってか、時間測ってくらべたら?
387NAME IS NULL:2005/07/12(火) 23:23:03 ID:???
>>365
統計情報はSQLのコスト計算に使うだけなので、統計がある/ないだけではSQLが早いか遅いかの理由にはならん。
388NAME IS NULL:2005/07/13(水) 06:42:39 ID:VWlRg0ra
>365
ありがとう
>387
10Gってコストベースだから、なければ遅くなるような気がしてます。
だから毎日アナライズするんでわ・・・
389NAME IS NULL:2005/07/14(木) 00:11:49 ID:9pp8y8je
OracleOraHome92HTTPServer を開始できましぇん。。
開始したらすぐ勝手に停止します。
なぜでしょう。。
390NAME IS NULL:2005/07/14(木) 00:13:49 ID:???
IISとか他のWebサーバがOSブート時に自動起動してポート80を占有していないか?
サービスをもう一度見直せ。
391NAME IS NULL:2005/07/14(木) 00:25:06 ID:9pp8y8je
みあたりませんです。。
ちなみにApacheは開始できます。
netstatしても80はないんでつが。。
392NAME IS NULL:2005/07/14(木) 00:52:24 ID:???
>>391

多分ドライブレターが間違って登録されている可能性が大だな。

1. cd \\oracle\ias\Apache\Apache
2. net stop OracleHTTPServer
3. apache -u -n OracleHTTPServer
4. 窓のサービスを開いて「OracleHTTPServer」が消えている事を確認 (時間がかかるかも?)
5. apache -i -n OracleHTTPServer -f "[正しいドライブレター]:\oracle\ias\Apache\Apache\conf\httpd.conf"
393NAME IS NULL:2005/07/14(木) 18:44:06 ID:???
質問ですが!!
Triggerの中でMergeって使えますか???
394NAME IS NULL:2005/07/14(木) 18:59:46 ID:???
>>393 コードはこんな感じです。
BEGIN

MERGE INTO I_仕入明細
USING A_仕入明細
ON (I_仕入明細.事業所CD = :OLD.事業所CD
AND I_仕入明細.KEY = :OLD.KEY
AND I_仕入明細.訂正区分 = :OLD.訂正区分)

WHEN MATCHED THEN
UPDATE
SET I_仕入明細.生販単価 = 99999

WHEN NOT MATCHED THEN
INSERT
VALUES( :OLD.事業所CD
,:OLD.KEY
,:OLD.訂正区分
,:NEW.生販金額
,:NEW.伝票生販金額
,:NEW.入力者CD);

END;
395NAME IS NULL:2005/07/14(木) 20:26:48 ID:4gxhhHw/
よろしければお知恵を貸して下さい。

1つのストアドプログラムの中で
インスタンスAのテーブルからデータをセレクトして
インスタンスBのテーブルを更新したいのですが
(AとBは異なるSIDです)
可能でしょうか
396NAME IS NULL:2005/07/14(木) 20:42:29 ID:???
DBリンクを使用すれば出来ますよん。
397NAME IS NULL:2005/07/14(木) 21:20:35 ID:Nm91mRyP
Oracle 9iです。
以下のSQL文を実行するプロセスが複数個いるのですが、
これでデッドロックが発生するかどうかでもめています。
こんなのの競合でデッドロックするものでしょうか?

select * from X for update;

目的は表Xの全行に対してロックをかけるためなのですが、
そのことの是非はこの際、無視してください。

#デッドロックが起きたと言って来てるのですが、信じていいやら…
398NAME IS NULL:2005/07/14(木) 21:44:26 ID:???
>>397

Dead lockが起きたというのなら、まずora-60が発生しているか確認する。
でもって、必ずtraceが吐かれるから、そいつを見ればどのStatementが
Dead lockの原因になったかが分かる。
起きる・起きないをここで議論するよりも、上記のログの確認が一番手っ取り
早いのでは?
399NAME IS NULL:2005/07/14(木) 21:51:43 ID:???
>>398
Traceは見ました。
「select * from X for update;」で発生しているのも確認しました。
ただこのステートメント「だけ」で起きるものなのかどうかを
気にしています。#そう書けばよかったです。ごめんなさい。

表X上の行に対して事前にロックをかけているならば、ここでデッドロックが
おきるのは納得できるのですが、「そんなことはない 」と言い張っています。

こんなselect単体でデッドロックがおきるものなのでしょうか?
400NAME IS NULL:2005/07/14(木) 22:06:41 ID:???
最終的にSolaris8 に Oracle8i(8.1.7.4) をのせたいのだが、
手元にあるのは8.1.7.0のCDのみ。

インストールした後、パッチをあてようとセキュリティアラートを見ると8.1.7.4のものばかり・・・。

8.1.7.0 から 8.1.7.4にするにはどうしたら良いの?

誰か教えて。。。
401NAME IS NULL:2005/07/14(木) 22:09:58 ID:???
>>399
1つのトランザクションが1つのTableにLockを掛けただけでは
デットロックは発生しませんよ。
2つ以上のトランザクションがそれぞれ同じ2つ以上のTableをLockしようとした場合に
デットロックの可能性が有りますよん。
402NAME IS NULL:2005/07/14(木) 22:11:32 ID:???
>>399

セルフデッドロックが起きているっていうのか?( ゚Д゚) ハァ?
トレースにはどのリソース、オブジェクト、トランザクション、ロックモードとか
出力されるはずだ。
とりあえず貼り付けてみろ。

403NAME IS NULL:2005/07/14(木) 22:13:42 ID:???
>>400

1. ボラクルと保守契約を結んでCDを(σ´д`)σゲッツ(死語)
2. metalink.oracle.comから落とす(こいつも保守が必要?)
404NAME IS NULL:2005/07/14(木) 22:22:22 ID:???
>>403
ありがとう。。。

8.1.7.0のCDだけでは無理って事だよね。

それがわかればOK。
とりあえず今日は帰れるよ。

今週末の連休はなくなりそうだけど・・・・。
405NAME IS NULL:2005/07/14(木) 22:26:28 ID:???
>>404

モツカレー。
書き込み時間、カコイイッ!(´∀`)
帰りにパチンコ行くしかっ!
406NAME IS NULL:2005/07/14(木) 22:32:10 ID:???
>>404

ハツカレー。
>>405に同意!
407NAME IS NULL:2005/07/15(金) 09:28:28 ID:???
下のコードはは単体では動くのですが、プロシージャとかからだと
「ORA-04091: table A618.A_仕入明細 is mutating, trigger/function may not see it
ORA-06512: at "A618.TG_A_仕入明細2", line 2
ORA-04088: error during execution of trigger 'A618.TG_A_仕入明細2'」
というエラーがでます。どうしてでしょう??
*******************************
BEGIN

MERGE INTO I_仕入明細
USING A_仕入明細
ON (I_仕入明細.KEY = A_仕入明細.KEY)

WHEN MATCHED THEN
UPDATE
SET I_仕入明細.生販単価 = 999

WHEN NOT MATCHED THEN
INSERT ( 事業所CD
,KEY
,仕入NO
,訂正区分
,削除FLG
,行
,商品CD
,JANCD
,商品名
,カナ名
,入数
,ケース数
,バラ数
,総数)
VALUES( A_仕入明細.事業所CD
,A_仕入明細.KEY
,A_仕入明細.仕入NO
,A_仕入明細.訂正区分
,A_仕入明細.削除FLG
,A_仕入明細.行
,A_仕入明細.商品CD
,A_仕入明細.JANCD
,A_仕入明細.商品名
,A_仕入明細.カナ名
,A_仕入明細.入数
,A_仕入明細.ケース数
,A_仕入明細.バラ数
,A_仕入明細.総数);
END;

408NAME IS NULL:2005/07/15(金) 11:50:07 ID:???
>>407

MERGE INSERT毎にCOMMITしたら、どうなる?
409NAME IS NULL:2005/07/15(金) 13:16:12 ID:???
>>408
,A_仕入明細.バラ数
,A_仕入明細.総数);
COMMIT;
END;
ってな感じで書いたけどエラーがでました_| ̄|○
書けない・・・?
410NAME IS NULL:2005/07/15(金) 13:40:17 ID:???
>>409

MERGEはUPDATE文と異なって、同一行を何度も更新することができないはず。
なんで、COMMITすれば、チャラになるかなぁと思った。

う〜ん。
ループかなんかで複数のレコードをMERGE INTOしているんだろけど、
I_仕入明細の同一行に対しては、UPDATE、INSERTは1回だけにするように
改修できないか?無理なら、MERGEをやめるしかないと思うよん。
411NAME IS NULL:2005/07/15(金) 15:21:16 ID:???
>>410
MERGEって、

MERGE INTO I_仕入明細          更新先 と
USING A_仕入明細             更新元? で
ON (I_仕入明細.KEY = A_仕入明細.KEY) 条件とあうものがあれば

WHEN MATCHED THEN で
あわなければ
WHEN NOT MATCHED THENを  
A_仕入明細のデータの数だけ実行するという考え方でおKですか??

>> ループかなんかで複数のレコードをMERGE INTOしているんだろけど
これの意味がよくわからなかったっす(つД`)

ちなみにコードはトリガー内に記述してあります。。
412NAME IS NULL:2005/07/15(金) 16:32:09 ID:???
>>411

なるほど、それはMERGE文の問題ではなくトリガー制限の問題ではないかい。

CREATE TRIGGERのON句で指定したTableは、A_仕入明細か?
それと、CREATE TRIGGERにFOR EACH ROW句を指定してないか?
だとすると、A_仕入明細はトリガー内では変更表の扱いになるので、
エラーを回避するには、FOR EACH ROW句をはずしてエラーにならないかどうかじゃな。
413NAME IS NULL:2005/07/15(金) 16:35:48 ID:???
突然ですが、検索エンジンを自分で作りたいのですが
しっている人がいれば教えていただきたいのですが。
今現在C言語を学校で勉強しています。
最近ファイル処理を勉強しました。FILE *fout ; など
C言語で開発できるのでしょうか。
414413:2005/07/15(金) 16:37:12 ID:???
検索エンジンについて勉強して
自分で開発したいんです。
そこで、皆さんのなかでしっている人が
いれば、勉強の仕方を教えていただければと
思っておりました。

415NAME IS NULL:2005/07/15(金) 17:59:26 ID:???
>>414

バブルソートやハッシュ、B−Treeとかいったアルゴリズムは理解しとんの?
そもそも、スレ違いや。
416413:2005/07/15(金) 18:13:24 ID:S3xcJdnv
>>415
恥ずかしながら
まだコンピューターを勉強し始めの
学生の身分です。
はじめに何をしたらいいのか、
参考書とか知っていたら教えてもらいたいのですが。



417NAME IS NULL:2005/07/15(金) 18:51:13 ID:???
Oracle10g使っていての質問です。

はっきり言ってOracleの問題じゃないかも知れませんが、
実行のうちIOがほとんどを占めていて
非常にまずい状態です。

Window2003Standard+Oracle10gでIOを速くする方法、
もしくは、何か他の方法を教えてください。
ちなみにアナライズはやってます。

ディスクはRAID5でDBで150G前後使っています。
これを交換することは出来ません。

どうぞよろしくお願いします。

418NAME IS NULL:2005/07/15(金) 19:15:47 ID:???
>> なるほど、それはMERGE文の問題ではなくトリガー制限の問題ではないかい。
俺もそうかもと思っています。

>> CREATE TRIGGERのON句で指定したTableは、A_仕入明細か?
A_仕入明細も指定しています。

>> それと、CREATE TRIGGERにFOR EACH ROW句を指定してないか?
>> だとすると、A_仕入明細はトリガー内では変更表の扱いになるので、
>>エラーを回避するには、FOR EACH ROW句をはずしてエラーにならないかどうかじゃな
実際のこーどには :OLD.行名 など使いたいのですが、
FOR EACH ROWをはずすと :OLD を使用しているのがエラーになってしますので・・・

やはり無理ですかね・・・。・゚・(ノД`)・゚・。
419NAME IS NULL:2005/07/15(金) 22:01:36 ID:???
>>417

Raid 5で組んでいる時点で終わってるんだけどな。
まずI/Oっつっても、Readが多いのか、Writeが多いのか、どっちなんだ?
それによって対応方法も全く違ってくると思うぞ。

考えられる事は・・・
・Readが多い場合
1. db_buffer_cacheが適切に設定されているか確認
2. db_file_multiblock_read_countの設定 (RaidのStripeSizeも確認しろよ)
3. タコなSQLのチューニング (ちゃんとIndex使っているか?)
4. pga_aggregate_targetの適切な設定 (Sort処理が多い場合ね)

・Writeが多い場合
1. db_buffer_cacheが適切に設定されているか確認
2. db_writer_processesの数を増やす
3. fast_start_mttr_targetの設定値をビジネスのニーズに合わせて決める

こんなところか?
まだ出来そうな気がするが、まあ、後は他の誰かが突っ込んでくれるだろう。
420NAME IS NULL:2005/07/15(金) 22:31:04 ID:???
>>416

俺なら、でかい本屋に行って自分にあった本を探すな。

最初はあまり難しそうな本を買わずに、はじめての・・・とか、初心者向けの本を買って、
記載されているコードを片っ端から入力してコンパイルして実際に実行してみる。
その次は、応用編と関数辞典の本を買ってきて、とりあえず理解できなくても最初から最後まで読破してみる。
そしてら、いろんな奴が書いたコードを眺めてみる。
なんでこんなことしてんだろ、そーいえば、あの本にこんなことが書いてあったな・・・となる。

まあ、こんな感じで、俺はやってきたぞ。
421NAME IS NULL:2005/07/15(金) 22:47:57 ID:???
>>418

う〜ん。無理じゃなぁ。
俺なら、トリガーはやめて、トリガー起動のきっかけとなるDML操作をストアド化して、
そちらでMERAGE文なりを実行するな。その方が拡張性も保守性も高い。
422NAME IS NULL:2005/07/16(土) 02:25:36 ID:???
>>419

後から考えたらpga_aggregate_targetはWriteの方だったよ・・・。
欝だ、氏のう・・・。
それとWriteにはlog_bufferのチューニングもあるな。
423NAME IS NULL:2005/07/16(土) 13:25:50 ID:???
>>416
情報処理試験の勉強がいいと思う。
>>415さんが書いてるようなこともどんなものかくらいは分かるし,
プログラミングの知識も付くし,資格取れれば就活の役にも立つでしょ。
まだ若いんだし,いきなり目的に向かわず回り道するのがいいと思うよ。
と三十路になった俺が言ってみる。
424NAME IS NULL:2005/07/17(日) 13:33:19 ID:Jh3gyMq0
Pro*Cからストアドファンクションを呼び出す場合の質問です。
ストアドファンクションにvarcharを渡して結果をセットしてもらって
返してもらうようなストアドファンクションがあるとします。
このストアドファンクションは場合によっては何もセットしないで返す
場合があるのですが、このときNULLが返ってきたといってエラーが発生します。
これは仕様なのでしょうか?
何かセットしておくとエラーは発生しません。
425NAME IS NULL:2005/07/17(日) 13:42:46 ID:???
Pro*Cって使ったことないんだけど、NVLとか使わないとダメなんじゃね?
426NAME IS NULL:2005/07/17(日) 14:27:26 ID:???
>>424
NULL判定にはインジケータを使うんじゃなかったっけ。
427NAME IS NULL:2005/07/17(日) 15:04:56 ID:Jh3gyMq0
242です。
インジケータを使うことは知ってますが、今回質問したストアドファンクションをコール
したところではインジケータは指定してませんでした。他のSQL select 〜 into :buf:indicator
的な書き方をしたところもあります。そのようなところではエラーは出ません。
確かにおっしゃる通りインジケータを使用していればエラーが出ないのかもしれないです。うーむ。
428NAME IS NULL:2005/07/17(日) 15:06:55 ID:Jh3gyMq0
247です。書きこみの
> 242です。
は 424です。失礼しました。
429NAME IS NULL:2005/07/17(日) 15:11:58 ID:Jh3gyMq0
428です。またまた間違えました。
書きこみの
> 247です。 書きこみの
は 427の間違いです。失礼しました。


430NAME IS NULL:2005/07/17(日) 23:42:43 ID:???
>> 427, 428, 429

うちら、そんなに細かい所気にしないから大丈夫だよ。
流れで大体分かるし?
431NAME IS NULL:2005/07/18(月) 12:19:36 ID:???
通常のBツリーインデックスつくるとき、1インデックスあたりカラム数っていくつまでOKなの?
数多くとった場合に容量が大きくなる以外の問題ってありますか?
432NAME IS NULL:2005/07/18(月) 12:45:23 ID:???
>>431

ヒント: 実行計画
433431:2005/07/18(月) 12:58:56 ID:???
>432

オプティマイザの動きが変わるということでしょうか?
統計情報が変わるから?インデックスのリーフが細かく分かれるから?
難しい。。。

434NAME IS NULL:2005/07/18(月) 15:09:58 ID:1ucbz+oH
424, 427, 428, 429 です。
その後、買おうとか思っていた
OracleC/C++実践入門 Pro*C/C++とOCIによるDBプログラミング
DBMagazine SELECTION を買いました。
まだ確認していませんが、謎が解けそうです。
435NAME IS NULL:2005/07/18(月) 17:59:17 ID:???
>>431

パフォーマンスさえ気にしなければ、結合キーのカラム数に制限はないと思う。

ただ、経験的に言わせてもらうと結合インデックスのカラム数の上限は、3か4つだな。
俺だったら、そーいったテーブルの主キーは、単なるシーケンスキーにしてしまって、
意味のないものにしてしまう。
何故と聞かれると、…経験的にだ。
まぁ、正規化論を持ち出せば、複数の結合キーで完全従属の関係が成立するのは困難だろーからだ。

436NAME IS NULL:2005/07/18(月) 21:44:30 ID:c9Olrm+h
表結合時の負荷について質問です。
表結合するときは、副問い合わせで予めレコードを絞ってから
結合すると負荷が少ないと聞きました。
例えば、

-- 普通の結合
SELECT TBA.COLA, TBA.COLB
FROM TBA, TBB
WHERE TBA.COLA = TBB.COLA
AND TBB.COLC = 'ABC'
/
-- 負荷が少ない結合
SELECT TBA.COLA, TBA.COLB
FROM TBA,
(SELECT TBB.COLA
FROM TBB
WHERE TBB.COLC = 'ABC') TBB
WHERE TBA.COLA = TBB.COLA
/

こんな例が挙げられていたのですが、
Oracleが内部でやってる事って結局同じなんじゃないかと思うんです。
(レコードを絞ってから結合するって意味では)

後者のSQLの方が本当に負荷は少ないんでしょうか?
437NAME IS NULL:2005/07/18(月) 22:06:49 ID:???
>>436
それだとたぶん同じ。プランをとってみれ。

- 絞ってからジョイン
- ジョインしてから絞る
では絞ってからジョインしたほうが早くなるが、それはオプティマイザの仕事。
だから、簡単なSQLなら結果は同じになる。
438436:2005/07/18(月) 23:00:25 ID:???
>>437
ありがとうございました。スッキリしました。
439417:2005/07/19(火) 10:02:15 ID:DguP5aqJ
>>419さん
返事が遅くなって申し訳ありません。OCN規制くらってました。

RAID5は致命的なんでしょうか?
RAID6も検討したんですが、お金が足りず、
RAID10との比較で候補が多いRAID5になったのです。

納期が延びそうなんで、教えていただいた事を
いろいろ試してみたいとおもいます。

ありがとうございました。
440NAME IS NULL:2005/07/19(火) 10:38:22 ID:???
>397, >398です。自己(?)解決です。
Oracleからの問い合わせ結果が来ました。
#担当が問い合わせしていたようです。

select * from X for update;
update X set …
commit

を実行するプロセスが3個で発生するそうです。
Oracle Database アプリケーション開発者ガイド - 基礎編
10gリリース1(10.1) (B12494-01)
p5-17 行ロックの明示的な取得
読め、とのことでした。

#うちのOracleは10だったんだ…

こんなパターンがあるとは知りませんでした。少し恥ずかしい。
441NAME IS NULL:2005/07/19(火) 10:58:16 ID:???
WindowsのOracle9iでWindowsのドメインを変更したら

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does no

が出たらしいのですが、なぜでしょうか?
再起動したら出なくなったらしいです。
442NAME IS NULL:2005/07/19(火) 11:37:08 ID:???
>>439

Oracle DBでRaid 5はかなり致命的だね。
Raid Controlerがかなり優秀ならいいんだけど、間違いなくパフォーマンスは
Disk I/Oに引っ張られる。
ちなみにボラクルの推奨はS.A.M.Eと言って「Stripe And Mirror Everything」と
いうものだ。
443NAME IS NULL:2005/07/19(火) 12:07:04 ID:???
確かにRAIDコントローラがへたれだと高I/Oはきついね。
RAID5でも普通の表領域とTEMPとUNDO(RBS)とREDOは別の障害グループできれば
別チャネルに配置してれば少しはましなんだけど、全部1つの論理ディスクに
詰め込んでると最悪。そのくせなぜかパーティションは細かく切ってあったり(笑)
444417:2005/07/19(火) 13:58:33 ID:DguP5aqJ
>>442,443

そうなんですか・・・。RAID10だとDisk4台いるからなぁとか
安易に決めてしまってorz.

ちなみにRAIDコントローラはIBMServerRAID7tです。
これAdaptecのSerial ATA RAID 2410SA と同じものだとおもいます。
やっぱりだめだめですかね。
つーかSATAってなめてんのか状態ですかね。

だってお金ないんですもの。
利用系が決まってないのに、マインニングかなにかしりませんが、
とりあえずデータをDBにつっこめ指令でこんなことやってます。

5分ごとに13000点のシーケンサからの情報を
DBにつっこむ仕事なんですよ。
とりあえず2分で仕事は済んでるんですが、
デイリーバッチで削除でサーバが死にそうになってます。
追いついてるんでとりあえず大丈夫ですが、
これに利用系が始まったらガクブルです。

いろいろありがとうございました。
445NAME IS NULL:2005/07/19(火) 15:10:16 ID:???
削除バッチ時に通常の運用を止められるなら、残すデータだけを引き抜いて、
テーブルをtruncate、dbloaderで再ロードというのも手なのかな。
止められない場合は広い範囲での広域削除より1件ずつの削除が早いことがあるから、
削除対象のキーを抜き出しそれを元に1件ずつ(または数件ずつ)delete/commitを
発行というのも試してみよう。
446NAME IS NULL:2005/07/19(火) 15:31:26 ID:2igzNlS/
Oracle9.2
OSはWindows2000 Server です。

リフレッシュが終了した時点で、ストアドを実行させたいんですけど、
非同期な無限ループプログラムでも作って、
データディクショナリを監視してなきゃ無理ですか?
447NAME IS NULL:2005/07/19(火) 16:17:15 ID:???
>>446

リフレッシュって、Materialized Viewのリフレッシュのこと?
448NAME IS NULL:2005/07/19(火) 18:38:54 ID:2igzNlS/
>>447

そうです。MVのリフレッシュ時になります。
リフレッシュしてる間は、データディクショナリみれば分かるんですが、
リフレッシュ完了とともに、ストアドを呼んで、他のテーブルのデータを
更新したいんです。
449NAME IS NULL:2005/07/19(火) 20:50:04 ID:???
>>448

なんでなんで?

BEGIN
--
DBMS_MVIEW.REFRESH('mview??',・・・);
--
UPDATE TanoTable SET ・・・;
または、
TanoTable.woKoshinsuruProce(・・・);
--
END;

じゃー、なんで駄目なの?
450NAME IS NULL:2005/07/19(火) 23:06:29 ID:???
>>441
WindowsサービスとかでOracleをいじる場合、OS認証でOracleにアクセスする。
Oracleが動作するユーザーの情報が変わるようなことをすると、おかしなことになるかも。
451NAME IS NULL:2005/07/19(火) 23:35:37 ID:6h7uGnsY
大型ストレージだと、パフォーマンスにおいてRAID5や6とRAID10との差は無いに等しいんだがな。
452NAME IS NULL:2005/07/19(火) 23:59:30 ID:???
>>451

大型ストレージはGBクラスの馬鹿でかいCacheが乗っているからね。
でもここで言っているのは窓に引っ付けている様なものだからね('A`)
その性能は推して知るべしかと・・・。
453NAME IS NULL:2005/07/20(水) 09:14:38 ID:mzF3WcDr
高い高いっていうけど
oracleって実際いくらぐらいするの?
どこで価格わかります?
454NAME IS NULL:2005/07/20(水) 09:55:11 ID:???
500万くらい
455NAME IS NULL:2005/07/20(水) 10:28:00 ID:mzF3WcDr
>>454
定価ですよね?
実勢売価ってわかります。
456NAME IS NULL:2005/07/20(水) 10:50:39 ID:GjU77huE
代理店に電話するのがはやいぞ。近くのOracleの支店でもいいぞ。

この前10g Standard Edition One で10万ぐらいだったぞ。

大規模は知らん。
457NAME IS NULL:2005/07/20(水) 11:07:21 ID:haeTqgav
>>449
>----------------------------------
>BEGIN
>--
>DBMS_MVIEW.REFRESH('mview??',・・・);
>--
>UPDATE TanoTable SET ・・・;
>または、
>TanoTable.woKoshinsuruProce(・・・);
>--
>END;
>----------------------------------
これってリフレッシュの完了を待ってから
UPDATEしてくれますか?
リフレッシュ2時間くらいかかります。
458NAME IS NULL:2005/07/20(水) 11:09:55 ID:???
>>455
ライセンスによって、数十万から数千万/年まである。
どういう契約をしたいのだ?
459NAME IS NULL:2005/07/20(水) 11:32:56 ID:???
oracle10g EE 1CPU 定価500万のやつの実勢売価が知りたいです。
代理店によってぜんぜん価格が違うんでしょうか?
460NAME IS NULL:2005/07/20(水) 11:38:56 ID:???
Oracle10g Standard Edition Oneなら60万円ほどか。


>>422
へ?

pga_aggregate_targetはReadの方じゃないのか?
セッション毎のソート領域などを含めた最大サイズを指定するんだからさ。
461NAME IS NULL:2005/07/20(水) 12:31:00 ID:???
>>460

pga_aggregate_targetによって、1-pass及びMulti-passが左右される。
結果的にTemp領域の書き込みのコントロールが行われる訳だから、
漏れ的にはWriteと判断した分よ。
462417:2005/07/20(水) 17:04:03 ID:???
>>445さん
一件ずつの削除をすればという指摘で気づいたことがありまして、
削除って別に一日一回じゃなくてもいいよなと。
で変更を上司に相談したらあっさりOK.
処理を書き換えて明日適用してみます。
とりあえず正時ごとにデータ消すように変更してみました。

ありがとうございました。
463NAME IS NULL:2005/07/20(水) 22:56:09 ID:???
464NAME IS NULL:2005/07/21(木) 08:36:33 ID:???
Oracle9iで
SQLNET.AUTHENTICATION_SERVICES= (NTS)
をコメントアウトすると
sqlplusでconn /as sysdba;
とすると
ORA-01031: insufficient privileges
というエラーになってしまいます。
これを接続可能にはできないでしょうか?
465NAME IS NULL:2005/07/21(木) 10:29:34 ID:???
>>464

無理だろうね。
一体なんのためにそんな事したいのかさっぱりわからないけど。
どうしてもやりたかったら、conn sys/(sysのパスワード) as sysdbaで
やるしかないんじゃない?
466NAME IS NULL:2005/07/21(木) 10:33:57 ID:???
>>465
ありがとうございます。そうします。
467NAME IS NULL:2005/07/21(木) 14:46:59 ID:???
すみません質問です。
sqlldrでcsvファイルを読み込むctlファイルを作成しています。
csvファイルが「A,B,C,D,E」となっているのですが、
対象テーブルは「C,D」しか項目が無く、残りは不要なのです。
どのようにctlを記述すれば良いのでしょうか。
csvファイルを変更するというのは仕様的に無理のようです。

検索しても、sqlldrについては大抵基本形しか載ってないので
よくわかりませんでした。
ご教授御願いします。宜しく御願いします。
468NAME IS NULL:2005/07/21(木) 15:07:20 ID:???
>>467
A FILLER,
B FILLER,
C 型,
D 型,
E FILLER
469NAME IS NULL:2005/07/21(木) 15:21:03 ID:???
>468
スペサル(´▽`)dクス!!!
470467:2005/07/21(木) 15:33:46 ID:???
>468
・・・と思ったのですが、
テーブルのフィールドがC,Dしか無いので
やっぱりよくわかりません。

csvファイルが「12,34,56,78,90」で、
下記のようなテーブルのCに「56」、Dに「78」を読ませたいのです。

CREATE TABLE HOGEHOGE
(
C VARCHAR2(2) NOT NULL,
D VARCHAR2(2) NOT NULL,
)

宜しく御願い致します。
471NAME IS NULL:2005/07/22(金) 12:08:11 ID:???
>>470

A FILLER,
B FILLER,
C 型,
D 型,
E FILLER
472NAME IS NULL:2005/07/22(金) 13:18:42 ID:???
>>470

>>468が言ったように

load data
infile 'hogehogenomoto.csv'
truncate
into table hogehoge
fields terminated by ','
(A FILLER, B FILLER, C VARCHAR2(2), D VARCHAR2(2), E FILLER)

で、ダメか?どんなエラーになる?
473470:2005/07/22(金) 13:32:10 ID:???
ありがとうございます。

テーブルには、実際に「A」「B」「E」という項目は存在しないのです。
CREATE TABLE HOGEHOGE (C VARCHAR2(2) NOT NULL, D VARCHAR2(2) NOT NULL, )
なので、皆様が教えて下さった方法で記述する場合、
実際には「A」「B」「E」の部分には何を記述すれば良いのでしょうか?

CSVファイルは5項目あり、テーブルは2フィールドしか存在しないのです。
474470:2005/07/22(金) 13:37:14 ID:???
もしかして、「なんでもいい」のでしょうか。
ちょっと試してみます。
475470:2005/07/22(金) 14:27:06 ID:???
「何でも良い」で正解なのですね。
ご迷惑をお掛けいたしました。うまくいきました。
どうもありがとうございました。

逆に、CSVファイルが2項目、テーブルが5項目である場合に
CSVファイルの1項目を分割してテーブルに入れることは
できるのでしょうか?(これも調べたのですがわかりませんでした)
「A」に、CSVファイル項目1の1-2桁
「B」に、CSVファイル項目1の3-4桁
「C」に、CSVファイル項目1の5-6桁
「D」に、CSVファイル項目2の1-2桁
「E」に、CSVファイル項目2の3-4桁
ということは可能でしょうか?

「B」に、"B CHAR "SUBSTRB(:A, 3, 2)"とか記述してみたのですが
エラーが出てしまいました。
476NAME IS NULL:2005/07/22(金) 15:13:11 ID:???
列の区切りをバイト数で指定できなかったっけ?
477470:2005/07/22(金) 15:52:00 ID:???
>476
ありがとうございます。
「A」に、"A CHAR "SUBSTRB(:A, 3, 2)"とは記述できるのですが、
「B」に、"B CHAR "SUBSTRB(:A, 3, 2)"と記述するとエラーになってしまいます。
他に良い区切り方があるのでしょうか?

POSITION指定も、他項目の文字列長が固定でないので無理そうです。
478NAME IS NULL:2005/07/22(金) 18:19:48 ID:???
Aに2ついれんだよ
479470:2005/07/22(金) 19:06:05 ID:???
ありがとうございます。
Aにふたつ、とはどのような意味でしょうか?
馬鹿な質問ですが、申し訳御座いません。宜しく御願いします。
480NAME IS NULL:2005/07/23(土) 00:08:27 ID:???
perlあたりで入力データを加工してやるほうが早い。
481NAME IS NULL:2005/07/23(土) 00:44:23 ID:???
count(1)ってどういう意味?
count(*)と何が違うの?
482NAME IS NULL:2005/07/23(土) 01:29:13 ID:THJgMsE5
 
http://www.oracle.com/corporate/press/2005_jul/multi-coreprocessorpricingpolicy.html

Standard Edition One の場合、マルチコアCPUでも1CPUの価格ってこと?
マルチコアCPU2個搭載のマシンでも「Standard Edition One」でOKなのかな?
483NAME IS NULL:2005/07/23(土) 13:52:19 ID:dU+DCZA8
1CPU-2コアまでって書いてあるじゃん。
将来的に1CPU-4コア、1CPU-8コアでどうなるかは書いてないけど。
484NAME IS NULL:2005/07/25(月) 16:16:19 ID:Tabw6zKt
>482
ハードスペックでCPU2個搭載可能なら、1個しか搭載していないサーバでも2CPU分(×2ね)購入が必要だったかと。
485NAME IS NULL:2005/07/25(月) 16:46:22 ID:???
速度の話を一つ( ・ω・)∩です。

3000件(5フィールド)のデータがあるとして、
1.ストアド内でカーソルで回して使用
2.最初に配列に取り込みカウンタで回して使用

上の数字は、適当なものだけど、こゆ場合は、どっちが速いの?
カーソルって1レコード分のデータのみメモリにあるのかな?
DBアクセスしてるとしたら、2.のが速そうなんだけど。
だれか分かる人〜
486NAME IS NULL:2005/07/25(月) 18:40:08 ID:???
>>485
スレ移すなら誘導しとけよ。マルチうぜ〜とかいわれるぞ
487NAME IS NULL:2005/07/25(月) 18:44:40 ID:???
メモリに収まるなら全部、きついならカーソルだろう
488NAME IS NULL:2005/07/25(月) 21:09:28 ID:???
>>485

>>487 に同意。
ただ、早ければよいと言うものでもないだろー。
あとあとのことを考え、保守性のよい 1.だな。

489NAME IS NULL:2005/07/25(月) 21:32:44 ID:jETJkHyS
ドン臭いおまいらカモられてるしww


871 名前: NAME IS NULL Mail: sage 投稿日: 05/07/25(月) 20:56:49 ID: ???

4Dの楽しさってのは、
「ライトウェイトスポーツを駆ること」に似ている。

小排気量(シェアが小さい)で非力(なサポート)であっても、
軽量コンパクト(開発環境)・高回転型エンジン(?)を武器に、
限界までドライビングテクニック(4Dノウハウ)を駆使して、
大排気量車(オラクルetc.)をカモる楽しさがある。

4D is LWS(ライトウェイトスポーツ)DB.


http://pc8.2ch.net/test/read.cgi/db/1106663626/l50
490485:2005/07/26(火) 08:59:01 ID:???
レスどうもです。
最初あっちのスレに書いたら、過疎ってたのでここへ・・・。
マルチっぽくなってしまってすいません。

上記の処理は、どちらもサーバー内での処理で一度に多数の接続を裁く必要があるませう。
それを考慮すると、メモリ使用を控えて、カーソルを使用がやはり無難ですかね?
カーソルにしても何度も同じフェッチ行を見に行くなら、
最初に1レコード分だけメモリに読み込んだ方が速いんですかね?
皆様のご意見、募集中!
491NAME IS NULL:2005/07/26(火) 11:23:31 ID:???
エクスポートでSEQUENCEを指定してエクスポートしたいのですが
テーブルを指定してエクスポートはできるのですが
SEQUENCEはどのように指定すればよいでしょうか?
492NAME IS NULL:2005/07/26(火) 11:38:36 ID:???
>>491

consistent=Y
493NAME IS NULL:2005/07/26(火) 16:49:56 ID:???
>>492
これだと全部出ちゃいますね。
494NAME IS NULL:2005/07/26(火) 22:09:38 ID:???
>>493

んっ? ようはSequenceだけをexpしたいということ?
それだったら結論から言うけど、「無理」だ。
Imp先でsequenceを再作成しろ。
構文が知りたかったらimpする時にshow=yをつけて確認すればいい。
495NAME IS NULL:2005/07/27(水) 14:56:38 ID:???
むりぽか〜
496NAME IS NULL:2005/07/28(木) 12:30:36 ID:???
本日ORACLE9.2をインストールしました。

途中にSYSパスワードとSYSTEMパスワードを設定しました。

SQLPLUSでログインするときに、SYSTEMではログインできるのに
SYSではログインできませんでした。

尚、パスワードはSYSはSYS、SYSTEMはSYSTEMとしました。

SYSではログインできない仕様なんでしょうか?

またSYSとSYSTEMの違いがわかりません。
497NAME IS NULL:2005/07/28(木) 20:45:37 ID:dn+lWXQe
できない。
レファレンス嫁
498NAME IS NULL:2005/07/28(木) 23:02:15 ID:???
>>496

sys権限を有したユーザーはDBの起動・停止をしたり、rman使ってバック
アップ取ったりとDBそのもののオペレーション時に使う。
言って見ればスーパーユーザーだな。
systemは、ユーザー作ったり、権限与えたりと通常のオペレーション時に
使うことが多いかな。

それともしリモートからsysユーザーでアクセスしたいのなら以下のステップを
踏む必要がある。

1. orapwd使ってパスワードファイルの作成
2. oracleのinitでremote_login_passwordfile=EXCLUSIVE
3. DBの再起動
499NAME IS NULL:2005/07/28(木) 23:05:00 ID:???
conn sys/sys as sysdba;
じゃだめなの?
500NAME IS NULL:2005/07/28(木) 23:37:01 ID:cp2I9xv+
Oracle8.0.4のシステムを10gにEXP/IMPで
バージョンアップしたいんですが
一度8.0.6にバージョンアップしろとマニュアルにあります。
8.0.6は何処で手に入れればいいんですか?
501NAME IS NULL:2005/07/28(木) 23:50:22 ID:???
>>500

過去ログぐらい読むあーるよ。('A`)メンドクセ >>403
502NAME IS NULL:2005/07/29(金) 07:51:16 ID:???
>>496

AS SYSDBA
をつけろ
503NAME IS NULL:2005/07/30(土) 10:30:02 ID:???
初心者の私に回答をお願いします。

SQLPLUSを使って、Aというテーブルを作成しました。
ID number型
value clob型
という構造です。

このID=1のvalueの値だけをxmlファイルとして出力したいのです。

ファイル出力にはspoolを使うと聞きました。
しかし、実行し、ファイルの出力はできるのですが、ファイルをダブルクリックで開くと

スタイルシートを使用したXML入力はできません。エラーを訂正してください。
「更新」ボタンをクリックするか、または後でやりなおしてください。

という画面になってしまいます。
メモ帳や秀丸で開くと、どうやら改行されているのです。

この改行をなくすとXMLとして開けると思うのですが、
どのようにしたら良いのかわかりません。

わかる方よろしくお願いします。
504NAME IS NULL:2005/07/30(土) 10:36:40 ID:???
>>503
本当に改行をなくしたらXMLとして開けるのか?
秀丸で改行をなくしてやってみたか?
505NAME IS NULL:2005/07/30(土) 10:53:16 ID:???
>>504

はい。

行数がかなりあるので、全部の改行をなくしたわけではく、
ある部分のタグで囲まれた箇所をを切り取って、
コピーし、そのファイルの改行をなくしたら
しっかりとXMLファイルとして認識されました。

506NAME IS NULL:2005/07/31(日) 04:32:18 ID:X1+WE+XV
プログラマ募集中ー
有志によるMMO製作です。

24時間体制でガンガン開発するでぇーーー

CreateGame〜陸海空オンライン〜

プログラマ募集中!力ある奴だけこぃ!!

ついてこれる奴だけ。募集。
あと、歴史に名を残したいやつ
507496:2005/08/01(月) 16:09:14 ID:???
>>497-502


ありがとうございます。

現在オラクル入門勉強してます。

508NAME IS NULL:2005/08/01(月) 22:25:46 ID:???
>>505

どうやってSpoolしているのか書いてみたら?
そうしたら何らかの対応策が出てくるかも知れない。
509NAME IS NULL:2005/08/02(火) 20:03:46 ID:xehHEe8c
ORACLEのSQLのサイトを作ってみた

ttp://oraclesqlpuzzle.hp.infoseek.co.jp
510NAME IS NULL:2005/08/02(火) 21:29:52 ID:d+Di/l0H
Pro*C/C++を使って作ったアプリをinittabから起動するには、環境変数などは
どこに定義する必要があるのでしょうか?
/etc/default/init ?

OS:Solaris 2.9
Oracle10i
511NAME IS NULL:2005/08/02(火) 21:54:52 ID:OgTTNq8M
データベースアプリケーションをinittabから起動する???!!!
512NAME IS NULL:2005/08/02(火) 21:57:00 ID:???
>>509
…なんだこりゃ。
下半期がっかりWeb大賞にノミネートしたい。
513NAME IS NULL:2005/08/02(火) 21:59:07 ID:???
>>510
ここで訊くこっちゃないなあ。
>>511
当然、Oracle のプロセス起動を待つように出来てるんでしょう。
514NAME IS NULL:2005/08/03(水) 23:27:23 ID:???
>>508

はい、それではもう少し詳しく書きます。



SQLPLUSを使って、Aというテーブルを作成しました。
ID number型
value clob型
という構造です。

このID=1のvalueの値だけをxmlファイルとして出力したいのです。

spool c:/testest/testes.xml
select value from A
where id = 1;
spool off

上記のようなSQL文を実行しました。
しかし、ファイルの出力はできるのですが、ファイルをダブルクリックで開くと

スタイルシートを使用したXML入力はできません。エラーを訂正してください。
「更新」ボタンをクリックするか、または後でやりなおしてください。

という画面になってしまいます。
メモ帳や秀丸で開くと、どうやら改行されているのです。

この改行をなくすとXMLとして開けると思うのですが、
どのようにしたら良いのかわかりません。

わかる方よろしくお願いします。
515NAME IS NULL:2005/08/03(水) 23:34:51 ID:???
あんた、そのファイルの中身を見たんだろ?
そのファイルがXMLだと思う根拠を書け。
516NAME IS NULL:2005/08/04(木) 00:19:01 ID:???
>>514

根本から間違っている気がするぞ、それ。
拡張子をxmlにしているだけじゃないかよ。

せめてこれぐらいやっていたかと思っていたぞ。

set pagesize 9999;
set linesize 100;
spool hogexml.out
select '<A>'||chr(10)||'<Value>'||value||'</Value>' ||'</A>'
from A
where id=1;
517NAME IS NULL:2005/08/04(木) 02:10:32 ID:???
Oracleインスタンスは、1台のサーバ上にて複数動作できます。
とありますが、

インスタンスを複数起動するような事って意味があるんでしょうか?

どうしても、ここがイメージできません。
518NAME IS NULL:2005/08/04(木) 02:41:01 ID:???
>>517

例えばプロダクション環境だと1つの鯖に1インスタンスというのが当たり
前かも知れないが、開発時にフェーズとかに合わせて複数のインス
タンスを1つの鯖上に構築したりするよ?
大型鯖使って開発とかしていると、1つの鯖上に3つとか下手したら4つ
ぐらい動いているなんて事もある。
519NAME IS NULL:2005/08/04(木) 02:45:25 ID:???
開発環境ならありかも。
でも本番系でそれを前提にするのはトラブルの元。
漏れもメリットがわかんね。
520NAME IS NULL:2005/08/04(木) 03:12:09 ID:???
>>519

DB側から見たら確かにメリットは無いかも知れないが、全体的に見れば
少ない台数の鯖で済む訳だから、鯖の導入費・管理費・維持費を軽減
出来るというメリットが考えられる。
521NAME IS NULL:2005/08/04(木) 08:12:49 ID:???
>>520
前に2台鯖があってお互いがお互いのスタンバイというのを見たことがある
片方落ちるともう片方にフェイルオーバーする

まあ、これも>>520の言うとおりコスト削減の一環だよね
522NAME IS NULL:2005/08/04(木) 09:37:38 ID:???
なんでDBがわかれてんの?
1つのDBで別スキーマにすればいいやん。

SQL鯖とかDB2では複数DBを作るっていう発想をするかもしれんけど、
コスト削減がどーたらこーたら言うなら、1つのDBのほうがよくない?
523NAME IS NULL:2005/08/04(木) 12:32:25 ID:???
>>522

運用にかかわって来るけど、ひとつのDBにしてしまうと、それはそれで
色々と問題が出てくる。
例えばバックアップの時間ひとつ取ってみても、片方がOLTP系で
片方が夜バッチがガンガンといった形態とかだったら、困るっしょ?
それとDBをアップグレードしなければならない様な自体が発生したら
どうなる?
下手したらライブラリやプログラムのバージョンとかが、片方サポート
されなくなったりする事態も発生するかも知れない。
524NAME IS NULL:2005/08/04(木) 12:54:38 ID:???
昔ソラリス上に3つくらいインスタンス起動したら
セマフォの取り合いでこけました。
525NAME IS NULL:2005/08/04(木) 13:32:44 ID:kbkePFlJ
SQLのFROM句に書けるような返値を持つファンクションを作成できますか。
例)
CREATE OR REPLACE FUNCTION F_AAA(P VARACHAR2) RETURN ????? IS
BEGIN
     :
     :
END;
/
SELECT A FROM F_AAA;

このようなことができる ファンクション F_AAA をつくりたい。F_AAA の返値型は何にしたらいい?
526NAME IS NULL:2005/08/04(木) 14:00:24 ID:???
>525
なんとなくやりたいことがわかるような気がするが、たぶん無理。
私も過去に同じこと考えたけど、結局動的SQL使いました。
527NAME IS NULL:2005/08/04(木) 15:35:16 ID:???
>>523
そこまでシビアな運用なら素直にサーバーを2台にしたほうがいい。
2インスタンスにしても片方で夜間バッチががんがん動いてたら
一方のパフォーマンスも相当落ちると思う。
1台で2インスタンスでもライセンスは2台分だよね?
Oracleのライセンスと比べればサーバーの費用なんて些細な出費。
528NAME IS NULL:2005/08/04(木) 21:18:05 ID:???
529NAME IS NULL:2005/08/04(木) 21:19:47 ID:???
>>527

プロセッサーライセンスって、インスタンス数に応じるんっだったけ?
どうもこの辺りの事って、昔から良く分からん・・・。
530NAME IS NULL:2005/08/04(木) 21:42:04 ID:???
>>529
インスタンス数は関係無い。あくまで搭載しているCPU数。
デュアルコアの場合はコア数 × 0.75(小数点以下切り上げ)。
531NAME IS NULL:2005/08/04(木) 22:22:00 ID:???
>>530

dクス。
532NAME IS NULL:2005/08/05(金) 22:37:15 ID:???
表を削除した場合に索引は削除されますよね。

順序も削除されるんでしょうか。またシノニム等、どうなるのでしょう。

533NAME IS NULL:2005/08/05(金) 22:56:55 ID:???
環境があればすぐためせることだろ。
534NAME IS NULL:2005/08/05(金) 23:03:35 ID:???
>>533

たしかに、DLして構築してみます。
535NAME IS NULL:2005/08/06(土) 02:07:55 ID:???
SEQUENCEはテーブルとの関連がないからテーブル消しても関係ない。
SYNONYMはINVALIDになるんかな?
536NAME IS NULL:2005/08/11(木) 01:43:43 ID:???
ゲシュタルト崩壊Age
537NAME IS NULL:2005/08/11(木) 02:43:43 ID:???
ビット演算できますか?
538NAME IS NULL:2005/08/11(木) 04:34:33 ID:???
539NAME IS NULL:2005/08/11(木) 10:59:52 ID:???
ビット演算は何のためにあるのですか?
540NAME IS NULL:2005/08/11(木) 20:41:44 ID:x7/CNJk3
バカを選別するため
541537:2005/08/12(金) 01:16:56 ID:???
>>538
ありがとうございます。
やっぱりストアドプロシジャしかないんですか。
542NAME IS NULL:2005/08/12(金) 05:29:02 ID:???
>>541

ちゃんと下まで読んで欲しかった。
bitandとbitorで調べれば出てくるんだけどね。
ttp://www.jlcomp.demon.co.uk/faq/bitwise.html
543NAME IS NULL:2005/08/12(金) 08:17:03 ID:???
なるほど、確かに選別されている。
544537:2005/08/13(土) 01:57:51 ID:???
>>542
早とちりで申し訳ありません。
ありがとうございました。解決しました!
545NAME IS NULL:2005/08/16(火) 14:56:06 ID:???
Oracle 10gトライアルを入れたんですが、
データベースコンフィグの段階で"operating system resource
quota exceeded"とエラーが出ます。
RAM 512 MBなのでメモリ不足ですか?
546NAME IS NULL:2005/08/16(火) 20:04:24 ID:???
>>545

O/Sぐらい書くあるよ。
547NAME IS NULL:2005/08/17(水) 02:41:52 ID:???
>>546

すいません、Windows XP Pro SP2です。
548NAME IS NULL:2005/08/18(木) 02:33:17 ID:???
>>547

ちなみにSGAは何MBで作成した?
549NAME IS NULL:2005/08/18(木) 08:09:35 ID:???
>>548

今日インストールし直したところ、リソース超過のエラーも出ず
データベース作成できました。
手順は変えていないのですが…
ありがとうございました。
550NAME IS NULL:2005/08/18(木) 08:21:47 ID:???
データベースリンク先のオブジェクトを検索したとき、このオブジェクトのカラム情報は
1.データベースリンク先の共有プールに保持される
2.データベースリンク元の共有プールに保持される
3.どちらの共有プールにも保持されない
どれでしょうか?
551NAME IS NULL:2005/08/18(木) 21:33:56 ID:???
>>550


1だろうな。
552NAME IS NULL:2005/08/20(土) 13:50:37 ID:bMW4C0ad
Oracle 9iで、以下のような表から、
dept| emp
--------------------
10 |'emp1'
10 |'emp2'
20 |'emp3'
30 |'emp4'

このような結果を取り出す方法はありますか?
10 emp1,emp2
20 emp3
30 emp4

文字列連結するようなSUMみたいなのがあれば良いかと
思ったのですが見つけられませんでした。
select dept, func(ename) from emp
group by dept
553NAME IS NULL:2005/08/20(土) 14:10:08 ID:???
>>550
カラム情報の意味がわからんけど、SQLがキャッシュされるのは
デフォルトではリンク先でオプションか何かで元を使うようにできたんじゃなかったかな
554NAME IS NULL:2005/08/20(土) 21:51:55 ID:NHeAsWxR
Oracle 10g のプラットフォーム
Windows Server 2003 と Linux のどちらが
おすすめですか?
555NAME IS NULL:2005/08/20(土) 23:27:41 ID:???
Linux
556NAME IS NULL:2005/08/20(土) 23:36:55 ID:???
Windows
557NAME IS NULL:2005/08/21(日) 01:08:07 ID:???
Mac OS X

そりゃそうと、Windows 2003 でドメインコントローラにしてると
10g インストール失敗するのな。
558NAME IS NULL:2005/08/21(日) 02:25:07 ID:???
>>554
Linux

p4 1.6GHz + Mem 768MB (以下略
の環境でCPU使用率が

Win2kPro
 常時100%。Oracle以外で使い物にならなくなる

Linux (Miracle Linux バージョン忘れた)
 3%〜10%(高負荷時)。他のこともできる

でした。
559554:2005/08/21(日) 10:50:10 ID:v9pT6RNI
>>558
情報提供ありがと。CPU使用率、そんなに違うんだね・・・
やっぱり、OracleにはUNIX系ですかね。
560NAME IS NULL:2005/08/21(日) 14:58:32 ID:???
エンタープライズなんとかのサービスを落とせば? <Win系
561NAME IS NULL:2005/08/21(日) 18:24:46 ID:38Shf4++
oracleのバックアップってどういう方法が一般的何ですか?
ちなみにLINUXとオラクル10gを使用しています。
562NAME IS NULL:2005/08/21(日) 18:38:01 ID:???
10gならRMANだろ。
563NAME IS NULL:2005/08/21(日) 18:52:47 ID:???
>>559
CPUやメモリ使用率はOSによってサンプリングの方法が違うから単純に比較はできないが、
Windowsの方が余分にリソースを必要とする。
Windowsで10gを使うなら64bit Windowsが安定するまでまったほうがいいかもしれない。
どう見てもlinux/unixで作ってWindowsに移植してる感じだもんね。
564NAME IS NULL:2005/08/22(月) 00:23:47 ID:???
>>563
10g→Windowsネイティブ開発
9i以前→Unix系からWindowsへ移植
だってさ
ttp://www.oracle.co.jp/2shin/ora76/04_09.html
565NAME IS NULL:2005/08/22(月) 01:45:33 ID:???
>>561

RMAN+Tapeだな。
RMAN=>Disk=>Tapeというパスもあるだろうけど、RMANから直接Tape
というのも一般的だな。
566NAME IS NULL:2005/08/22(月) 02:34:55 ID:???
10gR1まではSolaris
10gR2からはLinux
Windowsはやっぱし最後なんでねの?
567NAME IS NULL:2005/08/22(月) 09:05:24 ID:???
>>564
>10g→Windowsネイティブ開発
エミュレータからコンバータに変えたって事だろうか・・

その記事のHTML DBというのが気になるが使ってみてどうなのでしょうか?
よさそうならダウンロードしてみようと思うけど、その昔OPOやKey SQLではずれ引いたから先に評判を知りたい。
568NAME IS NULL:2005/08/22(月) 11:19:04 ID:???
Oracle9のトライアル版をインスコしたんだけど、
利用期限書いてないけど、ずっと使えるの?

ttp://otn.oracle.co.jp/software/products/oracle9i/
569NAME IS NULL:2005/08/22(月) 11:28:08 ID:???
>>568

過去ログぐらい読めよ。>>49

570NAME IS NULL:2005/08/22(月) 11:29:08 ID:???
>>567

お遊び程度にはいいかも試練が、実際にまだまだ使える代物ではないよ。
モルモットになりたいのならどうぞ。
571NAME IS NULL:2005/08/22(月) 20:57:05 ID:???
HTML DBって何?
572NAME IS NULL:2005/08/23(火) 04:37:02 ID:???
>>571
>>564のリンク先を読むべし
中小企業にもオラクルなんて言ってるのはマーケティングの連中だけだろう。
HTML DBはマーケティングの連中が開発に無断で出所の怪しい外注に作らせた感じがありあり。
573NAME IS NULL:2005/08/23(火) 21:40:55 ID:???
あ?
中小企業もOracleいぱーい使ってまつが?
HTML DBはUS Oracle御謹製の品だけど?
574NAME IS NULL:2005/08/23(火) 22:55:58 ID:R3f9gBbu
PL/SQLでの
Javaでいうところの\r(復帰)や\t(タブ)や\b(バックスペース)などの
文字列表現ってどうなるのでしょうか。

たくさんたくさん検索したんですが見つけられなかった・・・
575NAME IS NULL:2005/08/23(火) 23:13:21 ID:???
CHR(13)
CHR(9)
CHR(8)
576NAME IS NULL:2005/08/24(水) 02:45:55 ID:???
>>575

「アスキーコードが通るよ」ぐらい教えてあげるとさらにベター。
577NAME IS NULL:2005/08/24(水) 06:14:12 ID:???
>>576


>>574>>575の回答で理解できたのか?
578NAME IS NULL:2005/08/24(水) 16:35:17 ID:???
そして判明する驚愕の真実、574のDBはEBCDICだった。
579NAME IS NULL:2005/08/24(水) 23:44:26 ID:ovSUaESc
http://www.oracle.co.jp/2shin/ora76/04_09.html
「Windowsのファイバーを利用するようにカーネルを書き換えたことにより」

ファイバーってなに?ファイバー繊維の事か?前後の文脈から想定すると「ファイルI/O」っぽいが...
580NAME IS NULL:2005/08/25(木) 00:14:50 ID:???
Windowsファイバーはスレッドのもっと細かいやつよ。
それに使い道があるかどうかはまた別の話。
581NAME IS NULL:2005/08/25(木) 02:37:02 ID:???
>>579
CPUの切り替えをアプリケーションからの命令でおこなう擬似スレッドをファイバーという。
ひとつのファイバーが実行権を譲る命令をコールするとはじめて別のファイバーが動き出す。
セマフォなどで実行状態にあるスレッドを1つに限定しているのに似ているが、はるかにシステムの負荷は小さい。
もともとはスレッドが実装されてなかった頃のUNIXの機能らしく、その機能を使ったアプリをNTに移植するために
作られたAPI。NTカーネルのみで9x系には実装されてない。
MSSQLにはファイバーを利用するかどうかのオプションがある。接続ユーザー数が多く、1接続あたりの
リクエストがまばらで処理時間が短い場合に有効とされている。
582NAME IS NULL:2005/08/25(木) 09:06:48 ID:qfp9Yyuw
テーブル領域の自動拡張のタイミングは、95%越えたらとかではなく
updateやinsertを実行して、足りなかった時に拡張されるのでしょうか?
583NAME IS NULL:2005/08/25(木) 23:00:00 ID:???
たぶんそう。
584NAME IS NULL:2005/08/26(金) 00:08:46 ID:???
>>582
その2つに違いがあるのか?
おんなじことを言っているように思うが。
585NAME IS NULL:2005/08/26(金) 23:49:55 ID:???
>>584
>その2つに違いがあるのか?

いや、普通に違うだろw
586NAME IS NULL:2005/08/27(土) 01:10:49 ID:fvMU8Fhc
上のほうで同じエラーを出している人がいましたが、解決したのでしょうか?

私は以下の状態で悩んでいます。

■OS Windows XP SP2
■Oracle 9.2.1.0

■現象

休止後、再開させる時に、「復元情報が取得できませんでした」みたいなエラーが発生しました。
chkdsk終了後、Windowsは起動しましたが、Oracleに接続しようとすると
「ORA-01033: ORACLE initialization or shutdown in progress 」が発生します。
サービスは、データベース、リスナー共に「開始」されており、再起動させてみましたが、
結果は同じでした。

どうしたらいいものでしょうか?
教えてください。
587NAME IS NULL:2005/08/27(土) 02:27:05 ID:fvMU8Fhc
>586です。

休止前に、OsqlEditでデータを更新していました。
Oracleのバージョンは、9.2.0.1です。

すみません。
588NAME IS NULL:2005/08/27(土) 02:34:20 ID:???
>>587

DOS窓開いて、"sqlplus /as sysdba"で繋ぐ。
"shutdown abourt"で強制的にインスタンスを落として、でもって
その後"startup"でどうなるかやってみてくれ。
589NAME IS NULL:2005/08/27(土) 02:34:52 ID:???
>>588

スペルミスっていた。
「shutdown abort」ね。
590NAME IS NULL:2005/08/27(土) 07:32:45 ID:???
アラートログとトレースファイル見るべし。
591NAME IS NULL:2005/08/27(土) 08:16:25 ID:jE3A7gEu
その現象、10gでも直ってないんだろうな。
oracleに拠れば、windowsのthreadの問題らしい。
その状態になると、shutdown abortも効かないことがあるので、
プロセスをkillするしかない。
killしたままだとだめなので、リカバリをする。
レジストリのAUTO_STARTをFALSEにして、
プロセス開始による自動statrupを一旦解除する。
startup restrict (これだとthreadを使わない)
shutdown normal
レジストリのAUTO_STARTをTRUEに戻す(頻発するようなら戻さず、手動startupにした方がいいかもしれない)。
592NAME IS NULL:2005/08/27(土) 08:35:38 ID:???
>>585
insertもupdateもしないのに勝手に「95%超え」たりすることは
なんいんだから、同じだろ。
593NAME IS NULL:2005/08/27(土) 08:54:06 ID:???
入れ物がいっぱいになったから入れ物を大きくするのと、
いっぱいになりそうなのを検知して入れ物を大きくするのは
違う動作だ
594NAME IS NULL:2005/08/27(土) 12:49:34 ID:???
いっぱいになりそうなのを検知するってどういうことだ?
insert/updateが発生していないのにどう検知するというのか。
それに100%をいっぱいとみなすか95%をいっぱいとするかは
PCTFREEの設定しだいだし。
595NAME IS NULL:2005/08/27(土) 14:38:39 ID:???
表領域の容量とブロックの空き率のPCTFREEは話は別。
監視ソフトとかで使用率を定期的にチェックしていれば
検知とか出来るだろ。自動拡張と手動拡張の違い。

間違っているかもチラ余白。
596NAME IS NULL:2005/08/27(土) 14:47:23 ID:???
>>594
insert/updateで95%を超えても拡張せず、アイドル状態の時に空き状態を調べるプロセスが
95%を超えているのを発見して拡張する。ということではないかな。
こういう動作をするかどうかは知らないけどね。
597NAME IS NULL:2005/08/27(土) 14:53:03 ID:???
smonってツンデレだよね。
598NAME IS NULL:2005/08/27(土) 15:06:16 ID:???
>>591
どういう理由でWindows版はOracleの各プロセスの実装をスレッドにしたんでしょうね。
パフォーマンスなどスレッド化のメリットもわかるが、
Oracleが肥大化した現状だとアドレス空間の枯渇やスレッドがクラッシュした場合などの
安全性を考えるとデメリットしか見えてこない。
64bit化でアドレス空間の問題は解決するかもしれないけどね。
599NAME IS NULL:2005/08/27(土) 22:43:39 ID:75ZqRiPp
>>586 です。

>588さん ありがとうございます。
やってみましたが、だめでした。

>590さん ありがとうございます。
何もか書かれていませんでした。

>591さん ありがとうございます。
startup restrict を使用すると、以下のようなエラーが返ってきました。

ORA-01041 内部エラーが発生しました。hostdef エクステンションが存在しません。
原因: HSTDEF にあるHSTDEF エクステンションへのポインタがNULL です。
処置: オラクル社カスタマ・サポート・センターに連絡してください。

sqlplus /nolog
で、sqlplus起動直後にやったのは間違いでしょうか?

よろしくお願いします。

600NAME IS NULL:2005/08/27(土) 23:36:24 ID:???
>>599

問題を切り分けたい。
「startup restrict」ではなく「shutdown abort」してでもってその後に「startup mount」
でDBがあがるか試してみてくれ。
でもってもし「mount」までもっていけるのならば「recover database」でリカバリ
かけて、その後に「alter database open;」であげてみる。
「startup mount」すら通らないのならば、メモリかもしくはファイル自体がおかしく
なってしまってる事になるから、バックアップから戻すしかないだろうな。

それともしパスワードファイルを使用してるのならば、こいつも再作成してみてくれ。
窓だとパスワードファイルがぶっ壊れていて「ORA-0141」が発生する事があるらしい。
601NAME IS NULL:2005/08/28(日) 01:39:50 ID:p7bETBOB
>600 さん

だめでした・・・。
もう、打つ手がないのかもしれません。
ありがとうございました。
与えられたキーワードが、何を意味しているのかいろいろとぐぐったりして楽しかったです。
602NAME IS NULL:2005/08/28(日) 01:47:10 ID:???
>>601

startup mountした時にどんなエラーがalertに吐かれている?
603590:2005/08/28(日) 08:33:43 ID:???
何も書かれていないってことはありえないと思うんだが・・・。
604NAME IS NULL:2005/08/28(日) 11:04:04 ID:oU1bnhKQ
創価学会を批判するとこういう奴に絡まれるよ 

札幌市中央区の日蓮正宗の寺院に三千回以上の嫌がらせ電話をかけたとして、偽計業務妨害の罪
に問われた鳥取県倉吉市、創価学会員でパチンコ景品交換所従業員谷口博司被告(53)の判決公判
が二十六日、札幌地裁であった。吉村正裁判官は谷口被告に懲役一年、電話機一台没収(求刑・懲役
一年六カ月、電話機一台没収)を言い渡した。

 判決理由で吉村裁判官は「社会通念を逸脱した回数の嫌がらせ電話をかけ続けたのは明らかで、
執拗(しつよう)、陰湿であり、酌量の余地はない」と指摘。「創価学会の鳥取県の副支部長だった被告は、
一連の電話を日蓮正宗の誤った教義をただすためと正当化し、今後もこの寺に電話をかけると公言するな
ど、反省の情に乏しい」と述べた。

 判決によると、谷口被告は昨年六−七月と同十二月−今年四月に三千七十五回、自宅から同寺院に
電話をかけ続けて宗教論争を持ちかけ、寺院の業務を妨害。創価学会広報室によると、谷口被告は
事件当時、鳥取県内の副支部長だった。

http://www.hokkaido-np.co.jp/Php/kiji.php3?&d=20050826&j=0022&k=200508262453

605NAME IS NULL:2005/08/30(火) 23:50:09 ID:???
クライアントPCからOracleサーバ接続し、データを取得(Select)
しているのですが、この接続経路にダイアルアップルータがあります。
ルータは、通信があれば自動的に接続し、1分間無通信だと
自動的に回線を切るのですが、検索時間が長いSQLを発行すると、
1分以上、検索に時間がかかる為、回線が切れて
「ORA-03113: 通信チャネルでend-of-fileが検出されました」になっちゃいます。

手操作でPingでも発行し続ければ良いのですが、
VB+oo4oで自動実行している処理でして、SQL*Netの設定で
何とかならないか、教えて欲しく。
環境はW2KでOracleはV9.2.0.6.0です(サーバ、クライアント共通)。

通常は、そんなに時間かからないんですが、時々例外的に大きな
範囲でSelectする時がありまして。
606NAME IS NULL:2005/08/30(火) 23:59:45 ID:ljyDea4D
>手操作でPingでも発行し続ければ良いのですが、
VBで非同期処理させれば?
607NAME IS NULL:2005/08/31(水) 00:15:44 ID:???
Oracleサーバー側のtcp_keepalive_interval を1分未満にすれ。
TCP/IPのOSカーネルパラメータ。
パラメータの名前はOSによって違うから、しらべれ。
SQLNET.EXPIRE_TIMEは最短1分だから使えん。
608NAME IS NULL:2005/08/31(水) 00:35:16 ID:???
>>606
それも考えたのですが、通常は一瞬で終わってしまうし、
色々難しそうでして・・・・・。(何ヶ月に1回、発生するかどうかだし)

>>607
糸口ありがとうございます!。調べてみます。
609NAME IS NULL:2005/09/01(木) 20:21:17 ID:f5Id/osC
質問なのですが…

Windows2000にOracle8を入れて、
別なWindowsPCからSQL*Plusからログインしようと
してるのですが、うまくいきません。
ユーザー名、パスワードはいいとして、
ホスト文字列には何を入れるのでしょうか?
PC名、SIDなど試しましたが、ダメでした
(エラーORA-12154になってしまいます。)

ひょっとすると、Oracle側で何か設定が必要なのでしょうか?
(リモートロクイン権限?のような設定など)

よろしくお願いします。m(__)m
610NAME IS NULL:2005/09/01(木) 20:47:32 ID:???
>>609
NET Configuration Assistantでサービス名を設定。
611609:2005/09/02(金) 00:18:35 ID:LQtzF6hm
>>610
アドバイスありがとうございます。
おかげでログイン出来るようになりました。
ホントに感謝です。
612NAME IS NULL:2005/09/02(金) 01:42:34 ID:???
Win2000にOracle8(R8.0.X)って、動作保証外だよ。
ま、つなっがってるならいいか。 ( ・ω・)
613NAME IS NULL:2005/09/02(金) 02:56:04 ID:???
そうそう言い方ってある。どっかの某掲示板だと
徹底的に叩かれるし、人が集まる。しかもポ(ry
614NAME IS NULL:2005/09/02(金) 03:05:32 ID:???
>>609, >>610

昔はTNSNAMES.ORAの書き方に関するクラスとかあったんだけどな。
最近は皆GUIか。
615NAME IS NULL:2005/09/03(土) 16:18:05 ID:???
>>614
SI Object Browserに飼いならされて標準のGUIツールさえ使えない技術者がいっぱいいるのが現状ですからのう。
ただスクリプト派のオレでもdbcaは使うことにしてますよ。
616NAME IS NULL:2005/09/03(土) 19:25:11 ID:IzO8g/R+
dbcaに限らず、GUI設定ツールの利点は、文法ミスをすることが無くなることだな。
とはいえ、設定を見るときには直にファイルを見るほうが早いけどね。
実機やXサーバの入ってるマシンの前までいくのも面倒だし。
617NAME IS NULL:2005/09/03(土) 22:26:33 ID:???
>>616

dbca使ってスクリプト作成させたら思い切り文法間違えたものが
吐き出されていたことがあっぞ?w
だから10gでも未だにcreate db文は自分で作成している。
618NAME IS NULL:2005/09/05(月) 23:21:18 ID:bCceaznf
RedHatLinux9.0にOracle10gをInstallしたのですが、sqlplusでバックスペースを入力すると、^Hになってしまいます。 Ctrlキーと一緒に打てば効くのですが何か手はないのでしょうか?
619NAME IS NULL:2005/09/06(火) 00:23:28 ID:???
>>618
Oracle 以前。
stty erase ^H
620NAME IS NULL:2005/09/06(火) 00:44:16 ID:???
それはそうですがsqlplusのコマンドライン編集も何とかなんないかなあ。
621NAME IS NULL:2005/09/06(火) 01:21:53 ID:FVdRs1lV
ASMで新規REDOログファイルをREDOログメンバに追加する際に
出るエラーに関して質問があります。

ASMでファイルを作成すると、
+<ディスクグループ名>/<DB名>/<ファイルタイプ>/<ファイル名>.<SEQ>.<添え字>
というフォーマットになると思うんですが、
REDOログファイルのメンバにこの形式で追加しようとすると、
OMFからエラーが表示されて作ることができません。(EMからでもSQLPlusからでも)

エラーは「ファイルにOMFのファイル名があります。」
という内容のものでした。

添え字を含まなければ作成できるようなのですが、
設定書を提出するので、できればこのフォーマットで作りたいと思っています。

どなたかエラーの回避方法をご存知の方いらっしゃいましたら、
是非お願いいたします。

バージョンは、10.0.2で、RAC環境(ノードは2台)です。
よろしくお願いします。
622NAME IS NULL:2005/09/06(火) 01:44:39 ID:???
ファイル名はASMが決めちゃうんじゃなかったっけ?
それとかぶっちゃいやんなエラーじゃない?
623NAME IS NULL:2005/09/06(火) 01:55:02 ID:FVdRs1lV
言葉が足りず、すみません。

+<ディスクグループ名>/<DB名>/<ファイルタイプ>/<ファイル名>.<SEQ>.<添え字>

の中で、ファイルタイプまでは同じで、
ファイル名、SEQ、添え字は全て異なるものを手書きで指定して作成しているのに、
エラーになるとです。

正直全くわかりません・・・T-T
624NAME IS NULL:2005/09/06(火) 02:06:41 ID:FVdRs1lV
おそらく分かりづらかったと思います。すみません。

例を挙げると、

+DATA/ORCL/onlinelog/REDO_1.256.1

が元からあったロググループ1のログファイルとして、
そのグループ1に
+DATA/ORCL/onlinelog/NEWREDO_2.257.2

と手書きで追加しようとするとエラーになります・・。
625NAME IS NULL:2005/09/06(火) 03:10:37 ID:???
>>624

O/Sは何?
V$ASM_DISKとv$asm_fileには何が出てくる?
それともし「ファイルにOMFのファイル名があります。」 と言われてるんなら
単純に「reuse」オプションして作成してみたら?
626NAME IS NULL:2005/09/06(火) 04:56:22 ID:???
>>623
+DATA/ORCL/onlinelog/REDO_1.256.1がOMFが自動でつけた名前なら
追加する場合もOMFに自動でつけさせる必要がある。
初期化パラメータに次の設定があるならOMFを使ってるのはほぼ間違いない。
DB_CREATE_ONLINE_LOG_DEST_1 = '+DATA'
あとはコレだけでログファイルが追加される。
ALTER DATABASE ADD LOGFILE;
627NAME IS NULL:2005/09/06(火) 05:31:43 ID:???
>>626

RAC組んでるんだからTHREADの指定も必要なのでは?
628623:2005/09/06(火) 06:01:26 ID:MGWSZhnQ
>>622,624-626
レスありがとうございます。

>>625
v$asm**にはもちろん新規追加したいファイル名はありません。
reuseオプションですか・・・そんなオプションがあったとは。
当方夏からOracleを触り始めたため、素人同然なので調べて試してみます。
また、OSはWindowsServer2003 ST×2台です。

>>626
DB_CREATE_ONLINE_LOG_DEST_1に+DATAがあります。
REDOグループが4つ(RACなので1ノードに2グループずつ)あるのですが、
ALTER DATABASE ADD LOGFILE;
と打ったとき、どのグループに追加されるのでしょうか?
質問ばかりですみません・・・。

>>627
THREAD・・・初期パラでしょうか。
さきほど自宅に帰ってきてしまったので、それも調べてみます。

みなさまありがとうございます。
また自分でも調べてみます。
何か分かりましたらお答えいただけると幸いです。
629NAME IS NULL:2005/09/06(火) 06:11:10 ID:???
>>628

RACの場合、どのTHREAD(インスタンス番号)のどのグループに
REDOを追加するかという指定が必要。
構文は・・・
alter database add logfile thread スレッド番号 group グループ番号
'ファイル名' size ファイルサイズ reuse;
だよ。
630623:2005/09/06(火) 06:26:34 ID:MGWSZhnQ
>>629
うおっ、っぽいですね!早速出社して試してみます。

データベースファイルでもそのような構文で
表領域へのデータベースファイルの追加ができそうですね!

これでできたら本当に感謝です!
631NAME IS NULL:2005/09/06(火) 16:44:36 ID:???
>>630
ASMの話とRACの話が混ざってるように思えるが、
+DATA/ORCL/onlinelog/REDO_1.256.1 はASMの完全修飾名だからASMが自動でつける名前。
>>622の指摘のとおり、完全修飾名を手動で付けようとしてるからエラーになってるとも思います。
RAC+ASMがどのくらい使われてるか知らないけど、Standard Editionの価格設定もあって広まってるのかな?
面白そうな話題なので解決したら教えてください。
632NAME IS NULL:2005/09/06(火) 17:50:09 ID:???
テーブル制約を持つ親テーブルの名前を得るにはどうしたらいいですか?
633NAME IS NULL:2005/09/06(火) 20:24:21 ID:FVdRs1lV
>>631
まさにその通りで、ASMで勝手に名前が付けられます。
表領域を作成するときなどは、ファイル名は勝手に<表領域名.SEQ.添え字>になります。
コマンドは create tabelspace <tablespace名> だけです。

表領域にファイルを追加するときや、REDOグループにファイルを追加するときなどに、
ファイル名を手書きせずに書く方法があればなぁ、と思っています。
>>629のコマンドも結局ファイル名書かなければいけないですし。

今日はDBを触れない日だったので、また色々試して報告します。
634NAME IS NULL:2005/09/06(火) 23:05:12 ID:???
oracle9iで、SQLのログを見ることはできないのでしょうか。
tcp/ipをdumpして見ていますが、よくわからないです。
635NAME IS NULL:2005/09/06(火) 23:25:21 ID:???
>>634
いきなり通信パケットのトレースを取るとは乱暴なやつ。そんなあなたに SQLTrace
636623:2005/09/08(木) 02:06:18 ID:lKUSimgS
ASMのREDOグループ追加に関する報告および質問です。

さきほどテストしてみましたが、やはりダメでした。
alter database add logfile thread スレッド番号 group グループ番号
'ファイル名' size ファイルサイズ reuse;
→「すでにグループは存在しています。」のエラー。
グループを増やしたいんじゃないやい!
既存のグループにファイルを追加したいんじゃ!

アーカイブログみたいに、<ファイル名.%S.%T>とか直書きしてみたけどそれもダメ。
無効な文字列です。のエラー。

もうだめぽ・・・。

どなたか経験者おらんかな。
637623:2005/09/08(木) 02:08:08 ID:lKUSimgS
訂正。
×ASMのREDOグループ追加に関する報告および質問です。
○ASMの既存REDOグループへの新規ファイル追加に関する報告および質問です。
638NAME IS NULL:2005/09/09(金) 03:03:28 ID:???
今日はSev 1 TARを二つあげて仕事中('A`)メンドクセ
なんでこうもOracle Supportは対応が悪いのかね・・・。
639名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:23:55 ID:???
JAVA + Oracle で質問です。
JAVAからストアドをコールしてOUTパラメータを取得したいのですが、
そのパラメータが配列の場合にどうすればいいのか分かりません…
どなたかお教え頂けないでしょうか。

-----------------------------------------
DB側の情報です。
TYPE t_string IS TABLE OF VARCHAR2(10)
INDEX BY BINARY_INTEGER;

PROCEDURE PLUS_INC(
i_num IN NUMBER,
o_num OUT NUMBER,
o_string OUT VARCHAR2,
o_stringArray OUT t_string
) IS
640NAME IS NULL:2005/09/12(月) 13:05:20 ID:???
oracleで、(select シーケンス.NEXTVAL FROM DUAL)をサブクエリーとして実行すると失敗します。
これは無理なのでしょうか。
また、シーケンスはトランザクションの対象外と聞きました。
シーケンスにロックをかけることはできないのでしょうか。
641NAME IS NULL:2005/09/13(火) 00:54:11 ID:???
>>639

どっちかというとOracleに対する質問というよりもJAVAに関する
質問の様な気が・・・。
642NAME IS NULL:2005/09/13(火) 01:15:45 ID:???
643NAME IS NULL:2005/09/13(火) 01:17:04 ID:???
644NAME IS NULL:2005/09/13(火) 04:21:18 ID:???
ボラクルがシーベル買ったね。
ピープルソフトといい、どうなることやら。
645NAME IS NULL:2005/09/15(木) 11:36:06 ID:???
10.1.0.4のPLSQLにパラメータで空白を渡したら
NULLになるって言われたんですが、そんなことありえないですよね?
おまけに10.1.0.3では大丈夫だとか言ってるし・・・
本当なら大騒ぎになっているハズ。
646NAME IS NULL:2005/09/15(木) 22:23:52 ID:???
>>645

十分に有り得る話だな。
647NAME IS NULL:2005/09/16(金) 10:54:18 ID:???
ちと、こことCOBOLのスレどっちで質問するかわからなかったんですが、
Pro*Cobolで、コンパイルするときの
procob.exe と procob18.exe の違いってどんな感じなんでしょうか?
648NAME IS NULL:2005/09/16(金) 16:27:56 ID:???
>>647
バージョンの違いらしい。富士通のとこにちょっと出てた。
ttp://software.fujitsu.com/jp/cobol/faq/procob/pco0101.html
649NAME IS NULL:2005/09/16(金) 17:53:23 ID:???
Oracleのライセンスについてですが、クライアントからの接続の仕方は
関係ありませんよね?
CPUの数で決まると思ったので、ないと思っているのですが
JDBCドライバのOCIとTHINで、OCIの方はOracleクライアントが必要なので
その分だけ高いのかな・・と思いました。
650NAME IS NULL:2005/09/16(金) 19:43:18 ID:???
>>649
何が訊きたいのかイマイチ解らないが、
ttp://www.oracle.co.jp/products/price/index.html
くらいは読もうや。
651NAME IS NULL:2005/09/17(土) 01:53:19 ID:???
ORACLEってメモリー何GBまで扱えるの?
MSSQLは実質上限無しだよね?
652NAME IS NULL:2005/09/17(土) 02:25:37 ID:???
マシンに積める限り
653NAME IS NULL:2005/09/17(土) 02:29:37 ID:???
>>651
CPUやOSの制限による。
IA32でWindowsの話に限定するなら、基本は2Gまで、
AWEというメモリの拡張機能をサポートしてるCPUとWindows Server Enterprise以上なら
2G越えのメモリを使うことができる。
Unix/Linuxの場合同じIA32のCPUでもOracleプロセスにスレッドを使っていないので、
CPUのアドレス空間による制限(2G〜4G)がボトルネックにはなりにくい。
MSSQLも基本は2Gまで、WindowsとMSSQLが両方ともEnterprise以上ならAWEで
2G越えのメモリを使うことができる。
654NAME IS NULL:2005/09/17(土) 02:49:35 ID:???
solarisで共有メモリーセグメントの許容サイズが
4294967295バイトまでなのでSGAを4GB以上割り当てようとすると
怒られてしまうのですが。。。
655NAME IS NULL:2005/09/17(土) 03:28:37 ID:???
>>654
もしかしてSGAサイズ=Oracleが使う全メモリサイズと思ってない?
各プロセスのコードやそれぞれのワークメモリは別だよ。
656654:2005/09/17(土) 08:28:49 ID:???
SGAに6GB割り当てたいんだぁよ。
できねんだよ。たのむよ。
657NAME IS NULL:2005/09/17(土) 08:47:57 ID:MhkFJJ0Y
SHMMAX
658654:2005/09/17(土) 09:00:01 ID:???
SHMMAX って4294967295バイト以上割り当てられます?
659NAME IS NULL:2005/09/17(土) 09:03:04 ID:MhkFJJ0Y
64bitシステムであれば。
660654:2005/09/17(土) 10:37:44 ID:???
Σ( ̄ロ ̄lll) ガビーン 。64びって…。
661NAME IS NULL:2005/09/17(土) 11:39:39 ID:???
問1. アドレスバスが32bitで、1バイト単位でアドレスが振られる場合の
   総バイト数を求めよ。                 (5点)
662NAME IS NULL:2005/09/17(土) 23:51:45 ID:???
そんなことも知らずに>>656ってのが痛い。
663NAME IS NULL:2005/09/18(日) 00:26:12 ID:???
>>660

まさかとは思うが、32bitで2GB以上のSGAを割り当てたがっていたのか?
というよりも、セマフォ確認してみ?
SGAが二つに割れてね?
664654:2005/09/19(月) 13:50:57 ID:???
>>663
リナックスならできるべ
665NAME IS NULL:2005/09/19(月) 16:54:29 ID:???
?
666ハーピィ:2005/09/19(月) 19:34:42 ID:???
E・∇・ヨノシ <666ゲット♪♪
667NAME IS NULL:2005/09/22(木) 13:46:12 ID:???
質問です。

たしかオラクルで、スケジュールにしたがって、
ストアドやファンクションを定期的にしたがって
実行する機能があったと思うのですが、なんて
言う機能だったでしょうか?よかったら、ご教授
願います。
668NAME IS NULL:2005/09/22(木) 13:56:27 ID:???
>>667
教授は留守だ。DBMS_JOBでも食ってろ。
669NAME IS NULL:2005/09/22(木) 14:01:14 ID:???
>>668

助手殿ですか。

素早い解答ありがとうごいました。
670NAME IS NULL:2005/09/27(火) 11:39:51 ID:k+RU5WNj
列のデフォルト値の設定は消せないんでしょうか
仕方ないんでnullに設定してるんですが
671NAME IS NULL:2005/09/27(火) 13:45:07 ID:???
現在、Windows 2000 Server(SP2)上で、Oracle 9.0.1.1.1でDBが稼動しています。
システム更新のためにOracle9.2.0.6.0へのバージョンアップが必要となるのですが、
この場合はアップデート(パッチ)扱いになるのか、新規にインストールする必要があるのかをお教えください。
また、パッチ扱いになるとしたら、稼動中のインスタンスに影響は出るのでしょうか。

初歩的な質問で申し訳ありませんが、よろしくお願いいたします。
672NAME IS NULL:2005/09/27(火) 18:32:59 ID:GrE2Del+
State = "Select * From 商品 "
Set sDS = gCn.DbCreateDynaset(State, ORADYN_NO_BLANKSTRIP)
sDS.AddNew
sDS.Fields("商品名").Value = Trim(y商品名.Text)
sDS.UpDate
sDS.Close
上記のやり方でVARCHAR2型の商品名に"A〜Z"を代入しても〜の部分が?に
自動変換されてしまいます。どうしても原因がわからず困っています。
フィールド型が間違っているのでしょうか?
673NAME IS NULL:2005/09/27(火) 22:13:57 ID:???0
>>671

1まず.9.2.0.6のバイナリをインスコする。
2.DBUA使って、DBのアップグレードを行う。

これが一般的なパスかな。
マニュアルでスクリプト流してアップグレードしてもいいけど、
勝手にやってくれるDBUAに任せるのが楽でいいんでないの?
ちゃんとアップグレードのテストはやっておくように。
674NAME IS NULL:2005/09/27(火) 22:23:55 ID:???0
>>670

デフォルト値をnullに設定した時点で解除と同じ意味になるのだが・・・。
675NAME IS NULL:2005/09/27(火) 22:30:42 ID:???0
>>672

文字コードじゃねぇの?
SQL*PLUSで見てみたらどうなっている?
676NAME IS NULL:2005/09/27(火) 22:31:23 ID:???0
>>672
ウェーブ・ダッシュ問題という事象で結構有名。
DBのキャラクタセットをJA16SJIS_TILDEで作り直すか、
クライアントのレジストリをJA16SJIS_TILDEにすれば取りあえず解決。

oo4oの場合ね。
677NAME IS NULL:2005/09/28(水) 11:09:05 ID:???
>>672
unix なら「〜」は激しく化ける希ガス。
SQL*Plus とかで表示する分には見えたりするときもあるんだが、
(クラ側で変換してるだけだろうが)
ファイルに吐いたりするとヤバす。
それで、2バイトが、1バイトになってて、桁ずれ起こして・・・・・_| ̄|○
678NAME IS NULL:2005/09/28(水) 11:24:55 ID:lbVCK6oc
>>675>>676>>677
レスありがとうございます。教えてもらった事を踏まえて、上司に相談したとこ
ろ「〜」を外字として使えば大丈夫だという結論に達しました。
679NAME IS NULL:2005/09/28(水) 18:00:10 ID:haRbij2W
外部キーを参照している表が存在するDBにおいて

expとimpでバックアップリストアはかけれるでしょうか?
何を心配しているのかというと
impの途中で外部キー以外のデータをその列に登録するなとか言われませんか?


教えてください。よろしくお願いします。
680NAME IS NULL:2005/09/28(水) 21:46:25 ID:???
>>679

言われるに決まってるだろ。
だから普通は外部キーをDisableにしてimpするよ。
681NAME IS NULL:2005/09/28(水) 23:23:06 ID:???
>>671

ちと言葉が足りなかったかな。
アップグレードを行う場合、まず最初に9.2.0.6のオラクルのS/W(バイナリ)を
別ORACLE_HOMEにインストールする必要がある。
つまりこの時点で9.0.1.1.1と9.2.0.6の二つのORACLE_HOMEが同一マシン
上に存在している事になる。
簡単なアップグレードは先に述べた通り、9.2.0.6のDBUAを使って、GUIで
アップグレードを行う事だが、マニュアルでスクリプトを流してもいい。
くれぐれもアップグレード前に、バックアップとリストアのテストはやっておく
ように。
それとこんな事はないだろうが、間違ってもテスト無しで本番環境をアップ
グレードしようと思うなよ。
DBUAは結構状況によってはコケる事が多々あるからな。
682NAME IS NULL:2005/09/29(木) 01:12:00 ID:9uthIP7L
683NAME IS NULL:2005/09/30(金) 22:31:45 ID:???
DELLの安物IA32サーバにメモリ2GB積んで、
Windows Server 2003 Standard Edition乗っけて、
Oracleで100クライアントからのODBC接続が捌けるか捌けないか
なんて聞かれて、漏れは
「やりようによっては大丈夫」としか答えられなかったよ。

MTS構成にすりゃ、充分捌けるとは思ってるんだけど、
「ODBC接続」の中身が問題だよなぁ。
ACCESSのリンクテーブルとかだったらどうしよう。orz


684NAME IS NULL:2005/09/30(金) 23:16:08 ID:???
>>683

火を吹く方に1000ペソ。
685NAME IS NULL:2005/10/02(日) 20:58:03 ID:YkBKqHxt
データベースをオープンしているのに、emで見ると立ち上がっていないって言われちゃうよ。

↓↓↓↓↓↓こんなエラーが表示されます。
現在、データベース・ステータスは使用不可です。
データベースがマウント状態または非マウント状態である可能性があります。
「起動」をクリックして現在のステータスを取得し、データベースをオープンしてください。

686NAME IS NULL:2005/10/02(日) 21:37:17 ID:???
>>685

10g OEMで昔からあるバグだよ。
手っ取り早いのは10g OEM使ってインスタンスを再起動する事だけど、
確実なのは10g OEMのバージョンを10.0.1.4に上げること。


687685:2005/10/02(日) 21:47:26 ID:YkBKqHxt
>>686
ありがとうございます。早速パッチ当てます。
それにしてもすごいバグですな。
688NAME IS NULL:2005/10/03(月) 05:04:25 ID:???
>>687

10.0.1.3でも直っていない所が最強だろ?w
689NAME IS NULL:2005/10/03(月) 05:06:00 ID:???
>>687

それとどちらかというとパッチを充てないとならないのは
Agentの方だね。
690NAME IS NULL:2005/10/03(月) 10:34:38 ID:6HLtS+oH
教えてください。

OS:Windows XP
Oracle:Oracle 9.2.0.1

で、C#を動かそうとすると、「DLL(oci.dll)が読み込めません」というエラーが発生します。
ぐぐってみると、Oracleのバージョン違いで同じようなことがあったらしく、
Oracleホームディレクトリのユーザーに「Authenticated Users」を追加すると解決するとあったので
やってみましたが、駄目でした。

助けてくださいませ。
691NAME IS NULL:2005/10/03(月) 12:38:03 ID:tT+OaRbN
1.プログラムはORACLEとの接続に何をミドルウェアとして選択して作ったのか?
2.問題のPCに問題のDLLは何個存在(0?)するか、そもそものORACLEのNETの設定はOKで繋がっているのか?
692NAME IS NULL:2005/10/03(月) 13:42:51 ID:???
693NAME IS NULL:2005/10/04(火) 03:23:39 ID:xjze4YbB
>690 です。

>691さんへ
1.プログラムは、Oracleとの接続には、普通に

using System.Data.OracleClient;

// 接続文字列の編集
string sCon = "";
sCon += "User Id=" + DBProperty.DB_USER + ";";
sCon += "Password=" + DBProperty.DB_PASS + ";";
sCon += "Data Source=" + DBProperty.DB_NAME + ";";
sCon += "Max Pool Size=" + DBProperty.MAX_POOL_SIZE + ";";
sCon += "Min Pool Size=" + DBProperty.MIN_POOL_SIZE;

OracleConnection con = new OracleConnection(sCon);

// コネクション確立
con.Open();
// 接続できているか?
if ( !con.State.Equals(ConnectionState.Open) )    ←ここで落ちる
{
error処理
}

状態です。
上手く説明できないのでソース貼りました。すみません。

2.については、すみません。勉強不足で聞かれている意味がよくわかりませんでした。

>690さんへ

ありがとうございます。
やってみましたが、エラー回避できませんでした。
回避できないがゆえに、いろんなところに権限付与したら「システムエラー」というのが出てしまい、
手に負えなくなったので、もう一度Oracleを入れなおしてみました。


そこで、>327さんの現象だったら、>332さんの方法で回避できると思って、SP1からSP2にあげて、>332さんの方法を試すと、上手く動くようになりました。

お騒がせしました。
ありがとうございました。
694NAME IS NULL:2005/10/04(火) 11:07:28 ID:KgVvynBI
どらぐらいの、コネクション(プロセス)が張られているのかしりたいのですが
良いSQL文教えてくれませんか?
バージョンは8です。

簡単な質問かもしれませんがお願いします。
695NAME IS NULL:2005/10/04(火) 11:18:29 ID:???
>>694
この手の話はリファレンスマニュアルをDLしてみたほうがいいよ。
V$Session辺りだけど、欲しい情報が>>694の文面だけじゃなんともいえないし。
696sage:2005/10/04(火) 13:06:55 ID:A1TfhcO/
以下のような抽出結果を出すSQLはどう書けばよいでしょうか?

CD  VAL SUM
10001  2  2
10002  1  3
10003  3  6
10004 -2  4
10005  5  9
10006  1 10
10007  1 11
10008 -6  5
10009  1  6

SUMは前までの行のVALの合計です。
697696:2005/10/04(火) 13:37:07 ID:???
他の板から辿った
ttp://oraclesqlpuzzle.hp.infoseek.co.jp/7-1.html
でわかりました。どうもすみませんでした。
698NAME IS NULL:2005/10/05(水) 18:00:25 ID:???
オラクルシステムで伝票1枚印刷するのに10分も待たなきゃいけないんだが、
これは単純にプログラマがヘタレなんかね?
699NAME IS NULL:2005/10/05(水) 21:42:39 ID:???
( ゚д゚)ポカーン >>698
700NAME IS NULL:2005/10/05(水) 21:43:39 ID:???
色々と要素はあると思うけどね。
プログラムの場合もあるし、鯖が死にそうなぐらい老体なのかも知れないし、
ネットワークが駄目駄目なのかも知れない。
まあ、でもプログラムが一番疑わしいのが確かかな。
一体何使ってDBに繋げているのよ?
701NAME IS NULL:2005/10/05(水) 22:03:18 ID:???
MS-ACCESSとかじゃないの?
702698:2005/10/06(木) 20:00:22 ID:???
システム屋じゃないから詳細不明だけどJAVAっぽい。
このウインドウを閉じるなっていうやつがブラウザに常駐してる
703NAME IS NULL:2005/10/06(木) 20:42:52 ID:???
オラクル直結のクリスタルレポートとかあるのかな
704NAME IS NULL:2005/10/07(金) 04:17:10 ID:???
>>702

そのプログラムって、ボラクルのEBSなのか?
それともオリジナルでJAVA AppletからJDBC Thinででも繋げているのか?
705NAME IS NULL:2005/10/07(金) 09:14:20 ID:???
そういえばEBS導入で訴えられたSIがいたっけ?
706NAME IS NULL:2005/10/09(日) 13:19:10 ID:???
sysauxって何って呼んでいる?
707NAME IS NULL:2005/10/09(日) 13:32:50 ID:???
シスオークス
708NAME IS NULL:2005/10/09(日) 13:51:43 ID:kn/DBQLw
この掲示板のほうが適しているとの助言を頂いて、
こちらに再度書かせてもらいます。

非常にこまっているので質問させてください。

system表領域のデータファイルは損によりDBが起動できなくなりました。
対応を調べてnomount状態で起動し、リカバリをすればいけそうだとあたりはついたのですが、
そのnomount状態にできない状況です。

set ORACLE_SID=test
sqlplus /nolog
conn / as sysdba
ここでTNSのプロトコルエラーが発生します。
TNS-12560、TNS-00530

環境はwin2k advでクラスタ環境で使っています。
oracleは9iです。
OSのログインユーザはORA_DBAに属していて、sqlnet.oraにもNTSと設定しています。
休日で担当者も捕まらず困っています。
よろしくお願いします。
709NAME IS NULL:2005/10/09(日) 14:13:35 ID:???
>>708
Oracle自体が壊れているよ。
再インストールしかないね。
710NAME IS NULL:2005/10/09(日) 15:55:54 ID:???
そのOSゆーざーがORA_DBAグループに入っているか確認すれ。
711NAME IS NULL:2005/10/09(日) 17:41:13 ID:???
>>708
sysのパスワードが分かれば、
手っ取り早いんだがな。(w

OS認証じゃなくて、パスワード認証で入れ。
712NAME IS NULL:2005/10/09(日) 22:49:29 ID:???
>>708

O/Sが窓なんだから、sql*plusで繋げる前にまずサービスでリスナー上げれ。
話はそれからだ。
713NAME IS NULL:2005/10/10(月) 01:25:18 ID:???
$sqlと$sqlareaの違いを教えてください。
714NAME IS NULL:2005/10/10(月) 01:31:13 ID:???
715NAME IS NULL:2005/10/10(月) 14:08:11 ID:???
リスナーが起動しているかどうかを
プログラム中でチェックさせるにはどうしたらいいんでしょう?

lsnrctl statusを実行させるしかないんでしょうか?
716NAME IS NULL:2005/10/10(月) 14:50:54 ID:j0AM9GWe
死活程度なら、psでもいいが。
717NAME IS NULL:2005/10/10(月) 22:57:45 ID:???
>>715

いつも言っているがボラクルが乗っているO/Sぐらい書くあるよ。
718NAME IS NULL:2005/10/10(月) 23:21:21 ID:???
$system_parameterと$parameterと$spparameterの違いを教えてください。
$parameterはinitファイル、$spparameterはspfileというところまではわかるんですが、spfile使用時は$system_parameterはどうなるの?
719NAME IS NULL:2005/10/11(火) 07:26:36 ID:???
>>718

spfileがある場合には、全てにおいてそっの方が優先されるから、
spfileだろうな。
720NAME IS NULL:2005/10/11(火) 10:58:25 ID:???
何処に向かってるんだか・・・。


★【経済】OracleがMySQLに採用されているInnoDBの開発元を買収-米国

米Oracleは7日(現地時間)、Innobaseの買収を発表した。Innobaseは、InnoDBの開発元
として知られるフィンランドの企業。InnoDBは、オープンソースのデータベース技術で、
MySQLにも採用されている。買収の条件などは明らかにされていない。

InnoDBは、それ単体でデータベース製品として存在するものではなく、たとえばMySQL
の一部として提供されているデータベース技術。InnobaseとMySQLは現在契約を結んで
いるが、来年にはその更新が控えている。OracleではInnobaseが、MySQLと契約を更新
することを望む、と表明している。

MySQLは、MyISAM/InnoDB/NDB Clusterといった複数のデータベースエンジンに対応
し、必要に応じて使い分けることができる特徴をもつRDBMS。MySQL ABが開発を行い、
GPLのもと配布されるオープンソースソフトウェア(※)だ。同じくオープンソースのRDBMS
であるPostgreSQLと比較すると早くからWindowsでの運用を正式にサポート、高速な処理
能力やDBへの接続コストの低さなどで人気を呼んでいる。大規模環境での運用事例も
多く、国内では楽天での事例が有名だ。

ttp://pcweb.mycom.co.jp/news/2005/10/08/001.html
721NAME IS NULL:2005/10/11(火) 20:58:40 ID:???
本当のローエンド or ちょっとした開発環境:MySQL
部門DB以上:おら
にして、OracleでもInnoDBつかえるようになりましたよー、だらかOracleかってねーとか?
722NAME IS NULL:2005/10/12(水) 08:20:24 ID:???
LOB列(BLOB,CLOB)を含む表を別の表名にコピー(移動はダメ)したいのですが、
INSERT TABLE xx AS はLOBの制限でできないようです。
CURSORでまわして1行づつコピーするしかないのでしょうか。
もっと簡単な方法をご存知の方、教えてください。
723NAME IS NULL:2005/10/12(水) 09:08:07 ID:???
>>722
exp→表のリネーム→imp
じゃダメなのか?
724NAME IS NULL:2005/10/12(水) 11:17:09 ID:???
オラクルは、開発しやすいのだが、
オブジェクト間の依存性が強すぎる。

テーブルのカラムを追加しただけで、
対象テーブルを使用する既存のストアドに関しても
INVALIDとなり、リコンパイルを強いられる。

この辺りはAS/400のRPGみたいだ。
725NAME IS NULL:2005/10/12(水) 12:54:54 ID:???
726722:2005/10/13(木) 00:12:20 ID:???
> 723, 725

サンクス
exp → 表のリネーム → imp
は遅いので。。。特にimpが。。。

SQL COPYは試してみます。
CREATE TABLE AS SELECTと同じことになりそうな。。。
727しげ:2005/10/13(木) 09:11:26 ID:yIvrpdUh
ひとつ質問させてください。

サーバ:UNIX
クライアント:WINDOWS 2000
DB:ORACLE8

というシステム構成で、『CSVデータをORACLEにロード
したい』のですが、システムの仕様上場合によってはCSVデータが0件
(0バイト)の可能性があるのです。
その場合でも、エラー終了することなく処理を継続させたい。
つまり、ログでいうと「0件ロードされました」のような状態に
したいのですが、何かいい方法はありませんでしょうか。

何もしないと、
「SQL*Loader-00501: ファイル(string)を読み込めません」
というエラーが出てしまいます。

LOADERを動かすシェル側で、エラーのハンドリングをする
しか方法はないのでしょうか。

どうぞ、よきアドバイスを!!
よろしくお願い致します。
728NAME IS NULL:2005/10/13(木) 09:57:38 ID:???
>>727
SQL*Loader側で処理せんでも、
ソースのCSVファイルが0バイトなら
Load処理しないようなシェルスクリプトにしたらいい。
で、ログに0件処理しました、と吐けばいい。

・・・で、もしかして、Windows側からのLoad?
だとしてもWSHで処理すれば出来るよな?
729しげ:2005/10/13(木) 10:38:47 ID:yIvrpdUh
ありがとうございます。

ロード処理は、UNIXサーバ上で走行させます。
ついでに質問ですが、その場合のシェルスクリプトは
どのような感じになるのでしょうか。
だいたいで結構です。
ご教示お願い致します。
730NAME IS NULL:2005/10/13(木) 10:45:43 ID:???
>>729
bashでいいかい? 判定はサイズを調べて0ならば処理をスキップでいいのかな。
あとム板にマルチしてるがこっちに誘導しとけよ。
731しげ:2005/10/13(木) 11:18:56 ID:yIvrpdUh
す、すんません・・・。
いろいろとご迷惑おかけしますです。
そんな感じで結構です。
シェルにすると、どんなコードになるのでしょうか?
732NAME IS NULL:2005/10/13(木) 11:47:00 ID:???
>>731
if [ -s input_filename ]
then
sqlloader options....
fi

-s で1バイト以上のサイズのファイルがあれば条件が成り立つからそれでsqlloader を実行。
733しげ:2005/10/13(木) 12:01:18 ID:yIvrpdUh
おおお!
ありがとうございます!!
助かりました。
734NAME IS NULL:2005/10/14(金) 03:07:19 ID:???
>>727

ちなみにこれはOracle8.1.7で修正されている。
DBを8.1.7にあげるか、もしくはWorkaroundとしてダイレクトパスを
使ってアップロードすればエラーは回避出来たりする。
まあ、shでチェックしてもいいけどね。
735しげ:2005/10/14(金) 13:10:48 ID:jtcNsQDV
そうだったんですか!
うちのシステムのバージョンは、確か8.0.5だったような気が・・・。
shでチェックすることにします。
ありがとうございました。
736NAME IS NULL:2005/10/15(土) 01:46:23 ID:a0nAzn2r
例えば100件の情報がDBに存在して一覧に表示できる件数は20件です。
SQL文で21件目〜40件目を取得するような関数ってありますか?
Oracleではできるって聞いたんですけど。
スレ違いだったらスイマセン。
737NAME IS NULL:2005/10/15(土) 02:18:55 ID:???
row_number() とか。
738NAME IS NULL:2005/10/15(土) 02:32:08 ID:???
>>736

Ver.が書いていないんで・・・。

select * from emp where rownum <= 40
minus
select *l from emp where rownum < 20;

row_number()が使えるのは8iからだな。
739NAME IS NULL:2005/10/15(土) 13:09:37 ID:a0nAzn2r
>>738
すいません。9iです。
>>737さんが言ってるrow_number()はどう使えばいいんですか?
>>738さんのSQL文はwhere句のサブクエリとかじゃなくて、
1個のSQL文でよろしいのでしょうか?

740NAME IS NULL:2005/10/15(土) 13:28:26 ID:bnb8MZCS
>>739
教えて君は死ね
741NAME IS NULL:2005/10/15(土) 13:36:07 ID:???
742NAME IS NULL:2005/10/15(土) 22:42:12 ID:???
Oracle9iってUniversalInstallerじゃなくて
CUIからのサイレントインストールってできる?

X入れてないLinuxに入れたいんだが・・。
743NAME IS NULL:2005/10/15(土) 22:53:05 ID:???
>>742

出来る。
744NAME IS NULL:2005/10/15(土) 22:55:14 ID:???
>743
Oracleのネットに転がってるマニュアルにやり方のってる?
あるなら探そうかな。
745NAME IS NULL:2005/10/15(土) 23:27:17 ID:???
746NAME IS NULL:2005/10/16(日) 08:47:56 ID:???
>>742
別マシンのXServerに画面出力を飛ばすとかで良いから
とにかくX Windowを用意しないと無理。
747NAME IS NULL:2005/10/16(日) 09:58:20 ID:GV1bn3RI
>>742
LinuxにWindowsからCygwinのX経由でログインしてそこからインストールしたことがある。
748VIPから失礼します:2005/10/16(日) 11:59:11 ID:???

これもVIPクォリティ?
小学6年生の男女が裸体うp祭り中!!!

VIPになら小学6年生ぐらいは来てるだろ?
http://ex11.2ch.net/test/read.cgi/news4vip/1129427490/
749NAME IS NULL:2005/10/16(日) 15:46:53 ID:gVrBhiQM
>>741
ありがとうございます。
参考になりました。
750NAME IS NULL:2005/10/16(日) 18:10:48 ID:EKJoMukt
tebleのサイズをはかりたいんですが、どうやってやればいいのでしょうか?
751NAME IS NULL:2005/10/16(日) 21:09:45 ID:???
>>750
いろんな要素が含まれてると思う
ブロックサイズとか、インデックスとか...テーブルのサイズって事は関係ないのか?
OTNの「領域サイズ見積り」を使用したら

簡単になら、適当な係数をかけるのが宜しいかと思うのだが
たとえばだが
1レコードのサイズ*レコード数*1.2
752NAME IS NULL:2005/10/18(火) 00:15:43 ID:???
IDとパスワードに scott/tiger が使われる由来を知りたいのですが、
どなたかご存知ないでしょうか?
753NAME IS NULL:2005/10/18(火) 01:38:22 ID:???
開発者scottさんが飼ってた猫の名前がtiger
754NAME IS NULL:2005/10/18(火) 01:53:10 ID:???
おー、そんな由来があったとは。
755NAME IS NULL:2005/10/18(火) 13:11:11 ID:???
開発者の名前ってことは知ってたけどtigerが猫の名前だったとは
756NAME IS NULL:2005/10/20(木) 03:50:12 ID:???
>>726

何のフィードバックも無い所を見るとうまくいったのか?
757NAME IS NULL:2005/10/20(木) 23:34:54 ID:???
ProC絡みの質問。

処理概要
テーブルAとテーブルBの一致する複数ユーザーIDをキーに
テーブルAの項目XをテーブルBの項目Yで更新する。

EXEC SQL BEGIN DECLARE SECTION;
char user_id[100];
EXEC SQL END DECLARE SECTION;

strcpy(user_id, "'12345','67890'");

EXEC SQL WHENEVER SQLERROR GOTO sql_error;
EXEC SQL UPDATE TABLE_A A SET( A.X ) = (
SELECT B.Y FROM TABLE_B B WHERE B.USERID = A.USERID )
WHERE A.USERID IN( :user_id );

strcpyでuser_idに値を渡しているのに、SQLを発行すると「値なし」で返ってきてしまいます。
IN(:user_id)をIN('12345','67890')と直書きすると普通にアップデートできます。
何かしら制約があるのでしょうか?

>37
は関係ないかな・・・
758NAME IS NULL:2005/10/20(木) 23:52:13 ID:???
>>757
IN句に複数の条件を設定したいなら、
(:user_id1, :userid2)
と記述する必要があったはず。
759757:2005/10/20(木) 23:55:51 ID:???
お〜、どうもです。明日職場で試してみます。
文字列で一気に認識させるということが出来ないわけですな。
760NAME IS NULL:2005/10/21(金) 09:59:10 ID:???
ProCに関しては、プリコンパイルされたソースを見て推察する能力も必要に・・・。
SQLがどのように展開されているか見れば、自分の記述の何が悪いか判る・・・ようになってしまった。w
761NAME IS NULL:2005/10/21(金) 11:36:27 ID:Ljc6rll4
>>757
つーかupdate文一回でいいのでは?
762NAME IS NULL:2005/10/21(金) 12:51:17 ID:???
>>761
一回しかやってないが。
763NAME IS NULL:2005/10/21(金) 12:59:44 ID:vsbYkolF
横レスだけど、サブクエリーでINで表現しないでってことじゃないの?
もっと単純なSQLでUPDATEが記述できるってこと。

なんつうか、INをとかサブクエリーを覚えるとそれに頼って性能劣化を招く時期って誰にでもあると思う。
青春の甘酸っぱい思い出のような。
764NAME IS NULL:2005/10/21(金) 13:12:53 ID:???
>>763
>もっと単純なSQLで
ほー。じゃ書いてみ。
765NAME IS NULL:2005/10/21(金) 14:25:47 ID:79/HdNoK
Oracle10g Personalをインストールしたんですが、「Enterprise Manager Console」が
オラクルホームに見つかりません。

何処にあるのか教えてください。
766NAME IS NULL:2005/10/21(金) 14:49:39 ID:???
767765:2005/10/21(金) 16:41:00 ID:79/HdNoK
>>766
回答ありがとう御座います。
ブラウザ版の「Enterprise Manager Console」はコンソールサービスの起動による
CPU負荷が大きすぎるので。

オラクルクライアントをインストールすると、9iのようにブラウザベースではない
「Enterprise Manager Console」が存在します。

10gになってから廃止されたのでしょうか?
768NAME IS NULL:2005/10/21(金) 20:37:41 ID:???
>>767

うむ、廃止された。
769NAME IS NULL:2005/10/21(金) 21:45:27 ID:79/HdNoK
>>768
ありがとうございました。
770NAME IS NULL:2005/10/22(土) 09:18:06 ID:???
ある処理の間のUNDO使用量をリアルタイムで監視したいのですが、
どうすればその処理(セッション)だけが使用しているUNDO使用量を
見ることができるでしょうか。
なお、自動UNDOを使用しています。
771NAME IS NULL:2005/10/22(土) 13:04:41 ID:???
>>770

SELECT s.username, t.used_ublk FROM
V$SESSION s, V$TRANSACTION t
WHERE s.saddr = t.ses_addr;
772770:2005/10/22(土) 21:08:44 ID:???
> 771
ありがとう

てっきりv$rollstatのwriteとかextentとか見るものだと思ってました。
773NAME IS NULL:2005/10/23(日) 22:25:56 ID:???
>>767

>10gになってから廃止されたのでしょうか?

ブラウザではなくてJAVAのGUIのEMならまだあるよ。
でも、使える機能に限りがあるけどね。
774NAME IS NULL:2005/10/24(月) 00:34:18 ID:???
ねぇ、正体不明のdmpがあってさ、中身がなんだか分かんないわけよ。
そいつを、インポートしないで中身だけ確認したりってできないかな?
817が吐いたってのは確実なんだが。
775NAME IS NULL:2005/10/24(月) 02:43:37 ID:???
>>774

んなもん素直に「imp SHOW=y」で見ればいいじゃん?
776NAME IS NULL:2005/10/24(月) 04:16:33 ID:???
>>774
バイナリエディタで開いてみるとよろし。テキスト部分が確認できる。
メモ帳で開いてもある程度は確認できるんじゃないか?
777774:2005/10/24(月) 04:49:31 ID:???
ありがd。
午後出社したら確認してみます。
778NAME IS NULL:2005/10/27(木) 22:59:13 ID:QbY01kAh
varchar2(7)の変数に'9999999'の項目を
Insertしようとしたら、応答がかえってこなくなりました。

ALL9って代入できないのでしょうか?
779NAME IS NULL:2005/10/27(木) 23:54:38 ID:???
>>778
普通にできるんじゃね?
取りあえずSQL*Plusで試してみれば。
780NAME IS NULL:2005/10/28(金) 10:04:25 ID:???
to_date('2005/10/10' ,YYYY/MM/DD'')でデータを登録すると、
実行した時間に関係なく、なぜか時刻が12:10:00になってしまいます。
自分では、00:00:00か現在時刻が入るかと思っていたのですが。
時刻指定を省略した場合、現在時刻をいれる方法はあるでしょうか。
781NAME IS NULL:2005/10/28(金) 10:49:35 ID:???
>>778
>ALL9って代入できないのでしょうか?
んな阿呆な事考えてないで、誰が表をロックしてるか確認した方がいい。
782NAME IS NULL:2005/10/28(金) 21:17:59 ID:BOc9ZANg
Linux版DB10g(10.1.0.2)をインストール済みのマシンにPatchSet(10.1.0.3)を
当てようとしても、「適用する必要のあるパッチがありません」ってメッセージが
でて適用できないのですが、特に問題なし?
783NAME IS NULL:2005/10/28(金) 22:56:44 ID:???
>>782

問題あるに決まってるだろ。
OUIから正しいproducts.xmlをちゃんと選んでいるのか?
784NAME IS NULL:2005/10/28(金) 23:28:35 ID:???
>>780

Defaultは7の時代から00:00:00だが?

SQL> create table hoge(waros date);
SQL> insert into hoge values (to_date('2005/10/10','YYYY/MM/DD'));
SQL> select to_char(waros,'YYYY/MM/DD HH24:MI:SS') from hoge;

TO_CHAR(WAROS,'YYYY
-------------------
2005/10/10 00:00:00

785NAME IS NULL:2005/10/29(土) 03:39:35 ID:???
>>780

結論から言うと「無い」だな。

Triggerとか組み合わせて作ってみたけど、全然スマートじゃないから、
プログラム側で処理した方が遥かに良さそうだ。
786780:2005/10/29(土) 08:14:26 ID:???
すみません、自己解決しました
787NAME IS NULL:2005/10/29(土) 14:48:40 ID:je/cz1AM
SQLローダーなのですがここでもよいでしょうか?
はまってます。よかったらご教示ください。

次のようなタブ区切りのデータファイルがあったとして

aaa bbb 20051026 161136 15 a0
ccc ddd 20051026 161136 15 a0
eee fff 20051027 091222 31 b1

3, 4列目の日付と時刻をまとめてDATE型として(いまはTimeStamp型というのか?)
ロードしたく、下のようなコントロールファイルを書いてやってみたのですが

COL1 CHAR,
COL2 CHAR,
DATE$ CHAR "YYYYMMDD",
TIME$ CHAR,
DATETIME DATE "YYYYMMDDHH24MISS" ":DATE$ || :TIME$",
COL3 DECIMAL EXTERNAL,
COL4 CHAR
LOADED CONSTANT '20051027'

レコード:1は拒否されました。- 表:DATE_TABLE,列:COL3でエラーが発生しました。
ORA-01722: 数値が無効です。
...

というエラーが続き、ロードできません。
(ですが、COL3, COL4をコメントアウトするとロード可能です)

日付と時刻を表す二つのフィールドを一つのDATE型カラムに投入したいのですが
どうすれば可能なのでしょうか?すみません、お願いします。
788787:2005/10/29(土) 14:50:07 ID:je/cz1AM
書き忘れました。環境は Oracle 8.1.5 (Solaris)と 8.1.6 (Linux)です。
789787:2005/10/29(土) 15:24:04 ID:???
失礼。自己解決しました。
コントロールファイルでDATETIMEと定義している列を一番下にもってくると
大丈夫なようでした。データファイルに存在しない列を生成する場合は
順序的に最後に持ってこないと駄目なんでしょうかね?
790782:2005/10/29(土) 17:19:49 ID:???
>>783

正しい products.xml ってパッチセットを解凍してできた
/Disk1/stage/products.xml ですよね?
でしたらちゃんと選んでいます。
他に何らかの原因があるのでしょうか?
791NAME IS NULL:2005/10/29(土) 21:11:42 ID:???
一意性制約のチェックはコミット時に行われるんでしょうか??
たとえばABCって3つのカラムがあって
A B C
- ------
あ 1 A
い 2 B
う 3 C

のようなテーブルでカラムAがPKのとき、
「あ」を「い」に更新して
「い」を「あ」に更新するという処理を
1回のトランザクションで行いたいのですが・・
792NAME IS NULL:2005/10/29(土) 21:21:09 ID:???
>>790

$ORACLE_HOMEとかは正しくセットされているんだよな?

それと本当に正しいO/SとバージョンのPSRをダウソしたんだよな?
対象プラットフォームとCPUは正しいんだよな?
Linuxにもx86以外にIntel 64-bitとかAMD 64-bitとかあるが・・?
793790:2005/10/30(日) 06:08:08 ID:???
>>792
できました!くだらないミスでした。お騒がせしました。
794NAME IS NULL:2005/10/30(日) 08:56:53 ID:???
>>791
更新時
つうか、一意制約があるテーブルでその手の処理ってなんか違和感が。
そもそもの設計が間違っているのでは無いかと。
つうか逆に一意制約以外の部分を入れ替えるのが正しいような。
795791:2005/10/30(日) 10:15:31 ID:???
PKじゃなくてUKでした。
UKでも一緒でしょうか?
796NAME IS NULL:2005/10/30(日) 11:59:56 ID:kR+bM8HN
>>791
initially deferred を使え。

alter table 「テーブル名」 add constraint 「制約名」 unique (A) initially deferred;
797NAME IS NULL:2005/10/30(日) 15:52:27 ID:???
>>791
つか、B、Cを交換しろよ
798NAME IS NULL:2005/10/30(日) 18:47:01 ID:???
sysoperっていらなくない?
sysdba使えばいいじゃん
799NAME IS NULL:2005/10/30(日) 20:08:38 ID:???
>>797
>>795の訂正を読め。
更新したいのは、主キーじゃなくユニークキー。
A以外の項目をすべて交換するとなると、
その中に主キーも含まれる。
と言うことは、その主キーでも同じ問題が起こるでしょ。
800NAME IS NULL:2005/10/30(日) 21:31:57 ID:???
>>798

OracleのO/Sユーザーのパスワードを教えたくない時とか
あったりすると、あると便利かもな。
801NAME IS NULL:2005/10/31(月) 09:28:08 ID:???
>>799
なんつうか、それってユニークキーじゃないものをユニークに定義してるんじゃないのかなぁ・・・。
まあ、一手じゃできないから、普通にどちらかをダミーNoに一次退避して入れ替えじゃないの。
802NAME IS NULL:2005/10/31(月) 10:29:29 ID:???
>>799
つ〜か、何故、そういう事しなくちゃならないかの
前提が分からんので、>>794のいう

> そもそもの設計が間違っているのでは無いかと。

というのもあながち間違いではないかも知れん。(w

漏れは実装が一番楽なのが、>>801の方法じゃないかと思う。

手順も多くなるし、後で訳が分からなくなる恐れがあるが、
・UNIQUE KEY無し・列定義同じのWORK表に該当レコードを書き出す。
・WORK表上で更新。
・元表に戻す。(順次UPDATEなりDELETE後INSERTなりMERGEなり)
ってのもありか?
803NAME IS NULL:2005/10/31(月) 11:57:28 ID:???
質問です。
Oracle8.0.5
Delphi
を使用して開発を行っているのですが、
ある時Delphiで作成したアプリケーションがやたら重いというので
そのマシンのタスクマネージャーを確認すると、Oracleが300M近く
メモリを使用していたため、スワップが起こってしまい、アプリケーション
がやたら重くなるという現象に陥っていました。
色々調べて同じ現象に悩む方のレスを↓に見つけたのですが
ttp://www20.big.or.jp/~o-shin/bbs/bender/dbms/pslg1455.html
ここでは、Oracleの使用できるメモリの上限値の設定をどこで行えば
いいかまでは記述されていませんでした。
Oracleの使用できるメモリの上限値の設定はどこでどのように行えばよいのでしょうか?
宜しくお願いします。
804NAME IS NULL:2005/10/31(月) 12:16:00 ID:0rAYG+1B
805NAME IS NULL:2005/10/31(月) 19:31:59 ID:YK0ZyAfd
システム権限・オブジェクト権限の一覧が表示できるディクショナリが
あったら教えてください。
自分が付与されている権限しか見れないディクショナリならあったのですが・・・
806NAME IS NULL:2005/10/31(月) 20:34:25 ID:???
>>791, 801

CASE式で条件分岐すれば一発で入れ替え出来るよ

>>804 のサイトとあわせて下記参照
http://www.geocities.jp/mickindex/database/db_case.html#LocalLink4
807803:2005/10/31(月) 22:48:55 ID:???
すみません、自己解決しました
808NAME IS NULL:2005/11/01(火) 00:14:52 ID:re7sQyfX
809NAME IS NULL:2005/11/01(火) 00:37:52 ID:???
無料版キター!

ついに勝負に打って出たのか?
810NAME IS NULL:2005/11/01(火) 06:13:03 ID:???
>>805

残念ながら無い。
自分で作るしかない。
ttp://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:853427230099
811NAME IS NULL:2005/11/01(火) 09:28:20 ID:???
>>809
少ないリソースで快適に動いてくれるのならいいけど、有償版と同じ重さだったらPersonal Oracleの二の舞のような。
開発用以外の用途を思い浮かべられない。
812NAME IS NULL:2005/11/01(火) 09:33:27 ID:06SSmJjf
>>811
全くその通りだな。
同じくらいリソース喰うんであれば、試用版(開発版)でいいな。
813NAME IS NULL:2005/11/01(火) 16:38:45 ID:23UMp9w9
MSDEの対抗でしょ。
ディスク4G、メモリー1Gの制限らしい。
その他ツールが付属するのはMSDEより良いかも。

なので、ようはORACLEそのものです。
だから、サポートが薄くてもつかえる程度のシステムか、開発用でしょ。
MDBを複数ユーザー共有で使うぐらいならっていう程度として。
814NAME IS NULL:2005/11/01(火) 18:00:23 ID:???
>>813
>その他ツールが付属するのはMSDEより良いかも。
付属するHTML DBというのが激しく不安なのです。
815NAME IS NULL:2005/11/01(火) 18:10:34 ID:???
>>814
マルチバイトを使わなきゃ、
今のところ快適に使えてるけどね。<XE

マルチバイトはデータでも、
オブジェクト名でもNG。

DBLINKも使えてるし、
マテリアライズド・ビューも使える。
816NAME IS NULL:2005/11/01(火) 18:21:24 ID:???
>>814
調べてみて補足。
インストールしてみれば分かるが、
・SQL*PLUSはある。
・Oracle Net経由で接続可能。
だから、大抵の事は従来通りの方法で可能。
817NAME IS NULL:2005/11/01(火) 21:13:28 ID:OrbKvBAf
小規模案件で使っちゃうかも>XE
818NAME IS NULL:2005/11/01(火) 23:24:18 ID:???
1拠点10〜30ぐらいのクライアント。
データ件数100万程度ならいけそうだね。

あと、開発する自社でORAのサポートもってて質問可能であること。
ついでに自社のORA経験が十分なら、下手なポスぐれとか舞SQLよりマシ。
819NAME IS NULL:2005/11/01(火) 23:58:14 ID:NzGc6dHf
>>815

マルチバイトがダメってどういうところ?
820NAME IS NULL:2005/11/02(水) 00:13:16 ID:???
>>819
現状、SQLにマルチバイトがあると
なぜかエラーになるのよ。
これはHTML DBだけじゃなく、
NLSパラメタをちゃんと設定している
クライアントからでも同様。

日本語がちゃんと通るようになるまでは、
遊びには使えても、実務にゃ向かないんで無いかな。

821819:2005/11/02(水) 00:32:32 ID:???
うーん。それじゃ使えないなぁ。まだ beta だから、そのうち直るのかな。
822NAME IS NULL:2005/11/02(水) 00:41:05 ID:???
実は現地法人の要(ry
823NAME IS NULL:2005/11/02(水) 01:55:16 ID:Z9VThreE
日本だけ蚊帳の外かよ!
824NAME IS NULL:2005/11/02(水) 02:12:28 ID:???
NT4.0のOracle8データベースインスタンスがあって、
それの複製をLinuxマシンに作成したいのですが
どういった案があるか悩んでいます。



1:同名のデータベースインスタンスを作成後、dmpファイルをインポートしてやる

2:同名のデータベースインスタンスを作成後、コントロールファイル、REDOログ、データファイルをもってくる


2が一番楽そうだけどNTとLinuxではファイルシステムが違うからできない?
 
825NAME IS NULL:2005/11/02(水) 02:43:20 ID:???
>>824

一体何を根拠に違うプラットフォームのDBが、ファイルコピーだけで
動くと思ったのか問いたい、問い詰めたい(ryo
826824:2005/11/02(水) 02:46:35 ID:???
すみません、自己解決しました
827NAME IS NULL:2005/11/02(水) 12:36:35 ID:???
>>826
どうやって解決しました?
828NAME IS NULL:2005/11/02(水) 14:45:30 ID:???
>>827

異種プラットフォーム間におけるDBのコピーにおける可能性は2つ。
Exp/Impか、もしくはDB Linkだけだと思うけどな。
829NAME IS NULL:2005/11/02(水) 21:21:12 ID:???
OracleXEベータをインストールしてみました。
StandardEditionに慣れてるとかなり面食らうね。

>>815の言うとおり、Shift-JISのマルチバイトは全て化け化けでした。

DataSheetにはメジャー10言語対応ってあるけど、日本語入ってんのかなぁ?

? English (single byte character set) and International (Unicode) versions available with support for 10 major languages
830NAME IS NULL:2005/11/02(水) 23:19:25 ID:???
>>825
ORAじゃないけど、それで運用できるDB触ったことあるで
831NAME IS NULL:2005/11/03(木) 01:10:11 ID:???
>>825

ボラクルでは出来ないと覚えておくといいよ。
RMAN Duplicationでさえ、同一プラットフォームという制限があるぐらいだから。
832NAME IS NULL:2005/11/03(木) 01:19:38 ID:F9nA4gCp
データベースのキャラクタセット、
β版は英語だけ
正式版でAL32UTF8が使えるらしいよ>XE
833NAME IS NULL:2005/11/03(木) 02:11:29 ID:???
10gなら同一エンディアンの異種トランスポータブル表領域が使えるっぽいけどな。
834NAME IS NULL:2005/11/03(木) 03:41:09 ID:???
>>833

10gなら表領域単位でやるよりかは、DataPump使った方が手間が
かからなくて良さ気だけどな。
835NAME IS NULL:2005/11/04(金) 09:46:21 ID:???
データベースにサービスを追加したいんですが、NetConfigure等のツールからではなく、
SQLPlusからDDL文で追加する方法はないんでしょうか?
836NAME IS NULL:2005/11/04(金) 12:35:23 ID:???
ゆうこりんの立ち位置がちがうぅ。
837NAME IS NULL:2005/11/04(金) 13:12:50 ID:???
>>835

バージョンは?
838NAME IS NULL:2005/11/04(金) 19:28:01 ID:3ZRuvL5U
ORACLEに接続できなくなりました。
listener.logを見ると、下記のようなメッセージが...

04-11月-2005 19:08:47 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=svname)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.77)(PORT=4932)) * establish * orcl * 12514
TNS-12514: TNS:listener does not currently know of service requested in connect descriptor

tnsnames.oraが悪いと思い弄って見たが、全然ダメポ。
<-----ここから(tnsnames.ora)
orcl =
(DESCRIPTION =(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = cws0204)(PORT = 1521))
)
(CONNECT_DATA =(SERVICE_NAME = orcl)
(INSTANCE_NAME = orcl)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
----->ここまで(tnsnames.ora)

あと疑うはlistener.oraと思ったが、それもだめ。
<-----ここから(listener.ora)
LISTENER =
(DESCRIPTION_LIST = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = cws0204)(PORT = 1521))
)
(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)

SID_LIST_LISTENER =
(SID_LIST =(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = F:\oracle\product\10.1.0\Db_1)
(PROGRAM = PLSextproc)
)
(SID_DESC = (GLOBAL_DBNAME = orcl)
(ORACLE_HOME = F:\oracle\product\10.1.0\Db_1)
(SID_NAME = orcl)
)
)
----->ここまで(listener.ora)

だれか同じような経験をして打開された方、いらっしゃいましたら助言をお願いします。
環境はwin2k svrでoracleは10gです。
よろしくお願いします。
839NAME IS NULL:2005/11/04(金) 23:27:16 ID:???
>>838

tnsnames.oraの記述を下記の様に変更。
----------------------------------------------------------
ORCL = (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=cws0204)(PORT=1521))
(CONNECT_DATA=(SID=orcl)))
----------------------------------------------------------

DOS窓開いて「tnsping orcl」の結果を教えれ。
840835:2005/11/05(土) 07:15:06 ID:???
> 837

10.1です。
841NAME IS NULL:2005/11/05(土) 07:52:23 ID:???
>>840

10gという事は喪前の言っているサービスというはのワークロード管理サービスという
理解でいいのか?
842840:2005/11/05(土) 09:29:23 ID:???
> 841

そのとおりです。説明不足ですいません。
843NAME IS NULL:2005/11/05(土) 09:56:44 ID:???
srvctl add service -d <db_unique_name> -s <service_name> -r <instance_list>
で登録して、

srvctl start service -d <db_unique_name> -s <service_name>
でスタート

マニュアル見ずに書いてるからまちがってるかも。
RAC管理者ガイド(?)の後ろのほうにsrvctlの説明があった希ガス。
10gR2ならEnterprise ManagerからGUIでもできるぞ。
844NAME IS NULL:2005/11/05(土) 10:10:33 ID:???
一時表ってトランザクション中とかセッション中だけ有効な
テーブルかと思ってたんだけど消えるのはデータだけで
テーブル自体は永続的なのね…。使いづらいなぁ(・ω・`)
845NAME IS NULL:2005/11/05(土) 11:19:30 ID:???
>>844
なんで?
消えたなくたっていいじゃん。

どういうシチュエーションでつかってんの?
846844 :2005/11/05(土) 12:34:32 ID:???
>>845
プロシジャ中でまったく構造の違う結果を返す動的SQLを生成実行してるんです。
トランザクション中でそのデータを何度も使う上、毎回も実行するには重い処理の
ため一度ワークテーブルに格納して処理したい、というのが始まりなんですけど…。

んで対応として一時表を使うことを考えたんですが、テーブル構造が毎回不定で
同じプロシジャが平行実行される可能性が有る、つまり他のセッションで作った
テーブルと被る可能性が有り、しかも構造が違う(可能性が高い)ので格納できない。
…使いづらいなぁと。というか一時表の存在意義が漏れには良く分かりません。
しかもプロシジャ中、自前でdrop tableしようとしたらエラーではじかれますた('A`)

結局仕方ないので名称にセッション番号を付与した通常表を動的に生成して処理後に
drop tableってな事であきらめますた。ローテクですがな(´・ω・`)
847NAME IS NULL:2005/11/05(土) 12:44:25 ID:1zHXLAYH
10gのEnterpriceManagerで表示される情報をSQLで取得したいのですが、
どこかにまとめたページとかって無いでしょうか?

今一番知りたいのはセッションを取得するSQLなのですが、他にも
いろいろ教えて頂けると助かります。
848NAME IS NULL:2005/11/05(土) 15:25:39 ID:???
>>846
そもそもの設計が禿しく間違ってる
849844 :2005/11/05(土) 17:04:26 ID:???
>>848
既存システムのOra9.2->8iのダウングレード移植DEATH
新規設計する暇もなく、やっつけだし良いんです('A`)ノシ
850NAME IS NULL:2005/11/05(土) 17:51:17 ID:???
ん?9.2と8.1で一時表の動作が違うってこと?
851NAME IS NULL:2005/11/05(土) 22:47:55 ID:???
SQLで複数行コメント書く方法ないでしょうか。
CやJAVAの/* */みたいな。
多くの行に「--」付けるのは手間です。今はエディタの矩形選択使ってますけど、素直に複数行書けたらなあ。

当方Oracle9.2です。
852NAME IS NULL:2005/11/05(土) 23:27:30 ID:wt3HseBL
vi系のエディタならラクチン。
秀丸は知らん。
853NAME IS NULL:2005/11/05(土) 23:36:46 ID:???
騙されたと思って/* */でコメント書いてみるとか。
854NAME IS NULL:2005/11/06(日) 01:02:47 ID:???
>>853

喪前、いい椰子だな。
855NAME IS NULL:2005/11/06(日) 14:55:35 ID:???
XEインスコしてみたんですがデフォルトのユーザ名・パスワードって
なんですか?
856NAME IS NULL:2005/11/06(日) 15:57:08 ID:???
>>855
SYSTEMユーザーのパスワードは
インストールの際に入れたよな?

SYSTEMでログインして、
ユーザー作れば万事解決。(w
857NAME IS NULL:2005/11/06(日) 18:10:26 ID:???
>>856
大文字で「SYSTEM」がユーザ名って事ですよね?
何度やってもSQL*PLUSで接続できません。。。。
858NAME IS NULL:2005/11/06(日) 18:58:11 ID:???
>>857
ユーザー名は大文字小文字の区別をしない。
パスワードが間違ってるとかな。

OS認証が可能になっているなら、
sqlplus /nolog
conn / as sysdba
alter user system identified by ****;
でsystemユーザーのパスワード変更をお勧めする。
859NAME IS NULL:2005/11/06(日) 20:04:24 ID:???
CentOS4.2にXEインスコしようと思ったんだが
インストールして起動する時にずっと起動中
状態になっちまう。

要するに、sqlplusでログインしようとすると
initializationなんちゃとかってエラーになる。
また、プロセス、listenポート確認してもhtmldb
が起動しとらん。(つまりそこまで行ってない)

rpmインストール時に変なエラー出たけど、
そのまま行けたからシカトしたんだが・・。

centos使ってるやつでインスコできた人挙手
860NAME IS NULL:2005/11/06(日) 20:26:50 ID:???
>initializationなんちゃとかってエラーになる。
>initializationなんちゃとかってエラーになる。
>initializationなんちゃとかってエラーになる。

>rpmインストール時に変なエラー出たけど、
>rpmインストール時に変なエラー出たけど、
>rpmインストール時に変なエラー出たけど、

全く… どうしようもないな。
861859:2005/11/07(月) 00:28:26 ID:???
なんちゃとかってエラーと
変なエラーが出て困っている僕ちゃんですが
皆様、シカトですか?
862NAME IS NULL:2005/11/07(月) 07:19:28 ID:???
スキーマAAAに、
CREATE VIEW VVV AS SELECT * FROM AAA.TABLE1
ってVIEWがあるとします。

スキーマAAAだけをEXPします。
エクスポートファイルを同じDB内のスキーマBBBにIMPします。
(AAAのコピーを作るイメージ)

BBBに出来たVVVをみると、AAAのTABLE1を見ています。
BBBのTABLE1を見てほしいのですが、どうすればいいですか?
IMPかEXPのオプションに無い気がします。

つまり
「同一スキーマの場合、スキーマ名を指定しないでエクスポートする」
という機能が欲しいのです。
863NAME IS NULL:2005/11/07(月) 07:42:57 ID:???
おれOracleユーザじゃないんだけどさぁー
それは、View作るときにスキーマの指定をやめればいいんじゃないの?Oracleはスキーマ指定必須?
864NAME IS NULL:2005/11/07(月) 08:56:06 ID:L0caSh7L
>>839
tnsnames.oraの記述を行ってからの、「tnsping orcl」の結果です。
<-----ここから
E:\Documents and Settings\cws0204>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 07-11月-2005 08:45:10
Copyright (c) 1997, 2003, Oracle. All rights reserved.
パラメータ・ファイルを使用しました:
g:\oracle\product\10.1.0\Client_1\network\admin\sqlnet.ora
TNS-03505: 名前の決定に失敗しました。
----->ここまで
見当違いかもしれませんが、気になるのが弄ったtnsnames.ora(F:\)とは別のパスのsqlnet.ora(G:\)を参照しているみたいです。
環境としては、Oracle10gServerとODPが入っているPCで、
10gは
F:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN
ODPは
G:\oracle\product\10.1.0\Client_1\network\ADMIN
に入ってます。

関係ないかもしれませんが、「lsnrctl services」の結果もつけておきます
<-----ここから
LSNRCTL> services
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cws0204)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
The command completed successfully
----->ここまで
865NAME IS NULL:2005/11/07(月) 09:13:40 ID:L0caSh7L
>>839

>>864の追記です。
864の手順は、F:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\tnsnames.ora
に行っていました。
g:\oracle\product\10.1.0\Client_1\network\admin\tnsnames.ora
に対して行った後、「tnsping orcl」をした結果、状況が変わりましたので報告いたします。
<-----ここから
E:\Documents and Settings\cws0204>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 07-11月-2005 09:09:39
Copyright (c) 1997, 2003, Oracle. All rights reserved.
パラメータ・ファイルを使用しました:
g:\oracle\product\10.1.0\Client_1\network\admin\sqlnet.ora
エイリアスを解決するためにTNSNAMESアダプタを使用しました。
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = cws0204)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))
OK (10ミリ秒)
----->ここまで
866NAME IS NULL:2005/11/07(月) 10:04:12 ID:???
>>864
あぁ、それこの間漏れもはまった。(w
・client
・10gdb
・ohs
の順でインストールしたからね。

# 最初はclientだけで、外部にデモで持ち出す必要がでたので
# 単体実行環境を整えた。

結論から言うと、存在している全てのtnsnames.oraに
ネットサービス名を設定すれば問題ない。(w
867NAME IS NULL:2005/11/07(月) 10:55:34 ID:L0caSh7L
>>866
tnsnames.oraを下記のように変更。
<-----
orcl =
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp) (HOST = cws0204)(PORT = 1521))
)
(CONNECT_DATA=
(SID = orcl)
(SERVICE_NAME = orcl)
)
)
----->
「tnsping orcl」の結果はエラーが出ないものの、「lsnrctl services」ではエラーが出てしまいます。
<-----
LSNRCTL> services
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cws0204)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Service "orcl" has 1 instance(s).
Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:306 refused:0
LOCAL SERVER
The command completed successfully
----->
listener.logのエラーは消えましたが、sqlnet.logのエラーが...
<-----
Fatal NI connect error 12637, connecting to:
(LOCAL=NO)
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 10.1.0.2.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.1.0.2.0 - Production
Time: 07-11月-2005 10:44:00
Tracing not turned on.
Tns error struct:
ns main err code: 12637
TNS-12637: Packet receive failed
ns secondary err code: 12547
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
----->
868NAME IS NULL:2005/11/07(月) 12:28:18 ID:???
>>867

EXTPROCが悪さしているかもしれんからはずしたら?
listener.oraを以下のように変更しても繋がるはず。

----------------------------------------------------------------

LISTENER =
(ADDRESS_LIST =
(ADDRESS= (PROTOCOL= TCP)(Host= cws0204)(Port= 1521))
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC = (GLOBAL_DBNAME = orcl)
(ORACLE_HOME= F:\oracle\product\10.1.0\Db_1)
(SID_NAME = orcl )
)
)

----------------------------------------------------------------
869NAME IS NULL:2005/11/07(月) 16:51:01 ID:L0caSh7L
>839,866,868
色々とアドバイス有難うございました。
>868さんのアドバイスの通りlistener.oraを修正後、
ODP、10gDBのtnsnames.oraを見直して>839,866さんのアドバイスを色々と織り交ぜた結果
理由はわかりませんが、ちゃんと繋がりました。
どれが悪かったか試そうとは考えましたが、これでまた繋がらなくなる事を考えると...

また何かでお邪魔するかもしれませんがまたお願いします、本当に有難うございました。
いつの日かアドバイス側に立つ日が来るのを信じて...
870NAME IS NULL:2005/11/07(月) 20:37:18 ID:dJezvkU3
Oracle 9iでHAクラスタ組んでるんですが、これをracにしようと思ってます。
その場合、9iで組むか、10gを購入するか迷ってます。

9iと10gの違いは下記にあるのですが、

http://www.ctc-g.co.jp/~cua/newwave/nw48/05.html

これ以外のメリット、デメリットってありますか?
871NAME IS NULL:2005/11/07(月) 22:05:35 ID:???
Postgreしか触ったこと無い素人みたいな者なんですが
毎分300万トランザクションでほとんどinsertみたいな状況で安定して使えますか?
872NAME IS NULL:2005/11/07(月) 22:54:03 ID:???
素人が300万txn/min ってなにすんの?
興味ある。
873NAME IS NULL:2005/11/07(月) 22:56:14 ID:???
>>871
毎秒5万トランザクションて、安定の前にどのくらいのハードで実現できるか興味あるな。
874NAME IS NULL:2005/11/07(月) 23:17:23 ID:???
>>870

まあ、今だったら10gR2で組んだ方が色々といいと思うけどね。

ちなみにブラットフォーム何よ?
クラスターウェアは何使う予定?
ストレージは?
最も多いと思われるトランザクションのタイプは?

875871:2005/11/07(月) 23:36:26 ID:???
>>872-873
とあるリアルタイム系のデータを処理するシステムなんですが
実際に自分が携わってるわけじゃないんですよ(^ ^

現行のシステムでは保持期間が短いので単純にメモリ上にデータを保持してるだけで
手法としてDBってのはどうなのかと勘ぐってたぐらいのものです
DB的な?用途としては時系列でソートして取り出したいぐらいです

案件の規模と予算から言ってせいぜいミドルクラスのサーバが関の山といったところなので
微妙っぽいですかね
勘ですが
876NAME IS NULL:2005/11/08(火) 00:45:59 ID:???
こないだOracleが買収したTimesTenがその用途に近いかも
マシンのメモリサイズが最大DBサイズと割り切って、メモリ上で
すべて済ますから激速といういさぎよい思想のDB
877NAME IS NULL:2005/11/08(火) 19:16:22 ID:UetDK9je
>>874

ありがとう。

機器は下記を予定。

ブラットフォーム redhat linux 6.2
クラスターウェア HP Serviceguard
ストレージ msa1000クラス
トランザクション insert 300000件/日 update 100000件1日
878NAME IS NULL:2005/11/08(火) 19:41:44 ID:v15ivBOc
RH6.2とは、えらく古いバージョンだな。
879NAME IS NULL:2005/11/08(火) 23:11:43 ID:???
RH6.2には、8.0のOracleしか入らない悪寒。
880879:2005/11/08(火) 23:34:11 ID:???
間違えた。RH6.2でも8.1.7まではインストールできるね。
881NAME IS NULL:2005/11/08(火) 23:34:59 ID:???
>>877

O/Sのバージョン間違えてないか?
RHでRAC組むのなら、ES/ASの3.0とか4.0なのでは?

MC/Service Guradを利用してRACを構成する場合、クラスターウェアのハート
ビートLANと、RACのGCS/GESLAN(ようはインターコネクトLANね)を同一LANで
構成する様にね。
HP側の人間はハートビートLANは独立LANで構成する様にって言うと思うけど、
それだとインターコネクトLANに障害が発生したら、9iで17分、10gで5分以上
ハングしてしまうからね。

それとInsert/Update系が多そうだけど、最低でもGiga-bit Etherで構成するん
だよね?
882NAME IS NULL:2005/11/09(水) 21:14:56 ID:???
UNIXでJA16EUCのDBに、UNICODEの?(チルダ)を入れると 0x8f 0xa2 0x67の3バイトになる。
0xa1 0xc1にできないのだろうか?
883882:2005/11/09(水) 21:16:02 ID:???
あれ?チルダの前の部分は 数値コード65374 です。
884NAME IS NULL:2005/11/09(水) 21:28:01 ID:???
>>862
×CREATE VIEW VVV AS SELECT * FROM AAA.TABLE1
○CREATE VIEW VVV AS SELECT * FROM TABLE1

AAA. を指定する限り永久にBBBを見てくれることは無い。
AAA. の指定が無ければ自身のスキーマにあるTABLE1を見る。
>>863の言う通り。
885NAME IS NULL:2005/11/09(水) 21:58:53 ID:???
>>882
Oracle 9i R9.0.1.4以降で実装された、
JA16EUCTILDEにしないとダメ。
886882:2005/11/09(水) 22:02:35 ID:???
> 885

JA16EUCとJA16EUCTILDEはINSERTの時点では同じ動きをすると思ってるんですが。

UNICODE EUC
-------------------
FF5E -> A1C1
C301 -> A1C1

確かに65374はFF5Eだが、INSERT後のEUCコードはA1C1になるのでは?
887NAME IS NULL:2005/11/09(水) 23:27:25 ID:???
来年、会社が合併することになり人事・給与システムを他社の分も追加することに
なりました。現在2000人ほどですが、合併後は5000人を超えてしまいます。
そこで質問なのですが、オラクルへの同時接続数はどの程度可能でしょうか。
確認すべきパラメータや設定など何かありましたら教えてください。

うる覚えですが、現在の環境は以下の通りです。
WEBサーバ Xeon1G メモリ 2G windows2000 IIS5.0 が3台
DBサーバ Xeon1G メモリ 2G windows2000 oracle9i relese2 が1台
ロードバランサ が1台

データファイルの使用率が現在10%ほどなので、データ量が単純に2倍になっても
大丈夫だとは思いますが、接続数が2倍になったとき、DBサーバが耐えられる
のか不安です。
888NAME IS NULL:2005/11/09(水) 23:44:57 ID:???
>>887
確か同時接続数を制限する初期化パラメータがあったような・・・。
共有サーバでディスパッチャを設定しておけば大丈夫なような・・・。
俺はDBAじゃないから、あまり詳しくないのよ。適当なこと言ってすまん。
889NAME IS NULL:2005/11/10(木) 00:00:38 ID:???
行数:1億
列数:100

ぐらいの巨大テーブルにアナライズをサンプル5%でかけたところ、30分たっても終わらず中断しました。
あまりに時間かかるので、サンプル1%にしようと思っています。
1%でも信用できる統計って取れるものでしょうか。大体の目安は5%ぐらいと聞いて、今まで盲目的に5%を使っていたのですが。
890NAME IS NULL:2005/11/10(木) 00:14:22 ID:???
>>887
メモリ2GBでWin2000SVなら、Oracleが使えるメモリは1GB位ってとこか。
同時接続数も単純に2.5倍になるとしたら厳しいかな。
今どれくらいメモリ使ってるかはわかってるの?
891887:2005/11/10(木) 00:30:13 ID:???
>>888
いえいえ、参考にさせていただきます。ありがとうございます。

>>890
確か、SGA合計が1Gと聞いています。他のオラクルのプロセスを含めても
1Gでいいと思います。メモリがネックとなるようであれば、メモリを
増設してオラクルのメモリを増やそうと思います。
892890:2005/11/10(木) 00:38:50 ID:???
>>891
専用サーバ接続なら、PGAで使用する分のメモリも忘れずに。
共有サーバ接続はややこしくて忘れた。
OTNの会議室にスレがあったと思うけど。

メモリ増やすのも手だとは思うけど、単なる2000SVなら2GBが天井だから気をつけて。
893NAME IS NULL:2005/11/10(木) 00:58:03 ID:???
>>889
パーティション化しているならパーティションごとに、
それぞれ平行でさらにパラレルで。CPUの許す限り。
統計はデータの特性により1%でOKな場合もあれば駄目な場合もある。
894NAME IS NULL:2005/11/10(木) 01:18:26 ID:???
>>887 >>891

アプリの特性にもよるけど、DBにほとんどアクセスがいかないんだったら
そのままでも耐えられるとは思うけど、トランザクションがガンガンに発生
するんだったらかなり厳しいだろうね。

そのユーザー数ならRACという選択肢もありかなと思う。
OCFSのベンチマーク取ってみたけど、きっちりチューニングして
さえいれば、オーバーヘッドはそれ程大きくないし、WindowsでRAW
パーティション使うよりもマネージビリティは遥かに上。

ちなみに同時接続数を制限するのはlicense_max_sessionsだね。
895NAME IS NULL:2005/11/10(木) 02:29:41 ID:???
>>887

同時接続数がどのくらい必要かは、その会社にいるあなたが判断すること。

制限することは、license_max_sessionsでもsessionsでもprocessesでも可能だが、超えて
接続あると、アプリはエラーを受け取ることになると思うけどいいの?

接続数を制限するより、想定される最大接続時に問題にならないキャパシティプランを考
えるべきでは?
そのためには、現状のDBの状態把握が肝要かと。

それが面倒くさいなら、3GBメモリ積んでできる限りCPU増強すべし。
IAなら、そんなに高くないでそ。


896NAME IS NULL:2005/11/10(木) 04:14:54 ID:???
>>859

前提条件満たしてからインスコしたんだよね?
必要なRPMとか、gccやgcc+のリンクきちんと変えたりとかしてさ?
897NAME IS NULL:2005/11/10(木) 08:16:06 ID:???
>889

データのばらつき具合にもよるが、件数が多い場合は1%でも全然問題ないよ。
898NAME IS NULL:2005/11/10(木) 10:39:57 ID:???
>>886
なりません。
U+FF5E は FULLWIDTH TILDE、
EUC の 0xA1C1 は WAVE DASH で、別の文字です。
それを何処かの間抜けな OS が混同している為に
態々 JA16EUCTILDE などという文字セットが追加されたんですから
素直にそっちにするか、CONVERT しましょう。
899NAME IS NULL:2005/11/10(木) 14:14:06 ID:aVh1HaJY
すみません、OracleのREDOログファイルがスイッチしたタイミングを知りたいんですがどうしたらいいでしょうか?
要するにログ・スイッチがどのくらいの頻度で発生しているか調べたいのです。
宜しくお願いします!
900NAME IS NULL:2005/11/10(木) 15:11:09 ID:???
>>899
アラートログ見れ。
901NAME IS NULL:2005/11/10(木) 16:21:44 ID:fIKmniWk
すみません
オラクルのSQLを勉強していて質問なのです。
date型で収められている列を表示させる時、何日あるいは何時だけ
を取り出すことは可能でしょうか?その場合下記の書き方でOKでしょうか?

TO_CHAR(LOG_DATE, 'DD')
TO_CHAR(LOG_DATE, 'HH24')

よろしくお願いします。
902NAME IS NULL:2005/11/10(木) 16:25:54 ID:???
データベースのなかの全テーブル名を取得するにはどうしたらいいですか?
903NAME IS NULL:2005/11/10(木) 16:26:43 ID:???
>>901
それで良い。
904NAME IS NULL:2005/11/10(木) 16:27:43 ID:fIKmniWk
>>903
こんなに早くレスありがとうございます。
試せる環境が無いので苦労しています。。
905NAME IS NULL:2005/11/10(木) 16:27:59 ID:???
>>902
SELECT
  TABLE_NAME
FROM
  SYS.ALL_ALL_TABLES
906NAME IS NULL:2005/11/10(木) 16:45:51 ID:???
>>905
これは質問のしかたが悪かったです。
それだと、system系のいらないのまで取得してしまうんです・・・。
こういうのは除きたい。
907NAME IS NULL:2005/11/10(木) 16:50:50 ID:hptPhN9A
ラグナロクのエミュ鯖をプレイしてみよう!~

【エミュ鯖とは?】~

ラグナロクをタダでプレイできます!~
しかも本鯖と違って倍率が200倍でレベルもサクサク上がり
レベルも最大255まであり、99を超えると背中に大きな羽がはえます。
本鯖には無い、オリジナルNPCやオリジナルマップ「ロマリアの街」「ロマリア城」
新職業「テコンドー」も実装しています。~
精錬の成功確立も本鯖の3倍です。

【エミュ鯖公式サイト】~

http://www.usamimi.info/~romaliaonline/

☆☆☆☆☆☆☆☆☆エミュ鯖の遊び方☆☆☆☆☆☆☆☆☆~

1.まずラグナロクのクライアントをインストールしておきます。~
http://www.ragnarokonline.jp/getstart/download.html
インストール済みの方は2にお進みください。~

2.エミュ鯖のアカウントを作成します。~
http://romaliaonline.no-ip.info:6900/

3.次にエミュ鯖のクライアントをダウンロードしてインストールします。~
http://www.usamimi.info/~romaliaonline/romalia.EXE

4.デスクトップに作成されたショートカットアイコンからゲームを起動します。~
アカウントとパスワードを入力するとプレイ開始です。~

皆さんもガンホーになんかお金払ってないで~
無料でプレイできるエミュ鯖ライフを楽しみましょう!

ゲーム内の様子~
http://usamimi.info/%7Encsp/cgi-bin/uploader3/src/up0081.jpg
908NAME IS NULL:2005/11/10(木) 16:53:34 ID:???
909NAME IS NULL:2005/11/10(木) 16:55:35 ID:???
>>906
自分のスキーマだけでいいならTABというエリアスがある。
910902:2005/11/10(木) 17:07:53 ID:???
>>909
お〜と思って、
select * from tab where tabtype='TABLE'
とやってみました。

でも、BIN$なんちゃらとか、いらないのがやっぱり、はいってました。

select * from sys.all_all_tables where owner='xxx'
ってやると、同じowner のテーブルなので、いけることはいけるようです。
でも今後、違うowner がテーブルつくるとだめなので・・・。
911NAME IS NULL:2005/11/10(木) 17:10:01 ID:fIKmniWk
>>908
ありがとうございます。無料版があるとは知りませんでした。
912902:2005/11/10(木) 17:39:30 ID:???
もしかして、TABS でOKかも??
913NAME IS NULL:2005/11/10(木) 18:31:20 ID:???
>>909
TABはDBA権限があると全部出てしまうみたいね。
914NAME IS NULL:2005/11/10(木) 23:16:56 ID:???
素朴な疑問なんですが、systemとsysって何でユーザ別々なんでしょう?
管理ユーザは一つにまとめればいいのに・・・とふと思いました。
915887:2005/11/10(木) 23:27:00 ID:???
>>890
windows2000 serverのメモリ上限は2GBなんですか?
ベンダーの提出資料だと、最大12GBまで増設可能となってたので
余裕だと思ってたのですが。OSの上限ですか。それともオラクルの上限ですか。

>>894
一般社員は自分の給与・賞与くらいしか参照できません。
課長・部長だと部下の職歴や資格などが見れます。
そのため、5000人でもトランザクションはそれほど発生しないと思います。
916887:2005/11/10(木) 23:29:45 ID:???

>>895
問題は現状の把握なのですが、データ容量は問題ないと思います。、
問題は接続数が増えた場合、どういった影響があり、それはどこで確認できるのか
ということで調査中です。単純にメモリを増設と言っても、社内稟議があるので
納得してもらえる数字が必要なのです。現在考えているのは、論理的に同時接続が5000人
ですが、現実的には3割程度で1500人程度が処理できればいいと考えてます。
1500人*2M(サーバプロセス:専用サーバ構成)=3GBだと単純すぎるでしょうか。
3台のWEBサーバである程度、コネクションをプーリングしてもっと同時接続数が
減ってくれればいいのですが、アプリケーションでどうやってるのかも調査中です。
917NAME IS NULL:2005/11/10(木) 23:39:51 ID:???
>>910
ようは考え方だと思うけど?
select * from dba_tables where owner not in ('SYS','SYSTEM');
918NAME IS NULL:2005/11/10(木) 23:41:03 ID:???
>>899

( ・∀・)つ v$log_history
919NAME IS NULL:2005/11/10(木) 23:53:16 ID:???
>>915

O/S(32-bit)の上限だ。
一応/3GBスイッチといって、無理やりアプリで使える領域を3GBまで
利用できるオプションはある。
その代わり、今度はO/Sで使える領域が1GBになってしまう。

ttp://support.microsoft.com/?kbid=291988

いずれにせよトータルで4GBの制限を超えるためには、64bitにしないと
ならないね。
920NAME IS NULL:2005/11/11(金) 04:23:57 ID:???
>>916

32-bit O/Sだとトータルで4GB制限があるから、大雑把に考えると
O/Sやその他アプリに1GB、SGAに2GB、PGA_AGGREGATE_TAGETが
1GBと言った感じか・・・。
ちなみにアプリって何で書かれているの?
921NAME IS NULL:2005/11/11(金) 08:04:32 ID:???
>>859

仕方ねぇから取り合えずVMWareにCentOS4.2入れてボラクルXEの
環境を作ってみたぞ('A`)メンドクセ
長くなるから細かくしてウプするぞ。


1. 以下のrpmがあるか確認。無ければyumでも使って入れる。
binutils-2.15.92.0.2-15
compat-db-4.1.25-9
control-center-2.8.0-12.rhel4.2
libgcc-3.4.4-2
gcc-3.4.4-2
gcc-c++-3.4.4-2
glibc-2.3.4-2.13
glibc-common-2.3.4-2.13
glibc-headers-2.3.4-2.13
glibc-kernheaders-2.4-9.1.98.EL
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.4-2
libstdc++-devel-3.4.4-2
make-3.80-5
pdksh-5.2.14-30.3
xscreensaver-4.18-5.rhel4.9
ORBit-0.5.17-14
sysstat-5.0.5-1
compat-libstdc++-296-2.96-132.7.2
libaio-0.3.103-3
922NAME IS NULL:2005/11/11(金) 08:05:50 ID:???
>>859

2. /etc/sysctl.confに以下を追加

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

3. /etc/security/limits.confに以下を追加
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

4. /etc/pam.d/loginに以下を追加
session required /lib/security/pam_limits.so

5.設定を反映させるために鯖をリブート
923NAME IS NULL:2005/11/11(金) 08:10:23 ID:???
>>859

6. rpm -Uivh oracle-xe-10.2.0.1-0.1.i386.rpm

7. rootユーザーでそのまま「/etc/init.d/oracle-xe configure」で
  DBを作成

8.デフォルトで「oraclexe」というユーザーが作成されDB作成まで
 step7でやってくれる。後は以下の環境変数をoraclexeの「.profile」
 にでも書いておけ。

export ORACLE_SID=XE
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$PATH
export ORACLE_OWNER=oraclexe
export ORACLE_TERM=xterm
export THREADS_FLAG=native
export LD_ASSUME_KERNEL=2.4.1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jdbc/lib/classes111.zip:$CLASSPATH
umask 022

924NAME IS NULL:2005/11/11(金) 11:42:53 ID:???
>>923

そういえばstep.6のrpmでインスコ中に、O/Sのチェック関連のエラーが出たけど、多分
「/etc/redhat-release」に「Red Hat Enterprise Linux AS release 4 (Taroon)"」
とか書いておけば、消えるんじゃないかと思う。
誰か試してみてくれ。
まあ、チェック関連のエラーなんで、無視しても問題なく動いているけどね('A`)
925890:2005/11/11(金) 21:54:26 ID:???
>>915
Win2000Serverは何をどうしてもユーザプロセスは2GBしか使えない。
Win2000Advanced Server/Datacenter Serverであれば2GB以上使用可能。
3GBスイッチなら単純にユーザプロセスが3GB使用可能になって、
PAEスイッチを使用するとバッファキャッシュだけをユーザプロセス空間の外に追い出せる。
(OracleではVLMと呼んでる)

メモリの見積りについては何とも言えない。
PGAなんかは本番環境を調べればわかるんじゃない?
926887:2005/11/11(金) 23:27:40 ID:???
>>915
64bit版は考えてなくて、メモリの拡張の方向で考えてます。
3GBスイッチはもう少し調べてみます。

>>920
言語はASPです。
PGA_AGGREGATE_TAGETとOEMで確認したところ、PGAは
300M程でした。単純に300M / 2M(一人分のユーザプロセス)で
同時接続150人なのでしょうか。Procesesは500なので同時接続495人
までエラーを吐かないと認識してますが、ユーザプロセスが全然
耐えられそうにないです。-5はバックグラウンドプロセス。

>>925
PGAは300Mほどでした。VLMは調べてみます。

どうもコネクション、セッション、プロセス、同時接続数が資料によって微妙に
意味合いが違うみたいで混乱してます。私はこれらは等しい数字になるものと
認識しています。
わからないのはコネクションプーリングでASPでもコネクションプーリングがあるし、
ロードバランサーでもコネクションをプーリングしているそうです。ORACLEは専用接続だから
1接続=1プロセスになるはずです。

クライアント10台(10コネクション)→ロードバランサ1台→Webサーバ3台→DBサーバ1台
このとき、DBサーバのユーザプロセスは10になるのか調査中です。


927NAME IS NULL:2005/11/11(金) 23:38:41 ID:???
>>926

init.oraのPGA_AGGREGATE_TARGETが300MBということでいいのかな?
で、その時のPGAのHit率ってどうなっていた?
必要だったらSTATSPACK取って調べてみるしか。

漏れはASPは専門ではないが、ASP側からは常にDBに対してコネクション
プーリングしてセッション張っているという意味でしょう?
だったらDB側からみたら、アプリ起動時に設定しているコネクションプーリング数
のセッション数が張られている様に見えるはずだと思うけど?
928887:2005/11/13(日) 00:42:43 ID:???
>>927
>>init.oraのPGA_AGGREGATE_TARGETが300MBということでいいのかな?
そういうことです。PGAのヒット率は分かりません。調べてみます。
STATSPACKも調べてみます。私はアプリケーションもDBも詳しくありませんが、
仕事なのでやるしかないです。

>>だったらDB側からみたら、アプリ起動時に設定しているコネクションプーリング数
>>のセッション数が張られている様に見えるはずだと思うけど?
これって、ASP側でプーリング数500と設定してたら、1人だろうが、100人だろうが
1000人だろうが、500になるんですかね?500超えたときだけ500
なんだろうか?正直言って、自分には荷が重いのですが仕事と割り切って頑張ります。
929NAME IS NULL:2005/11/13(日) 01:37:45 ID:???
>>928

PGAのHit率はOLTP系なら出来れば90%台が望ましいけど、
アプリ側からタコなSQL投げられていたりとかあるからぇ。
その場合はSQLのチューニングが必要になるだろうね。

コノクションプーリングに関しては、設定によると思う。
漏れはアプリケーション鯖はWeblogicしかかじった事がないけど、
起動時にプーリング数を10と設定していたら、10セッション張られて
いた記憶があった。
10を超える分に関しては、設定次第で動的に増やせる様に
出来たり、増やせない様にも出来た様な・・・。
930NAME IS NULL:2005/11/13(日) 17:13:23 ID:???
>>902
USER_TABLES
931NAME IS NULL:2005/11/13(日) 17:40:48 ID:???
CSVファイルをoracleにロードするのに、
sql*loader を使おうと思ってます。
CSVファイルの中には、insertするものとupdateするものが混じってます。
主キーをもとにして行えばこのあたりは問題ないんですが。

問題は、CSVファイルが100個くらい、対応するテーブルも100個くらい!
これ全部に、controlファイルを書かなくてはいけないんでしょうか?
932NAME IS NULL:2005/11/13(日) 19:01:27 ID:???
>>931
ああ、ガンバレよ。
933NAME IS NULL:2005/11/13(日) 22:11:21 ID:???
>>931
何から sql*loader をキックするのか判らないけど、俺は CTL ファイルを自動生成させてたよ。"append into" があるから毎回生成するんだけど、カラム名は

select column_name from user_tabl_columns where table_name = 'TABLE' order by column_id;

とか使って最初に取得してた。で、色々指定しないといけないカラムとかは「テーブル名+カラム名」を添え字にプログラム中に持ってた。

ちなみに俺は DB 触ってまだ半年。もっといい方法があるのかも。
934NAME IS NULL:2005/11/13(日) 22:12:27 ID:???
>>933
>"append into" があるから

違った。infile があるからだ。
935NAME IS NULL:2005/11/13(日) 22:33:07 ID:???
>>931
そんくらい有るなら簡単なツール作っても良いんじゃない?
って言うか、その辺にあるし
936931:2005/11/13(日) 23:32:26 ID:???
最終的に100個のcontrolファイルを書いたりはしません。

自動生成させるか、functionを作ってしまうか、
他の言語からSQLを使って、などを選ぶと思います。

ですが、sql*loaderでもっと簡単にできる方法があれば、
そっちのほうがいいなと。
937NAME IS NULL:2005/11/14(月) 00:36:25 ID:???
>>936

( ・∀・)つ 外部表 + create table ... as select ...
938NAME IS NULL:2005/11/14(月) 01:16:42 ID:UjrXfxVS
LOADに関しては、ORACLEは非常に使いにくいですね

DB2のLOADコマンドの方が非常に便利です。

なんでSQL*Loaderみたいな旧世代のやり方を変えないんですかね

まORACLEしか知らない人はこれが常識だから疑問にもならないんでしょうが・・・
939NAME IS NULL:2005/11/14(月) 01:28:01 ID:???
I工作員おつかれさまです。

外部表ができたから、ローダーの重要性が低くなった。
DB2ださい。
940T.O:2005/11/14(月) 11:39:45 ID:qJ4s9CJj

データベース内に表領域が3つあります。
TS_01〜03までをテーブル作成などのユーザー表領域に指定しています。
TS_TMPはテンポラリ表領域です。

TS_01
TS_02
TS_03
TS_TMP

A表は「TS_01」,B表は「TS_02」,C表は「TS_03」などのように
所属する領域が異なっています。
「TS_01〜03」まで分散する事はパフォーマンス面で
メリットのある事なのでしょうか?
ちなみにDBはOracle9.2を使用しています。

私はUSERS表領域に統一したいと思っています。
周りに聞ける人が居ないので、ぜひ皆さんの
経験則をお聞かせ下さい。大体の概要をお聞きできれば、自分で調べます。

P.S.
(もしかしたら、8iの頃の仕様などの問題を
引きずっているのではないかという偏見を私は持ってしまっています。
またアクセス数はシステム構築当初と比べて現状では減少しているはずなので、
特定の表に集中的にアクセスが来る事はないと推測されます。その場合でも
分散している状態の方が全体のパフォーマンスが良いのかと疑問です。)


941NAME IS NULL:2005/11/14(月) 12:23:58 ID:???
>>940

最近のH/Wの進歩からすれば、表領域を細かく分ける事にパフォーマンス面での
メリットとといものは少ないかも知れない。
それでもディスクをストライピングしていなかったり、ディスクキャッシュがそんなに無い
H/Wを使用しているのならTS_01、TS_02、TS_03を異なるディスクやI/Oコントローラー
上に配置したりする事によって、それなりにメリットは受けられるだろうね。

後は表領域を分けるもう一つのメリットに関しては、Archivelogモードで動いて
いれば、運用中でも表領域単位でリカバリがかけられる事かな。
こっちの方がむしろ恩恵は大きいかも知れない。
942T.O:2005/11/14(月) 13:50:49 ID:qJ4s9CJj
>>941
返信有難うございます。
おお!まさにお聞きしたかった事です。
なるほどディスクの問題として言える事だったのですね!
・・・他にArchivelogモードですか、少し調べてみます。
943NAME IS NULL:2005/11/14(月) 21:08:00 ID:???
エクステントの管理をUNIFORM SIZE指定にした場合、
小規模:128KBの表領域
中規模:5MBの表領域
大規模:50MBの表領域
って感じで表の特性に合わせてそれぞれ表領域を作ったりしてる。
944887:2005/11/14(月) 23:51:59 ID:???
>>929
どうやら、oracle object for OLEというのでコネクションをプーリング
してるとか何とか。まだまだ調査中です。手順書や設計書などたっぷり
1000ページ以上あるわりにベンダーさんの資料はよくわから〜ん。
945NAME IS NULL:2005/11/15(火) 00:48:02 ID:???
>>944
Oracle Object for OLEはoo4oと略されることが多いね。
VB6以前のシステムでは良く使われてたミドルウェアだから事例には困らんと思う。
OTNいけばマニュアルもあるはず。
946NAME IS NULL:2005/11/15(火) 01:03:35 ID:6mShFTFn
>>939

信者らしい回答ありがとうございます。

 読み取り一貫性が長所らしいが、
システム的に一貫性がないのが皮肉ですね。
947NAME IS NULL:2005/11/15(火) 01:30:22 ID:???
>>946

DB2のマニュアルで「View」を「視点」とかって訳しているのは
何とかならんのか?
948NAME IS NULL:2005/11/15(火) 01:41:58 ID:???
>>946
たとえばどのへんが?
949NAME IS NULL:2005/11/15(火) 02:06:37 ID:???
漏れはIのセールストーク以外で DB2 > Oracle っていうエンジニアに
なかなか出会わんのだが、どのへんがいいのか教えてほしいな。
一貫性がある説明でな。
950NAME IS NULL:2005/11/15(火) 02:33:52 ID:???
>>946

「葉ブロック」ってなに?
中途半端に訳すんじゃなくて、訳すなら「葉片」というぐらいガチに訳すとかさ?
951NAME IS NULL:2005/11/15(火) 08:23:43 ID:???
動的リスナー構成になっているかを確認するにはどこを見ればよいのでしょうか?
LISTENER.ORAでSID_LISTにPLSExtProcだけしかなければ動的構成?
952931:2005/11/15(火) 09:49:19 ID:???
外部表について、調べてみました。
sql*loaderより、少し便利かもしれないです。
でも設定ファイルはいっぱい書かないといけないっぽい。
update ももっと楽な方法はないものか・・・。
953931:2005/11/15(火) 11:03:46 ID:???
>>937
ところで、外部表作成時に、create table ... as select ... ってどうやればいですか?
954NAME IS NULL:2005/11/15(火) 12:22:29 ID:???
>>953

>>937は、外部表を一回作ってしまえば、あとはそこから
ceate table ... as select ...で正規の表を作るとか、insert
してしまえば良いのでは?という意味なんだけどね。
955931:2005/11/15(火) 13:15:08 ID:???
>>954
おそらく、作った後のことだとは思っていたんですが、
私が調べたりないだけで、できるのかなと、ていうより、できるといいなですが。

既存のテーブルと同じ構成の外部表を作成するのに、
簡単な方法ってないですか?
やはり、ここはfunction なり外部プログラムなりで作成かな。

956NAME IS NULL:2005/11/16(水) 00:23:23 ID:???
>>951
Oracleインスタンスの起動前後で、lsnrctl serviceの内容を比べてみれ。
動的登録に成功していたら、インスタンスが起動しているときにlsnrctl service
にあらわれる。
tnslsnrのポートをデフォルトの1521から変更していた場合、インスタンス
パラメータのLOCAL_LISTENERでリスナーの場所をインスタンスに教えて
やる必要がある。
957NAME IS NULL:2005/11/16(水) 00:33:33 ID:???
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < DB2のいいとこまだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       |  愛媛みかん  |/
958NAME IS NULL:2005/11/16(水) 01:06:12 ID:???
>>957

頼むと漏れなくIのひよっこエンジニアがバンドルされてきますw
顧客からすると、タダで常駐してくれるからっていんうで買って
しまうパターンが多いですw
959NAME IS NULL:2005/11/16(水) 01:12:18 ID:???
autonomicの実態は中の人だったのか w


960NAME IS NULL:2005/11/16(水) 01:20:13 ID:???
>>959

ハゲワラw
961NAME IS NULL:2005/11/16(水) 23:14:23 ID:???
先生!
漏れのDB2が全然オートノミックじゃないのは
中の人がバンドルされてなかったせいでしょうか (´・ω・`)
962NAME IS NULL:2005/11/17(木) 10:41:49 ID:???
Oracle10gなのですが、
データベース・トリガー内の:NEWとか:OLDって修飾詞は、
後ろに必ず(.列名)をつけないと使えないんでしょうか?
1行分のデータをそのまま別のFUNCTIONに引数として
渡してあげたいんですが…。
例:関数名FUNCに:NEWを1列渡す。
FUNC(:NEW);
やっぱりレコード型の変数を用意して、
そこに1列1列、:NEWの中の列値をコピーして、
そのレコード型変数をFUNCTIONに渡すしかないんでしょうか…。
とても悲しす。
963NAME IS NULL:2005/11/17(木) 20:26:04 ID:YoHI+d2J
諸兄らに質問。
Miracle Linux 2.1 Standard Edition をインスコした鯖にOracle 9.0.1.を入れて、
同じドメイン内の他の端末に Oracle Client をインスコしてみたんだが、
下記のようなことを言われて困ってる。。。

ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました。

OracleDBを入れた鯖側のリスナーは動いてるし、
クライアントのローカルネトサービスも設定した。

どうすればつなぐことができるか教えれ ヽ(´Д`;)ノ
964NAME IS NULL:2005/11/17(木) 21:22:51 ID:???
>>963
とりあえず、
サーバのlistener.ora
クライアントのtnsnames.ora、sqlnet.ora
を晒せ。(w
965NAME IS NULL:2005/11/18(金) 00:06:33 ID:???
>>963
とりあえずネットワークケーブルが繋がってるか確かめろ
966NAME IS NULL:2005/11/18(金) 00:25:55 ID:???
>>963
子供の使いかお前は。
最低限、tnsping の結果くらい貼れよ。
967NAME IS NULL:2005/11/18(金) 00:28:22 ID:???
>>963

漏れはLinux側のF/Wの設定を疑うね。
確かインストール時にデフォルトでオンになってるんじゃなかったけか。
968NAME IS NULL:2005/11/18(金) 08:06:29 ID:???
>>955

普通だったらDBAは既存の表のcreate table文を何処かに残して
いると思うから、そいつから生成するのが一番早い気がするが?
もし残っていないんだっから、Functionなり外部プログラムなりで
生成するしかないだろうね。
969NAME IS NULL:2005/11/18(金) 09:54:08 ID:???
ユーザーのdefaultのテーブルスペースを知りたいのだが、
どのディクショナリにかかれているか教えてもらえませんか?
970NAME IS NULL:2005/11/18(金) 10:16:11 ID:5Uqbbgwx
XE、国内投入予定はないらしいな。
ふざけんじゃね〜よ。

>>969
SYS.USER_USERSのDEFAULT_TABLESPACE列

971NAME IS NULL
>>969

select username,default_tablespace from dba_users;