Oracle 総合 Session6 ..
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データベー
ス権限が必要です。
アクショ リポジトリ・ユーザーの現行の権限をチェックしてくだ
ン: さい。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4360日前に更新/229 KB
担当:undef