Oracle 総合 Session6at DB
Oracle 総合 Session6 - 暇つぶし2ch331:NAME IS NULL
07/01/20 13:05:59
>>330
> グローバル・データベース名とSIDを指定するのですが、両者の違いがよくわかりません。
グローバルデータベースはネットワーク上で一意なサービス、SIDはマシン内で一意な識別子

> グローバル・データベースの下に、複数のインスタンスを作れるのでしょうか?
= RAC

332:NAME IS NULL
07/01/24 02:07:28
質問ですがソフトパースが発生し動的サンプリングが動かないときって
あるのでしょうか?
ソフトパースが発生するということは共有SQLに対象SQLがない
ということはハードパース発生で動的サンプリングが動きそう
なきがするのですが。この認識で問題ないでしょうか?

333:NAME IS NULL
07/01/24 08:15:09
皆、fast_start_mttr_targetってどれくらいにしている?
今管理しているDBってトータルのサイズが1.2TB超えたんだが、
どれくらいに設定しようかと迷っている。

334:NAME IS NULL
07/01/24 09:09:33
>>332
> ソフトパースが発生・・・ということはハードパース発生で・・・
この時点から理解不能

335:NAME IS NULL
07/01/24 14:38:27
だなぁ。
どこのDBの言い回しなんだろ。
「動的サンプリング」が「トレース」みたいなもの?
「共有SQL」が「ライブラリキャッシュ」のことかな?


336:NAME IS NULL
07/01/24 15:56:33
共有SQLは共有SQL領域のことじゃねぇ??


337:NAME IS NULL
07/01/24 16:43:16 rfZgmRGG
へんな社内用語使ってる会社って言えばH?

338:NAME IS NULL
07/01/24 17:20:40 A7vL61Fv
ソフトバングにバースが入って、ハードゲイがタンパリング?


339:NAME IS NULL
07/01/25 01:27:01
どこの人なんだろうな。
汎用機方面?

340:NAME IS NULL
07/01/25 01:45:56
あぁ、ごめん。
すごく意味を間違えていたみたい。

> ソフトパースが発生・・・ということはハードパース発生で・・・

確かに意味不明だ。
ごめんよ。忘れてくれ

341:NAME IS NULL
07/01/25 01:52:32
>335

動的サンプリングは
>どこのDBの言い回しなんだろ。
といわれるほど特殊な言い回しなのか
すいません。

別名はダイナミックサンプリング?
共有SQLは共有プールSQL
これも社内独特の言い回しなのかな。

342:NAME IS NULL
07/01/25 08:37:24
> これも社内独特の言い回しなのかな。

どこの会社かは知らないが
もっと中身を理解して一般的な言葉で話してくれないと
宇宙語にしか聞こえないよ。



343:NAME IS NULL
07/01/25 09:01:47
>>341
せめてOracle語でヨロwww

344:NAME IS NULL
07/01/25 09:28:35 +UvU2D1r
社内とかいうなら、会社名か何処系の仕事がメインか みか、H、N、F・・・。をさらすべきだろ?
あと何をメインDBとしてやってるか。
正直、きいたことねー。


345:NAME IS NULL
07/01/25 09:30:23
>>332
の人気に嫉妬だが少々脊髄反射ぎみでないかい。要はCBTの話だろ?
公式の日本語訳はしらないけどdynamic samplingやら
soft, hard parse の単語は普通に出てくるぞ。
共有SQLは>>335のいうとりライブラリキャッシュのことだろうな。

で質問の件だがこんな感じだと思う。
ライブラリキャッシュにSQLがある(soft parse) キャッシュされたプランはそのまま使用される。
ない(hard parse) 
   静的な統計情報があればそれが使われる。(オプションで調整可能)
   なければ動的に収集(dynamic sampling)



346:NAME IS NULL
07/01/25 09:32:48
>>345
ちょいミス
×CBT  ○CBO コストベースオプティマイザ

347:NAME IS NULL
07/01/25 09:43:04
>>345
うーん、おれのエスパー日本語解析によると違う答えになるな
動的サンプリングの統計情報は共有プールにキャッシュされる・・・以下略

つーか、質問する前に「動的サンプリング」とかでググルないか?
3番目くらいにそのまんま出てくるんだが・・・

動的サンプリングはパフォチューマニュアルにちゃんと出てくる用語だよ

348:NAME IS NULL
07/01/25 18:48:21
SQL投入→Parser→(ライブラリキャッシュなし)ソフトパース
            →(ライブラリキャッシュあり)ハードパース
という流れの中のものを

332の時点ではソフトパースという物を
Parserで共有プールにSQL情報がないときに起こる処理
と勘違いしていたため

SQL投入→Parser→(ライブラリキャッシュなし)ソフトパース→ハードパース
            →SQL情報が存在するためキャッシュを利用

というような流れと勝手に判断していた。
ハードパース時に動的サンプリングは行われるはずなのに・・
で332のような発言になってしまった。
質問が自分の認識間違いから起きた物だから忘れてくれ、正直すまんかった。

>345、347
背景はそんな感じです。あの宇宙語からそこまで読み取ってくれたのは乙です。

349:NAME IS NULL
07/01/26 00:55:35
オマイラ的にJPAってどうなん?

350:NAME IS NULL
07/01/26 23:37:47

オマイラ的に11gってどうなん?


351:NAME IS NULL
07/01/28 09:57:48
すいません質問です。

9iで一時表領域TEMPの拡張したいです。
最初に確保したのが1000Mなんですが
MINEXTENTSが1でMAXEXTENTSが指定されておらず実質1Mしか使えてません。
ALTERでMAXEXTENTSを設定したいのですがどうもうまくいきません。
どうしたら良いでしょうか?
よろしくお願いします。

352:NAME IS NULL
07/01/28 11:38:08 0/NH0qqR
>>351
うまくいかないなら、うまくいかなかったDDLくらい晒せよ。


353:351
07/01/28 12:33:55
すいません

alter tablespace TEMP
storage(INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 121 PICTINCREASE 50
)

だと駄目でした。


354:NAME IS NULL
07/01/28 22:53:31
TEMPORARYなら一回消しても大丈夫だべ

355:351
07/01/28 23:54:33
ってことは消して再作成が一番スマートってことですね?
ありがとうございます。

356:NAME IS NULL
07/01/29 01:20:52
>>351

1MBしか使っていないってどうやって判断したの?
Sort処理やHash処理とかが行われていなければ、当然Temp領域か゛
使われる事はないし、インスタンス起動直後はTemp領域が解放されて
いるから、見た目にはエクステントが一個しか使われていないように
見えたりするけど?
もしそれで騒いでいるとしたらかなり痛いよ?

357:NAME IS NULL
07/01/29 01:24:43
1000MB指定って、メモリは4GBとかフル増設してるの前提だよな?
256MBとかしか積んでなくて出来ないとかほざいてたりして。orz

358:NAME IS NULL
07/01/29 02:01:03
>>353
ALTER TABLESPACE文はローカル管理の一時表領域に使用できません。
で検索しる

359:NAME IS NULL
07/01/29 23:48:51 Rr7+0KD9
データベースリンクごしにストアドプロシージャ呼べる?

360:NAME IS NULL
07/01/30 00:21:46
>>359


361:NAME IS NULL
07/01/30 01:57:57 70KAxeF4
>>360

ARI

362:351
07/02/01 00:34:24
>>358
ありがとうございます。
そこに乗ってるDDLで解決できました。
>>353のDDLではデフォルトの1Mでしか出来ないようでした。


363:NAME IS NULL
07/02/10 00:00:24
10.2.0.2 の DVD-ROM って作られないのかなぁ。
10.2.0.1 から Patch あてんの辛すぎ。。。


364:NAME IS NULL
07/02/10 00:55:10
いまは 10.2.0.3 じゃないのかな。

365:NAME IS NULL
07/02/10 01:24:49
10.2.0.3 がもう出てるのか。orz


366:NAME IS NULL
07/02/10 04:47:17
>>363
パッチあてるような現場に行ったこと無いけど
そんな辛いもんなの?

367:NAME IS NULL
07/02/11 00:16:10
何か当てなきゃ困るパッチあったっけ?
問題なければ弄らないが、安定運用の基本だしなあ。
ファイヤウォール噛ませて防御しとけばセキュリティの類いはそう問題にならないし、もし侵入されても個人情報とかは漏れないように分離したシステム構成にして、何十にも危機管理の対策済み。

368:NAME IS NULL
07/02/11 11:50:24
CPUとPSRを混同してるみたいだね。修行不足だな。


369:NAME IS NULL
07/02/11 12:40:43
修行とか言うと新興宗教臭い。
オラ教信者の巣窟ですか?

370:NAME IS NULL
07/02/11 13:27:53
修行するぞ~修行するぞ~

371:NAME IS NULL
07/02/12 15:04:10
尊師の御名を教えてください。

372:NAME IS NULL
07/02/12 15:59:17
>>371
Donald K. Burleson

373:NAME IS NULL
07/02/17 02:18:06 Q2XtoUUD
oracle 9i archivelogモードでrmanのバックをアップを試してみています。
インスタンスがオープンした状態で
rman > backup database format 'C:/backup/full1';
としてバックアップは作成されました。
これをもどそうと
rman> shutdown immediate
rman> startup nomount
rman> restore controlfile from 'C:/backup/full1';
とここまでうまくいきました。
しかし、
rman> alter database mount;
rman> restore database from 'C:/backup/full1';
RMAN-03002: failure of restore command at 02/17/2007 02:13:41
RMAN-06509: only SPFILE or controlfile can be restored from autobackup
で、データファイルが戻りません。
カタログというのは作っていないのですが、データはもう戻せないのでしょうか?


374:373
07/02/17 03:23:26 Q2XtoUUD
先に制御ファイルを潰しているからバックアップ情報が消えてるというのは分かりました。
restore controlfile...をせずに、
restore database;
でリストアはできました。

カタログなしで制御ファイルを潰した場合はRMANではリストアできない?
oracleのdbms_backup_restore.RestoreDatafileToパッケージで
データファイルを個別に取り出して手動での復元はできたのですが、
RMANから簡単戻す方法ってあるでしょうか?


375:NAME IS NULL
07/02/17 04:12:37
どういう単位でリストアしたいの?
ってか、それがはっきりしてるなら、それに対応するrestoreを発行すれば。

376:NAME IS NULL
07/02/17 07:23:10
>>374

確かにControl Fileを上書きした場合にはそうなるかもね。
そのために通常はバックアップセットにコントロールファイルのバックアップを
含めると思ったが?
というよりも、コントロールファイルをリストアする状況なんてミラー化してさえ
いればほとんど無いと思うが?

そもそも現行のRedoログファイル、現行のコントロールファイルが残っている
のならば完全回復目指すのが普通だしさ?

377:NAME IS NULL
07/02/17 07:49:43
>>374
取り敢えず、
configure controlfile autobackup on;
で制御ファイルのオートバックアップを
取得しておく事をお勧めする。


378:373
07/02/17 21:32:53 Q2XtoUUD
>>375
backup databaseとしました。
コントロールファイル、データファイル、
SPFILEがとられているみたいです。
>>376 >>377
わかりました。
が、仮に
元の制御ファイルが無い場合は、RMANが作ったバックアップファイルから
RMANだけでは復旧できないと思っていいのでしょうか?


379:NAME IS NULL
07/02/18 01:01:41
>>378

RMANが取ったControl Fileのバックアップを利用して
recover database using backup control file until cancel;で
最後はopen resetlogsでDBをopenする事になる。

380:NAME IS NULL
07/02/18 09:37:33
サーバがあって、ローカルセグメントのクライアントAと
ADSL・IPSec越しのクライアントBがあります。
Aは無通信で放置しててもなんともないですが、
Bは無通信で10分ほどたつと接続が切れるそうです。
サーバからセッションが消えているそうですが、
クライアントがそれを知らなくてエラーになるとか。
BがINS越しだったころはAと同様だったそうです。
こんなことってあるんですかね?
相談されたんですが想像もつきません。


381:NAME IS NULL
07/02/18 09:59:40
>>380

IPSecの設定じゃないのかな。

382:NAME IS NULL
07/02/18 11:37:07
ちゃんとルーティング設定せずにNATで誤摩化してる悪寒。
まあちゃんとネットワーク分かる業者に頼むなり、自分で勉強してなんとか汁!

AからBにネットで繋がらないでしょ?

383:NAME IS NULL
07/02/18 11:50:49
>>381
回線かIPSecとは言ってみましたけど、確信はないんですよね・・・
機器変えてテストしないとだめでしょうかね。

>>382
Bからサーバは、放置中もずっとpingが通ったそうです。
他は聞いてみないとわからなそうですけど、
図を見る限りは3台の間で相互に通るはず・・・


384:NAME IS NULL
07/02/18 14:15:17
アイドル状態のTCPコネクションを切断するやつが経路の途中にいると思われ。
ファイアウォールとか。



385:NAME IS NULL
07/02/18 14:25:51
>Bからサーバは、放置中もずっとpingが通ったそうです。
そりゃpingは永続的なセッションではないからな。
たとえば、sqlplusじゃなくて、telnetでBからサーバに接続放置してみ。
おそらく同じように切れるはずだから。
であれば、Oracleは全く関係なしで、ネットワーク設定の問題。
FWやNATをしているルータ、VPNソフト/装置、ADSLモデムなどなど。
途中のネットワークの設定変更が不可能な場合は、OSのパラメータ(TCPキープアライブ時間)を調整するしかないけど。
OracleNetのパラメータで調整できるかどうかは不明(マニュアルレベルではOSのマニュアルを参照しろと書いてあるだけ。


386:NAME IS NULL
07/02/18 14:30:19
TCP keepaliveのアイドル・タイムアウトはOS側のパラメータで調整よ。
Oracleの場合はOracleサーバー側のアイドル・タイムアウトを短くしておけば桶。

387:386
07/02/18 14:31:53
アイドル・タイムアウトっていうか、keepaliveプローブを出すまで待つ時間ね。デフォルト7200秒待ち。

388:NAME IS NULL
07/02/19 15:33:53
まあネットワークスキル低いってことだけは分かった。
手に負えないなら誰かに頼むか自分でなんとかするしかないと思う。

エスパでも無ければ変態ネットの原因なんて分かるはずが無い。

389:NAME IS NULL
07/02/19 16:00:09
サーバ側:EXPIRE_TIME
クライアント側:ENABLE=BROKEN、OSパラメータ

どっちかでNW機器の設定値より短い時間に設定汁。


390:NAME IS NULL
07/02/20 01:55:13
あんまり独自設定は辞めたほうが良いと思う。
他の人使ってないから変なバグに嵌る可能性高くなるし、バージョンアップの際に忘れて嵌まる原因に成る。

基本に忠実に、ネットをまずまともにしたほうが良い。
ネットがおかしいよね?

391:NAME IS NULL
07/02/20 02:50:40
ネットが「おかしい」んじゃなくて、機器が設定されてる通りに動いてるだけ。
ADSLルータあたりが気を利かしてアイドルTCPコネクションを切断するようになってると思われ。
ファイアウォール機器なんかでよくデフォルトで有効になってることがある。
その対策を独自設定と呼ぶのは修行不足。


392:380
07/02/20 22:17:01
384さん他が正解でした。

新しいルータがファイアウォール有効になってて、
そのときにTCPセッションを10分で切るようになってるみたいです。
そして、ファイアウォールを切らない限りこの機能は止められず、
時間も変更できない。

そういうわけでお騒がせしました。
さて、このルータをどうしてくれようか・・・


393:NAME IS NULL
07/02/21 02:38:25
捨てるしか無いでしょ。トラブルの元凶なんだし。
そのままで利用者は文句言わないの?

ネットが原因なのに、OSやオラクルやアプリケーション側で回避するのは辞めとけって話でしょ。
設定した香具師が資料も残さず辞めてしまって、後の香具師が苦労するのはよくあるパターン。

394:NAME IS NULL
07/02/21 05:56:32
>>392

取りあえず喰ってまえ。

395:NAME IS NULL
07/02/21 11:04:32
ファイアウォールはコネクション管理テーブルがあふれないようにアイドルコネクション
を切断するようになってる。
遅かれ早かれ切断される。ADSLルータを変えたところで解決にならん。

だからkeepaliveを出して、ファイアウォールにそのコネクションを使ってることを
教えてやる必要がある。




396:NAME IS NULL
07/02/21 22:49:52
>>395
コネクション管理テーブルはどれくらいまであふれないもんだろうか?
というか、あふれる気配ないのに切るもんなんだろうか?
もっと高いルータなら設定できたのか?
今回のは、テーブル数不明、タイムアウトが10分で固定、
機能が切れないあたりが地雷っぽい。

とりあえず今回に関しては構造上ファイアウォール切ってもよさそう。

ところで、keepaliveがサーバのパラメータって事は、
ファイアウォールの都合でkeepalive送るクライアントと、
従量制のINSでkeepalive送らないクライアントが混ざった場合に
どうするべきか気になる。


397:NAME IS NULL
07/02/21 23:00:33
なんでいきなりISDNの話が出てくるんだよw
どっちにしても、クライアント側でkeepaliveをすることもできるし。


398:NAME IS NULL
07/02/21 23:27:13
>394
別部品を食って改良して右手から出すのか?
……スマン、多分分からん椰子の方が多そうなネタでorz

399:NAME IS NULL
07/02/22 04:02:51
>>398

EATMAN分かる奴がこの刷れにいると思ったのか?

400:NAME IS NULL
07/02/23 11:33:21
素直にネット再構築汁!
普通は変な設定しなくても繋がるようにネットを作る。

401:NAME IS NULL
07/02/23 15:00:49
既にスレ違いの話題。

402:NAME IS NULL
07/02/27 07:56:45
ARC0: Media recovery disabled
アラートログにがずっと出続けます。(1分起きくらいに)

パラメータ設定が悪いんでしょうか?


403:NAME IS NULL
07/02/27 11:02:22
Media recovery disabledだからじゃないの?
ググるなり駅前留学すれば?

404:NAME IS NULL
07/02/27 11:30:51
>>402

DBがNo Archivelog Modeなのにinit.oraの中で「log_archive_start = true」が
設定されているからだろ。

405:NAME IS NULL
07/02/27 23:51:54
>>408
はは。バカだ。

406:NAME IS NULL
07/02/28 00:27:00
Cシェル、Oracle10gで
exp ~ query\"where column_name in\( select col from tableB \) \"
みたくqueryパラメータで副照会できないようなんで
exp ~ query\"where column_name in\( $COLUMN_NAMES \) \"
なんて具合に変数を埋め込みたい。
シェル変数が展開されてからexportに渡されるようにする方法ないかな?



407:NAME IS NULL
07/02/28 01:20:11 DcE1xTBj
>>405
408に期待.

408:NAME IS NULL
07/02/28 01:20:25
Cシェル得意じゃないけど、
query="where column_name in( $COLUMN_NAMES ) "

これでいいんじゃない?

余談だけど、公式マニュアルのデータベース・ユーティリティのexpの項目を書いた人も、
いまいちUnixのシェルをわかってないような気がする。
文字列全体を渡すために、特殊な文字を一個一個エスケープしてるし。
見づらいだけでなく、変な間違いを起こしやすい書き方だ。


409:NAME IS NULL
07/02/28 03:24:43
そもそもシェルスクリプトで遣るのが間違いでしょ。
文字列に日本語とか空白や記号使うアフォとか排除できれば、エスケープ無しでも良いけどね。
アフォのクレーム付ける論理は異常。

410:NAME IS NULL
07/03/01 23:24:19
いつの間にかロールバックセグメントやテンポラリ領域が肥大化しています…
どのSQLが犯人か突き止める方法ありますでしょうか?

バージョンは8174eeです。

411:NAME IS NULL
07/03/01 23:27:55
URLリンク(www.oracle.com)
ハイペリオンを買ったそうだ。

412:NAME IS NULL
07/03/01 23:28:25
>>410

STATSPACK取ってみれば?

413:NAME IS NULL
07/03/04 01:54:45
質問ですがひとつのサーバでインスタンスを
10個も20個も起動させるシステムってよくあるものですか?

414:NAME IS NULL
07/03/04 01:56:20
ない。
リソースの使用効率が異常に悪くなる。


415:NAME IS NULL
07/03/04 06:35:00 0GOkC2xg
>>413
本番環境ではまず無い。
テスト環境では複数起動させる場合もあるがさすがに2桁はいかない。

416:NAME IS NULL
07/03/04 09:20:17
>>413
無い。
開発環境でも普通はスキーマ分ける程度だろ。

俺なら1サーバに2つ以上のインスタンス立ち上げるくらいなら、
複数サーバ用意する。


417:NAME IS NULL
07/03/04 09:38:42
>414-416
回答どうもです。
やっぱりシステム的に問題ありですか。

418:NAME IS NULL
07/03/04 10:03:16
>>417
例えば教育ならあり得ると思う。渋谷の研修センターのUNIXでは10数インスタンスを
同時に稼働させている事例もある。
逆に聞くが、お前は なぜそうしたいのか?

419:NAME IS NULL
07/03/04 11:29:03
>418
自分は先週案件を見て、これはシステム
として無理だとおもって変更してもらおうかな・・。
と思ってる。
今まで関わってた業務では基本的には単一のインスタンスで
複数インスタンスはRACのみだったから
他のシステムって普通に複数インスタンスで動かしてるものなのか?
と思って聞いてみた

420:NAME IS NULL
07/03/04 12:04:11
複数のインスタンス使うのはシステム的には問題ないだろうけど、
単に気分とかの問題だろうな。

さすがに2桁はナニか違うだろ、とは思うし、
普通はスキーマ分けるだけで対応できると思うが。

421:NAME IS NULL
07/03/04 13:49:16
個々にDBを起動/停止したいという要求はときどきあるからな。
こういった場合、Oracleではインスタンスを分けるしかない。
インスタンスを分ければ、その分プロセス数も増えてメモリを余計に食うし、SGAの分配とかも気にしなくちゃいけない。
あるインスタンスでSGAが足りなくなっているのに別のインスタンスではSGAが有り余っている、というようなことが常に起きるしね。
この辺は、Oracleに改善して欲しいな。


422:NAME IS NULL
07/03/04 14:04:11
>>420
>スキーマ分けるだけで対応できると思うが。
この辺は皆さんがおっしゃるとおりスキーマなり
カラムに識別子追加なりで対応できると思われます。

>>421
>インスタンスを分ければ、その分プロセス数も増えてメモリを余計に食うし
これがあるのでOracleの最低動作レベルのサーバで
複数インスタンスを持たせようと思ったのが恐ろしい

ここの住人は親切だな。ありがと。
自分の考えが間違ってなさそうなので直接聞くことにするよ

423:NAME IS NULL
07/03/04 15:22:59
VPARやらLPARなんかの仮想化技術を使えば、物理的には一つのサーバー
上でも、仮想サーバー単位にO/SをインストールしてDBを起動させる事例
ならいくらでもある。
最近のハイエンドサーバーなら仮想化技術には間違いなく対応しているし、
一個のサーバーで128個のCPUとかもっているのもあるから、各パーティション
毎に10~12個のCPU割り振って、10個+のパーティション作れば、別に10の
インスタンスを起動したとしも問題はない。
本番環境ではないが、HPのSuperDome上に16個のVPAR作って、RAC化して
遊んだりとかしたよ。
それほどCPUバウンドのシステムでないのなら、そういったサーバーの使い方も
あるというのも覚えておくといいかもね。


424:NAME IS NULL
07/03/04 15:35:23
>>423
しかし、Oracleの場合はSGA_MAXが静的なのと1インスタンス=1DBなんで、いまいち論理分割の恩恵を受けにくい。
物理分割はリソースの動的配分が出来ないし。


425:NAME IS NULL
07/03/04 16:09:56
そういうのはDB2の方が得意ではあるな。

426:NAME IS NULL
07/03/04 17:07:42
ライセンスにも依るだろうね。極端な例だが、ハイエンドサーバーは 1CPUライセンスで
複数インスタンスを動かせるのだろうか?

427:NAME IS NULL
07/03/04 18:11:25
複数はいいよ、確か。


428:NAME IS NULL
07/03/04 18:42:18
>>426

それは大丈夫だよ。

文字コードが違うDBを作りたい場合はスキーマを分けても対応できないので、
仕方なくインスタンスを分けるしかない。

ただ、RAC環境では複数のDBは基本的にお勧めしないとサポートに言われて
とても困ったことがあった。


429:NAME IS NULL
07/03/05 06:59:42
Date型項目の引き算を、秒レベルで実行する方法はないでしょうか。
2007/2/27 10:00:00 - 2007/2/27 09:59:55 = 5
というロジックをつくりたいのです。
やり方をご存知の方、お願いいたします。


430:NAME IS NULL
07/03/05 07:34:23
>>451

論理分割してRAC化という方法もあるよ。
物理的には一つのサーバーだから、サイトレベル障害には耐えらないけど、
ただしくハードウェアパスを分ければ、ハードウェア障害やO/S障害などに
よるフェイルオーバーには十分対応出来る。
昨今では自社内でデータセンターを持っていない所もあるから、業務を委託
していたりする場合には、物理スペースを小さくして維持費を下げたりなんて
細かい所をやっている所もある。
それと複数の開発環境が欲しい場合には、論理分割は非常に便利だよ。

431:NAME IS NULL
07/03/05 08:13:04
>>429
86400倍。

432:NAME IS NULL
07/03/05 08:14:23
>>429
months_betweenで2つの日付間の月数求めてから、
秒数に変換したら良いんじゃね?


433:NAME IS NULL
07/03/09 10:56:32
複数NICで運用する場合でも、
リスナー1つで大丈夫だっけか?

リスナーの負荷分散とか考えたら、
2つ立ち上げた方が良さ気?


434:433
07/03/09 11:11:46
マニュアルに書いてあったな。
スレ汚しスマソ

435:NAME IS NULL
07/03/09 12:08:40 IbiyF+a6
32ビットの場合、Oracle載せたLinuxマシンって最大メモリはどのくらいまで有効に使えますか?
Windows 2003だとせいぜい4GB?


436:NAME IS NULL
07/03/09 22:58:29
2^32=4GB

437:NAME IS NULL
07/03/10 00:13:30
>>435

32bit Linux だと SGA は 1.7GB くらいということらしい。



438:NAME IS NULL
07/03/10 07:52:03
しょぼいな。


439:NAME IS NULL
07/03/10 23:14:07
>>438
2GBのSGAをフルに使ってまだ足りないような規模のDBなら
最初から64bit OS上で64bit版Oracle使うだろwww


440:NAME IS NULL
07/03/14 06:08:59
64ビット買えない貧乏案件って場合も有るだろうな。
32ビットマシンしか用意できないとかさ。

441:NAME IS NULL
07/03/14 10:20:51
つかOracle使う時点で貧乏人案件お断りだと思うが。

442:NAME IS NULL
07/03/14 11:45:14
>>441
同意www
ボラクルだしなwww

443:NAME IS NULL
07/03/14 20:22:37
貧乏人こそ見栄っ張りで、オラクルなのにウィンドウズやリナックスでコストダウンを求められる。
ちゃんとユニックス機買うところはごく一部。

444:NAME IS NULL
07/03/14 23:23:36
UNIXでもOpteron機はいやだったな・・・。
今ではいい思い出だけど

445:NAME IS NULL
07/03/15 00:01:52
別にOSで10万ぐらい違ったところでハードで数百万するんだからいっしょだろ

446:NAME IS NULL
07/03/15 13:09:02
>443
LinuxでもRHELくらいならいいと思うけど。
HP-UXとどっちがマシか?って聞かれると微妙なモノがあるし。

447:NAME IS NULL
07/03/15 13:28:18
>>437
これって、Linuxがしょぼいってことだよな?
Windowsなら3GBくらい使えるんじゃない?


448:NAME IS NULL
07/03/15 13:43:15
あんまWindowsくわしくないけど、変わらんと思う。
WindowsServer 64bitだと知らんが。

449:NAME IS NULL
07/03/15 13:43:23
>>447
シェアードメモリで使える空間が1.7Gで
ユーザーが使えるアドレス空間は2~3Gくらいあるのとちゃうの?
WindowsだとOracleのバックグランドプロセスがスレッドで実装されているから、
全バックグランドプロセス+シェアードメモリが2~3Gに納まっていなけりゃいかんので
メモリのピークはunix系より早く来ると聞いたことがある。

450:NAME IS NULL
07/03/15 14:22:41
まあ、どっちでもいいや。
これから使うことも無いだろうし。


451:NAME IS NULL
07/03/16 13:02:54
まあ、ウィンドウズやリナックス使ってる香具師は負け。

452:NAME IS NULL
07/03/16 13:04:27
なんていってたら、SQLServerに食われるだけだけどね。


453:NAME IS NULL
07/03/16 14:37:27
>>452
SQL Serverは微妙に使いにくいwww


454:NAME IS NULL
07/03/17 01:21:44 b8i9VR5l
>>449
あれ?VLMは考慮しない上でのお話?

455:NAME IS NULL
07/03/17 01:41:00
いまどきLinuxもWindowsもx64がフツーに動くのに、なぜに32bitで使いたいの?

456:NAME IS NULL
07/03/17 10:09:20 b8i9VR5l
>>455
H/Wを総入れ替えできないからだろ?
新規構築なら64ダロ

457:NAME IS NULL
07/03/21 17:46:05 OhTggdhX
OracleクライアントとOracleサーバ間の物理接続と言われているものの数の
確認方法ってどんな方法がありますか?
(v$sessionビューのレコード数でOK?)

Version は、クライアント/サーバ共に 10.1.0.2.0 です

458:NAME IS NULL
07/03/21 18:21:05
物理接続って言ったら、EthernetとかX25とかのことを言うぞ、普通は。


459:NAME IS NULL
07/03/21 21:06:20
すみません。ここの説明で上がっている物理接続の意味で使いました。
この接続の数を確認できる方法が知りたいです。

URLリンク(otndnld.oracle.co.jp)


460:NAME IS NULL
07/03/22 07:53:08
>>459
そのドキュメント中に
int getPoolSize()
ってのがあるだろうが。

461:NAME IS NULL
07/03/23 10:06:59
oracleで100Kb程の文字データを登録して、selectで検索したいのですが、
LONGやCLOBはwhere句に指定できないとエラーが出ます。
LONGやCLOBの項目を、select文で検索することはできないでしょうか?


462:NAME IS NULL
07/03/23 10:15:58
自作関数の結果でインデックスを作りたいのですが、
CREATE INDEX IDX_SEARCH_TARGET ON XXX_TBL( XXX_FUNC(ITEM_1, ITEM_2) ) を実行すると

SQL実行中に以下のエラーが発生しました。
エラーコード:30553 [Oracle][ODBC][Ora]ORA-30553: 関数がDETERMINISTICではありません。

としかられます。
DETERMINISTICで調べたのですが、対応法がよくわかりません。
ご教授お願いします。

463:NAME IS NULL
07/03/23 10:17:36
>>461

URLリンク(asktom.oracle.com)

464:NAME IS NULL
07/03/23 13:10:46
ファンクション索引は、引数だけで戻り値が一意に定まるファンクションでないといけない。
この性質がDETERMINISTIC。
XXX_FUNCの中で別のテーブルデータを取ってきたりするとこの条件にあてはまらない。

DETERMINISTIC句はSQLリファレンスのCREATE FUNCTIONを見る!
あとPL/SQLユーザーズガイドもね。


465:NAME IS NULL
07/03/23 16:21:25
可変長引数の関数って作れますか?

466:NAME IS NULL
07/03/23 16:22:29
>>464
ありがとうございます。
調べてみます。

467:NAME IS NULL
07/03/23 23:02:20
>>465
PL/SQL?

468:NAME IS NULL
07/03/26 13:19:14
>>467
すみません。ストアードファンクションです。
Oracle9iです。

469:NAME IS NULL
07/03/26 21:26:49
>>468
自分が知ってる範囲では見つからないなぁ。
強いて言えば、配列 (PL/SQL表) に値を入れて、それを引数で指定することで
可変長の引数を実現できると思う。
Oracle9i PL/SQL パッケージ・プロシージャおよびタイプ・リファレンス リリース2(9.2)
の「DBMS_DESCRIBE」プロシージャが参考になるかもしれん。
あとはOTN-Jのフォーラムで聞くのも良いと思う。ここより見てる人は多い気がする。

470:NAME IS NULL
07/03/26 23:53:30
デフォルトnullとかオーバーロードじゃダメなの?

471:NAME IS NULL
07/03/28 08:35:07
>>468
Javaストアドで書いたら?

472:NAME IS NULL
07/03/29 13:50:38
tableA
id
itemA

tableB
id
itemB

select A.id, itemA, itemB from tableA A left outer join tableB on A.id = B.id

上記のクエリをXX_VIEWにして

select * from xx_view where itemB is not null
とすると、nullのデータが出てきます。(これは、tableAに紐づかなかったデータ)

XX_VIEWの結果に対し、itemB is not nullが評価されると思ったのですが、違うようです。
この結果は仕様なのでしょうか?

473:NAME IS NULL
07/03/29 20:04:52
NULLを弾いてから外部結合、てことなのか。何か納得いかないが。
select A.id, itemA, itemB from tableA A left outer join tableB on A.id = B.idをインラインビューとしてやると正しく取れる?

474:NAME IS NULL
07/03/30 10:43:01
>>473
結果は変わらないです。
遅れて申し訳ないですが、oracle9iです。

475:NAME IS NULL
07/03/31 15:47:18
10g XEでやってみたけど、ちゃんとNULLの行はじいてくれたよ。

ちなみに、こっちの構文ではどう?
select A.id, itemA, itemB from tableA A, tableB B where A.id = B.id(+)


476:名無しさん@Linuxザウルス
07/04/02 19:25:47
DB:Oracle 10i XE
OS:日本語WindowsXP SP2

SPFILEXE.ORAをいじって
*.NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'
*.NLS_TIMESTAMP_FORMAT='YYYY/MM/DD HH24:MI:SS'
て設定して再起動して思った通りに設定されたことを確認しました。
が、シカトこかれてデフォルトの書式はRR-MM-DDのままでした。

いろいろ調べたところ、どうやら
レジストリのNLS_LANGがJAPANESE_JAPAN.JA16SJISTILDEてのが
超巨大なお世話の犯人くさいですが、
こりをどう設定すれば上記の書式がデフォルトになるのでしょうか?
ちなみにシステム環境変数にはNLS_LANGはなかったです


477:名無しさん@Linuxザウルス
07/04/02 19:28:38
そまそ
Oracle 10g XEですた


478:NAME IS NULL
07/04/02 22:56:10
>>477

REGEDIT開いてHKEY_LOCAL_MACHINE=> SOFTWARE => ORACLE => HOME<番号>
新規値でNLS_DATE_FORMATを追加。
値としてYYYY/MM/DD HH24:MI:SS。

479:NAME IS NULL
07/04/03 09:05:56
そんな日本人しか使わないような糞設定しないほうが良いと思うが。
アプリケーション鯖側で任意のフォーマットに変換して使えば?

480:NAME IS NULL
07/04/03 09:44:29
俺もSQLで目的の書式に変換する方がよいと思う。


481:476
07/04/03 19:54:14
ありがとうございますた

>>479-480
ハゲ同なんだが
アプリ担当がどっか行っちゃったんで
いま逆コンパイルしてソース作ってるとこ

Javaでまだよかった、わはは


482:NAME IS NULL
07/04/03 21:49:52
セッションの開始時に、 ALTER SESSION SET NLS_DATE_FORMAT='YYYY…' を
発行する手もあるよ。

483:NAME IS NULL
07/04/04 00:35:01
SQLで変換はDB側に負担がかかるから遣らせたくないな。
まあ用途や規模にもよるだろうけど、DB側とアプリ側のどちらで処理したほうがパフォーマンスでるのだろう。

484:NAME IS NULL
07/04/04 08:40:36
>>483
TO_CHAR関数はそんなに負荷かかるものか?

485:NAME IS NULL
07/04/04 21:58:48
>>483
TO_CHARした結果、結合でインデックスが使われなくなるのであれば別だがSQLのほうが早い。

486:NAME IS NULL
07/04/04 22:15:14
>>483
Javaでアレコレ文字列加工するよりもSQLでやった方がほとんどの場合速い

487:NAME IS NULL
07/04/04 23:03:30
速いかどうかより負荷が重要。
一人でDB使ってるとかじゃないし。

488:NAME IS NULL
07/04/05 00:20:18
アプリで処理してダラダラとコネクションつなぎっぱなしと
SQLで処理してコネクション短時間で終わるのでは、
後者の方がシステムから見たらやさしいはずだが。

一人でDB使ってるとかじゃないし。

489:NAME IS NULL
07/04/05 10:59:30
コネクションは繋ぎっぱのほうが負荷が低い訳だが。
つ keep-alive

490:NAME IS NULL
07/04/05 11:31:16
うむ。
ただつなぎっぱだと、リソースの無駄使いになるから、
セッションマルチプレクスとかコネクションプーリングとかを使用する。


491:NAME IS NULL
07/04/05 16:43:31
ま、まともな神経ならコネクションプール使う罠www

492:NAME IS NULL
07/04/05 18:39:05
>SQLで変換はDB側に負担がかかるから遣らせたくないな。

なんて言うヤツがコネクションプールを知ってるとはとても思えんがw

493:NAME IS NULL
07/04/05 23:47:25
きっとデフォ設定で共有接続なんだろ

494:NAME IS NULL
07/05/02 21:23:53
oracleサーバーがクラッシュでなんとかオラクルのインストールディレクトリを取得できましたが、
そのデータを使用してDBの復元はできないでしょうか?

495:NAME IS NULL
07/05/02 22:10:19
必要なファイルがすべて正常であれば可能。


496:NAME IS NULL
07/05/02 22:29:47
>>494

基本はredolog、control file、datafileが残っていれば可能。
というかDBだったら定期的にバックアップとか取ってるんじゃないのか?

497:NAME IS NULL
07/05/02 22:31:12
>>494
最低限、制御ファイルとREDOログファイル、
pfileないしspfile、データファイルが
まったく無事なら復旧できると思うが。


498:NAME IS NULL
07/05/03 00:11:33
バックアップから復元という選択肢がないのが不思議。

499:NAME IS NULL
07/05/03 02:05:00
つ~か、重要な環境ならarchivelogモードにして定期的に
バックアップとっていると思うけどな。
最悪、バイナリ部分が吹っ飛んだとしても、新たにソフトを
インスコして、バックアップから戻せるべ?

500:NAME IS NULL
07/05/03 10:26:21
>>495-499
みなさんありがとうございます。
バックアップを取っていなかったことは、面目ないっす。
これに懲りて、定期的にバックアップします。
インストールディレクトリから復元する場合、
oracleをインストールした後、インストールディレクトリを入れ替えればよいでしょうか?


501:NAME IS NULL
07/05/03 11:27:27
>>500
とりあえず>>495-499の内容を把握してから
出直してこいwww


502:NAME IS NULL
07/05/04 01:44:44
>>500

つ~か、お前の言っているインストールディレクトリの意味が良く分からん。
まずは鯖の種類は何よ? 窓? Linux? Sun? HP-UX? AIX?

それとOracle関連でどのファイルを救出できたんだ?
バックアップ無しのNon-archivelogモードで復旧できる可能性があるとしたら、
最低限でも一貫性の取れたデータファイルだけは復旧できていないとどうにもならん。
最悪それさえ残っていれば、手間はかかるがコントロールファイルの再作成および
open resetlogsで上げられる。

503:NAME IS NULL
07/05/04 15:57:13
>>502
すみませんでした。
windowsXPです。
インストールディレクトリとは、インストーラで指定したインストールディレクトリで、
C:\oracleです。現在その下にoradata、admin、ora92があり、
ディスククラッシュはしていないので、C:\oracle以下のファイルは無事に残っています。
別のWindowsXPマシンのC:\oracleに新たにオラクルをインストーラーでインストールし、
その後、C:\oracleを丸ごと前のものと入れ替えてoracleを起動すれば復旧できるのかと思いまして・・・
今別のマシンがないため、試すことができない状況です。

504:NAME IS NULL
07/05/04 19:25:16
>>503
ディスククラッシュしてないということは、マザーとか電源とかが原因の故障?
だとすれば、電源が強制的に切断されたがその時にはOracleがShutdownされていた、ならセーフでしょう。
前回正常電源切断後、電源が立ち上がらなくなったのでもセーフでしょう。
電源強制切断時にOracleが稼働中だったらケースバイケースかもねぇ。
とりあえず、同じSIDで別PCにデータベース作ってファイルをまるごとコピーして起動してみ。
なんとなく、復旧できそうな気はするけど、自動復旧できなければ手動で対応できるかどうかだろうねぇ。
もちろん、場合によっては全然ダメかもしれないけど。で、アーカイブログモードなの?ノーアーカイブなの?
ノーアーカイブであったとしても停止時にトランザクションが少ないorREDOが十分に大きいなら可能性はあるかも。
…っていうくらいにいろいろ可能性があるので、そんな状況説明だけでは話が散乱するだけかもね。

505:NAME IS NULL
07/05/04 21:04:31
断片的な話を聞いてる限りじゃ簡単に直せそうだね
重要なデータなら、プロに頼んだ方が確実のような気がするよ
素人が下手にやって直せるモノをダメにしても良いなら
チャレンジしてみるのも良いと思うけど

506:NAME IS NULL
07/05/04 21:07:24
まずは復旧を試す前にもバックアップしろよ。
復旧途中でいろいろ試して弄ってるうちに、ファイル壊して復旧不能にしてしまうってのはよくある罠。

つーかクラッシュして鯖止まったままで困らないの?
代替PCすら用意してなかったら、かなり痛いね。

507:NAME IS NULL
07/05/04 22:24:46
>>503

鯖が窓なら確かにその方法でもいける。
流れとしては・・・

1. ボラクルのソフトウェアを前と全く同じディレクトリにインスコ
2. 前と同じSIDで新規DBを再作成
3. 以前のデータベース関連のファイルを全て(redolog、datafile, orapw、init.ora、control)を入れ替える。
4. DB起動

注意点としては>>505が言っているように、復旧を始めるまえに今の全てのファイルの
バックアップを取得しておくこと。
最悪ヒューマンエラーを起こしたとしても、また復旧を始められる。
これはリカバリの基本中の基本。

508:NAME IS NULL
07/05/05 03:37:52
SIDじゃなくて、内部的になんかユニークIDもってなかったっけ?
そこら辺って大丈夫なの?


509:NAME IS NULL
07/05/05 06:20:48
窓はそこまで高等じゃなかったはず。

510:NAME IS NULL
07/05/05 08:49:57
XPで動かしてるぐらいだから、再インスコでも十分なのかもな。
なんか連休入ってるみたいで音沙汰ないし。

511:NAME IS NULL
07/05/05 19:31:25
クラッシュサーバーからファイルを取り出せたっぽいから
その取り出した先の媒体がリカバリーリトライ用のバックアップになるだろうね。

512:NAME IS NULL
07/05/05 20:56:06 62q5988W
エラーメッセージが文字化けします。

ORA-00942: ???????????????

513:NAME IS NULL
07/05/05 21:11:59
>>512

NLS_LANG
oerr ora 942

とか。


514:NAME IS NULL
07/05/05 21:40:26
>>512
ORA-00942をググるか
エラーメッセージガイド見て探せwww

ま、「表またはビューが存在しません。」だけどなwww

515:NAME IS NULL
07/05/06 11:16:31 GJ+A4Kez
512です。みなさんありがとうございます。

文字コード(文字セット)がUS7ASCIIで時点で日本語はENDですかね。

こんなんで作った覚えないけどな。。

516:NAME IS NULL
07/05/06 12:20:54
日本語でOK

517:NAME IS NULL
07/05/06 16:20:01
どこをジャパニーズにしたいのかティーチしてショーしろ

518:NAME IS NULL
07/05/06 16:32:54
たぶんここのことだろ

>文字コード(文字セット)でUS7ASCIIで時点で日本語でENDですかででで。

519:NAME IS NULL
07/05/06 18:15:03
(引用ミスってるようだけど)正解。

520:NAME IS NULL
07/05/06 19:10:12
メッセージをジャパニーズにチェンジしたいのか、データベースをジャパニーズにチェンジしたいのか。


521:NAME IS NULL
07/05/06 21:48:10
うんこ日本語ですいまねん。
メッセージをジャパニーズにチェンジしたいです

522:NAME IS NULL
07/05/06 23:11:50
頭を英語で使えば問題ないと思う。

523:NAME IS NULL
07/05/07 00:31:02
>>521
NLS_LANGをLANGとトゥギャザーすればオーケー。


524:NAME IS NULL
07/05/07 12:03:13
>>504
おまえ何を言っているんだ??
ディスククラッシュしてなくてマシンの電源が落ちただけなら、マザーか電源かしらんが、
交換してOracleを再起動するだけで自動的にインスタンスリカバリが働くから、
電源が落ちる前の最新の一貫性のある状態には戻るだろ。

「電源強制切断時にOracleが稼働中だったらケースバイケースかもねぇ。」
稼動中に電源落ちても問題ないだろ。もちろん、コミットしてないデータは
失われるが。



525:NAME IS NULL
07/05/07 22:42:39
>>503
どうやらなにも心配せずに故障したパーツを交換して起動すれば
問題なく復旧するようですね(by 524氏)。
リカバリーコマンドや、バックアップからのリストアも不要のようなので楽ですね^^

526:NAME IS NULL
07/05/07 23:31:54
データが消えてないかチェックするのは基本。

527:NAME IS NULL
07/05/08 13:20:46
>>525
>リカバリーコマンドや、バックアップからのリストアも不要のようなので楽ですね^^
俺が言ってるのはあくまで「ディスククラッシュ」してなければの話だけどね。
してなければ、リカバリコマンド入力やリストアする必要はない。


528:NAME IS NULL
07/05/08 21:34:40
ディスククラッシュしてなければ(部分的を含む)論理的破損とかもありえないものなんだね。
知らなかった…orz 便利になったものだ。

529:NAME IS NULL
07/05/08 22:06:05
WindowsのNTFSなら大丈夫だろう。
Unixでも最近のファイルシステムなら大丈夫だろう。
Linuxは一部のファイルシステムが、ヤバいかもしれん。
RAWの場合は、Oracle次第。


530:NAME IS NULL
07/05/08 23:26:47
fsckがよしなにぶった切ってエラーの無いようにしてくれてるだけでは?
もちろん使えない(w

531:NAME IS NULL
07/05/08 23:48:37
Oracleの場合はっていうかほとんどのDBMSがそうだと思うけど、
sync書き込みになっているから、ファイルそのものの破壊はないと思う。
ところが、Linuxについては、VFSがきちんとsyncをしないことがあるらしく、いまいち信頼性に欠けるらしい。
LinuxのVFSについては、結構問題になっていて、XFSやreiserFSといったファイルシステムについては、
それぞれがVFS自体にも修正を施した上で実装されているみたいだ。

fsckはメタデータについてチェックするだけなんで、ファイルそのものについてチェックをしてくれるわけではない。


532:NAME IS NULL
07/05/09 04:14:09
何のための

ジャーナリングファイルシステム

なのか


533:NAME IS NULL
07/05/09 04:31:35
何のために

同期書き込み

しているのか

ちょっと小一時間考えてみます


534:NAME IS NULL
07/05/09 08:47:51
syncしてたら遅いけどな。
遅延書き込みしないと遅いよ。でも書き込めなかったデータは失う。

535:NAME IS NULL
07/05/09 10:06:14
REDOログエントリの書き込みや制御ファイルの更新あたりを
同期書き込みしておけばOK。データブロックの書き込みは非同期で十分。


536:NAME IS NULL
07/05/12 12:12:36
同期であっても非同期であってもファイルに書き込んでいる最中に電源が切れて
読めなくなるようなことはないの?
クライアントPCで停電になったあとにチェックディスクすると
使っていたファイルが修復されたりすることがあるけど(完全に修復されるのかどうか分からないけど)
サーバーではそういうことはないのかな?

537:NAME IS NULL
07/05/12 12:43:57
>>536

つ~か、鯖だと普通はAPCとかついているから、停電になっても
クリーンシャットダウンぐらいは出来るようになってるよ。

万が一、鯖がクラッシュしたりしてもハイエンドクラスのストレージだと
ダブルチェックサム機能で、コラプトブロックとか書き込まない様に
なっていたりするしね。

一応おかしくなった時のために、RMAN使って物理・論理チェックを
かけることも出来るけどね。



538:NAME IS NULL
07/05/12 13:24:37
>>537
れすさんくす。以前に質問していた人が
サーバークラッシュしてディスククラッシュしていないって書いてあったので
クライアントPCであるような物理的には大丈夫でも論理的に異常になっている可能性は無いのかな?
と、質問してみました。
サーバークラッシュって書いてあるので単純な停電ではなくてハードエラーで落ちたのでしょうから、
その辺はどうなのかな?って。サーバー構成によっては大丈夫な場合もあるってことですね。

539:NAME IS NULL
07/05/14 23:30:04
>>538

勿論、非同期とかで書き込みしている時とかには、物理もしくは論理で
ブロックコラプションが起きる事もある。
その場合はEEだとRMAN使ってメディアブロックリカバリーでブロック単位で
リカバリかけたりする事も出来る。


540:NAME IS NULL
07/05/15 20:49:29
独自で作ったOracleの便利スクリプトを紹介してくれ

541:NAME IS NULL
07/05/15 21:42:43
>>540
OTNのCodeTips見てこい

542:NAME IS NULL
07/05/15 21:48:06
なるほど。サンクス。DB Magazineも買ってくる。

543:NAME IS NULL
07/05/24 00:30:48
オラクル入れようと思ったが、カーネル再構築の途中。orz

544:NAME IS NULL
07/05/25 20:54:16
カーネル再構築なんてまたくだらない事やってるな。

545:NAME IS NULL
07/05/25 21:57:12
まだ8i使ってるからな。orz

546:NAME IS NULL
07/05/25 22:16:19
もうサポート対象外では?

547:NAME IS NULL
07/05/27 11:13:31
そもそもサポート受けてないだろう

548:NAME IS NULL
07/05/27 20:09:57
去年の10月くらいに8の質問して答えてくれたけど。

549:NAME IS NULL
07/06/01 10:01:32
oracle9iを使って、ある条件で検索した結果の10~20件目だけを抽出するSQLを考えています。
下記のSQLで結果は取れましたが、これ以外でよい方法などありましたら教えていただけないでしょうか。
SELECT
    *
  FROM
    (
      SELECT
          (
            SELECT
                COUNT (*)
              FROM
                TEST_TBL
              WHERE
                DEL_FLAG <> '01'
          ) AS TOTAL,
          row_number() over ( ORDER BY XXX ASC) AS row_cnt,
          MASTER_ID
        FROM
          TEST_TBL
        WHERE
          DEL_FLAG <> '01'
    )
  WHERE
    row_cnt BETWEEN 1 AND 20
  ORDER BY
    XXX ASC



550:NAME IS NULL
07/06/01 11:50:20
(´Д`)

551:NAME IS NULL
07/06/01 14:27:34
>>549
ググればROW_NUMBER関数を使った例がいくらでも転がってる。


552:NAME IS NULL
07/06/16 18:27:40 I1V9HKtK
教えてください。

外部プロシージャを止めるにはどうすればいいのでしょう?
外部プロシージャをバージョンアップするために、
.soファイルを上書きしたいのですが、

lsnrctl stop

でリスナーを停止してもextprocPLSExtProcが浮かんだままで、
cpコマンドで上書きしようとしてもアクセス中なので出来ないと怒られます。
killコマンドでこのプロセスを殺してもいいものなのでしょうか?
それともdrop libraryなどで一度oracleから取り除かなければならないのでしょうか?

以上、よろしくお願いします。

553:NAME IS NULL
07/06/17 01:05:12
>>552

Killってかまわん。
まあ、確実なのはDBシャットダウンすれぱ止まるはずだけどね。


554:NAME IS NULL
07/06/17 13:10:18 h5nfYdZ9
>>553
アホ
DBを止めるとき、lsnrctl stopしたあとに浮かんだままのoracleインスタンスをkillするのか、お前は

>>552
drop libraryすれば.soファイルへのアクセスは停止する筈

555:NAME IS NULL
07/06/20 09:58:28 2tTyyyLm
tabという名前の表を作成したらテーブル一覧が見られなくなりました

どうすればいいですか?

556:NAME IS NULL
07/06/20 10:50:34
そのtabを削除すればいいんじゃね?


557:NAME IS NULL
07/06/20 11:14:18
>>555

tabというのはsynonymだかんねぇ。
user_tablesからうまく作ってったら?

558:NAME IS NULL
07/06/21 02:25:09
>>555

取りあえずそのtabをDropする。
んでもって以下のスクリプトで再作成しろ。

CREATE OR REPLACE VIEW TAB
(TNAME, TABTYPE, CLUSTERID)
AS
select o.name,
decode(o.type#, 2, 'TABLE', 3, 'CLUSTER',
4, 'VIEW', 5, 'SYNONYM'), t.tab#
from sys.tab$ t, sys.obj$ o
where o.owner# = userenv('SCHEMAID')
and o.type# >=2
and o.type# <=5
and o.linkname is null
and o.obj# = t.obj# (+)
/


559:NAME IS NULL
07/06/21 03:31:24
わざわざVIEWの定義を調べてご苦労だけど、再作成はいらん。DROPで充分。
新しいTABをDROPしたくないならSYS.TABで元のTABの内容が参照できる。

560:NAME IS NULL
07/06/21 11:27:32 aqXLPoKz
UPDATE USER_SOURCE SET TEXT = ' FROM TESTA WHERE A = 2;'
WHERE NAME = 'PPP' AND LINE = 5

権限が不足しています。エラーが出ますが、なぜでしょうか。

561:NAME IS NULL
07/06/21 11:41:36
>>560
権限が足りないんだろ。


562:NAME IS NULL
07/06/25 18:32:35
CBO前提で開発してるのに統計採って無いことに気付いた。ありえなくね?
速攻採るべきだよね?ちなみに9.0です。

563:NAME IS NULL
07/06/25 21:04:35
とるべきとしか言いようがない。


564:NAME IS NULL
07/06/25 23:17:07
ありえね

565:NAME IS NULL
07/06/25 23:35:35
>>562

すでに本番リリース済みの場合には、統計情報を収集したことが原因で
コスト計算時に使用される統計情報がデフォルトから収集したものに変わったことにより、
SQL文のアクセスパスが変わってパフォーマンス劣化が
発生する可能性も有るので注意したほうがいいと思う。

もし、パフォーマンス劣化が発生したら、そのSQLに影響している統計情報を
deleteすること。


566:562
07/06/26 09:49:56
>>565
thx検証しながらやってくYO。
数が多くて大変だがorz

567:NAME IS NULL
07/06/26 12:03:09 bHNCzBBO
条件に当てはまる行を先頭に移動させる方法ってありますか?

568:オラクル太朗
07/06/26 20:24:42 MCoTLU9N
オラクル10g勉強中です。
オラクル10gを削除したいのですが、
プログラム追加と削除から消せないようなので、
削除のしかた教えてください。
あとインストールの参考になるようなサイトがあったら教えてください。
お願いします。

569:オラクル太朗
07/06/26 20:28:28 MCoTLU9N
追加↑
OSはWindows2000serverです。

570:NAME IS NULL
07/06/26 22:12:50
勉強後に消した方がよくないか?
削除したいのならインストールできたのじゃないか?

571:NAME IS NULL
07/06/26 22:38:16
>>568

1. インストール時と同じように、OUIを起動する。
2. インストールされているソフトの一覧を出す
3. 消したいソフトを選んで削除

その後に、完全にクリーンインストールするために以下のレジストリを削除。

My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
My Computer\HKEY_CURRENT_USER\SOFTWARE\ORACLE
My Computer\HKEY_LOCAL_MACHIN\SYSTEM\CurrentControlSet\Services以下のOracleとつく全て

あとはついでにC:\Program Files\Oracleフォルダも消しておけ。

窓でのDBインストールなんて、クリックしていきゃ勝手にインスコされるだろ。

572:NAME IS NULL
07/06/26 22:46:34
>>568
つ「Oracle Database インストレーション・ガイド」

ほれ、これで「Oracle Databaseソフトウェアの削除」方法でも勉強しろや。
インストール方法も勉強できるぞ。

573:オラクル太朗
07/06/26 23:37:26 MCoTLU9N
NAME IS NULLさんありがとうございます。
学校ですでに10gがはいってるサーバーマシンを借りてきて、
すでに入っているものは消してから使ってくださいといわれたので、
インストールもアインストールもしたことなかったので、
途方にくれてたとこでした。
本当ありがとうございました。

574:572
07/06/27 00:18:22
>>573
どの名無しに感謝されたのかわからんが、
その程度の初学者ならここからお勉強するといいさ。
URLリンク(otn.oracle.co.jp)

575:NAME IS NULL
07/06/27 00:25:15
「Select name from itemmaster where id1 = 0000or id2 = 0001」
上記のSQL文は、間違いだと思うのですが、何故かSQL Plusで実行したら
通りました。
上記のSQL文って正しいのでしょうか?
id1とid2はchar型でシングルクォートを付けてないし、0000とorの間に
スペースが無いし、普通は通らないと思うのですが、、、
何か分かる人はいるでしょうか?
ちなみに、Oracle 10g 10.1.0.2です。

576:NAME IS NULL
07/06/27 00:27:49
>>575
仕様です

577:NAME IS NULL
07/06/27 01:28:29 qWRscJ4i
JPublisherって使ってる人いる?

578:NAME IS NULL
07/06/27 02:36:53
>>575

シングルクォートが無くても、暗黙的に変換してくれる。
ただし、明示的にChar型を宣言していないため、索引が使われない
などのデメリットはある。
スペースも勝っての判断してくれる場合がある。
以下のSQLを試してみるがいい。

select*from user_users;

579:オラクル太朗
07/06/27 22:29:26 DoTZCG5U
>>574さんありがとうございます。
2ch初心者なので、571、572、573の名前がNAME IS NULLで同じで
同一人物だと勘違いしていました。
571、572、573さんありがとうございます。
サーバーマシンはなんとか、DBにconnectできました。
クライアント側にもクライアントCDをインストールしたのですが、
サーバー側に接続を試すToolが入っていません。
インストールタイプをInstantClientしか入れてないからでしょうか?
あとインストールCDが多すぎて、どれが必要なのかわからない状態です。
Oracle Database リリース・ノート 10g リリース2(サーバー側)
Oracle Database Client インストレーション・ガイド 10g リリース1(クライアント側)
をインストールしました。ほかにインストール必須なCDはありますか?
教えてください。お願いします。

580:NAME IS NULL
07/06/28 00:18:40
>>579

SQL*PLusってツールがはいっていない?

581:オラクル太朗
07/06/28 06:54:42 3LjSIdu7
580>>
SQL*PLusははいっています。

582:NAME IS NULL
07/06/28 07:01:16
>>579

どこにインストールしたか分からないが、tnsnames.oraの設定をまずしろ。
そうしたらコマンドプロンプト開いて「tnsping <DBエリアス>」と打ってみろ。
ちゃんと設定がうまくいっていたら、後はSQL*PLUSでもなんでもつながる。


583:オラクル太朗
07/06/28 07:03:14 3LjSIdu7
582さんありがとうございます。
いまから学校いって早速試してきます。

584:NAME IS NULL
07/06/28 18:44:33
oracle9iのjavaクラスの中でネットワークドライブにファイルを書き出したいのだがどうもうまくいかない。

マッピングしても

java.io.FileNotFoundException: No such file or directory

ねーよって出ちゃう

ローカルドライブなら普通に書き込めるんだけど。

なで?

585:NAME IS NULL
07/06/28 19:04:54
>>584
Windowsか?

586:NAME IS NULL
07/06/28 19:20:17
>>585
Windowsっす。
今のところXPっす。

587:NAME IS NULL
07/06/28 19:26:04
>>586
Administration Assistant for Windows の起動オプション
のNTアカウントをネットワークアクセス権のあるユーザーにしてみ
ローカルアカウントではネットにアクセスできん

588:NAME IS NULL
07/06/28 19:27:23
>>587
マジスカ

ありがとっす!
やってみるっす!

589:オラクル太朗
07/06/28 21:45:07 3LjSIdu7
クライアントからサーバーに接続はできたのですが、
クライアントからサーバに入っているテーブルにアクセスしても見れません。
サーバーがわでsysユーザーでテスト用にdeptテーブルを作り、ユーザーfoo
を作りました。クライアント側でfooでログインして、dept表を見るには
どうしたらいいのでしょうか?
教えてください。


590:NAME IS NULL
07/06/28 22:06:28
>>589
GRANTでfooに必要な権限を与える。
SYSで作ったテーブル名はsys.deptになってるはず。
そもそもSYSアカウントでユーザーテーブルを作らない。

591:NAME IS NULL
07/06/28 22:13:43
>>587
ユーザー作ってそのユーザーでオラクルインスタンス起動した。
プロセスマネージャーではそのユーザーで起動してる。

再起動もした。

リスナーで怒られたのでリスナーも同じユーザーに

けどネットワークドライブに書き込めん・・
java.io.FileNotFoundException: No such file or directory

uncでアクセスしてもネットワークドライブで割り当ててもだみっす。

もちろんdbms_java.grant_permissionで権限は与えてる・・・

なぜなのかぁぁぁぁ!!





592:NAME IS NULL
07/06/28 22:33:38
>>591

サービス(インスタンス)もちゃんとそのユーザーで起動しているか?

593:NAME IS NULL
07/06/28 22:37:48
>>592
そうなのよぉ
taskmgrで見る限りちゃんと変わってるんですよぉ

で、そのまま起動するとリスナーでora-12500で怒られるので
リスナーのユーザーもそのユーザーに合わせて正常に起動したんですよぉ

謎っす

なんか単純なとこでしくじってるのかなぁ

あと考えられるとこってありますか??
GODよ教えてくださいっす

594:オラクル太朗
07/06/28 22:39:19 3LjSIdu7
590>>さんありがとうございます。
fooには、grantでconnect権限をあげただけです。
それでは、サーバー側でuserをもう一人作ってそのuserでテーブルを作れば、
クライアント側でfooユーザー接続してみることはできますか?



595:NAME IS NULL
07/06/28 22:44:32
>>592

なんか出来た・・・・

IPアドレスじゃなくてNETBIOSの名前でアクセスしたら出来た・・・

\\hoge\hoge.txt○
\\10.8.0.1\hoge.txt×
みたいな・・・

おいおい・・・

いや、でもほんと助かりますた。

すげえ感謝っす


596:NAME IS NULL
07/06/28 22:59:30
>>594

ユーザを作成して
そのユーザでテーブルを作成して
クライアントからはそのユーザで接続すればOK


597:オラクル太朗
07/06/28 23:06:18 3LjSIdu7
596>>さんありがとうございます。
早速明日学校いって試してみます。
一つクリアしたらまた一つなかなか前に進まなくて本当大変です。
ここで問題が解決していきとても感謝です。
ありがとうございます。




598:NAME IS NULL
07/07/01 04:51:52
>>119
何年か前、協力会社としてJBCCの開発やったんだが・・・
技術者はいい人は居るんだが、スキルが糞。
営業は売り上げ上げる為なら、とにかく仕事を取ってきて技術者に「お前らやれ」
ってきたもんだ。「技術的に無理」っていったら、「客には出来るっていっちゃったから、
何とか作れ」って言われたぞ。売れれば何でもいいのかと子一時間。。。
IBMのパートナーの癖してAIXがわからんし、「smit」の話をしたら、「smit」って何?
とこれまた来たもんだ。最近ではさすがにUnix系が出来ないのがまずいのか、LPIの
ビジネスパートナーになってるみたいだが。。。

URLリンク(lpi.or.jp)

上はビジネスパートナーになってるソースね。

599:NAME IS NULL
07/07/01 18:58:02
まあ格安案件でも取りにいく所はそんなものです。
嫌なら、予算多めにして他の業者使えばいい話だ。

600:オラクル太朗
07/07/03 22:17:54 H6oFNBuZ
596さんありがとうございます。
うまくクライアントから表が見れました。
今バックアップとリカバリのところを勉強しています。
Enterprise Managerで設定しているのですが、ポリシーの設定後ホストの資格証明で
ユーザー名、パスワードを入れてもうまくいきません。
ERROR:WRONG PASSWORD FOR USERという
エラーが出ます。
user名はSYS passwordはoracleでと入力しているのですが、記述の仕方が
悪いのでしょうか?
教えてください。

601:NAME IS NULL
07/07/03 23:24:19
>>600

DBのパスワードを入れてどうする。
ホストにログインするユーザー名とパスワードを入れろ。

602:NAME IS NULL
07/07/04 00:39:51
DBコネクトとログインの区別がついてないってカコ悪い。

603:オラクル太朗
07/07/04 07:02:50 +iHTJJZc
601さんありがとうございます。
早速学校行って試してきます。


604:NAME IS NULL
07/07/14 12:22:18 lfqZZbE2
このスレ的に11gってどうよ?
まぁまだ発表されたばっかだけど...
今のところ,俺的にはあんま欲しい機能は無くて,
10gのマイナーバージョンアップって感じかな?
8iと10gはがらっと変わってメジャーバージョンアップって感じだったけど.

605:NAME IS NULL
07/07/14 13:25:30
単体で使う分には8iから大して変わりはないけどな。
11gは管理ツールの充実って感じがした。業務で使ってると、必要と要求の有った機能が割とサポートされてるって思った。

606:NAME IS NULL
07/07/15 05:17:12
すみません。
PL/SQLでストアードファンクションを使って、
値を複数返したいのですけど、出来ますでしょうか?

returnで返す値を複数指定出来ないかと思って
「RETURN a,b」みたいにやってもダメでした。

select FUNCTION() from emp
こんな感じのSQLで複数値が返ってくる方法は無いでしょうか。

607:NAME IS NULL
07/07/17 09:50:16
自分で答え書いてるじゃん。

608:NAME IS NULL
07/07/17 22:30:32
ファンクションの中にファンクションをネスト。

そんなことより質問PL/SQLで
表名 test
select * from test;
A列 B列
1   2007/7/17
2   2007/7/17
3   2007/7/18
4   2007/7/19

として
3   2007/7/17
3   2007/7/18
4   2007/7/19
を得たいんだけど
何かいいてない? A列の値を B列でグループ化しつつsumしたいんだけど
カーソルとカウンタかませるとできそうだがプログラムが長くなり祖でな・・・いい手ないかな

609:NAME IS NULL
07/07/17 22:38:06
質疑応答すれのがよかったか。ってかこの板人口少なそうだな。。。

610:NAME IS NULL
07/07/17 22:41:57
>>608
select sum(id),min(val) from hoge group by val;
でどう?

611:608
07/07/17 22:51:05
>>610
即レスサンクス。
参考にいたします。感謝感謝。

612:NAME IS NULL
07/07/18 12:43:24
emagent.exeって何をするプロセスですか
プロセス停止すると どういう問題が出ますか

613:NAME IS NULL
07/07/18 14:58:05
ヒント
em = Enterprise Manager

614:NAME IS NULL
07/07/18 16:04:16
実行時間のかかるSQL分があり、文法エラーがないかを確認したいのですが、
実際に実行しないで確認する方法はあるでしょうか?

本来、実行してから強制終了すればいいだけなんですが、
職場の事情で、インフラチームからSQL実行中の強制終了はするなと言われて、
エラーチェックできずに困っております。

615:NAME IS NULL
07/07/18 16:11:31
>>614
自分のPCにOracle突っ込んで
実行できる環境構築するwww

こういうのもあるけど、たぶんCREATE TABLE出来ないwww
URLリンク(otn.oracle.co.jp)

616:NAME IS NULL
07/07/18 21:12:26
>>614
実行計画とればいいんでない

617:NAME IS NULL
07/07/18 23:25:43
構文エラーのチェックだけならset autotorace traceonlyでいいんちゃう。


618:NAME IS NULL
07/07/19 01:31:02
traceonlyは実行しちゃうよ。結果を表示しないだけ。
explain planがいいんちゃう。

619:NAME IS NULL
07/07/19 10:18:30
cseを使い場合、odbcドライバコピるだけでは動かないのですが
クライアント入れないと駄目ですか?

620:NAME IS NULL
07/07/20 01:53:47
>619
だめです
素直にクライアントインスコ汁
つか、odbcドライバもファイルコピーだけじゃ動かんのじゃないか確か。

621:NAME IS NULL
07/07/20 03:36:26
インスタントクライアントの方が容量的にはかなり小さくなるな。
sqlplus、jdbc、odbcと必要なものはそろっているし。
環境変数の設定やodbcドライバの登録とかを手でやらないといかんけど。


622:NAME IS NULL
07/07/20 10:00:26
>>620
らじゃ、ありがとうございます。

623:NAME IS NULL
07/07/21 03:37:44
インフラチームって、もしかして本番機とか?
確認は検証機でどうぞ。

強制終了して、他の業務ジョブに迷惑かけたら始末書ものだよ。

624:NAME IS NULL
07/07/21 03:52:09
unix版から飛んできました。

SQL*FORMSという古いソフトを使っており、これがOracle7でしか
動かないのですが、Oracle7のままsolaris8以降の新しいOSに
乗せ変えたツワモノはいますか?

もちろん、DBを保証のあるバージョンにのせ変えるのがすじ
なのは分かってますがそれができないのです。

solarisのバイナリ互換性から考えると普通に動くと思うのですが。

625:NAME IS NULL
07/07/21 05:23:11
>>624

O/S新しくするのなら、アプリもこの際新しくしろや。
そんなサポートされいないバージョンのものを使い続けている方がどうかしてる。

626:NAME IS NULL
07/07/24 10:24:18
エクスポートファイルからテーブル一覧をクリップボードにコピーしたいのですが、
imp show=y file=xxx.dmp を実行すると、ログイン名を指定されます。
怖くて入力できませんが、このshowは実行時に詳細を表示するオプションなのでしょうか?

627:NAME IS NULL
07/07/24 10:43:40
>>626

verboseオプションではなく、show onlyオプションだよ。
つまりdmpに含まれるcreate table文など一覧を見る事が出来る。

628:NAME IS NULL
07/07/24 11:07:31
show onlyというオプションがないのですが、コマンドラインで指定するオプションではないのでしょうか。
遅れてすいません。Oracle9iです。

629:NAME IS NULL
07/07/24 13:05:50
>>628

だからshowはshow onlyの意味であって、show=yと指定すれば
実際のimpは行なわれずに、表示だけされるんだってば。
verboseという意味のshowでは無いということ。

630:NAME IS NULL
07/07/24 14:47:25
>>629
すいません。
ご親切にありがとうございます。

631:NAME IS NULL
07/07/24 17:25:25
>>629
ファイルの一覧のみは出せないの?

632:NAME IS NULL
07/07/24 17:52:10
my_view の定義が select a, b, from my_table where a = 1 の場合

select a, b from my_view where b = 1

select a, b, from my_table where a = 1 and b = 1

ではクエリーのパフォーマンスに違いが出てくるでしょうか?
客先からの仕様変更が激しく、アプリに影響がないようにすべてVIEWに対してクエリーしようかと考えています。

危険な方向性ですかね?

633:NAME IS NULL
07/07/24 19:19:11
その SQL はエラーになるんじゃないかな。


634:NAME IS NULL
07/07/24 22:20:54
>>632

実行計画取れば分かるが、viewに対してQueryを投げた場合、まずOracleは
内部的にそのSQLを書き換えて、実行パスを決定している。

635:NAME IS NULL
07/07/25 00:08:29
>>631

中身を見たかったらこれで全部出るだろ。

imp userid=\"/ as sysdba\" file=hogedat.dmp ignore=y show=y full=y log=bogeimp.log



636:NAME IS NULL
07/07/25 14:54:41
javaとかでフリーなライブラリがネット上にいろいろ転がっていますが、
これあると便利的なストアードファンクション・プロシージャを提供しているサイトとかって知ってますか?

637:NAME IS NULL
07/07/25 20:02:58
>>636

OTN

638:NAME IS NULL
07/07/25 23:39:45
登録したMACアドレスだけ接続を許可する様にしたいのだけど
何か方法有るかな?


639:NAME IS NULL
07/07/25 23:44:51
>>638

んなもんO/Sでやれ。

640:NAME IS NULL
07/07/26 10:18:48
やっぱり内科。
訳ありでOS側では制御出来ないのよ。

641:NAME IS NULL
07/07/26 11:12:39
>>640

だったらF/Wなり、iptablesなりかませればいいじゃん?

642:NAME IS NULL
07/07/26 11:51:51
>>641
スマソ 要件が詳しくなかったね。
環境は・・
OS:WindowsServer2003Sp2
Oracle10g
で・・
要件は「登録したMACアドレスだけのIPをOracleに接続を許可しる。ただし接続コントロールはOracle側でおこなうこと」なのよ。
他の事(OS設定や機器設定及び機器追加)は一切出来ない・・・orz


643:NAME IS NULL
07/07/26 11:54:09
スマソ 訂正。
誤:登録したMACアドレスだけのIPをOracleに接続を許可しる。
正:登録したMACアドレスだけをOracleに接続を許可しる。

接続はTCP/IPでクライアントはDHCPでIPコロコロ変わります・・orz


644:NAME IS NULL
07/07/26 12:20:59
ボラクルってMACアドレス拾えないだろ?

645:NAME IS NULL
07/07/26 13:14:39
>>642

結論から言うと無理だろ。
その用件考えた奴はアホだ。

646:642
07/07/26 18:44:47
スマソ DLL1本作って事故解決しました。

647:NAME IS NULL
07/07/27 00:22:20
んでも、その気になればMACアドレスは偽装できるんだから
無駄な努力、とまで言うのもアレだが、おバカな案件だな。

648:NAME IS NULL
07/07/27 11:11:08
unixのコマンドラインから、テーブルをcsv形式でエクスポートしたいのですが、
expだとダンプ形式にしかできないと認識しています。
何か方法はないでしょうか。

649:NAME IS NULL
07/07/27 11:32:57
>>648
sqlloader sqlldrかも

650:NAME IS NULL
07/07/27 11:33:55
>>649
エクスポートか、これじゃダメだね。

651:NAME IS NULL
07/07/27 15:45:56
>>648
OTN-JapanでCodeTips検索してこい

652:NAME IS NULL
07/07/27 23:11:13
>>648

んなもん幾らでも調べればやり方なんか転がってんだろうが。
URLリンク(asktom.oracle.com)
URLリンク(asktom.oracle.com)


653:NAME IS NULL
07/07/30 11:42:55
ボラクルってIPv6でお話し出来ますか?


654:NAME IS NULL
07/07/30 12:26:29
>>653

Pv4/ IPv6の混成環境は可能。
IPv6だけはまだ。

655:NAME IS NULL
07/07/30 14:01:15
>654
なるほど。ありがとうございました。


656:NAME IS NULL
07/08/03 10:36:19
sqlplusはSQLエラーのときエラーの行数が出ますが、
javaでjdbcを使ったSQLの場合、エラー行番号が取れません。
行情報はsqlplus独自のものでしょうか?

657:NAME IS NULL
07/08/03 19:54:46
>>656

はい。


658:NAME IS NULL
07/08/07 17:01:19
>>657
ありがとうございます。
たとえば、javaのjdbc経由のアプリで、エラー行番号を取得することはできたりするのでしょうか?

659:NAME IS NULL
07/08/07 20:17:25
>>658

そもそも行番号というのはなんですか。
あなたが思っているような単位でSQLは解釈されません。


660:NAME IS NULL
07/08/08 10:10:19
>>659
行番号は、つまり行は改行コードのことです。

661:NAME IS NULL
07/08/08 10:41:39
>>620
またまた質問ですみませんが、
どうしてもoracleクライアントをインストールすること(インストールプログラム使用)を許してもらえません。
そこでですが、別のマシンにインストール済みのoracleインストールディレクトリを丸まるコピーし、
それを別のマシンに同じディレクトリにコピーし、oracleインストールディレクトリ/ora92/binにパスを通し
cseでodbcではなく、oracleネイティブ接続で接続すれば、DB接続できるでしょうか?

662:NAME IS NULL
07/08/08 20:42:56
インスコしちゃだめって言うなら諦めた方がいいと思うが

663:NAME IS NULL
07/08/08 23:26:44
同じく。
インストールという行為を禁止されているなら必要な理由を提示して許可をもらえばいいし、
そもそもクライアントからOracleに直接接続するなというならその方法でできたとしてもNGだろ。

業務上必要なのにインストール許可を出さない会社ならやめてしまえ。

664:NAME IS NULL
07/08/09 01:53:23
>661
もう少し技術的な観点からも補足すると

cseは長いことバージョンアップしてないから新しいoracleクライアントだとどのみち使えんかもよ

665:NAME IS NULL
07/08/09 11:18:01
>>664
ありがとうございます。
Oracle9iのWindows版ではうまく動いています。

666:NAME IS NULL
07/08/09 11:40:24
sql analizeでログインできません。
DBには通常のユーザを登録しSELECT ANY TABLE権限もありますが、
下記のエラーメッセージが出ます。
このリポジトリーユーザは、特別なユーザなのでしょうか?

on リポジトリ接続 while レポジトリ・データベースに接続中エラーが発生しました。

XP-21162: 現行のリポジトリ接続には、十分な権限がありません

原因: Oracle Expertルール・エンジンでは、SQL文の妥当性チ
ェックを実行するために、SELECT ANY TABLEデータベー
ス権限が必要です。

アクショ リポジトリ・ユーザーの現行の権限をチェックしてくだ
ン: さい。

667:NAME IS NULL
07/08/09 12:30:26
>>666
以下のどちらかで対応しろ。

- そのログインユーザーに DBA権限を与える
- init.oraでO7_DICTIONARY_ACCESSIBILITY=trueを指定

668:NAME IS NULL
07/08/14 11:08:07
create table xx した日にちを取得することってできますか。

669:NAME IS NULL
07/08/14 11:13:39
user_objects

670:NAME IS NULL
07/09/04 08:41:28 pXMBPiTp
とても古い環境なんですがNT4に対してoas4をインストールしましたがマネージャーが起動しません。ホスト名+ドメイン+ポート接続でも検索エラーになります。
環境設定において特別ななにかが必要なことってありますか?なお、ネットには接続できました。

671:NAME IS NULL
07/09/04 09:32:15
>>670
Winだし、とりあえず再起動?

672:NAME IS NULL
07/09/05 00:53:17
複数のテーブルが入っているエクスポートファイルから、1つのテーブル分だけを簡単に取り出す方法ってありますか?
たとえばA,B,Cが入っているDMPからBだけが入っているDMPを簡単に作りたいのです。
いったん、インポートしてからBだけエクスポートすれば?というのは無しです。
そんなことが簡単に出来てしまうコマンドとかはないのでしょうか。

673:NAME IS NULL
07/09/05 01:09:20 huCY+7z7
>>672
いったん、インポートしてからBだけエクスポートすれば?

674:NAME IS NULL
07/09/05 07:01:18
>>672
tables

675:NAME IS NULL
07/09/05 09:53:33
>>674
ありがとうございます。
しかし、それは、そのテーブルだけインポートするということですよね。
すいません、説明不足でした。
毎日、フルでexpしたものを何日分か残す様になっています。
サーバは遠くで、外部からもアクセスできない環境にあるので、
それで、何か調べる必要が出てきた時に、DMPを送ってもらって調べたいのですが、
さすがにフルexpだとサイズが大きすぎて難しいので、必要なテーブル分だけ抽出出来たらなと思ったわけです。
稼働中のDBですので過去のデータなどをいったんインポートするなども出来ません。
それで、簡単なコマンド等で、フルDMPから一部だけ切り出す方法がないかと思ったのです。
ご存じの方がおられましたら、よろしくお願いします。

676:NAME IS NULL
07/09/05 09:54:34
>>672

imp時にBだけ指定すればいいじゃん?

677:NAME IS NULL
07/09/05 09:56:47
>>675

現実的な方法としては、その本番鯖の近くで別DBを作って貰って、そこでその
表BだけImpしてExpじゃないかねぇ?

678:NAME IS NULL
07/09/06 02:41:23
>>675
ユーザを新しく作ってそこに B だけインポート。

679:NAME IS NULL
07/09/07 13:05:58
>>676-678
ありがとうございます。
いずれにせよ、コマンド一発で簡単にというわけにはいかないということのようですね…


680:おれようメモ
07/09/07 21:53:52
-----------------------------------------------
select
  *
from
  (select reg_date from emp_main where customor = 'CUS001' order by reg_date desc)
where
  rownum = 1
----------------------------
    INDEX  NON-INDEX
COST  18    242
-----------------------------------------------
select
  *
from
  emp_main
where
  reg_date = (select max(reg_date) from emp_main where customor = 'CUS001')
and
  customor = 'CUS001'
and
  rownum =1
----------------------------
    INDEX  NON-INDEX
COST  6    230
-----------------------------------------------

681:NAME IS NULL
07/09/11 13:56:13 qUTPzdOn
Orcle8iですが教えてください。

あるパッケージ(国内で有名なベンダー)を使っていますが
dbサーバ起動時に削除したデータが登録されている現象が
あります。
実行制御データですが、まるでスタートアップの処理で作成
される感じです。
(保守契約が切れていまして問合せできません)
Orcle8iに起動時に処理させる機能はあるんでしょうか?

682:NAME IS NULL
07/09/11 14:46:37
通常のテーブルなどに設定するDMLトリガーじゃなく、データベーストリガー(この場合、Startupトリガー)なら
Oracleの起動時に実行できますね。8iで可能かはマニュアルを見て下さい。通常のCREATE TRIGGER文のとこにあれば載ってると思います。


683:NAME IS NULL
07/09/13 06:28:31 EzBaCPo5
ありがとうございます。

684:NAME IS NULL
07/09/13 09:23:19 rtETd5f1
>>682
Startupトリガーが、dbのどこを見ればよいのですか?
Object Browserで見ていますが・・・・
初心者ですみません。

685:NAME IS NULL
07/09/13 15:11:08
SELECT * FROM DBA_TRIGGERSでいけるんじゃないかな。


686:670
07/09/16 16:39:23
もうひとつすいません。

OAS管理画面(4.8.0.1)でツリーが表示されません。
原因が皆目つかないのですが誰かご存知でしょうか?

ちなみにIEの設定ではJAVAスクリプトはONになってます。


687:NAME IS NULL
07/09/21 17:02:18
SELECTが妙に遅いのでいろいろ調べてインデックス付け直したりしたわけですが一向に改善されず・・・


原因はSQL文でVARCHR2の項目にシングルクォートつけるの忘れてただけでした
無駄な作業させてごめんなさいごめんなさいごめんなさい(;´Д`)

688:NAME IS NULL
07/09/26 11:26:23
imp、expするときって、DBの文字コード依存しちゃいます?

689:NAME IS NULL
07/09/26 23:33:48
>>690

思い切りな。
まあ、大抵は自動で変換してくれたりするがな。

690:NAME IS NULL
07/09/27 10:10:11
oracleサーバーが実行したSQLのログを簡単に見る方法はないですか?
外部のシステムがoracleを使用していて、多分そこで悪さをしているのですが、
文句を言う前に証拠を見せろ野一点張りで…

何とかしてSQLのログを調べたいのですが、方法はありますか?

691:NAME IS NULL
07/09/27 10:12:22
定義が同じ、A・Bがあって、差分を取りたいのですが、簡単な方法あれば教えてください。

692:NAME IS NULL
07/09/27 10:56:19
インスタントクライアントって9i対応ないのでしょうか。

Windows(インスタントクライアント10g) → unix(9iサーバ) の環境で、
cseで接続できるでしょうか?

693:NAME IS NULL
07/09/27 11:19:33
>>691

データの差分ということ?
だったらminus関数使えば?

select * from A minus select * from B
といった感じに?

694:NAME IS NULL
07/09/27 11:20:36
>>690

簡単に見るというのは難しいね。
ファイングレイン監査か、もしくは10g OEM、あるいはサードパーティ製の
ツールが必要だろうね。

695:NAME IS NULL
07/09/27 11:40:07
>>692

出来る。
10gクライアントから9i DBの接続はサポートされている。


696:NAME IS NULL
07/09/28 11:00:45
>>695
ありがとうございます。

instantclient-odbc-win32-10.2.0.3-20061115.zip、instantclient-basic-win32-10.2.0.3-20061115.zipをダウンロードして
ダウンロードフォルダーにパスを通し、ODBCのインストールも実施して、
ODBCのドライバリストに登録されたことも確認しましたが、
システムDNSの登録の際に、インストールがされてませんのエラーが出ました。

クライアントのインストールをしなくても使えると書いてあったのですが、これはどうしてでしょうか?

697:NAME IS NULL
07/09/28 20:49:08 FkBhlVIQ
SI オブジェクトブラウザ最強

698:NAME IS NULL
07/09/28 22:30:25
URLリンク(www.mainichi-msn.co.jp)
--------------
神戸新聞社(神戸市)で今月22日に新聞製作システムが立ち上がらないトラブルで紙面が作れなくなった問題で、
システムを開発した日本電気(NEC)と日本オラクルは28日、システムに使われているデータベースソフト
「オラクル9iデータベース」にプログラムミスがあった、と発表した。

699:NAME IS NULL
07/09/28 22:42:48 ncTp7tKO
>>698

その件はshutdown abortを通常運用に組み込んでいたことが原因の一つにあるみたいなんで、
運用方法にも問題があるような気がする。


700:NAME IS NULL
07/09/29 00:53:39
shutdown abortを前提とした運用を設計したやつってすごいw


701:NAME IS NULL
07/09/29 01:06:52
神戸新聞のはKROWNが一般公開済み。

URLリンク(support.oracle.co.jp)


702:NAME IS NULL
07/09/29 02:14:22
>>696

面倒だから10gクライアント入れておけ。

703:NAME IS NULL
07/09/29 07:15:43
>>699
Oracleが開発に加わっていたのだから、最初に教えてあげるべき。
それか、問題と認識していなかったか。または、

704:NAME IS NULL
07/09/29 07:47:12
サポートや障害発生時の臨時稼動の費用は
開発より何倍も搾り取れるからシノギ行為を黙認した
または、

705:NAME IS NULL
07/09/29 07:56:03
>>703
神戸新聞社の組版システムはNECが開発、オラクル社製品のサポート「も」行っている。

じゃん

706:NAME IS NULL
07/09/29 21:19:35
では、NECが糞って事でFA?

707:NAME IS NULL
07/09/30 17:17:16 v3DOfxU+
>>706

NECは糞じゃない!!!!!

2006年3月に神戸新聞社の組版システムをカットオーバーさせた。

そして今年Oracle Award 2007【Oracle Partner of the Year(最優秀賞)】を受賞した

理由は
************
昨年度日本オラクルと共に顧客ビジネスに最も貢献したパートナーに贈られる賞であり、
NECはオラクルとの協業20周年という節目の年に、年間の最優秀賞を受賞しました。
************
URLリンク(www.nec.co.jp)


最優秀企業が糞なわけないじゃん!!!!!!!!

708:NAME IS NULL
07/09/30 17:23:46
>>707
できレースということか!!!!!!!!!

709:NAME IS NULL
07/10/02 02:08:12
NEC……Oracle……
計った喃 計ってくれた喃

710:NAME IS NULL
07/10/02 12:34:32
>>707
まさかAFO?

----------
たくさん売ってくれてありがとう だからOracle社が発行する(他では只の紙切れ)
賞状をあげるよ。もっと売れアホンダラ
----------
と見えるが。

・・・とここまで書いて釣りだったか?w


711:NAME IS NULL
07/10/02 21:28:07
OracleってDB以外にもなにか売ってるけど
どれが幸せ?

712:NAME IS NULL
07/10/02 21:59:36
>>711
DBだけ使うのが無難www

713:NAME IS NULL
07/10/02 23:22:12
>>711

他の製品を買うと、乾いた笑いしか出てこない状況になれます。
それを幸せと思えるマゾ体質な人にはお勧めです。

714:NAME IS NULL
07/10/05 11:21:00 QMmmkZwG
oracle 8.1.7 とかで現在日付をselect sysdate from dualとかでとれるけど、
ミリ秒まではどうやるの?oracle9以降だったらtimestamp型があるからうらやますぃ。

715:NAME IS NULL
07/10/05 22:40:25
>>714

対応していません。

716:NAME IS NULL
07/10/05 22:45:33
javaストアドを使う

717:NAME IS NULL
07/10/16 23:16:54 A38dmDSy
ORACLE無償版をVISTAにインストールして、
データベースを起動させたら


C:\oracle\BIN>net start OracleXETNSListener
システム エラー 5 が発生しました。

アクセスが拒否されました。


C:\oracle\BINN>net start OracleServiceXE
システム エラー 5 が発生しました。


のメッセージがでるんですけど、
どうすればいいのか教えてください

718:NAME IS NULL
07/10/16 23:36:26
とりあえずUACを切ってみる。
OracleXEがVistaに対応するのを待つ。
OSをWindowsXPやLinuxなどにかえる。

719:NAME IS NULL
07/10/16 23:36:46
理由がわからないのならVista使うのを止める。
解ったとしても解決するまでかなり面倒な操作が必要だと思う。

OracleはWindowsにとってはあまりお行儀が良くないのでこういう事が起きるのかもしれん。



720:NAME IS NULL
07/10/17 01:27:57 71Y6EBkY
よろしくおねがいします。

Oracle9.2iですが、実行計画を取得時に、
sql*plusから

SQL> set lines 80
SQL> set pages 0
SQL> set autotrace on
SQL> select * from hoge;

のようにして↓↓↓↓↓↓のような表を出力したいのですが、
マニュアルやネットを見てもその方法が分かりません。
どうかお助けくださいませm(_ _)m

Plan hash value: 2339479017
---------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL | HOGE | 1 | 2 | 2 (0)| 00:00:01 |
---------------------------------------------------------------------

721:NAME IS NULL
07/10/17 01:38:23
URLリンク(biz.rivus.jp)
ここを見たのか

何をやってみて、その結果
どんなエラーが出たのかを書けばいいんじゃない?

そうしないと
・Oracleインストールしてないんじゃねーの?
・「SQL>」ってそのまま打ち込んだんじゃねーの?
・hogeテーブルつくってないんじゃねーの?
・PLUSTRACEロール作ってないんじゃねーの?
・GRANTしてないんじゃねーの?
って馬鹿にされるだけ

722:NAME IS NULL
07/10/17 02:17:38 71Y6EBkY
>>721
ご返事ありがとうございます。

そのURLです。感謝です。
内容は、
1.sys as sysdbaでplustrace.sqlを実行
2.scott に plustraceを付与
3.scottでutlxplan.sqlを実行
4.scottでhoge表を作成
5.set autotrace on → select * from hoge
すると、

実行計画
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (FULL) OF 'HOGE'
統計
----------------------------------------------------------
0 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
228 bytes sent via SQL*Net to client
372 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed

となり、rows,bytes,cost(%cpu),timeなどが表示されません。
timed_statisticsはtrue、statistics_levelはtypicalです。
よろしくお願いします。

723:NAME IS NULL
07/10/17 03:43:34
10g Release2からフォーマットが変わったんだってさー。

SQL*Plus ユーザーズ・ガイドおよびリファレンス 10g リリース2(10.2)
URLリンク(otndnld.oracle.co.jp)

・Autotrace Plan出力
Autotrace Plan出力では、情報が追加され、DBMS_XPLANパッケージ形式が採用されています。

724:NAME IS NULL
07/10/17 22:50:16 71Y6EBkY
>>723
ありがとうございました。
バージョンあげないとダメなんですね。。


725:NAME IS NULL
07/10/17 23:18:41
>>724
EXPLAIN PLAN FOR select * from hoge;
@?/rdbms/admin/utlxpls.sql

726:NAME IS NULL
07/10/18 22:25:29 J6h+RjKg
>>725
度々ありがとうございます。感謝です。
timeが出ないのが残念ですが、set timing on
で妥協します。。

727:NAME IS NULL
07/10/28 10:12:32
Oracle 11g 試した人は?

728:OfgoHgvTsOTtdvI
07/11/12 06:21:15
JtAZqq <a href="URLリンク(brnuilaqsfrr.com) [url=URLリンク(ucqqtnimqrmr.com) [link=URLリンク(xqdyrhjrqdlh.com) URLリンク(pxnybruverwn.com)

729:vELYWLIVFNyzkv
07/11/14 00:48:38
VQItLW <a href="URLリンク(kyjcsdjtzaxl.com) [url=URLリンク(tiqhvexmwhbv.com) [link=URLリンク(bwcfhxgsyyyg.com) URLリンク(rcvnkazixaqx.com)

730:FrpNgKyqRI
07/11/14 14:49:51
2PeCrp <a href="URLリンク(kumenfehjyer.com) [url=URLリンク(ffllsutrhdyx.com) [link=URLリンク(wlpgiioqtevk.com) URLリンク(pywkdlxcpnae.com)

731:NAME IS NULL
07/11/14 20:57:02
Oracle9iで、OSがWindows2003です。

上記の環境で使用しているSQL-Loaderが時間がかかるようになってきました。
単純にデータが増加してきたのでしょうがないのですが、
短くする方法というのはないでしょうか?
ネットで調べた結果、「ダイレクトパスインサート」という方法を
使用すればいいのかな?と思ったのですが。
ちなみに処理自体は、同じDB内のユーザーA.テーブルAから
項目順をかえ・日付項目を文字列化し・改行文字を置き換えて
ユーザーB.テーブルBに毎日洗替でINSERTしてます。
これは、一旦SQL文で上記の置換などを行ったものをテキストファイルに
書き出し、それをSQL-Loader(REPLACEモード)を使ってINSERTしてます。

どうかお知恵をかしください。よろしくお願いします。

732:NAME IS NULL
07/11/15 00:18:26
>>731
可能ならREPLACEよりTRUNCATEだろうな。
ダイレクトパスを使うならなおのこと。
速くはなるが制限もあるのでしっかりテストしてくれ。

733:NAME IS NULL
07/11/15 00:28:41
>>727
最初からSQL Developerはいってた。

734:NAME IS NULL
07/11/15 00:43:18
>>731

それってSQL*Loader使ってやらんでも、PL/SQLか何かで回して
やれば良さそうな気がするんだけど、気のせい?

735:731
07/11/15 21:03:14
>732
ありがとうございます。やはりそうでしたか。
いろいろ制限もあるみたいですし、テストやって考えます。
>734
ぶっちゃけそうです。ていうか自分で作ったなら、
何で一旦テキストファイルに吐き出すなんていうムダなことを思いつくんだ?
ていうぐらい謎のプログラムなんです。
違うユーザーとはいえ、普通にSQL文で対応可能なんですよ…
それにダイレクトパス使えばもっと高速と。
ただ、今回は時間と工数がないので、とりあえずの対応としてローダーを
早くしようとしております。

736:NAME IS NULL
07/11/16 00:12:00
>>735

もし工数が無いのなら、Viewか何かで対応したらいいんじゃないかと思うんだが?

737:NAME IS NULL
07/11/16 01:01:34
同じ項目のテーブルAとBがあって
Aに有ってBに無いレコードをBにインサートするには、

INSERT INTO B
(
SELECT * FROM A
MINUS
SELECT * FROM B
)

でOk?

738:NAME IS NULL
07/11/16 20:21:19
>>737

・MERGE文
・↓のようなものをインサート
(
SELECT A.* FROM A
LEFT OUTER JOIN B ON (~~)
WHERE
B.rowid is null
)
・↓のようなものをインサート
(
SELECT * FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE A.primaryKey = B.primaryKey ~~)
)
・↓のようなものをインサート
(
SELECT * FROM A WHERE A.primaryKey NOT IN (SELECT B.primaryKey FROM B )
)



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch