1 :
NAME IS NULL :
2009/08/23(日) 11:41:21 ID:e4fFukP4
おつ
Oracle USのサイトでプロファイル登録してしまったのですが Oracle Japanでログインするには日本側のサイトで登録しないと ログインできなかったりします?
6 :
4 :2009/08/25(火) 12:34:21 ID:???
やっぱそうか・・・ ありがとござます。
7 :
NAME IS NULL :2009/08/25(火) 23:41:50 ID:5xfpHV6A
age
ACERのAspireRevoを買ったので、 Vista用の10.2.0.3のRDBMSを入れてみますた。 ちなみにVista Home Premiumは ORACLEのサポート対象外なんですけど RDBMSとリスナーは、すんなりと動きました。 もっとアリエナイ感じの動作環境自慢いませんか?
Redhat Linux、Oracle 10g でニヤニヤしてます。 いわゆる「upsert」を実現したくて、merge を使いました。 insert する時に、シーケンスから値を取得しています。 merge into mytable using DUAL on (id = ?) when matched then update set now_date = sysdate when not matched then insert values (sequence.nextval, (あと略) ) "when not matched" の側が実行される時は、そりゃもちろんシーケンスはインクリメントされますが "when matched" の側が実行される場合も、シーケンスがインクリメントされちまいました。 この挙動は当然の事でしょうか? (これが受け入れ難いのであれば merge は使うな、という事でよい?)
>>8 Cent O/SやWhiteBox LinuxでRAC組んだぐらいだな。
>>9 sequence.nextvalが実行されちまっている以上、その動作になるんじゃね。
>10 Cent O/S Cent O/S Cent O/S Cent O/S Cent O/S ずいぶん恥ずかしいな。馬鹿すぎる。
>>12 はいはい、バックスラッシュはいりませんでしたね。
私が悪うござんした。
>>9 sequenceの仕様のせいというか相性が悪いというか。
sequenceを使う人は、割り切って使うと思う。
割り切れないなら
最初に既存レコードのupdateになるか、
新レコードのinsertになるかをselect使って判定して、
insertになる場合はsequence取って・・・となって、
それは昔ながらのやり方であって、mergeは使う必要ないね。
>>13 わかっとらんな。逆ギレしてさらに馬鹿を晒すとは。
日本語なんて通じればいいんだよ
19 :
名無しさん@そうだ選挙に行こう :2009/08/30(日) 11:20:05 ID:IiFjmKoL
変な質問で申し訳ありません。 oracleとmysqlのパフォーマンス(select検索やupdateの処理速度)は やはりoracleの方が断然早いのでしょうか?
全然mysqlの方が速いよw
Oracleは個人と法人とでの態度の違いが露骨
質問なんですが テーブルのカラムのdefault値ってどのようなときに使用しますか? うちのところだと、すべてのカラムがNotNull設定だからdefault値をすべての設定して いると聞いたんですが、すべてに対してdefault値を設定する必要あるんですね? 個人的に、NotNullの設定だけして、default値を設定しないほうが 挿入カラムの入れ忘れしたときにエラーを返してくれるから便利だと思うのですが。
>>22 オイラがDefaultを設定するのは、
「データ有効フラグ」みたいな列かな。
Defaultは、あまり設定しないね。おおむね同意する。
>>19 MySQLは、オープンソースで、無料、高速なので、
貴方はMySQLを使った方が良いですよ。
9月中に11gR2をリリースという事だけど、 Windows7とServer 2008 R2には対応するのかな。 10gR2が対応せず11gR2が対応ということなら 11gR2に移行するかもしれないけど、 個人的には10gR2でも対応して欲しい。
25 :
NAME IS NULL :2009/09/01(火) 16:46:21 ID:IVAR84S8
ORACLE 8.1.7を使っている者ですが、 教えてください。m(__)m 項目名 A(NUMBER) B(NUMBER) C(NUMBER) からなるテーブル名=ENZANがあって SELECT (A+B) AS AB, (A+B+C) AS ALL FROM ENZAN はできるのですが、これを SELECT (A+B) AS AB, (AB+C) AS ALL FROM ENZAN のようにすることはできないのでしょうか? 実際に用いたいSQLはA+Bの部分が長くて もう一回書くのが大変だなって思いまして。。
SELECT AB, (AB+C) AS ALL FROM (SELECT (A+B) AS AB, C FROM ENZAN)
今米国Oracleみたら、11gR2(11.2.0.1.0)が出てる。 Linux x86 Linux x86-64 だけだけど。
ほんとだ さっそくダウンロード開始
へぇ。 以前から噂は聞いてたけど、出たか。 日本オラクルの人が言うには、11g R1 は 10g R3 みたいなもので、 これこそが 11g なんだとか。 ポータルサイトも出来てるんだね。気合い入ってるな。
何も考えず、x86_64 な FC11 にインストール。 カーネルも何も設定していないのに、普通にインストール完了w (runInstaller叩いただけ。オプション指定なし) Link エラーが出たので compat-libstdc++-33.x86_64 を追加した程度 つかね。OUI別物杉w
32 :
25 :2009/09/02(水) 13:59:39 ID:9S+hiIY1
>>26 ,27
ありがとうございます。
FROMにテーブル名以外が使えるって初めて知りました!
激安激遅のAtom 230(EMT64対応)マシン、 ACERのAspireRevoを買ったんで Windows 7 x64 RCをインストールして、Oracle 10gR2 x64 を入れようとしてみました。 7 x64には、setup.exeで選べる互換性オプションがVistaしかありません。 OUIは起動するものの、最初の「次へ」でダンマリというか、 javaw.exeが無言で終了。11gR1も同じ傾向。dbもclientも。 32bitの時にはaeroを無効にしますよ、的なメッセージが 出るのですが、そのタイミングで落ちてるんじゃないかな。 気を取り直して、 Windows 7 RC (32bit)に、Oracle 10gR2 Vista 32bit。 互換性オプションをXp(SP3)を、気分で選択して、いい感じに進んでます。 ソフトのみインストールさえ正常終了すれば、 DBは多分作れるんじゃないかと期待してますが・・・今、 ソフトのみインストールは正常終了しました。 RDBMSとリスナーが動くか、後日レポします。
Windows7 RC (32bit)でOracle 10gR2 Vista 32bit。 RDBMSとリスナーは大丈夫そうでした。 特に問題なく動いてます。 当然クライアントコンポーネントもイケる感じです。 Windows7で10gR2がサポートされるかどうかは 望みが薄いかな、と思ってましたけど 10gR2は現在主流のリリースだから期待してます。 Vista 32bit版10gR2はWindows7 32bitでも動作します、 なんて案内を出してくれれば最高です、ORACLE様。
Windows 7の対応は、今のところ11gR2だけが「Projected」と載ってますね。 10gR2を認定してくれれば嬉しいけど、直近の2つくらいしか対応しないでしょうね。 オラクルも、約2年たった11gR1や、新しい11gR2を売りたいでしょうし。
Vista x64+10gR2 x64 (10.2.0.4)でシステム開発してる人いますか? 今日、暇なので家で試してみたんだけど、いろいろウマくいかない。 (ODBCドライバの利用にPATCHが必要だったり・・・他にも気になる挙動がある) なんだかなあ・・・ ウチの製品、Vista x64+10gR2 x64は、正式サポートを当面見送ろうかな。 x64対応は、Windows 7 x64+11gR2 x64を評価してから、また考えようかな。
Oracleってサポート契約無しでも利用して良いんだっけ? アップグレードやパッチ当てたり出来なくなるから、 実運用上は役に立たないとは思うんだけど。 っていうか昨年度まで契約しててパッチ適用済だと既にアウトな希ガス。 ウチの上司がサポート高いから切れって言ってきたorz
>>38 別にたいしたデータ扱ってないなら、サポートなしで使ってもいんじゃね
勿論サポートは受けられないしバグがあってもパッチもらえないから
自己責任の範囲になるな
仮に今サポートやめて3年後にどうしようもないバグが出てパッチを
もらう場合は今に遡って3年分のサポート料払う必要があるから
気をつけろよ
つーか、そんな上司捨てちまえよ
ライセンス1個で社内のPC百数十台にインストールして大丈夫でしょうか?
42 :
NAME IS NULL :2009/09/08(火) 21:27:36 ID:D/yRoqvB
>>41 サーバがProcessor ライセンスでPC数百台へクライアント製品を
インストールするなら大丈夫。
>>39 ウチの顧客の個人情報とか売上・カード情報とか満載の超重要サーバです。
とりあえずサポート切るなら俺は知らん・責任取らん、と明言してきますた。
上司は黙ってても後3年くらいで定年退職なんで放置しておきます。
PDFの検索、ダウンロードをするwebシステムを構築するのですが、 データベースにPDFファイルを登録します。 バイナリデータの取り扱いはBLOB型を使う場合が多いと思いますが、 BFILE型という、ファイルはOS上のファイルシステムそのままに ファイルの場所と名前だけを登録する方法があることを知りました。 この2つの型を使い分けるには何がポイントになるのでしょうか?
上司の意向
>>44 使い分けのポイントとなりうる一つの点はバックアップ&リカバリだろうな。
BLOB型の場合、データがDB上に存在する訳だから、バックアップ&リカバリは
Oracle DB内で完結出来る。
障害時には通常のOracleのリカバリさえ行えばそれで終わり。
BFILE型の場合にはDBには単にポインタが格納されているだけだから、O/S上の
実ファイルのバックアップ&リカバリ方法も当然考えないとならない。
9.2 です。OPTIMIZER_MODE = CHOOSE で、統計情報を全くとっていません。 現状、ルールベースで動いていると思います。 この条件下で、SELECT 文を発行する際、とある index を使用するように、 オプティマイザヒントを使用します。 これって index 使った実行計画に変わってくれますか? コストベースとして動きますか? それとも、ルールベースに対し、index のオプティマイザヒントは意味がないですか?
>>49 INDEXを使った実行計画に変わる。
また、「RULE」以外のヒントをオプティマイザヒントに使用すると
そのQUERYはコストベースで処理される。
やっぱりルールベースが良いよな
11g Platinum 受ける人いる?
TNSNAMES.ORAのnet_service_nameとservice_nameの違いってなんですか? net_service_name= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales-svr)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=service_name)))
net_service_name はクライアントがアクセスするときの名前で、 service_name はインスタンスがサービスとして見せるときの名前。
WinXPHOMEでホスト資格証明のユーザー名、パスワードがPROではないので ログインできません。 HOMEでEnterprise Managerの設定でログインするにはどのようにしたらよいので しょうか。 お願いいたします。
>>57 ORACLEのバージョン情報が不足。書くのがマナー。
まあ、Xp Homeは、サポート外だから諦めた方がいい。
59 :
NAME IS NULL :2009/10/02(金) 00:22:48 ID:aiOJhT4q
最近、久々にORACLE使って仕事してるけど、 いつも思うけどORACLEって使いにくいというか面倒くさいデータベースだよな。 SQLのエラーとかも相変わらず不親切すぎる、なんだこれよ。
例えば?
ORA-600頻発。
62 :
NAME IS NULL :2009/10/02(金) 01:24:36 ID:apfhpyid
>>59 SQL文はお主が間違って書いているからエラーになっているので、
お主が悪い。
オラクルのエラーマニュアルって結構親切だと思うけど。 Windows意外ならオンラインで確認できるし。 例えば ORA-20 $ oerr ora 20 00020, 00000, "maximum number of processes (%s) exceeded" // *Cause: All process state objects are in use. // *Action: Increase the value of the PROCESSES initialization parameter. ORA-600/7445 は何か爆弾踏んだりしたら確かに頻発するなぁ。
64 :
NAME IS NULL :2009/10/02(金) 06:49:43 ID:91URBOIM
ORACLEを日常的に使う人間としても、 エラーはもう少し親切に指摘して欲しい。 たとえばORA-01722なんかは、 ORA-01722: 数値が無効です。TO_NUMBERに失敗しました。strings:1234A567 とかでもイイんじゃね?
クソだなそれ。
67 :
NAME IS NULL :2009/10/03(土) 01:07:29 ID:LaXeSBFL
普通のPCサーバで十分パフォーマンスいいから、もうORACLEいらない。 というか制約事項多すぎるからORACLEさよならだな
OoracleがPCサーバの性能を上げるためのものだったとは知らなかった
69 :
NAME IS NULL :2009/10/03(土) 07:59:25 ID:bcypi5NM
71 :
NAME IS NULL :2009/10/03(土) 12:23:46 ID:WLPN4C4m
「SQL Serverは長いけど、Oracleは最近から」なオレに昨日あった出来事。 A:「このSQLが遅いので見てもらえませんか」 オレ:「どれどれ。。。実行コストは対したことないのに、60秒もかかるのか。」 オレ:「なんか、このViewを抜くと秒殺になるぞ。なにこのView。」 A:「そのViewは、あまりに遅いのでViewの中のselect文でマテビュー使ってます。」 オレ:「ふ〜ん、んじゃぁ、マテビュー使ってない版に変えて実行してみて。」 A:「Create VIewし直しました。」 オレ:「なるほど、これは遅いな。んじゃぁ、マテビュー版に戻してみて。」 A:「Create Viewし直しました。」 A:「あっ!速くなりました。30秒になりましました。ありがとうございました。」 オレ:「意味わからん。。。」 誰かこの現象を説明してくれないか。 ちなみにOracle 11.1.0.6なんだが。
そのためにはまずA氏のスリーサイズを教えてもらわないことには・・・
マテビューのリフレッシュをしていなかっただけじゃないのかな。
つーか、単純に60秒かかった時は、重いSQLが動いてたんじゃねえの?
マテビューって、どっかに実際のデータが格納されてるわけだが、 そのデータに対してフラグメントや行連鎖、行移行とか発生しないのか? マテビュー作り直して速くなったって、インデックス作り直したら 速くなりました、ってのと同じような気がする
76 :
NAME IS NULL :2009/10/04(日) 00:42:33 ID:A+/cGns5
ORACLEじゃなきゃダメだという用途なんてないんだから、 ソフトならSQL Server ハードならDB2に集約されるかな。 ORACLEは製品として時代遅れすぎる。 ぶっちゃけORACLE=COBOL用でしか使ってるところしかしらにない。
SQL ServerはWindowsオンリーなのがなぁ・・・ マルチプラットフォーム対応にしない限り、Oracleの需要は途絶えない
>>75 Gold取ったばかりのときはそう考えた時代もあったな・・・
懐かしい。
dblink で他のデータベースのデータを参照する場合は
Platinum 試験に出るから練習しておくといいよ。
>>73 マテビューのリフレッシュをしていなかったら、返ってくるデータが
変わってしまわないか?
>>74 それはない。オレら以外には誰も繋いでいなかった。
やっぱり誰も分からんか。。。もう少し情報を集めて、Oracle行きかな。。。
グローバル仕様です
前後でコスト、実行計画が変わっていたのか変わっていなかったのか?
それだけでも
>>73 のようなOracle内部の原因か
>>74 のような外部の原因か
くらいは切り分けできると思うが、前の状態でどれだけ情報を取ってる?
遅かったときの状況を再現できるか、あるいは推測できるだけの情報が
なければサポートもお手上げだと思うけどね。
>>80 > やっぱり誰も分からんか。。。もう少し情報を集めて、Oracle行きかな。。。
適当な情報しか出さなくて誰も分からんとは失礼すぎるだろうが。
さっさと消えてくれ。
なに顔真っ赤にしちゃってんの?
>>84 誰が?
情けない顔が透けて見えるぞ。ゆとり世代は頭が悪くていかんな。
大体、2ちゃんで質問してる時点で、負け
必死すぎる。
パフォーマンスの問題はサポートに問い合わせてもまともな答えが返ってくることは稀だぞ
>>80 パフォーマンス系の問題なんだから、普通は実行計画とかまず見ると思うんだが?
>>83 が言っている様に情報少なすぎ。
>>76 selectなのに表レベルでlock取らなければならないDB2が製品として時代遅れでないと?
>>76 のことはそっとしといてやれよ
かわいそうな境遇で育ったんだよ
selectで表レベルでlockとかマジなのか
>>88 そうなんだよなぁ。。。
>>89 「実行コストが小さい」ことまでは確認していたんだが、まさかこんな事態に
なるとは思わなかったので、実行プランを保存しておかなかったんだよね。
しかも、遅い状態はもう再現できないし。
94 :
NAME IS NULL :2009/10/05(月) 00:09:33 ID:0BZTbTib
Oracleが立派なのは、もはや値段だけ 以前ほど、特別に優れてもいないよ。
まあオラクルになくて他のデータベースにある機能なんてそうそう無いから オラクルが使いこなせれば他のデータベースもすぐ使いこなせるようになるよ。
シーケンスを作らなくても自動インクリメントしてくれるMySQL
OracleのSE RACってどうかな? EE RACでやっているんだけど、性能的にサーバ2台で問題無さそうだし、 値段がEEとSEで段違いなんでSEに落とそうと思うんだけど、 ダウングレードした人とかいます?
大規模システムでOracle以外を使ってる方が珍しい。
大規模システムの定義が良く分からないけどオープン系でガンガン更新トランザクションが 走るようなシステムはOracleじゃないとまともに動かないのは事実だな DB2やSQL SERVERじゃ、よぼどアプリケーション、テーブル設計をちゃんとやらないと 排他問題で同時実行性がおちて使い物にならなくなる
そういや、複数の更新トランザクションが走っているときに一方がロック待ちにならないから OracleのReadCommitedはDB2のURと同じだとか阿呆なこと主張する奴がいたなぁ。
104 :
NAME IS NULL :2009/10/07(水) 00:46:44 ID:RgFJ5Zvx
SQLServer2005からはREAD COMMITTED SNAPSHOTで、 ORACLEと同じ読み取り一貫性になるんだが・・・ DB2は知らん
105 :
NAME IS NULL :2009/10/07(水) 00:56:03 ID:rI0NJuhp
そもそもOSがWindowsってところでアウト なのでSQLServerはないな
でもSQL Serverのそれって性能がた落ちするんでしょ?
107 :
NAME IS NULL :2009/10/07(水) 01:12:53 ID:t9FR2Kza
WindowsでOracleを選択というのも多いようにも思える。 SQLServerもさすがにEnterprise Editionとかになると高価なんだよな。 個人的にはDBの性能ってHDDの性能な感じがするけど。 その場合はSunとかの高速HDD装置とかになってOracleになるのかね。
アホは喋らない方が良い
すいません、教えてください。
・Oracle10gR2
・CREATE TABLE test (col_a varchar2(10);)
・PL/SQL記述の動的SQLで文字列の検索を正常に行いたい
・考えてみたSQL
declare
w_sql varchar2(1000);
w_wrk varchar2(10);
begin
w_wrk := 'aaa';
w_sql := 'update test set col_a = ''更新'' where col_a = :wrk';
execute immediate w_sql using w_wrk
end;
通常のSQLでSQLを書くと「update test set col_a = ''更新'' where col_a = 'aaa'」
質問内容:
col_aは文字列なので通常であれば右辺を'aaa'とするべきですが、
動的SQLでは上記のように書くことになる、もし'をつけたくて
w_sql := 'update test set col_a = ''更新'' where col_a = '':wrk''';
と書くと、バインドされなくなっている気がする。
ここはどう書くべきです?
ここを読んでみたけどよくわからない・・・。
ttp://www.shift-the-oracle.com/plsql/native-dynamic-sql.html
バインド変数が文字列だろうとシングルクオテーションで囲う必要はないよ。 文字列内に含まれるシングルクオテーションをエスケープする必要もない。
>>111 レスありがとうございます。
そういうもんなんですね・・・。
同じようなので例えば、TO_CHAR('2009/01/01','yyyy/mm/dd')
の日付の部分をバインドしたい場合あどうあるべきなのでしょうか。
シングルクオテーションつけるとバインドが展開されないし、
シングルクオテーションつけないとTO_CHAR構文エラー
になったように思われます。勘違いかな?
プログラミング初心者か? 何からエスケープさせるのかを意識すればわかるようになるよ。
もう人生からエスケープしたい
TO_CHAR(:wrk,'yyyy/mm/dd') でいけるんじゃね?
>>112 そもそも、to_char()の第1引数はDATEかNUMBERだろ。
>>116 みなさんレスありがとうございます。
というか質問を書くところで書き間違えた・・・。
TO_CHARじゃなくてTO_TIMESTAMPだた。TO_CHARの第一引数が文字列なんてありえねですな。
TO_TIMESTAMPの場合の第一引数のバインドでのシングルクオテーションなのですが、
この場合どうなるのでしょうか。
個別の関数が、クォートの展開をするわけではない。 変数で渡されるときも、変数の中身がそのまま渡されるから、エスケープする必要がないってこと。
>>118 レスありがとうです。
変数=プレース
という事ですね。たしかに!理解できました。
もしかして、OTNの掲示板より、2ちゃんの方が回答が早い?
回答は早いかもしれないが2chで書いてあることを真に受けてたら そのうち痛い目にあうことは間違いない
122 :
NAME IS NULL :2009/10/11(日) 18:42:48 ID:ik/XDQBh
>>120 >>121 回答をもらったら、合っているかどうかの確認は必要ですね。
サポートへ問い合わせても常に100%正しい答えが返ってくるかというと
必ずしもそういうわけではないので。
質問 バージョンの異なるインスタンスを混在させて同時に起動しても問題ないの? 今、9iと10gを同時に動かしてるんだけどね。もちろんリスナーのポート番号は変えたけど
>>123 問題ないように動かせば問題ないけど、何が問題なの?
125 :
NAME IS NULL :2009/10/12(月) 00:17:10 ID:rHiFo6kC
OracleはどうしてSQLDeveloperを製品版に入れて配らないんだろうか
オラクルクライアント11gではSQL Developerを一緒にインストールしてくれるみたいだ。
127 :
NAME IS NULL :2009/10/12(月) 01:11:15 ID:rHiFo6kC
SQLServerのフロントエンドよりは動作的にいまいちだが、 SQL*Plusとつくりがいまいちなクライアントツールよかはマシなんだよな。 SI Object Browserの存在意義がなくなってしまたのか。。
STATSPACKのレポートのことで質問します レポートの最初の方に出てるくるELAPSED TIMEよりも 個々のSQLのELAPSED TIMEが大きい時があります。 これをわかりやすく説明してくれる方いますか?
最初の方がminsで、 個々のSQLの方がsecondsとか?
>>129 それはわかっています。
ただ、TOP待機イベントを見ると、ELAPSED TIMEを超える行ロック待ちが。。。
ELAPSED TIMEってリソースを使った時間じゃね?
132 :
NAME IS NULL :2009/10/15(木) 00:51:11 ID:zuOJNKXw
OracleってSQL*Plusでの実行とSQLDeveloperとかの実行って微妙に動作違う? SQLDeveloperで問題ないだけど、SQL*Plusとかではダメなときがあるんだが。。
まんまその通りの事例ではないけど、 CUI版のsqlplus.exeでは実行できるhoge.sqlを GUI版のsqlplusw.exeから@hoge.sqlで呼び出して実行したら ORA-エラーが出たなんてことは、経験ある。 どうせ、sqlplus.exeを使ってください、って回答になるから 意味ねえと思ってサポートには問い合わせなかった。
>>132 SQLDeveloper使ってる人って割合的に少ないと思うからここで曖昧な質問しても答えてくれる確率は低いと思うよ。
具体例出せば答えられるかも。
OTN見るとSQLDeveloperに色々とバグはあったみたいだね。
OTNの掲示板ダメダメだな。 レベルの低いお節介焼きが的外れな回答するだけ。 2ちゃんよりも有害だよ。
>>135 おまえ、ちゃんとOTN掲示板を利用してるの?
けっこう役立つ回答多いじゃん。
このスレは、俗っぽいみんなの本音が聞けるのが楽しい。
俺にとっては、どっちも大切な掲示板。
障害の原因についてOTNの情報をソースとして提示したら「ブログと変わらん」って客先に却下された
客にushitaki情報とでも言っておけ
サポート契約してないならOTNを始めとするネットで情報収集するしかない。 サポートがネットより優秀かどうかは知らないけど。
会社でoracle8i使ってます。 家でクライアントアプリ作りたいですが2台のマシンに サーバーとクライアント入れてクライアントマシンでデバッグしながら 開発するしかないですかね? oracleはかなりレジストリ汚すので なるべくインストールしたくないです。 開発に必要な最小限の構成ありましたら教えてください。 よろしくお願いいたします。
っvm
Oracleデータベースのバックアップって どうやってとってますか?
cp -all
144 :
NAME IS NULL :2009/10/20(火) 23:51:49 ID:N4dazINZ
>>142 dd if=/dev/rdsk/c1t11d0s0 of=backup.bkf bs=1048576
オンラインバックアップでOSのコピーコマンド使ってバックアップしてる。 あんま重要じゃないサーバはDataPumpで論理バックアップのみ。
>>147 そりゃもちろん確認してるよ。
オンラインバックアップならアーカイブログ+オンラインバックアップで
完全復旧できるけど、論理バックアップから戻す場合、
スキーマとか権限周りが若干面倒だし、アーカイブログも使えないから、
日次でバックアップとれば良いような更新頻度の低いシステムに使ってる。
RMAN使ってる奴っているの?
>>148 すばらしい。
俺はRMANを勧めてるんだけど、
ちゃんとやってるんだったらそういう方法でも問題ないと思う。
ダメな業者に頼むと適当にバックアップを設計して後で戻せないというのがよくある。
去年、某有名企業の基幹システムのDB構築に関わったんだけどさ 24H稼働なのに、非アーカイブログモードで、バックアップはExportだけ。 俺はDBリーダーに「場合によっては、データを戻せませんよ。」 「アーカイブログモードでRMANでオンラインバックアップ取りましょう」 と言ったんだけど、俺みたいな下っ端派遣労働者の言うことは即却下。 「高性能なディスク装置を使ってるだから心配なし!」だってさ。
>>151 ひどい話だ。性能と耐障害性は無関係なのにな。
俺の経験では、4億もするDS8100が壊れたということもあった。
ストレージは全く信用していない。
システム障害対策としてのテープバックアップってのはだんだん廃れてきている ような気がする。で、災害時のBCP対策としてなら、イメージバックアップより exportの方が取り回しやすいだろうし。
154 :
NAME IS NULL :2009/10/21(水) 22:46:43 ID:Ebu8dcg2
うちのSE、ばかなんですが、どうすればいいですか。 普通テーブル2は、Aで作るのが、プロですが、そいつは@で作ります。 コボラーうざすぎ、まじ、死んでほしい。 こういう奴、どうすればいいですか。 テーブル1 ID 内容 使用カラム 1 電話番号 4 2 氏名 5 3 年齢 3 4 郵便番号 2 5 住所 1 テーブル2 @ ID カラム1 カラム2 カラム3 カラム4 カラム5 1 東京都杉並 999-9999 20才 03-9999-9999 鈴木 2 横浜市青葉区 888-8888 30才 03-8888-8888 高橋 A ID 連番 カラム 1 1 東京都杉並 1 2 999-9999 1 3 20才 1 4 03-9999-9999 1 5 鈴木 2 1 横浜市青葉区 2 2 888-8888 2 3 30才 2 4 03-8888-8888 2 5 高橋
155 :
NAME IS NULL :2009/10/21(水) 22:48:16 ID:ZMSB+uaT
発想がExcelなんじゃねーの?
Oracleのサポートに連絡いれたらどこの企業か聞かれたんだけど 顧客の知名度によって対応変える気かこいつら
157 :
NAME IS NULL :2009/10/21(水) 22:53:19 ID:FwBnigAg
フリーなLinuxにOracleインストールしたいんだけど、普通は何を使えばいいでしょうか? 候補は、CentOSか、OpenSuSE,Ubuntuです。
158 :
NAME IS NULL :2009/10/21(水) 22:57:00 ID:6akxOwMs
他すれで聞いた回答貼っとく 俺は明日CentOSに11gやる予定 そしてそっちに書き込んじまった 恥ずかしい 148 名前:NAME IS NULL[sage] 投稿日:2009/10/20(火) 00:35:27 ID:??? ubuntuにはOracleXEしか入らないはずだよ。 メモリ512MBあればギリギリ動くはず。 154 名前:NAME IS NULL[sage] 投稿日:2009/10/21(水) 22:21:57 ID:??? CentOSなら乗りそうというか、乗るよ > Oracle 実際動いてるし まぁ、実質は無料版Redhatだから、当たり前だけど
>>150 RMANで制御ファイルとSPFILEだけバックアップってありですか?
データ壊れたときは別でとっておいたExportで復旧するの
160 :
NAME IS NULL :2009/10/21(水) 23:05:13 ID:FwBnigAg
>>158 ありがとうです。CentOSダウンロードします。
161 :
NAME IS NULL :2009/10/21(水) 23:10:06 ID:6akxOwMs
>>154 テーブル1はなんのために存在すんの?
てか、真のコボラだったら絶対@だな。カラムが200くらいあったりして。
>>154 ユーザに見せるビューとして@が必要なのかもしれないな
自分らは縦持ち・横持ちって言い方をよくするけど
Aだとユーザに「こんなの入力しにくい!」とか言われるのはよくある話
Aのテーブルから@のビューを作るのが普通だと。 ユーザとDBAの観点は違うからなぁ。
基本的にはマスタからデータを取得してセットするが、時折例外が出る、とかな。 商品マスタ→受注TR、って構造のときに、 時々商品マスタに乗ってない注文が入るんで、商品マスタの項目も全部持ってくれ、 とか言うのは見たことある。
8.1.5から10g_Expressへの移行考えてる。 8.1.7からの移行はできるみたいだけど、8.1.5は無理なのかな。 サポート契約結んでいれば、8.1.7に無償アップデートできたみたいだが、 契約はしていなかったようだ。 なんだか難しいね。面倒すぎ。
>>154 Aのテーブル定義は@のテーブル定義に比べて何か優れてる点あるの?
他の用途ならともかく個人情報のテーブルなら@で十分対応可能だと思うけど。
>>150 同じく基本はRMAN派。
Duplicateコマンドで自由にクローニング環境も出来るしね。
>>159 制御ファイルとSPFILEだけだったらRMAN使うよりもダンプしておけば?
>>167 8i => 10gのウプグレードは8iのターミナルリリース(8.1.7.4)からしかサポートしていない。
Export/Importしか道が残っていないな。
>>160 CentOSは11g R1のRACまで組んで動作確認した。
>>168 しかもAだと生年月日を文字列で持つハメになったり
RMANを直接は使うことはあまりないかな。 NetBackupなどのバックアップツールと連携させるためにRMAN入れるとか。<オンラインバックアップのとき。
テーブル1があるという事は、 カラム追加、変更が頻繁そうだよね。 Aは、運用中にALTER TABLE したくないから、推してる人がいるんじゃないの? レコード数が数千万件を超えると、 たかがALTER TABLEもなかなか、 思い通りにならない気がする。 まあかえってAの方がレコード件数増えるけどね。 そんかわりALTER TABLEは無さそう。
ALTER TABLE を防いでも INDEX は張りにくいことこの上ないと思う。 Aは素人だな。テーブル1 も何のためにあるのかさっぱりわからない。 年齢を「才」付きで格納していることからも釣りだろうと断定したけどね。
176 :
NAME IS NULL :2009/10/22(木) 21:57:39 ID:YJ7QeN2I
ときどき思うんだが、正規化ができないのっては、 業務内容がわかってない証拠なんだと思う。 テーブルでも無駄にあちこちのキー項目が多かったりする設計をする人のってどうしてなんだろうか。 その時の情報を残したいとかなら別だが一意のキーを乱立して、 ほぼ同じ意味のテーブル作りまくるのっておかしいよなぁ。なんでだろう。
今までSQL Serverしか使ったこと無かったのですが、最近、Oracleを使い始めました。 テーブルの参照権限のみ保有したユーザーを作りたい場合、どのような設定をすれば良いのでしょう? また、ユーザーがテーブルに対して更新(書き込み)権限を持っているかどうかを簡単に調べるSQL文は あるのでしょうか? SQL Serverなら直感的にできることなのですが、いま一つ良く分かりません。
>>169 RMANってリポジトリの制御ファイルとかリカバリカタログが壊れたら
二度と復旧できない?
ExportとRMANのどっちが安全?
>>173 普通はそうだろうな。
RMAN単体でバックアップピースの吐き先をディスクにしているのってあんまり聞かない。
>>178 RMANを使っていると、ターゲットDBのコントロールファイル内にカタログ情報との同期情報を
持つから、例えリポジトリDB内のカタログがぶっ壊れてもresync catalogで復旧出来る。
試しにコントロールファイルをダンプして、見てみるといい。
Exportはそれを取った時点のデータしか復旧出来ないが、RMANはpoint-in-timeリカバリにも
完全媒体回復にも両方対応している。
運用形態にもよるけど、選択肢は多いのは良い事だ。
あとRMAN使うメリットとしてはBMR(ブロックレベルメディアリカバリ)かな。 EMCのファームウェアのバグのせいで、プロダクションのシステム表領域内のブロックが ぶっ壊れた事あったけど、RMANのBMRでサクッと直った。 滅多に起きる事ではないけど、該当ブロックだけをバックアップから戻すだけだから、 リカバリ時間も大幅に短縮出来た。 それと11gのRMANのデータリカバリアドバイザーは結構便利。 該当障害のリカバリ用スクリプトまで自動作成してくれる。
RMANなんか使うのか? 俺の経験だけど、ここ数年はストレージのシャドーコピーとOracleのオンラインバックアップを 利用してストレージ全体をバックアップしちまうのしかないけど、ちまちまRMAN使ったりすることが あるのか?
RMANとストレージのスナップショットミラーの組み合わせとかも出来るよ。
RMANつかうとリカバリがほんのちょっとだけ簡単になるくらいかな。 結局は、ストレージやらバックアップソフトに頼ることになるから、RMAN一発ではいかないところがあるわけで。 バックアップソフトのOracleオプションは、RMANと連携させるものが多いから、その辺の考慮がなされてはいるけど、 価格に対しての効果があるのか?という疑問もある。
RMANを「ちまちま」使うというのがよくわからんな。簡単なのに。
最初はコマンドが独特でとっつきにくい所があるけど、慣れたら楽だよな。
8.1.5から、Expressに移行試験中。imp/expで移している。 AL32UTF8しかだめで、元データはSJISだけど、結構うまく書き出せてるね。 文字化けは見られない。バイト数の絡みで、溢れたデータは切るしかないけど。 AL32UTF8でexpするいい方法ってあったの? 書き出す直前にWindowsの環境変数を変えてみたが、 ファイルはSJISのままだった。 今度はWInのクライアント側の問題だなあ。 データ読み出したとき、書き込む時文字化けしなければ良いが。 クライアントPCが128しかメモリ積んでないから、 instant cliant+oo4o9.0.1を試してみるか。 さてどうなることやら。oo4oのライセンスどうなんだろ?
>>188 サンクス。LIINUXならexport LANGで行くらしいけど
Winはそういうコマンドが無い(?)みたいだから。
今はテストだからWinだけど、実運用はLinuxにしようかと思ってます。
Windowsで環境設定 set NLS_LANG=JAPANESE_JAPAN.AL32UTF8
191 :
NAME IS NULL :2009/10/23(金) 19:42:34 ID:SBGcMn+b
CentOSでOracleが流行なのか
Oracle EnterpriseLinuxじゃダメ? あれってサポート無しなら無償利用可能でしょ? oracle-validate-packageって言うOracle入れるのに必要な各種パッケージを 自動で入れてくれるパッケージがあって便利だった。
193 :
NAME IS NULL :2009/10/23(金) 22:26:09 ID:0/DD6cX4
思うにOracle主導が気に入らないのだと思う。 そのラインでいくと、今後のSolarisのOracleは流行らない可能性が高い
>>190 やったけど、expした時にoracleエラーで弾かれる。
AL32をカットして、Japanese.utf8なら弾かれないけど、
今日調べてみたら、まともに見れない表が多々あるね。SJISのまんまだ。
クライアントのwin98にInstant clientが対応してないとわかってきついな。
Dllのエラーでまくりなので、ひたすらDll入れるつもりだけどむりかも。
XEのclientは256のメモリ要求だし。10.2に下げてみたが上手くいかず。
oo4oを使ってなければ、MySQLにでも乗り換えるんだが……。
同じ理由でLinuxも無理だった。
クライアントのwin98に8iclientとInstant Cliant入れてる(10.2.0.4) サーバーは8iと10gXEの二つ。 autoexe.batでinstant cliantにpath通し、同じフォルダに入れた tnsname.oraに10gXEのIPとサービス名(XE)だけ入れるも、 Vb+oo4oのソフトは何故か8i読みに行って困っています。 何でだかわかる人いますか。lisner.oraは無く、tnsnames.ora、sqlnet.oraは instant clientのフォルダに入れてます。 8iのフォルダにもtnsnames.ora、sqlnet.oraはあります。sqlnet.oraは同じ tnsnames.oraは8iのサーバーIPとサービス名。 tnspingはエラーなしですが、SQLNET.ORAを読んでる形跡なし。 SQLplusはwin98のせいでdllが無いですエラー多発で検証できてません。 何をどうすれば良いのかわかる人いたら教えてください。
win98だからダメとか、クライアントを2つ入れてるからダメとか、InstantClientはoo4oに対応してないとか、 そんな理由じゃない。
>>195 レジストリHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
の設定の大半が、8iの設定であるために、8i優先になっているのでは。
まずは、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
がマッサラなPCを用意して、Instant Clientを入れて試してみる
のが手っ取り早いかも。
>>196 win98が邪魔している可能性が高いかな。保障外だけど
OTNで動かしている人がいるんだよね……。
instantclientと8iclientの共存はOTNで
やっている人がいる。10gが入っているXPではパス切り替えで
両方接続して問題なし(ただ、10gへの接続がlocalhostだけど)
oo4oはプログラム時に自動呼出ししていると
oo4oのバージョン違いに対応できない模様で再コンパイル必要。
このため、oo4oのバージョン上げたwin98マシンではエラーになった。
が、何故かXP機でエラーが出ないんだよね。
ただ、読めないテーブルがある。文字コードかoo4oどちらかが原因。
>>197 自分のノートにinstantclientだけ入れて、接続の可否を試してみます。
clientが8.1.7なら、両方接続できるのに、8.1.5は10gが無理みたい。
instantはver10なら両方読めるみたいなので、tnsnamese.ora切り替えて
接続してみます。
色々レスサンクスです。他にも意見あれば教えてください。
199 :
NAME IS NULL :2009/10/24(土) 23:27:20 ID:Xd1QwCkQ
まだ98つかてるところあるのか
ttp://www.orchid.halfmoon.jp/wiki/ora10gxe_04.html ここを参考に(というかまったく同じで)XEのSJIS版作ろうとしてみた。
ただし、UTF8→AL16UTF8に変更。データベースの作成までは問題なし。
「必要なスクリプトを実行」のため
connect sys/manager as sydba でログインしてから
catalog.sqlを実行も
ORA-04031共有メモリの**バイトを割り当てできません
("shared pool"."commnet on colum USER_AUDIT..."aga heap(1.0)",
kglsim object batch")
と出て弾かれる。**はまちまちだね。3936とか。
何が問題なんだろう?メモリの割り当て関係のようだけど。
201 :
200 :2009/10/25(日) 13:11:46 ID:???
iniサービス名.oraのファイルに large_pool_size=4194304 shared_pool_size=62914560 streams_pool_size=0 と他のサイト見て追加したら通った。 というわけで続けてみる。
202 :
200 :2009/10/25(日) 16:23:18 ID:???
データ構築できたので、apex入れようとしてるけど、上手くいかないなあ。 何度も繰り返しているせいか ora 09655 すでに使用されているオブジェクト名です ora 00942 表またはビューが存在しません とかいろいろ出るね。 質問1 ログとりたいんだけど、poolだと、最初の数行しか出てこなくて、内容を把握できない。 いい方法ないかな? 質問2 後は何度もverを変えて試行している関係で、エラーの内容次々に変わってる。 一度きれいにしたいんだけど、方法無いかな?試したのは3.1.2、3.2、3.2.1の3バージョン。 よろしくお願いします。
203 :
200 :2009/10/25(日) 17:46:03 ID:???
apexインストール時のエラーはこの二つだけ。 まっさらな状態で始めたんだけど。 行1でエラーが発生しました。: ORA-00942: 表またはビューが存在しません。 行1でエラーが発生しました。: ORA-00942: 表またはビューが存在しません。 ログは自動で取得だった。消すのはapxremov.sqlだね。 対策ありましたら教えてください。
行1でエラーが発生しました。: ORA-00955: すでに使用されているオブジェクト名です。 もう一個はこれ。失礼しました。
205 :
200 :2009/10/26(月) 00:54:28 ID:???
catblock.sqlを実行でOK。 Thank you for installing Oracle Application Express わーい。 さらに続ける。
207 :
NAME IS NULL :2009/10/26(月) 21:20:24 ID:DWwkRJpi
OracleでSQLのみでHTMLデコード処理したいんですが、よい方法ありませんか? Javaとかでストアド作ったほうがよいのかしら。。
>>207 SQL*PLUSでMARKUP HTML ONとかって事か?
210 :
NAME IS NULL :2009/10/27(火) 01:47:37 ID:dnxl11zG
MARKUP HTML ONってわからないですが、 CSVファイルでもらってる情報が<BR>とか&とか入ってるもので、 DB的にはそれが<BR>=改行,&=&になればいいとおもってるだけなんです。 やっぱ言語系かましたほうがよいのかも
>>210 たったそれだけならDECODEでいいじゃん。
UPDATE TABLE SET TEXT=REPLACE(REPLACE(TEXT,'<BR>',CHR(10)),'&','&') WHERE TEXT LIKE '%<BR>%' OR TEXT LIKE '%&%' はダメですかそうですかすみません
ACFS試した人いる? OCRや投票ディスクもおけるみたいなんだけど。 という事はRACをインストールする場合には、先にasmcaでACFS作って、その後に CRSのインストールになるんかいな? 良く分からん。 取りあえずVMWare使って11g R2 RAC組んでみるか・・・。
オラクルというよりDB設計についてなんですが、適当なスレが見つからなかったのでここで質問させて下さい。
組織名簿のようなもので、ID 名前 属性A 属性B 電話 メール 備考 等々の情報を保存したいです。
このフィールドのうち半分位は複数入力があるので外部テーブルへ出したのですが、
メールテーブル、電話テーブル などが大量にできてカオスな上にSELECTでもJOINの嵐です。そこで、
ID Profile Field Data
1 1 電話 xxx-xxx-xxx
2 1 メール
[email protected] 3 2 電話 yyy-yyy-yyyy
4 2 電話 yyy-yyy-yyyy
のようなテーブルを作りました。これでテーブルは減りましたが、
どんなに小さな値しかない項目もテキスト型になるのが気になります。
そもそもこういった設計はアリなんでしょうか?
また、繰り返し値が多数ある場合(繰り返し数は不定)の、一般的なやり方というのはあるのでしょうか?
215 :
214 :2009/10/28(水) 13:00:47 ID:g69HuQDu
あ、3,4の電話は実際は違う値です。
でっけぇ釣り針だな、おい
>>214 1つのSQLで全部取得しようとせずまず本体テーブルを検索してから、
電話番号テーブルやメールアドレステーブルを順次検索すればいいのでは?
218 :
214 :2009/10/28(水) 14:26:15 ID:???
>>217 レスありがとうございます。
なるほど。細かいテーブルが10, 20と増えて行くのが何となく気持ち悪いと思ったのですが、とりあえずそういうものだと割り切ることにします。
219 :
NAME IS NULL :2009/10/28(水) 23:03:00 ID:X/2djzan
apxconf.sqlじゃなくてapxldimg.sqlだった
SJSI化+APEX3.2.1ね。連投失礼しました。
Oracleデータベースを Oracle VMやVMware上で動かすときは データは仮想ディスク上に置くのではなく RAWディスクやネットワークストレージ上に置くんですか?
>>222 仮想ディスク上に置くことが多いんじゃない?
まあ、直接ディスク触っているパターンもあるとは思うけと゛。
224 :
222 :2009/10/31(土) 23:25:39 ID:???
>>223 そうですか
仮想ディスク上に置くとすると
その仮想ディスクファイルを書き込むときの
ディスクキャッシュとかどうなるのかと気になりまして。
キャッシュOFFにする設定とかした上で使うんですかね。
それとも仮想ディスクファイル自身はキャッシュされない?
>>224 VMWareレベルで当然キャッシュをオフにする事も出来る。
特にVMWare RACを組む場合にはそうしないといけない。
基本的にO/SとのダブルバッファはOracleは推奨していないから
オフに出来るのならチューニングも楽だし、それに越した事はない。
ただ仮想ディスクが乗っている物理ディスクはおそらくファイル
システム上に配置される事だろうから、こっちの方はO/Sレベルで
オフに出来ないんだったらどうにもならないと思うけど。
226 :
222 :2009/11/04(水) 00:36:19 ID:???
>>225 仮想ディスクはSANやNAS上に置くのが推奨されてるみたいだから
OracleやVMwareが動作確認しているものならばきっとオフが
できる機器なんでしょうね。
質問です。 '12781278'とある文字列のうち、7と8はそのまま、それ以外は半角スペースにしようした場合、 単一行関数で解決できますか? Oracleは11gです。
228 :
NAME IS NULL :2009/11/10(火) 20:54:28 ID:mOY2vEuL
SQLDevelop2.1リリースされてるね 若干軽くなった感じがする
>>227 select translate('12781278','0123456789','_______78_') from dual ;
こうだったかな?iPhoneからなので確認してないです。
アンダーバーはスペースにして下さい。
>>227 こーいうのとか?
SQL> select c1, regexp_replace(c1,'[01234569]',' ') "c1rep" from t1;
C1 c1rep
-------------------- --------------------
1234567890 78
87218721 87 87
12781278 78 78
231 :
227 :2009/11/10(火) 22:31:09 ID:???
上の二方回答ありがとうございます。 この書き込みに追加されるのを見る前に自己解決しました。 REGEXP_REPLACEを使いました。答えてくれてありがとうございます。
質問です。 あるユーザーにストアドの実行権限があるかどうかを調べたいのですか どうすればいいのでしょうか? ツールはObject Browserを使用しています。
>>232 DBA_TAB_PRIVS,ROLE_TAB_PRIVS
DBA_SYS_PRIVS,ROLE_SYS_PRIVS
あたりを見ればいいんじゃね?
234 :
NAME IS NULL :2009/11/11(水) 20:08:00 ID:XB9YQk85
2バイト文字のデータが入っているDB(Oracle)を別のDB(PostgreSQL)に移さないと いけなくなりました。どういう方法があるでしょうか? 一旦ファイルにダンプして、ファイル経由でやろうと思っているのですが、その場合、 ファイルは2バイト文字があるためバイナリファイルにしないとだめでしょうか? どうかよろしくお願いします。
>>234 CSVにでもなんにでもフラットファイルに吐きだしてそれを移すしかないんじゃね?
「2バイト文字がバイナリ」というのがよくわからん
2バイト文字が倍ナリ(コロスケ的な意味で)
オプティマイザの指定について質問があります。 RBOをサポートしなくなったはずのOracle10.2g上で、 /*+ RULE*/というヒント付きのクエリを実行すると、 なぜか実行計画がルールベースになってしまいます。 (初期化パラメータのOPTIMIZE_MODEはALL_ROWSです) クエリのソースを変えずに、コストベースで 実行させることはできないのでしょうか? (できればプラン・スタビリティ等も使わずに…)
ヒント句の指定が一番優先されるからヒント句をいじるしか方法はない気がする。
11gR2のWindowsっていつ頃になるんだろう
2099年中とあったはずだ
>>241 >> 2099年中
ずいぶんと気の長い話だな、おい。
>>232 OBなら、黄色の人型のボタン(ユーザ情報)を開いて、
見たいユーザを開いて、真ん中のシステム権限欄の中の
EXECUTE ANY PROCEDUREとかの左のチェックボックスがONかどうか。
あとは、ロール単位で権限が割り当てられている場合もあるので、
見たいユーザを開いた時に、左のロール欄の中に
どのロール(権限のグループ一括設定みたいな意味)がついているか確認。
チェックがついているロールをダブルクリックするとそのロールにどのような
権限がついているか見れるので、先ほどと同じシステム権限欄を見る。
あとは、オブジェクト単位(プログラム単位)に権限が割り当てられている場合もあるので、
見たいユーザを開いた時に、右のオブジェクト権限欄の中に
個別に「EXECUTE 〜 プログラム名」とかが入っていないか確認。
以上ですべて。どうよわかった?
質問です。 cseで作ったテーブルに、文字コードがUnicodeのcsvファイルのデータをいれようとしているんですが、エラーが起きていれられません。 文字コードをSJISにするとちゃんと値が入るんですが…どうしたらテーブルにUnicodeのcsvデータをいれられるのでしょうか? よろしくお願いします。
Unicodeの最新はUnicode 5.2 ORACLEのバージョンによって、 どこまで対応しているか違う。 ORACLEのバージョンは必須情報。 Unicodeは、幾つかの種類があって、 多用されるものとしても UTF-8とUTF-16がある。 その情報も必要。 ま、たいていは、環境変数NLS_LANGを AMERICAN_AMERICA.AL32UTF8に 設定したらイケる。 SQL*Plusとかのメッセージが 英語表記になるけどね。そういうもんだから。
246 :
NAME IS NULL :2009/11/15(日) 22:34:39 ID:u/XdpS1b
10年前に開発したVB6のシステムでOracle8iを使っています。 DBサーバの保守が切れるということで クライアント→DBサーバ というのを クライアント→クライアントにインストールしたDB という風にして、1台のスタンドアロン環境で動作するようにしたいです。 この場合、クライアントにインストールするOracle8のライセンスが必要でしょうか? また、Oracle8はまだどこかで買えるでしょうか?
>>246 保守切れのサーバにインストールしていたサーバライセンスを流用してクライアントにインストールすればライセンスいけんじゃね。
つか10年前のクライアントでDBサーバなんてうごくんか?
サーバにインストールしたときのCDはどうしたね。買うなんて不可能に近いと思うが。秋葉原の怪しげな店でもひた探すか?
>>246 8なら自宅に転がっているかもなぁ。
でも引越しの時に二度と使わないと思って捨てちまった可能性も高いかも・・・。
今日オラクルに問い合わせたら、11gR2は来年の中頃にはリリースって聞いた その時聞き忘れたんだけど、現在、クライアントに関してWindows7上の動作保証が あるバージョンって存在するのかな?
>>249 来年の中頃!? Windows版のことかな。
なんじゃそりゃ…、Oracleのソースコードってどうなってんだ
OSごとに別会社に委託
>>250 ごめん
遅くとも来年の中頃ってこと
ちなみにWindows版の事ね
2ヶ月前にはHPとかでお知らせがあるらしい
つまりリリースは早くとも年明けって事
>>252 HPからリリースされるということ?
アライアンスとしてしか売られないとか?
>>254 オラクルのオラクルのWebサイト等ってことです
ちなみに11gR2より前のバージョンはWindows7上の
動作保証は無いし、今後対応する予定も無いとのこと
ネタだったのか…orz
>>239 サンクスです。
やはりヒント自体を削除するしかないみたいですね…。
ところで、全く別件で
Oracle10gのDataPumpExportについて質問があります。
パラメータファイル内の記述をミスして、
PUMPEXPORTのジョブが停止状態になっていたのを見逃したまま
うっかりdmpファイルを削除してしまいました。
そのためジョブにattachできず、KILL_JOBもできなくなってしまいました。
データそのものには影響ないと思うのですが、
こういう場合、宙ぶらりんになったジョブを削除する方法はないのでしょうか?
>>257 DPが内部的にテーブルを作成しているから
それをドロップ
>>257 もしくは別ジョブを開始してそれがクリーン終了したら内部的に作成されたテーブルも消える。
Oracel Exadata使ってる人いますか? 顧客から現行のDWHシステムをOracel Exadataに置き換えたいと言われてるんだけど 情報が少なくて費用対効果がでるか不安なんです 事例も少ないし オラクルの営業に聞いても良いことしか言わないし返って信用出来ないですよ
>>260 Exadata 11gR2はかなり使える機能が増えたと聞いた。
そろそろ使ってもいいんじゃまいか?
262 :
NAME IS NULL :2009/11/20(金) 00:57:24 ID:JpSM8BuE
Oracleってサブクエリー遅いよな。
童貞の分際で。
264 :
NAME IS NULL :2009/11/20(金) 01:24:59 ID:JpSM8BuE
は?
消えろage厨
Exadataに関して言えば、 期待した性能が出ない可能性より、 客の予算が十分か、の方が心配だ。 2億円を超えると思う・・・
267 :
260 :2009/11/20(金) 06:22:39 ID:???
>>261 ,266
レスども
オラクルの営業もR2は前バージョンとは別物って言ってるけど
結局はRACなので他の専用アプライアンスに比べると性能悪いような気がするんですよね
客の予算は充分ではないけどギリギリ買えそうなレベルです
その分、俺らの設計・構築費用が削られそうだけど
11gR2てRACが前提なの?
ITproの2009/09/16の記事から抜粋。 Sun Oracle Database Machine ・データベース・サーバーにXeonプロセッサを最大で8CPU、64コア、メモリーを最大で400Gバイト搭載 ・ストレージ・サーバーは、最大5テラバイトのフラッシュメモリーと最大336テラバイトのディスク ・データベース・サーバーとストレージ・サーバーの間は、40Gビット/秒のInfiniBandで接続 ・価格は、11万ドルから115万ドル。
270 :
NAME IS NULL :2009/11/24(火) 19:00:00 ID:HjCw1L6A
Pro*Cとか業務アプリのC(PC)のプログラムを見てて思うんですが 文字列なのにmemcpyで会社コードをコピーしたり いちいち\0で初期化してから文字列を格納したりするの 非常に多く見かけるんですけど、何でですか? 何か特別な配慮があるのだろうか・?? memset(kcode,0,sizeof(kcode)); sprintf(kcode,"%d",foo); みたいな。。
271 :
NAME IS NULL :2009/11/24(火) 22:36:57 ID:bK9KIBay
初心者のなのですが教えてください。 商品テーブルに商品コード、商品名、商品企画コードがあります。 商品規格テーブルに商品規格コード、諸品規格名があります。 商品コード、商品名、商品規格名をセレクトしたいのですが 商品規格コードを渡すと商品規格名を返すファンクションを作ってセレクト文に練りこむ方法と 商品規格コードでインナージョインしてセレクトする方法 どちらの検索方法が早いですか? また、一般的なのはどちらの方法でしょうか?
>>271 その構成じゃJOIN出来るカラムがないよ
例えば会社コードが2バイトならmemcpyで2バイトの変数に格納することができる。 strcpyなら最低3バイト必要。 \0で初期化するのは変数の宣言時に変数内を\0で埋めるとは保障されてないからだと思う。 間違ってたらスマン。
>>271 圧倒的にINNER JOIN方式だろうな。
ファンクション化方式は、
・内部の抽出条件を表に教えたくない
・抽出条件が複雑すぎるので表のSQL文簡素化の為
に有効な手段であって、高速化とは逆。
ファンクションを起動する分と
きかくテーブルをSELECTするSQL文の解釈を行う時間分
だけ多く時間がかかる。
275 :
NAME IS NULL :2009/11/25(水) 02:04:43 ID:E/U8MXi2
業務でPro*Cを使っているのですが、 Pro*CのFETCHはBULKを使えるのでしょうか? EXEC SQL FETCH CUR1 INTO 配列 と記述すれば行けそうかなと予想が付いてきたのですが、 PL/SQLにある、BULK COLLECT句がないと駄目なのか、 よくわかりません。
>>275 複数の行をまとめてFETCHしたいのであれば、
ホスト配列を使用すれば可能。
ホスト配列 Pro*C でググルとOTNのマニュアルが
ヒットするから、そこを見てください。
>>276 ありがとうございました。
無事、できました。
278 :
NAME IS NULL :2009/11/26(木) 00:13:04 ID:ec24a8ww
SQLPlusで環境変数の参照したいんだけど、もしかしていい方法ない? まぁ情報探しにくいってのはOracleの弱点なんだよな
情報を探しやすいDBってなによ? 参考までに教えて
またおまえか
おれおれ
やっぱりな
INSERT INTO 表名A (列1, 列2, 列3) VALUES ('&列1', '&列2', ''); UPDATE 表名A SET 列3 = (substr(列1, 1, 1) || substr(列2, 2, 2)); こんな感じの2個の文をひとつにまとめる方法とかありますか? Oracle 11gです。
いくらでもあります。
文章の内容が悪かったようです。 まとめる方法があるならば、 どうすればいいのか教えてください。
"&列1" って SQL*Plus の置換変数を意図してるのかな。 だとしたら出てくるたびに値設定が求められるので別の変数を使わないと駄目。 一般的には無名プロシージャを使う。 SQL> declare 2 c1 varchar2(10); 3 c2 varchar2(10); 4 begin 5 :c1:='0123'; 6 :c2:='4567'; 7 insert into tab_a values( :c1, :c2, substr(:c1,1,1)||substr(:c2,1,1) ); 8 end; 9 / PL/SQL procedure successfully completed. SQL> select * from tab_a; C1 C2 C3 ---------- ---------- ---------- 0123 4567 04
>>287 最終的にやりたいことは、
&置換変数を用いて入力した値2個と
それの1部を結合した値を1行に出力して、
その文をスクリプトファイルとして保存して
レコード作成を行いたいってことです。
最初に書くべきでした。すみません。
値の入力はできれば&置換変数を用いたいのですが・・・
variable した変数と混在してたので
>>287 は間違い。
>>288 無名プロシージャの中で置換変数使っちゃ駄目なの?
SQL> declare
2 c1 varchar2(10);
3 c2 varchar2(10);
4 begin
5 c1 := '&INP1';
6 c2 := '&INP2';
7 insert into tab_a values( c1, c2, substr(c1,1,1)||substr(c2,1,1) );
8 end;
9 /
Enter value for inp1: 0123
old 5: c1 := '&INP1';
new 5: c1 := '0123';
Enter value for inp2: 4567
old 6: c2 := '&INP2';
new 6: c2 := '4567';
PL/SQL procedure successfully completed.
SQL> select * from tab_a;
C1 C2 C3
---------- ---------- ----------
0123 4567 04
>>289 そもそも無名プロシージャというものを知らなかったので、
出来ると思いませんでした。
>>287 の文は実行したらエラーになったし・・・
おかげさまで出来ました。
ありがとうございました。
291 :
NAME IS NULL :2009/11/28(土) 19:27:08 ID:mokrBmmd
インストールした状態で、ライセンス形態は表示されますか? Oracle Database 10g Standard Edition Windows XP です。 あるセミナーに参加するのに、10gをインストールしておく必要があります。 OTN開発ランセンスでインストールするか、トライアル版でもセミナーの内容には ついて行けるのですが。 製品版を買っていない場合は、関連業者からの購入を強く促されるようです。 OTNやトライアル版をインストールしていっても正規のライセンス版と見分けが付かなければ それで済ませたいのですが。
「ディスライセンス イズ フォー デベロッピング オンリー」 とか表示されないんですね? よかった。 貯金をゼロにしなくて済みます。
いやです。 教えてください。
Linux(RH AS 5)版の11g R2 Grid Infrastructureのインスコに成功した人いる? OCRとかをASM上に配置するオプションで。 なんか日本語でインスコするとASMLib使っているのにASM用のHDD候補とか 見れなかったりするんだけど?
RH AS 5.4などない。
>>297 # uname -srmpio
# rpm -qa | grep -i oracleasm
300 :
NAME IS NULL :2009/12/02(水) 16:17:04 ID:GlCvq1AR
254のどこがネタなのかよく分からんのですが・・・・ 1.ウイセブで動作保障されるOracleのクライアントは、現時点では11r2のみの予定 2.Windows版11r2クライアントソフトは、2010年中頃までには遅くともリリースされる 3.リリース2ヶ月前には、OracleのHPでアナウンスされる ということでおkですか? ウイセブ環境でのクラサバアプリの動作検証をせなあかんのですが、 もし、11r2のクライアントがリリースされるなら、それまで待とうかと思いまして。
302 :
NAME IS NULL :2009/12/03(木) 02:04:26 ID:RG7qM8LP
ウイセブてなに?
254を読めよ。 なんで省略するのか訳わからんが。
>>299 Linux 2.6.18-164.6.1.el5 i686 athlon i386 GNU/Linux
oracleasm-2.6.18-164.6.1.el5-2.0.5-1.el5
oracleasm-support-2.1.3-1.el5
oracleasmlib-2.0.4-1.el5
まあ、ASMディスクは認識する様になったけどroot.shではSegmentation Faultで死亡する。
共有ディスクをOCFS2で作成して試してみたが同じ症状。
分からん。
305 :
NAME IS NULL :2009/12/03(木) 15:59:35 ID:3GiTAxwX
>>301 dクスです。
現時点で未定だと、さすがに作業に支障があるので
win7に10gr2を互換モードでインストールすることにしました。
>>302 windows7のことです。
DQNなうちの会社ではみんなウイセブと呼んでいるので、つい伝染してしまいました。
他の会社では、なんと呼んでいるんだろう。やっぱり「セブン」かな?
「うぃんなな」以外の呼び方があるとは思いもよらなかった。
>>304 rpm は i686 とかまで見たかったけど、まぁいいや。
glibc の問題とか色々あるみたいだけど。
まだ11gR2はDBしか触ってないので、場所が同じなら
$ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log
あたりのログから何か無いかね。
>>307 ログは探してみたけどないなぁ。
インストールログも何の手掛かりも無し。
coreとか吐いてくれていたらgdbとかも使えるんだろうけど、coreも無し。
その内コソっと直ったバージョンとかがOTNにウプされていそう。
309 :
NAME IS NULL :2009/12/04(金) 09:16:10 ID:6g9IQkjN
>>300 それってよく聞くけどオラクル社から正式発表されてる?
URLあったら教えてほしい。
ホームページを探してみたが探し方が悪いのか見つからない。
>>309 URLというかオラクルダイレクトに電話して聞いた
0120-155-096
リリース時期は未定だけど、大体いつ頃になりそうですか?
って聞いたらその回答が返ってきた
311 :
NAME IS NULL :2009/12/05(土) 12:17:14 ID:inq9WrQ/
>>310 ありがとうございます。
早速月曜日に聞いてみます。
規制でPCから書き込めないの不便だな〜
UbuntuにEnterpriseで無理やり入れてたら、インストールはできたが インスタンスが上がらなくて、Ubuntuに32bitと64bit版があるのに 今更気がついた。遊びだからいいけど、貴重な休日が・・。
313 :
NAME IS NULL :2009/12/06(日) 00:18:04 ID:7evwUms2
最近、OracleてPostgreSQLに食われてるよな
無料であること以外に明らかに勝ってる要素がないと客は動かないぞ。
sybase一筋の人にOracleを学んでもらうのに適した資料ってありませんかね?
316 :
NAME IS NULL :2009/12/06(日) 17:09:59 ID:XziuAWI9
RAM 2GBのVistaマシンに11g入れたんだけど、 常時HDDがガリガリ言ってて参った。 2GBも積んでまだ足りないのか。
10gしか知らないけど、SGAやPGAの値をギリギリまで小さくすれば512MBでも普通に動いたぞ。 EnterpriseManagerも何とか動く。 256MBは流石にHDDガリガリいってて無理だったので512MBにしたんだが。 Vistaじゃなくて2000だけど。
>EnterpriseManagerも何とか動く。 512kでこれは動かす気がしなかった。
>>317 ,318
Enterprise Managerはjavaの起動オプションで1024KBきってるから
起動はするし、動くには動くだろうけど、それこそHDガリガリじゃないの
以前、サポートにjavaの起動オプション変えられないのか聞いたことあるけど
当然無理と言われたぞ
EM動かさなきゃいいじゃん。
>>320 EM動かさなかったら動かさなかったでEMが勝手にやってくれるメトリック監視とかを
作りこまなきゃならないだろ
趣味でOracle使ってる奴ばかりじゃないんだぞ
>>321 EM を起動するかどうかと、repository を持っているかどうかは別問題なんだけどね。
ちゃんと勉強し直したほうがいいよ。
というか趣味で動かすんじゃないなら ちゃんとしたスペックのマシンを用意しろよ
>>323 たぶん零細企業で自転車操業なんだろうから、そのへんは大目に見てあげようよ。
零細企業でもVISTAはないだろう、JK
ChromeOSよろしく、インスコしたら一発でOracleまでインストール、 起動されるOracleOSってのが欲しい。 いや、OracleVMのテンプレートでそんな感じの奴があるけどさ。 どうせOSもOracle社で作ってるんだし、やってやれないことは無いと思うんだけど。
昔 MiracleLinux というのがあってだね、(以下略
328 :
NAME IS NULL :2009/12/06(日) 23:42:57 ID:7evwUms2
Oracle糞会社にそこまで期待する奴がいるとは思わなかった。 来年あたりはOracleヤバイんじゃねーの?
いや、今でもOracle EnterpriseLinuxってのがあるのは重々承知してるんだけど、 WindowsとかLinuxとかSolarisとか色んなOSサポートしていくよりは、 OELとの組み合わせでしか検証しません、その代わりOSと組み合わせて提供します、 の方がサポートも楽だし、導入する側も変に頭悩ませなくて済むと思うんですが。 どうせ大規模データベース市場は実質的にOracleしか選択肢無い訳だし。
330 :
NAME IS NULL :2009/12/06(日) 23:56:08 ID:7evwUms2
Oracleの対抗としてはSQLServerかDB2になるわな。 でも実際はPostgreSqlとかで足りると思う。
逆に、いろんなハードを面倒見る手間がかかるだろ
MySQLと違って、PostgreSQLじゃなきゃダメ、ってのがない。
333 :
NAME IS NULL :2009/12/08(火) 01:46:03 ID:nndDDrU0
まぁしかしOracleのオプティマイザーもふざけすぎでしょ できの悪いもホドがあると思うよ。
334 :
NAME IS NULL :2009/12/08(火) 12:41:11 ID:YPusK/Y0
メンタマル「うわっ」ぷー シャナ「」ブ〜ッ 大河「」ブ〜ッ ナギ「」プリッ ルイズ「」ブリッ 神楽「お前ら死ね」 おまえらざまぁああああ おまえらの大好きなキャラも屁もウンコもするしケツノアナに手を突っ込んで臭いかぐんだよ!!!! ざまぁwwwwwww メwwwwシwwwウwwwwマwwww 死ね!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
335 :
NAME IS NULL :2009/12/08(火) 12:45:42 ID:YPusK/Y0
私前原圭一は竜宮レナの肛門にトラウマがありますどうかこの事件を解決して下さい、そして私前原圭一は大石さんを愛しています
Oracle 11g R1 Standard Edtition Windows Server 2003 Standard Edtition LOB型のチャンクサイズを4096バイトにするには 表領域のブロックサイズを4096バイト以下にする以外方法はないですか?
sqlplus等で他のサーバにあるOracleに接続する際、 接続文字列としてサービス名を使わずに 「user/pass@IPアドレス:ポート番号/SID」 という形式で指定できると思うのですが これはOracle9i等の古いVerでも可能なのでしょうか? Oracle10g以降で出来るのは分かったのですが…。
EZCONNECTは10gの新機能なので9iでは使えないよ。
339 :
NAME IS NULL :2009/12/09(水) 00:44:51 ID:Ao+i+k7i
IPアドレスで接続がEZCONNECT、それもバージョン10以上か糞だな
>>336 TABLESPACE hogets DISABLE STORAGE IN ROW CHUNK 4096ではダメなんかいな?
ただこの場合にはChunkってdb_block_sizeの切り上げたサイズにしかならないけど。
342 :
NAME IS NULL :2009/12/10(木) 00:48:33 ID:g/c/UJaz
Oracle 11g ロックに関して質問です。 コミット後も継続して行排他ロックを掛ける方法は無いでしょうか? できれば時間指定できれば尚良いのですが?
なにそのRDBMSのトランザクションのコンセプトを丸っきり無視した様な要求は?
344 :
NAME IS NULL :2009/12/10(木) 02:10:03 ID:g/c/UJaz
>>343 A1はBとCに変更が可能
A2はBには変更できるが、Cには変更できないとする
この条件で、
田中さんがA1をリード、山田さんもA1をリード
田中さんがA1をA2にアップデート
山田さんがA1をCに変更する前に田中さんがコミットしてしまうと
山田さんはA2をCに変更する処理となり、エラーとなってしまう
この事象を回避するために田中さんがコミット後も継続して
行ロックを行いたいのです。ただし、表ロック等はダメです。
方法はありますでしょうか?
>>344 無理なんじゃない。
出来るとしたらトランザクションを管理する表を別につくことか?
1. 田中さんがトランザクションを開始したらその表にトランザクション中というフラグを立てる。
2. フラグが立っている間は山田さんはコミットしない。
3. 田中さんの全トランザクションが終了したらフラグを消す。
4. 山田さんが晴れてコミット可能。
トランザクションがぜんぜん分かってない感じだな。 ロングトランザクションかショートトランザクションかも書いてない。 普通にトランザクションを開始した場合。 田中読み取り 山田読み取り 田中更新 山田更新・・・田中のトランザクションが完了するまで待機状態。 田中コミット・・・山田はトランザクションが失敗する。 (または 田中ロールバック・・・・山田更新成功) 最初の読み取り時に for update 指定で読みにいった場合。 田中 for update指定で読み取り 山田 for update指定で読み取り・・田中のトランザクションが完了するまで読み取りは待機状態となる。 よって不整合は発生しない。
整合性うんぬんの話じゃなくて、田中がselect for updateで取りに行っても commitされた瞬間に山田がupdate出来るのを防ぎたいというのが要求 だと思ったが? 要するにアプリ側にエラーを返したくないというのが狙いだと俺は思ったけど?
いずれにせよRDBMSのトランザクションのコンセプトを無視した要求で ある事には間違いないけどね。
読み取りと書き込みを別のトランザクションでやってるんじゃないかな。
A1,A2,B,Cがそれぞれ何を意味するのかオレにはわからん。 お前ら、よくわかるな。感心する。
そういうをレースコンディションていうんですかね?
・田中のトランザクションが終わるまで
山田にトランザクションを開始させない。(
>>346 )
・書き込み直前にfor updateで値を読んで、
他者が更新してないことを確認してから更新する。
更新されてたら何かハンドリングする。
他にもやりかたあるのかな。
select for updateかとも思ったけど、田中コミット後もロックを継続することが できたら解決するというのがわからんなぁ。
353 :
342 :2009/12/10(木) 23:44:45 ID:g/c/UJaz
リード時に更新日時(systimestamp)を取得しておき アップデートするときに再度、更新日時を取得して リード時の更新日時と違っていたらアップデートできない ようにすれば防ぐことができると思ったんですが却下されました。 何か良い案は無いのでしょうか?
何を防ぎたいのかがわかんない。 >山田さんはA2をCに変更する処理となり、エラーとなってしまう エラーが発生したらそれを捕まえて適切な処理したらいいんでない?
>>353 山田がどうなればいいのか分からない。
それが却下なら、
田中がロック獲得→更新可
山田がロック獲得失敗→エラー又は参照のみ
しかないんじゃ?
>>353 RDBMSのトランザクションがどういったものかまず理解してからそういった
要求出せと百万回言ってこい。
それが却下されるのなら適切なエラーハンドリング以外道が無いだろうよ。
357 :
342 :2009/12/11(金) 00:47:41 ID:w8ODXZPb
A2がCに変更できないのはあくまで1つの例であって、 他にもそういうパターンが多数あるんですよ。 全パターンそれぞれエラーハンドリングの処理を実装する わけにもいかない規模なので、うまくOracleのロック機能 だけでできないでしょうか? 要するに、1人がデータAに対してトランザクションを開始したら 他のものはデータAに対してトランザクションを開始できなくしたいのです。 (ただし、リードは可能)
相変わらずこういう人って、いろいろ質問が出ていても肝心の情報は
何も明かさないのね。
>>357 他の人も書いてるけど、単にトランザクション失敗させるんじゃだめなの?
トランザクションをエラーハンドリングするのは当然だし、それも成功と
失敗の二パターンだけ考えればよいというのが大きなメリットなわけだし。
>>357 こういえば納得するのか?
・その実装はOracleのロック機能だけで実現する事は出来ない。
はい、次の質問ドゾー。
分離レベルでなんとかなるかどうか分からんが調べてみたら? 以下の二つをうまく組み合わせれば幾つかは実現出来るかも知れないね。 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET TRANSACTION READ ONLY; でもDBをOracleでやる必要なんて、全く無いよね。
>>357 そもそもトランザクションの単位はcommitもしくはrollbackが行われるまでだろ?
ところがそちらの要求はcommit/rollbackが行われた後でさえ他のユーザーからの
アップデートを許さないという。
ユーザーセッションの接続単位でトランザクションをコントロールしたいというのが
RDBMSのコンセプトからするとどれだけ無理な要求をしていることか・・・。
1.ユーザAがレコード1をロックします。 2.ユーザBがレコード2をロックします。 3.ユーザAがレコード2をロックしようとして、待ちに入ります。 4.ユーザBがレコード1をロックしようとして、待ちに入ります。 いわゆるデッドロックで、 オラクルでは4の時点でデッドロックエラーが発生するのですが、 私はユーザBに発生すると思っていました。 ところが、実際にはユーザAの方にデッドロックエラーが発生しました。 なぜなのでしょう?オラクルだけの仕様? データベースではあたりまえのこと? 教えてください。 あと、もう一つ。4.でロックを行う際、 select ... for update wait 10 のようにロックタイムアウトを指定していても、 実行した瞬間にユーザAにデッドロックエラーが発生してしまいます。 これは回避できないのでしょうか?
デットロックの解消方法は特にルールは決まってないから、 そういう動きをするのはオラクルの仕様なんだろう。 AもBも1,2の順でロックさせるのが基本、そうできない理由は何かあるの?
>>362 つ〜か、デッドロックが発生する状況なんてものはアプリの設計がそもそも間違っているんだが?
そういった状況をOracle様側で解決してやるんだから、ありがたく思えというのがスタンスだよ。
366 :
362 :2009/12/12(土) 01:20:09 ID:???
回答ありがとうございます。
デッドロックの動作を確認するために人為的にデッドロックを起こしています。
説明不足で申し訳ありません。
>>362 でユーザBではなく、ユーザAにエラーが発生する理由、
何かあると思うのですが、オラクルのみぞ知るなんでしょうか?
368 :
362 :2009/12/12(土) 02:49:00 ID:???
>>367 タイムアウトで判定しているのは分散トランザクションの
グローバル・デッドロックである、と理解したため、
4.のタイミングで一瞬でエラーになるローカル・デッドロックとは
別の話と考えていました。
ただ、ローカル・デッドロックではタイムアウトを省略している、
とすればとにかく先に待ちに入った方がエラーになると考えられる訳ですね。
なんとなく合点が行きました。ありがとうございます。
下記のページにあるSQLを使って、とある処理後でデータ数が増えるテーブルの使用容量について調べています。
ttp://oshiete1.goo.ne.jp/qa195164.html 実際に流すSQLはこんな感じです。
analyze table テーブル名 COMPUTE STATISTICS;
select table_name,num_rows*avg_row_len space_in_use from sys.user_tables where table_name ='テーブル名'
流してみると、データ数100件程度のテーブルは処理で増えた後のNUM_ROWSが取れるのですが、
データ数が2万件強あるテーブルで上記のSQL文を流すと処理で増えた分のデータ数がNUM_ROWSに反映されません。
countで件数を取ってみると、処理後でテーブルのデータ数は増えているのは間違いないのです。
そもそも統計情報の扱い方を間違っているのか、それとも・・・。
どなたかご教示お願い致します。
いまどきは DBMS_STATS.GATHER_TABLE_STATS などを使うんじゃないかなー
>>369 num_rowsは統計情報が取得されて初めて更新されるものだから。
372 :
369 :2009/12/12(土) 20:32:00 ID:???
レスありがとうございます。 てっきりanalyze文で統計情報を更新するものとばかり思っていましたが、違うのでしょうか?
OracleはANALYZEコマンドは使わずにDBMS_STATSパッケージを使ってくれと言っている
375 :
NAME IS NULL :2009/12/16(水) 00:00:23 ID:BGzwbVQJ
jdbcコネクションプール(10g)使ってんだけど トランザクション途中でtomcatがハングアップもしくは強制再起動した場合にロールバックされない。 Oracleの仕様っぽく暗黙コミットされるんだけど 対応方法ってある?
>>375 conn.setAutoCommit(false);
>>376 OTNの掲示板を見る限りではそれでは解決になってないらしい。
>>375 - 実行中のトランザクションが存在する状態で、closeConnections() メソッドを実行しない
- closeConnections() メソッドを実行する前に、実行中のトランザクションをロールバックする
- JDBC Driver 10g からの新機能、暗黙的接続キャッシュを使用する
>>378 暗黙的接続キャッシュってよくわかんないな。
コールバックとか使うといいの?
OracleConnection.close しないことにはコミット(暗黙的コミットを含む)されない ってこと?
ほんと、長さ0の文字列の扱いと暗黙コミットはOracleのうんこ仕様だよなぁ。
383 :
NAME IS NULL :2009/12/16(水) 23:31:53 ID:Emdvo+qQ
確かにOracleうんこ仕様多いのよな。
384 :
NAME IS NULL :2009/12/17(木) 01:46:51 ID:wRNRd0lz
WindowsXP + VMWareで、RACの検証環境を作りたいと思っています。 DBの規模は20〜30GB程度で、バッチ処理がメインのシステムです。 検証のメインは、RAC環境の構築手順の検証と、基本的な動作検証です。 どの程度のスペック(CPU、メモリ)のPCを用意すれば、ストレスなく検証できるでしょうか? と言っても、これだけの情報では判断が難しいと思いますが、もし、 現在、こんなマシンで同じような事をして、そこそこ動いているとか、そういう情報が ありましたら、お教え下さい。
>>384 最低でもCPUのコアは4つ。
クロックスピードは早ければ早い方が良いのは越した事はない。
メモリは32bit O/SだとMaxでも3GBちょっとしか認識しないが、取りあえず8GB積んで
認識していないエリアをGavotte RamdiskでRamdiskを作成、そこにページファイルを
作成する様にすればそれなりに動く様になる。
32bit O/Sはやはりメインメモリがどうしても制限事項となる。
どうもシルバーです。
387 :
NAME IS NULL :2009/12/18(金) 00:30:58 ID:/afUwtQE
オラクルの4000/1/1って何ですか? タイムスタンプ型のデフォルト値ですか?
388 :
384 :2009/12/18(金) 01:53:56 ID:???
>>385 ご回答ありがとうございます。
OSは残念ながら32bitで決定なのですが、CPUは4コア、メモリも多めの機種にしてみます。
ありがとうございました。
>>388 メモリはBIOSレベルで認識していないとGavotteでRamdisk作れないからそこの所注意な。
ちなみにVMWareで使うO/Sは何にするんだ?
32bit O/Sだと各VMWareに対して最大でも1.5GBずつぐらいしかメモリを割り当てられない
から、Oracle Instanceを起動させるとなるとかなりタイトになるとだけ言っておく。
知識少なすぎて何から調べていいやら、、、すみません、助けてください。 WebLogicのJDBC接続プールから繋いでいるんですが、 とある契機でOracleセッション数がガクンと落ちました。 Oracleセッション数がガクンと落ちたのは、 WebLogicの管理対象サーバを再起動してからですが、 WebLogicのスレッド数、アクセス数は再起動前後で変化がなく、 WebLogicのJDBC接続数は逆に上がっています。 いままでは、Oracleのセッション数は、WebLogicのスレッド数と一致していました。 すみません、何から調べたらよいでしょうか。。。
USER数偽ってライセンス購入した場合、バレるもんなのかね。 安くなったとは言え高いわw
>390 単純にJDBCのプール数(コネクション数)が減ったからじゃないの 管理対象サーバのJDBCのコネクション数って初期値と最大値が設定出来るよね 例えばJDBCのコネクション数を初期値1、最大値30とかで設定していると 管理対象サーバの再起動前のはオラクルから見たセッション数が30で 再起動後は1になるってことが起きるよ 普通はコネクションが増えた時のオーバヘッドを考慮して初期値=最大に するんだけどね
>>391 客が金出すならともかく自分達で金を出すなら無料のPostgreSQLにしとけ。
64-bitにしたらサクッと成功したよ。 以下が今回試した環境。 <ホストマシン> O/S: Windowx XP 32-bit CPU: AMD Phenom 9850 Quad-core RAM: 8G (32-bit O/Sの制限でO/S側から3.2GBだけ認識。残りは全てRAMディスクに配分) <ゲスト> 仮想化ソフトウェア: VMWare Player 2.5.3 build-185404 ゲスト O/S : CentOS 5.4 共有ディスク: qemuで作成した仮想ディスク 11gR2はかなりCRS関連(Grid infrastructureと呼ぶらしいが)に変更がされているね。 OCRも投票ディスクもASMのディスクグループに作成出来る様になった。
396 :
NAME IS NULL :2009/12/25(金) 00:29:49 ID:0yLbvf3m
Oracleの実行計画で、いつもMarge Joinにイラッとする 馬鹿すぎるよな、ふざけすぎ
MargeじゃなくてMerge。 どう?またイラッとした?
何にイラッとしてるのかわからん トータルで見てMerge Joinがベストな選択なことはよくあることだろ 気に入らないならヒント使えよ
oracleのorder byの並び順って何順でしょうか? 内部で使用しているcharacter set順でしょうか?
数値でもcharacter set順でソートされちゃかなわんよ。
こんなの出すと混乱するのかな? SQL> select * from t01 order by c1; C1 -------------------- ABC abc あいうえお アイウエオ ABC abc アイウエオ 7行が選択されました。 SQL> ゴニョゴニョ SQL> select * from t01 order by c1; C1 -------------------- abc abc ABC ABC あいうえお アイウエオ アイウエオ 7行が選択されました。
なにこれ
alterゴニョゴョスルアル
シルバーだかゴールドだかの黒本に載ってたな
知ったかついでにこんなのとか。 (ちなみにDBはUTF8) SQL> ゴニョゴニョ SQL> create table t02 (c1 char(1)); 表が作成されました。 SQL> insert into t02 values('あ'); 1行が作成されました。 SQL> select c1,dump(C1) from t02; C1 DUMP(C1) --- ---------------------------------------- あ Typ=96 Len=3: 227,129,130 SQL> desc t02 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- C1 CHAR(1)
この人なにがしたいの?
知識無い奴をからかって楽しんでるに決まってるだろ。 教える気があるならスパっと教えるなり誘導するなりすりゃいいし、 教える気がないなら何も書かなきゃいいのに。
SQL> ゴニョゴニョ ORA-00600: 内部エラー・コード,引数 ..... SQL> ゴニョゴニョ ORA-03113 通信tチャネルでファイルの終わりが検出されました。 ・・・・ _/ ̄|○
Oracle10gのサーバーパラメータファイルについて質問です。 インスタンスが稼働してる状態で、spfileをroot権限で削除したらマズいでしょうか?
SPFILEをALTER SYSTEMで変更する時、対象をメモリかファイルかそれともその両方かを選べるだろ。 ファイルのみを手動、もしくはALTER SYSTEMで変更した場合、現在のインスタンスにすぐに反映されるかい?
何のために削除するの
>>414 別にインスタンスが突然シャットダウンしたりとかはしない。
だがRMANでバックアップをとっていて、 controlfile autobackupがonになって
いたりするとORA-19580やORA-27037が起きる。
またinit.oraから再作成すればこの問題は回避できるけど。
いずれにせよspfileで起動かけたのならそれを消す事はお勧めしない。
order byのバイナリ順って文字コードでし?
そうでし。
シロちゃんを思い出した。ナツカシス
>>419-421 ありがとうございます!
おかげで顧客への説明が無事完了しました!
助かりました!
shift-jisで説明したのかよ。。。
Oracle10gのクライアントからOracle11gサーバへの接続は可能でしょうか?
select * from DBA_DATA_FILES を実行すると「ORA-00942: 表またはビューが存在しません。」 というエラーになるんですが、 これ、DBA_DATA_FILESビューが作成されてないってことでしょうか。
>>427 DBA_DATA_FILES って、システムで必ず作成されるビューじゃないんでしょうか…?
>>428 いいえ違います。
Oracleデータベースのスキーマを作るレベルによります。
Oracleには玄人向けと初心者向けの2種類の作成方法があります。
初心者向けというのは、Database Configuration Assistant(DBCA)を利用した作成です。
玄人向けというのは、Create Database(DDL)で作成する方法です。
DBCAユーティリティは初心者向けなので、GUIで命令すると
Create Database(DDL)から動的ディクショナリビューの作成まで
およそDBに必要だと思われるものをすべて自動で処理してくれます。
Create Database(DDL)は、大雑把に表現すると箱を作っただけです。
この箱は中身が何もありません。
初心者は黙ってDBCAを起動しましょう。
どうしてもDBCA意外でやりたいなら公式マニュアルを読みましょう
ttp://download.oracle.com/docs/cd/E16338_01/server.112/b56306/datadict.htm
>>429 丁寧にありがとうございます。勉強してきます。。。
おいらもそう思った。 どのユーザーでログインしている? sysかsystemでログインして同じSQL実行してみ?
>>431-432 systemでログインしたら、実行できました。。。
すみません、お騒がせしました。ありがとうございました。
どなたか、情報をお持ちでしたら教えてください。 11gR1でインスタンス作成時にインストールしたOracleXDBを 後から削除する方法はないのでしょうか。 9iは、マニュアルに方法が記載されていました。 10gは、削除ではありませんが、再構築方法が記載されていました。 しかし、11gになると、それすら記載がありません。 (一応、catnoqm.sqlは、製品ディレクトリに存在しているようです)
435 :
NAME IS NULL :2010/01/13(水) 22:21:43 ID:jl6Ejtg3
現在、仕事で使用する機会がありそうなのでOracleでSQLを勉強しています。 ある教本の練習問題をしていて気になったので質問させてください。 単純な受注に関するデータベースの問題です。 CUSTOMER_TとSLIP_Tというテーブルがあり、 CUSTOMER_Tは顧客コード、顧客の名前、顧客の住所が載っています。 SLIP_Tは受注番号、発注した顧客の顧客コード、受注した日が載っています。 2007年1月10日以降に受注したことのない顧客の名前を出力する問題なのですが私は以下のように解答しました。 SELECT CUST_NAME FROM CUSTOMER_T WHERE CUST_CODE != ALL(SELECT CUST_CODE FROM SLIP_T WHERE SLIP_DATE >= '2007-1-10'); しかし解答は以下でした。 SELECT CUST_NAME FROM CUSTOMER_T WHERE CUST_CODE NOT IN(SELECT CUST_CODE FROM SLIP_T WHERE SLIP_DATE >= '2007-1-10'); 自分で簡単なデータベースを作り試してみたのですが出力結果は同じになりました。 この二つのSQL文の違いにどのような問題があるのでしょうか?よろしくお願いします。
下げ忘れ失礼しました。。。
>>434 基本は変わらずにcatnoqm.sqlみたいだな。
conn / as sysdba
spool xdb_reins.log
Shutdown Immediate;
Startup;
?/rdbms/admin/catnoqm.sql
マルチポストするなよ
441 :
NAME IS NULL :2010/01/15(金) 13:03:55 ID:I594pvrx
ストアドファンクションの戻り値をレコードセットのように見せかける方法はないでしょうか? select hoge_func(var1) as hoge from dual としたいんですが、ファンクション「hoge_func」の中でデータを更新してるので、ORA-14551が出てしまいます。 中の更新ではEXCLUSIVEでテーブルロックをしているので、自立型トランザクションを使うのも避けたいのです。 何かいい方法は無いでしょうか?
SELECT文の中に自立型でない更新を行う関数を入れることはできないはず。
443 :
NAME IS NULL :2010/01/16(土) 00:14:37 ID:Jfzoknfk
444 :
NAME IS NULL :2010/01/16(土) 00:34:12 ID:Yf7zXe9E
>>443 マニュアルの oraocijdbc10.dll は、ocijdbc10.dllを間違えて記述したものだと思われる。
あと、ocijdbc10.dll はJDBC-OCI接続(TYPE2)の時は必要だけど、JDBC Thin接続(TYPE4)の時は不要。
446 :
443 :2010/01/16(土) 01:19:53 ID:Jfzoknfk
>>444 なるほど。ocijdbc10.dllの間違いってのはあり得ますね。
となると、材料はそろっているはずか…
もうちょい、調査を続けます。
>>445 今、Thinドライバを使って動いているものを、
tnsnames.ora を使いため、OCIドライバで動かそうとしております。
レス、ありがとうございました。
447 :
441 :2010/01/16(土) 17:16:05 ID:zkezsguh
>>442 やはり、回避方法はまったくないのですね。
単に、呼び出し元に(今回はPHP)戻り値を戻したいだけなのですが・・・。
(特に今回はトランザクションがらみなので)理屈は解りますが、不便ですねぇ・・・。
oracle client 8.1.7をダウンロードしたいんだが 色々ありすぎてどれが該当するのかわからん・・・ つか9iぐらいまでしか無理ぽ?
今となっては9iすらダウソできなんいじゃね?
451 :
441 :2010/01/19(火) 09:20:10 ID:???
>>448 おっと、お返事ありがとうございます。
なるほど、OCIを直に叩くわけですか。
正直、今となってはあまりやりたくありませんが、他に方法が無いなら仕方ありませんよね。
どうしてもダメなら、最後の手段として可能かどうか試してみます。
10g Express Editionをダウンロード出来ません。。。 Oracle Database 10g Express Edition (Universal) を選択して、Username/Passwordを入力しても "Authentication failure"となり、アカウント取得かパスワード再発行を促されてしまいます。 ・アカウントは取得済みでプロファイル編集もできます。 ・ブラウザのクッキーは禁止していません。 ・プロファイルのチェックボックスは、"Opt-out of Oracle Communications"以外は全てチェックしてみました。 何が原因なのでしょうか;
自己解決しました、 Firefoxでアクセスしてたのですが、IEからアクセスしたらダウンロードできました。 なおFirefoxではアドオンを有効/無効切り替えたり、キャッシュとかも全部消したのだけどダメでした。
454 :
NAME IS NULL :2010/01/20(水) 17:58:04 ID:H8JMqDfQ
3月納期マシンはやっぱり Win7 ?、 Win7 対応の R2 早く出して欲しい、いまさら Vista なんか持っていけません。 困ったよ〜
ちょっと質問なんですが、 OracleのDate型はタイムゾーンの情報を持ってないので、 DBにそれぞれタイムゾーンの異なる国から、その国の現在時刻を DB項目のDate型に登録したとすると、 2009年1月20日 22:00:00 +09:00 (JST) 2009年1月20日 08:00:00 -05:00 (EST) の情報が、 2009年1月20日 22:00:00 2009年1月20日 08:00:00 の状態で登録されてしまいます・・・ この登録した時間を時差を考慮した時間で表示するには、 Date型で時間を取り扱うのをやめる以外に何か方法はないでしょうか? (日本なら日本時間、アメリカならアメリカ時間で表示したい・・)
もしかしてcurrent_dateでDB登録してる?
457 :
NAME IS NULL :2010/01/20(水) 23:41:52 ID:zvRmg6ep
>>455 タイムゾーン付きタイムスタンプ(TIMESTAMP WITH TIME ZONE)データ型を
使えばやろうとしていることは出来るはず。
458 :
455 :2010/01/21(木) 00:11:11 ID:???
レスしていただき、ありがとうございます。
>>456 current_dateは使われてなかったと思います。
>>457 TIMESTAMP WITH TIME ZONE型でデータを保持する案は
提案したのですが、却下されてしまいました・・
Date型でないとダメだと言われていまして・・・
Date型で時差を考慮した時間で表示しようとするならば、
DB登録時に時間をUTCに変換してから登録する必要があるのでしょうか、、
そもそもDBには直接接続してるのか、それともAPサーバを介して接続してるのか、 APサーバなら世界中にいくつもあるのか、そこら辺がまず不明すぎる。
460 :
NAME IS NULL :2010/01/21(木) 00:27:24 ID:cIjY0AOd
Oracleは糞だけど、糞だからこそサードベンダーが育つっていう意見もある。けど実際どうなの?
461 :
457 :2010/01/21(木) 01:27:55 ID:ZZ4eoWKU
>>458 DATE型ではTIME ZONEの情報は持てないので、登録した時間を時差を
考慮した時間で表示することをDATE型で行いたいのであれば、
DB登録時にUTCへ変換するか、登録した時のタイムゾーンを入れるカラムを
別に持って表示時に変換するかのどちらかになってしまうと思います。
462 :
458 :2010/01/22(金) 00:29:35 ID:???
またレスしていただき、ありがとうございます。
>>459 環境について何も記述していませんでした。すいません。
環境はDBサーバにAPサーバを介してアクセスしています。
DB、APサーバはともに日本国内にしかない状態です。
それぞれの国のクライアントからAPサーバを介してDBサーバに登録という感じです。
>>461 やはりUTCに変換した時間で保持するか、タイムゾーン情報を
別に持つということでしかやりたいことは実現できないですよね。
貴重なご意見、ありがとうございました。
DB、APサーバが共に国内にしかないということは、TIMESTAMP型でも意味ない。 DBから見るとクライアント側のタイムゾーン=APサーバのタイムゾーンだから。 DBのタイムゾーンをUTCにしておけば、SYSDATEを使って登録する限りはUTC時刻で登録される。 各国の時間で表示するには、APサーバのJavaだかPHPだかの言語内で自力で計算して算出するのが無難。
464 :
458 :2010/01/24(日) 21:03:44 ID:???
遅くなりましたが、レスありがとうございます。
>>463 「DBから見るとクライアント側のタイムゾーン=APサーバのタイムゾーン」
そうですね、ここが頭に入ってなかったように思いました。
このことを踏まえて、クライアントのブラウザ経由で地域(タイムゾーン)を取得し、
Java側で時差の制御を行おうと思います。
貴重なご意見、ありがとうございました。
465 :
NAME IS NULL :2010/01/25(月) 09:56:47 ID:mg9WJfJF
Oracleの解説サイトに「検索したいレコード件数が、 レコード全体の5〜15%程度までの場合は、索引スキャンの方が 効率的」と書いてありましたが、5%未満の場合はどういう 検索方法をすれば良いのでしょうか?
>>465 日本語って難しいよな
まず日本語の勉強からやり直せ
>>465 みたいなのがカウンターになると大変だな。
クソ意地の悪いスレだなw
>>465 「程度までは」主意で、〜は範囲というよりaboutのニュアンスに近い。
>>465 同志かもしれんので、一応返事を。
レコード全体の5〜15%程度までの場合は索引スキャンの方が効率的で、
5%未満の場合は索引スキャンが「とっても」効果的。
ちなみに、15%以上でも効果的な場合はある。
気になったら、実際にSQLトレースを取って、インデックスなし、インデックスありで
読み込みブロック数とElapsed Timeを比較して確認してみるのが吉。
あと、参照元が分かっているのなら、そのURLを挙げておけば、前後の文脈も含めて
誰か答えてくれるかもしれないし、他の人の参考にもなる(かもしれない)
472 :
NAME IS NULL :2010/01/28(木) 18:15:28 ID:PjULwI2f
すいません 教えてください 今までVB内で書いてたSQLをすべてPL/SQLに移行して VBからパッケージのストアドをキックするように変更依頼が来たんですけどPL/SQLでカーソルを使わんで 普通にUPDATE文とかって書いて動きます?
473 :
NAME IS NULL :2010/01/28(木) 20:31:25 ID:K33IZ3Yv
こんばんは。 4、5年前にオラクルマスターを持っている人を紹介してあげるって言われたんだけど、データベース扱ってる人って神経質そうなイメージだったんで断ってしまいました。 実際のところはどうなんでしょうか? 私は惜しいことをしてしまったんでしょうか…
>>473 人それぞれ
資格の有無以上に大事なものは何なのか?と
考えればわかるんでは?
オラクルマスタープラチナを最近取得したが
やってることは変わらないよ。
俺は、資格よりもコミュニケーション力と
技術力が大事だと思うよ。
>>472 VBって一言で言われても、VB6なのかVB.NETなのか
ミドルウェアも何使ってるかわかんないから答えようがないよ
>>473 どういう意味で紹介されたかによる。
結婚相手として紹介されたのであれば、数字に強いので、生涯の伴侶としては
オススメできる。
>>474 >>476 レスどうもです。
その紹介を断ってからというもの出会いがなくて後悔している。
(´・ω・`)
478 :
465 :2010/02/02(火) 13:24:02 ID:OxwPS9HL
479 :
NAME IS NULL :2010/02/02(火) 17:27:25 ID:2dyu5lrG
すいません SQLのテスト仕様書ってどんな事を書けばいいんですか?
オラクルの試験って週何回ぐらいやってるんですか? あとギターベースのスレどこ?
>>479 考えうるパターン全部網羅すればいいんだよ。
全パターン網羅がめんどいなら上手く手を抜く。
11gR1(11.1.0.6)をHyper-V上のWin2008にインストールしたんだけど DBConsoleのサービスを起動しているともっそい動きが遅くなります 同じ症状が出て解決した方いませんか?
メモリを増やせば?
>>479 普通の単体試験といっしょでいいんじゃない?
基本的には、正常系、異常系、境界試験あたり。
確認項目としては、下記あたりを確認すればいいんじゃないかな。
(1) レコードが想定通りになっているか
→ 必要なレコードが存在し、不必要なレコードが存在しない
(2) 実行計画の確認(SQLトレースで確認)
→ インデックスの使用、テーブルの結合が想定通りになっているかetc..
(3) Elapsed Timeが目標値以下になっているか
(4) 読み込みブロック数が目標値以下になっているか
あと、注意事項としては、DBキャッシュの状態と、パースの時間に
気を付ける(テスト条件を合わせる)事かなぁ。
※ 性能的な要件が無いのであれば、それほど気にしなくてもいいかも
つか、私はアプリ屋さんじゃなくて運用系の人間なので、ひょっとしたら項目や観点に
過不足があるかもしれない。
経験者に確認されたし。
>>482 何かがボトルネックになっているんじゃないかな。
パフォーマンスログを見て、原因を確認してみたら?
パフォーマンスを見れば、遅くなっている原因がCPUなのか、それとも
メモリ不足でページアウトが頻繁に起こっているのか、それ以外の原因なのか、
あたりがつけられると思う。
指名ユーザライセンスがさらにぼったくりに・・・。
487 :
NAME IS NULL :2010/02/05(金) 14:59:53 ID:VzQ4eaiA
カーソルでループさせてアップデートすればいいのに inner joinとか複雑なの使って一回のSQLでアップデートさせようとする東京のSE! お前は馬鹿なの?オラクルだからループで回した方が早いって行ってるのに 私を馬鹿にした報いだ!社長にチクってやったらクビざまー(笑)
488 :
NAME IS NULL :2010/02/05(金) 23:11:18 ID:BmXSPH+8
>>487 一回のSQL文で更新した方がREDOの発生量を抑えられるから、
一概にどの方法が良いとはいえない。
オラクルだからとか… 少ない経験則に基づく決めつけほど愚かなものはないと知れ
件数が少ないならカーソルループでも十分だけど、 多くなってくるとSQL 1文ですますなら並列化もできるしね。 EE限定だけど。
>>488 実際やってみりゃわかるが、たいした軽減にはならんぞ。
ループで回した方が速いってことは、まずなかろ。 ヘタレなSQLを書きゃ別だが
>>487 カーソルでループさせた方が「速いと思う」なの?
それとも「速かった」なの?
人をクビにまでして「検証したらほぼ性能いっしょでした」だったら、
ぶん殴られても仕方ないよ。
つか、性能の話をするんだったら、inner joinがどうのじゃなくて
実際の実行計画で、結合方式がhash joinなのかnested loopなのか
という所じゃないの?
そういう話が出てこないところを見ると、技術レベルが低いんじゃないかと
思ってしまう。
そして、リソースが十分にあるんだったら、余計なオーバーヘッドが無い分、
ループより一括SQLの方が速いんじゃないの?
Oracle8.0の時代から使ってる人間としては、ループで処理する事の
メリットは、例えば1000件単位でコミットをこまめにする事で、ORA-1555が
発生しにくくできる事じゃないかと思う。
(ロールバックセグメント数を多めにする必要はあるけど)
UNDO領域使ってても、その辺りはいっしょかな? UNDO領域になってから
その辺の動作を試した事がないので、よく分からん。
UNDO表領域になってから、というか最近はディスクもでかいし、ORA-1555なんて見なくなったなー
495 :
NAME IS NULL :2010/02/06(土) 15:04:23 ID:2cHN8Zec
カーソルは複数個バンバン使って一重ループの直列処理で書く ヒントは見やすい 東京から来た馬鹿は無職になるといいよ
「早い」から「見やすい」に誤魔化すのは田舎のジジババクライアントには 通用するだろうけど東京では通用しないから以後気をつけるように
おっと、言い忘れたが カーソルは複数個バンバン使って≠見やすい の点も注意しろよ
>カーソルは複数個バンバン使って一重ループの直列処理で書く 結合するの知らないってこと?
大規模な更新処理とかで、内部に極大ソートとかが入る場合は オンメモリになるように設定されたファイルシステム上に一度キーを吐き出させて 高速な外部ソートツールでソートさせて食いなおさせるとかするとけっこう高速化する。 あとは、1回の与えられた時間では処理が完了しないことを前提に、 コミット切りながら何回かに分けて処理を行うって場合は多いね。
>>499 たぶん田舎にそんな大きな仕事は落ちてこない
そんな特別な場合の話はしとりゃせんのじゃろ。 「オラクルだから〜」とか言うとるのじゃけ。
>>495 ぐだぐだ言ってねえで、inner joinとPL/SQL?両方のSQLトレースをうp。
>>499 そういや、前にどっかで、日立のISAMだかを使ってやってたなぁ。
2chでSQLトレースupとかバカだろ
>>503 お前・・・まさか自分はバカ以外の何かだと思ってるの?
クライアントがカーソル使って書けって言ってんだよ ここもつかえね〜奴ばっかだな ここの連中より、うちの堺工場の工員の方が優秀だわ(笑)
カーソルでループさせてアップデートした方が早い ※ ×早い ○速い ↓ カーソルの方が見やすい ↓ クライアントがカーソル使って書けって言ってんだよ フリーザだったら、もう3段階残ってるな。
オラクルだからどうとか大上段に振りかぶらずに 最初からそう書けばええじゃろ。
>>507 そんな事書いたら最初の発言自体が意味不明になるわな
10gのEMが英語表記なんだけどこれってデフォルトだったっけ? 日本語表記に変えたいんだが、変えれたっけ?
最初の発言自体にどんな意味があるの
>>509 ブラウザの優先の言語設定を日本語に変えればいいだけ。
ただしもしEMのインストール時に日本語オプションを選んでいなかったら
日本語の一部が□□□□とかって文字化けする。
Oracle 10g 、Redhat Linux、GNU Cを使います。 どうやって開発したらいいですか?
エスパーじゃないので、それだけの情報ではコメントするのも無理です。
C言語からOracleにアクセスするにはOCIを使うんでしょうか?
516 :
482 :2010/02/07(日) 21:13:37 ID:???
>>483 >>485 亀レスですいませんがありがとう
パフォーマンスログ確認とメモリ増やして試してみます
あと、実機でも試してみます
だからさ PL/SQLでグリグリぶん回せや アホなSQL厨にPL/SQLでぶん回した方が速いって啓蒙しないと
切り口を変えてきたなw
Pro*Cってまだあるのかな。
520 :
NAME IS NULL :2010/02/08(月) 14:34:14 ID:FyhidEnB
SQL厨をクビにして業務委託に追い込んだのに パラメータカーソルとか言うの使ってきやがった 二重にループを回すとか、東京もんは男らしくない どうせスレも覗いてるんだろ?速く消えて関東に逃げ帰れ
これでも意味のある発言と言えるかね?
>>520 確かにSQL厨は男らしくなわな
inner joinとか女々し過ぎ
オラクルなんだからwhere句で=使って結べばいい
カッコつけすぎて無駄なモン書きすぎだよね
しかし、ほんとに東京モンは使えねえな
>>520 同意
一回のトランザクション内だから複数のカーソルでええやんなw
>>520 あんたには単価の良いお客さん向けのドキュメントは書かせられないな
みんな何言ってるのか分かんねえよ! でも段々面白くなってきたw 今の論争は、SQL厨 VS PL/SQL厨 VS OCI厨 なのか?
526 :
NAME IS NULL :2010/02/09(火) 01:48:33 ID:5sfGunk8
東京のSQL厨涙目www クビになって悔しいよなw OUTER JOINとか得意げに使ってんじゃね〜よwww
527 :
NAME IS NULL :2010/02/09(火) 01:51:45 ID:c2H9r7vs
いまどきはINNER JOINとOUTER JOINは普通に使うでしょ。 Oracleに限ってはWHERE派が多いのは事実
WHERE=だと無駄が多くね?
無能と性格異常でクビになった人が逆の立場を夢想してるスレはここですか。
530 :
NAME IS NULL :2010/02/09(火) 02:17:37 ID:5sfGunk8
SQL厨登場(笑)
論争になってないがな カーソルで回すほうが速い理由を説明するならともかく どう考えても「東京もん」のほうがまともじゃろ わしは529が正解だと思うぞ
>OUTER JOINとか得意げに使ってんじゃね〜よwww え、もしかしてご存じでない…?
オラクルではINNER JOIN使うよりも FunctionをSQL内で使って値を取ってくる方が速い件
534 :
NAME IS NULL :2010/02/09(火) 21:29:16 ID:2iVc1Ngh
ところで、SQLのコーディングルールみたいなのってどうしてる? キーワード(例えばSELECTとかUPDATE)は大文字、項目名称は小文字にするとか。 SELECT文とかで、削除しやすいようにカンマはフィールドの前にするとか。 SELECT A ,B ,C FROM TABLE_A それと、プログラムから参照する場合はテーブルを直接参照するんではなく、ストアドから呼び出すとかわりと徹底しているところもあるよね。
>>534 単独開発なのか、複数協力会社参画での開発なのかによって変わる。
後者になって複雑になればなるほど、
「select *」で列指定するのは禁止&ゲッター/セッターなどでも
カラム位置指定での取得は禁止、とか
必ずストアドやビューを経由しろ、とかになってく。
コーディングルールについては、分かりやすさを犠牲にした小手先の技は使わないところが多いだろう。
項目名称は大文字のPJが多かった印象。
DBの設計というか、ER図とかについての質問は どこでしたらいいでしょうか・・・?
断然先頭カンマ派 後ろにつけるやつは爆発しろ
>>537 T字の場合ERの意味が違うからな。
T字はEntity-relationshipじゃなくてEvent-Resourceだったと思う。
>削除しやすいようにカンマはフィールドの前にするとか 理由としては弱すぎる 前につけようが後につけようがたいして変わらん 単なる好みの問題 538みたいな奴もいる
541 :
NAME IS NULL :2010/02/10(水) 15:47:59 ID:84PirwtY
SQLの構文は比較的にシンプルだけど、表現方法の好みの差あるよな。その人の出自によるけど 現代的なプログラミング言語にならって、お好みに整形してくれるツールがほしいな。 それとサブクエリーを何十にも多用するのはSQLの良いところだけど、 多用しすぎて理解に苦しむ場合もあるんだけど、もうちょっといい方法がないものかと思ったりもする。
後ろにカンマ付けたら修正前と修正後を比較する時分かり辛いじゃないか。
サブクエリー使うより、ストアド使ってカーソル回す方が現実的
はいはい、現実的、現実的。
冷たい奴だな お前らだって東京嫌いだろ?
546 :
NAME IS NULL :2010/02/11(木) 05:41:25 ID:/Sz2f5yX
なんだ、最近よう湧いてる沖縄のアフォか。 ちゃんと勉強してから書けよ
大事なのはルールを守ること、守らせることだろ。 プログラマが10人いたとして 10人全員が納得する(好みに合う)ルールなんて作成できないだろ。 先頭カンマ派に聞きたいのだが、 関数の引数も先頭カンマ? そうじゃないとおかしいよなw
オレが今まで出会った中で 一番すごいSQLコーディングルールは 結合禁止!! 10年前の話だけどなw
ここにはプログラマーしかいないのかよ
前カンマだと、カラム追加の時に修正行が少ないし、修正漏れが起こりにくいので好き。
col3というカラムを足す時、こうなる。
■前カンマ
SELECT
col1
, col2
, col3 ← 追加
FROM ・・・・・・
■後カンマ
SELECT
col1,
col2, ← 変更(カンマ追記)
col3 ← 追加
FROM ・・・・・・
>>547 関数の引数も、ってどういう意味?
>>550 そういう小手先のテクニックは普通使われない。
ごく小規模で自社のみが使う短期利用システムとかならあり得るが。
たとえば、その論調で「じゃあ、SELECT文に新しい取得列を追加する場合は、
一番最後じゃなくてSELECTの直下の行に入れていけばいいじゃん」も成立する。
が、これも同じく採用されない。
多くのプロジェクトでは、後カンマで素直に書け、
記述を追加するのは(あったとしても)特例をのぞけば一番後ろだ
(特例としては、たとえば行の更新日時や最終更新者など)、という、
誰でも思いつき、「読むときわかりやすい」一番無難そうな規約にとどめる。
取得カラムを追加する場合はテーブル定義と同じ順で書く。 複数テーブルから取得や複数カラムを1カラムに纏めて取得する場合等はともかく。 でないと作成者以外が見た時テーブル定義書と見比べるのが面倒。 カンマはカラムの後ろに記述しなければいけないという世界共通規約はおそらくない。
質問です! 家計簿ソフトを作ろうと考えているのですが、 家賃の入力とか食費を入力といった「入力」という 行為はエンティティになり得ますか? 初歩的な質問ですみません
>>552 >でないと作成者以外が見た時テーブル定義書と見比べるのが面倒。
テーブル上でのカラムの存在位置を明確に意識した上でのコーディングは
(古い時代の一部の性能対策を除けば)過去から嫌われるコーディングに他ならない。
複数ベンダー、複数作業主体、複数案件(それぞれ、実施されたり切り戻されたり)が入り乱れたとき、テーブルへの列の追加や削除が
すべての環境ですべて一致する保証をとる行為は現実的に困難になる。
環境移行が行われ新テーブル体系に移ったときも同様。テーブルイメージ
(といっても、カラムの並び順とか程度だけど)は
おそらく「一番上の会社が認識しているイメージ」に強制的に変更される。
だから、カラム位置という要素に依存しないコーディング規約が
徹底されることになる (これらの例はすぐ上で出てるので割愛)。
>552 の話も、付随して意識する必要がなくなる。
他社の環境でのカラム並び順と、自社の環境でのカラム並び順が同じとは限らない、
それどころか数年後に自社が使わされてるカラム並び順とも同じとは限らないのに
今の自社の環境だけを前提にして労力をつぎ込んでも仕方がない。
>>554 最初にコーディング規約で決めておけば、大した労力をつぎ込む必要は無いように
思えるのだけど、違うの?
ちなみに
>>554 さんは、具体的にどの程度の規模のPJの話を言ってる?
>>553 ここはOracle質問スレだけど、その家計簿ソフトでOracleを使うの?
>>555 >最初にコーディング規約で決めておけば、大した労力をつぎ込む必要は
>無いように思えるのだけど、違うの?
>554 で示したような理由から、カラム並び順について「不定」とした場合、
カラム順が全環境で一律固定であるという前提に頼ったコーディングは避けるべし
(これは当たり前)となるし、
同様にそれを前提とした小手先のテクニックも最初から否定傾向となる。
自分だけ/自社だけがステークホルダーなんて場合を除けば、
それを肯定に持って行くのはとても大変なこと。
「”根拠はないけど”こういうやり方にしましょう、
このシステム全体をそのやり方で統一させましょう」というくらいに。
そんなことでいちいち手間をかけないために、そんな規約は定めない。
>ちなみに
>>554 さんは、具体的にどの程度の規模のPJの話を言ってる?
分割発注のポリシーは発注元によるが、
一つの開発会社に単独開発させるのは無理だ、と判断され
「(分割のコストを受け入れて)意図的に分割統治させる」くらいの規模から上。
規模が直接の問題じゃないが、規模に比例して上記要素が増えるのが実経験上の感覚としてある。
カラム順が変わったら動かなくなるなんて誰も言ってないじゃん。 読みやすいか読みにくいかと言ってるだけ。 それにテーブル定義は誰かが作ったらそれを全環境に使いまわすものだと思うけど。
>>558 >それにテーブル定義は誰かが作ったらそれを全環境に使いまわすものだと思うけど。
>554
>複数ベンダー、複数作業主体、複数案件(それぞれ、実施されたり切り戻されたり)
>が入り乱れたとき、テーブルへの列の追加や削除が
>すべての環境ですべて一致する保証をとる行為は現実的に困難になる。
>>556 他に質問できるところがなかったので
ここで聞いてみました。
Oracleには直接関係ないけど、
DBの設計ということで勘弁してもらえませんか?
後ろカンマにしちゃうとフィールドを追加した行以外の カンマを追加しただけの行も修正行として差分がでちゃうの。 だからやだぷ。
こまけぇこたぁ良いんだよ。
DBの設計経験がないのか・・・それじゃあ 答えようがないよな・・・すまん
行を他の表にコピーしたいけど、 列の値によってコピーする先の表を変えるには どうすればいいんだっけ
{ a, b, c, d, } とかける言語は増えてきてるから、そのうちきっとSQLも。 それまでは宗教論争が続きそうだな。
>>566 INSERT ALL|FIRST または動的SQLじゃね
宗教論争に参加するつもりはないが
カンマを前につけて書いている本を見たことがない。
だから、カンマを前につけるのはすごく違和感がある。
大昔は前カンマが主流だったよ Win3.1時代だがw 1カラム毎のカーソル回せ! カンマなんか気にならなくなる そして東京モンを追い出せ
はいはい、カーソル、カーソル。
3カラムのときは3回まわすわけですね わかります
沖縄蛮族と一緒にするな 私は生粋の大阪人だ
リソース・コンシューマー・グループのマッピングにルールがなかったら、 *_USER.INITIAL_RSRC_CONSUMER_GROUPが割り当てられるって マニュアルに書いてあるんですが、INITIAL_RSRC_CONSUMER_GROUPに 値をセットする方法がわかりません。 どなたかご存じの方はいらっしゃいましたら、教えていただけませんか。
>>573 OEMを使うのが一番簡単
それ以外の方法だと確かプロシジャーだかパッケージがあったと思う
オラクル10gを入れ、DBとして運用を行なったサーバAがあります。 一年ほど運用した後に、もしもの際に備えてもう一台サーバを用意することになりました。(サーバBとします。オラクルは同じ10g) サーバAで運用しているDBの非シードテンプレートを出力し、作成したテンプレートを使いサーバBにDBを作成した後 サーバAのDBのフルバックアップファイルを用意し、RMANでサーバBにリストア・リカバリを行って 同じDBを作成できますか? Aをメインで運用しつつ、Aに障害が発生した場合Bを動かし、 Aで作成された差分バックアップファイルで適用させようと思っているのですが RMANでこういったことが可能なのかご存知の方ご教授願います。
>>575 1つ目はできる。
Oracle のソフトウェア自体は別途インストールする必要はある。
DBは作成しなくてもフルバックアップがあればそこから作れる。別に作っても構わない。
2つ目は差分バックアップを自動的に適用しようとするんだったら
DataGuardを使ったほうが楽だと思う。
>576 ありがとうございます。
>>575 RMANだったらDuplicationコマンド使って全部自動でクローンDB作れる。
クローンDBのSID名は後からnidで変えればいいし。
2番目はまさにDataGuardのコンセプトそのものだな。
>>578 RMAN の duplicate database は 11g 新機能だと勝手に勘違いしてたよ。
9i や 10g でも使えるんだね。知らんかった…
DataGuardはEE限定だね
581 :
NAME IS NULL :2010/02/16(火) 11:50:17 ID:6yZYYNE/
どなたかわかる方いらっしゃったら教えて下さい。 Application Express 3.1.2で、 ログインページ101を誤って消してしまったため、 再度101ページとして作り直したのですが、 開発画面に出る、ページを示すアイコン(1ページなら家のアイコン)が 鍵じゃなくて歯車のようなものになってしまいました。 触ってみた感じ、普通にログインしたりは出来るのですが、 とにかくアイコンが前と違います。 デフォルトのログインページと、何か違うのでしょうか。
>>579 9iからDuplicationコマンド使っているよ。
というか当時はRACのクローニングがサポートされているのってRMANぐらいしか適当なのが無かった。
勿論O/Sレベルでは色々と方法があるんだが、働いていた場所が欧州だったから、Oracle標準ツールで
なんとかしないと何かと面倒だった。
操作ログがとれるOracleのGUIツールってありますか?
ものすごいスレチなんですが、気になって... 電気設備の法定点検では全てのサーバーを停止していますが大手プロバイダーとかはどうしてるんですか?
OracleのKVSへの対応ってどうよ? まさか、KVS無視してるとか、ただ敵視してるとかで なにもしてない、ってことはないよな。
googleやAmazonやmixiといったWebベースで不特定多数の顧客相手に商売しているところが システム構築する際、Oracleなどのrdbmsの導入を最初からあきらめ、それらが全部、データの 一貫性を捨てることで(もしくはDBに頼らないでアプリケーションで対処することで)成功し、 それからほぼ10年たった今、それらが段々大きく取り上げられ始めたことって 素敵なことやん。
>>585 KVSへの対応ってなんだ?
Oracleとは別にKVSベースのDBエンジンをラインアップに持つべきって事?
>>587 まあ、
>>586 を読めば分かると思うけど、今までRDBMSが頑なに守り続けていた
データの整合性を崩すことで、新たな分野(しかも大規模な)への進出が出来ているんだから
このビジネスチャンスを逃すのはなんだか惜しいな、と思うのですよ。
レプリケーションを使えばとか議論はあるかも知れないけど、それではコストが
とんでもなく上がる。だから、googleやアマゾンはOracleを使わなかったわけでしょ。
KVSはデータの整合性の矛盾をアプリケーションに押し付けることでスケーラビリティを
飛躍的に上げたけど、もし、Oracleにロックを掛けるモード、ロックを掛けないモードが
選べることができて、その矛盾をユーティリティで吸収出来るようにすれば、新たな
ビジネスチャンスが生まれるのではないかと思った次第ですよ。
Oracle を KVS として使うことは自由だろう。 ビジネスチャンスだと思うんだったらさっさとやれば良い。誰も止めないよ。 バズワードに踊らされてるだけにしか見えないけどね。
>>589 >Oracle を KVS として使うことは自由だろう。
今のOracleで出来る訳ないでしょwww
なんにも分かってないなぁ。
>バズワードに踊らされてるだけにしか見えないけどね。
google、youtube、amazonと成功例がいっぱいあるんだけどなあ。
>>590 だからOracleが畑違いのKVSなんかに手を出す必要ないじゃん。
そもそもGoogleでさえ、BigTableそのもので商売しちゃいないのに。
他の企業がやって、利益を上げているところがあるとなると、二番煎じ三番煎じと分かっていても やらないと、株主・投資家が納得しないのですよ。
じゃあOracleもサーチエンジンや動画共有サイトを立ち上げるべきだと?
>>593 だからお前がやれと言っている。
ところで何%くらい株持ってるの?
>>592 本当に畑違いなのだろうか?
MSも手を出し始めているのに。
ユーザー数もアクセス数も不特定でテーブルもどこまで大きくなるか分からない環境では
圧倒的に低コストでスケーラビリティを上げられるシステムを選ぶんじゃないだろうか。
597 :
NAME IS NULL :2010/02/18(木) 13:45:43 ID:vxxnhyCd
オラクルのCoherenceやアイビーエムのWebSphere eXtreme ScaleなんかがKVSじゃないの? これらってデータグリッドとか呼ばれてたけど、根本はKVSでしょ
>>591 ほんとかなぁ。
電気設備をニ系統持っているということ?
年一度の法定点検の為だけに?
>>598 はあ? ミッション・クリティカルなサーバーならバックアップ電源は必須だし、
停電時でも予備電源で運用続けるのなんか常識だろ?
法定点検のためなんかじゃなく、停電が起きた時の事を考えてそのあたりは
ちゃんとしているよ。
601 :
NAME IS NULL :2010/02/19(金) 00:18:50 ID:/h43/+Tx
まぁそうだな。ビルで言ったら自家発電とか電源車で供給できないのは意味がいないからな
>>600 それはさすがに言い過ぎ。
実際そのくらいやってるところ
(それこそ自家発電系統を確保するとか)もあるが、
多くは事前にメンテナンス予定を立てて
法廷点検時はサーバーを止めるとする程度で十分だし、
ガチでミッションクリティカルなサーバーはディザスタリカバリ対策で
「そのビル一つくらい、丸ごと死んでもなんとかできる」体制だったりする。
603 :
NAME IS NULL :2010/02/19(金) 00:22:04 ID:/h43/+Tx
あんま詳しくないんだが、近代的なビルはCVCFってんだっけか そういう装置は備えてるもんなの?
>>603 最初からサーバールームが設置される(誘致する)前提で設計しない限り、
緊急時用の電源系統を最初から提供するビルってのは多くない
(ように思うが、経験少ないのでもしかしたら間違ってるかも)。
入居企業に緊急電源系統を必要とする企業がいない場合
無駄な金食い虫になるだけだからね。
将来を見越して、発電設備を入れられるスペースを確保しておくくらいは
やってるところが多いだろうけど。
>>604 補足
>604 で書いたのは、消防法とかで出てくる
「ビル自身が必要とする緊急電源(消火設備向けとか)」じゃなくて、
「入居してる企業へ有償サービスとして提供する緊急電源設備」ね。
避難経路や消火設備用の自家発電装置を持つビルは多くあるけど、
それはビル自身向けで、
ビル自身が要求する容量以上のキャパをあらかじめ確保して、
それを(未知の)入居企業向けに責任もって提供するというサービスを
デフォで受けてるビルってのは少ないんじゃないかなぁ、と思う。
>>602 そうか?
俺の入っていた所は大抵それぐらいの事はしていたぞ?
勿論ビルひとつが吹っ飛んでもいい様にRACでキャンパスクラスのクラスター組んでいたし。
流石にコンチネンタルクラスのクラスターはまだ組んだ事はないが。
電源系統の二重化より強力な専用回線で他のサーバー室と同期を取っている。 方が面白い
.∧_∧ ゴシゴシ ∧,,∧ ∧,,∧ ( `・ω・)つ (`・ω・) (・ω・´) −=≡ ( づ ノ ┐ / o o o ) ゴシゴシ ┌ と__/"(__) −=≡ ( ・∀・) しー-J\_ _/しーJ (´д` )  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
610 :
NAME IS NULL :2010/02/19(金) 23:31:45 ID:e8EafeOG
すいません、質問させてください。 Oracle11gを使ってます。 ある日、勝手にUSERS表領域が読み取り専用になっていることに気づき、 そのときは理由を深くは追わずに書き込み可能に変更したのですが、 一週間後、次は別の表領域(自分で追加)が読み取り専用になっていました。。。 ある1つの表領域だけが読み取り専用になる理由として何が考えられますか? もし分かる方がいればご教示いただきたいです。
管理者以外ALTER TABLESPACE権限を持ったユーザーでログイン出来るようにしてないよね?
612 :
NAME IS NULL :2010/02/20(土) 00:23:11 ID:IY/sHKIU
>>611 返信ありがとうございます。
管理者以外にはALTER TABLESPACE権限は与えていません。。。
>>610 RMAN使ってトランスポータブル表領域のジョブとか走らせていたりとかしていない?
>>610 理由は思いつかないけど、アラートログを見れば、いつREAD ONLYになったかは
分かると思うので、その時間に何をしたか探ってみたら?
ご質問です。 オラクルの完全外部結合(FULL OUTER JOIN)に不具合があると 聞いたことがあるんですが、 不具合の詳細を知っている方は、教えて頂けないでしょうか? ちなみにバージョンは10gです。
>>615 とりあえず日本語勉強してこい。
自分のすることに「ご」とかつけんな。
>>615 FULL OUTER JOIN を使用した SELECT 文の実行時に ORA-918 が発生するというもの。
618 :
NAME IS NULL :2010/02/20(土) 23:52:50 ID:G9fBWNdd
Oracleは不用品
10gR2(10.2.0.5)のクライアントのみ、Windows7をサポートする予定らしい。 リリース時期は、今年の第3四半期だと。 諸事情からこの情報は嬉しい。今年度末の納品に間に合わないのが残念だが。 それにしても「11gR2 for Windows」の品質は大丈夫なのか。 11gR2がやばそうなので、10gR2を残したっていう話でなきゃいいのだが。
Oracleはサポート契約を結ばないとバグの修正パッチを当てられない。 つまりサポート契約を結んでないOracleなど業務では使い物にならない。
621 :
NAME IS NULL :2010/02/21(日) 11:41:54 ID:qmDkSE7R
ぶっちゃけOracleバグ多いよな。 しかも放置するし、サポートも適当すぎる
まあな でも規模が大きかったりダウンタイムを限りなく少なくしようとするとOracle意外に選択肢がないのも事実だがな それと公官庁のシステムなんかだとアプリケーションサーバとかは何でも良いがDBだけはOracle意外 認めないってとこも多いわな
技術者が多い
>>621 だってバグ出しは顧客に任せればいいってラリーが公言してんだもん。
バグが多くて当たり前。
それがボラクルクオリティ。
>>622 ほう、それは意外だ。
取りあえず日本語勉強しなおしてこい。
626 :
NAME IS NULL :2010/02/21(日) 23:05:13 ID:9WoNxEEu
もう、みんなこれからはPostgreSQLにしようぜ
参考書にflashback databaseする前にmount exclusiveしないとだめとか かいてあってsqlplusでstartup mount exclusiveしてみるとちゃんとマウントされるんですが、 exclusiveの意味についてsqlplusのマニュアルで確認しようとおもって調べてもでてこないんです。 というか、mountのオプションはdb_nameでデータベース名を指定すると書いてあるんです。 もちろんexclusiveという名前のデータベースはありません。 これはいったいどういうことなんでしょうか?
>>622 確かに公官庁のシステムの入札条件なんか
Oracleマスターゴールド以上がXX名以上いること
なんてことあるもんな
システム構成を提案する時点でOracle以外の選択肢がないことが多いのは事実
>>627 exclusiveの意味通りだけど?
クラスターDBだったら他のインスタンス(スレッド)が間違って起動されてもそっちにはmountさせないって意味。
630 :
NAME IS NULL :2010/02/23(火) 19:02:19 ID:YFT5GxdN
Oracle 10g Express editionのLinux用を、CentOS5.4(x64)にインストールしようとしたのですがうまくいきません。 検索したところ、「64bit版に入れるのは、可能ではあるものの面倒」という情報を発見しましたが、具体的な方法については見つけることが出来ませんでした。 ・rpmで入れた場合のアンインストール方法 (rpm -eでは削除できませんでした) ・x64へのインストール方法 について、何かご存知の方がいらっしゃいましたらアドバイスをいただければ幸いです。 よろしくお願いします。
>>630 試してみた。
VMware server2.0 で CentOS5.4 (x86_64) を作成。
パッケージはネットインストーラ(CentOS-5.4-x86_64-netinstall.iso)を使用した
状態で「次へ」を選んだだけ。
つまり意識して何かのパッケージを追加インストールはしていない。
意図的に oracle ユーザの作成とかもなーんもしてないけどインストールできた。
(rpmインストールでoracleユーザは作成されてた)
root# rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm
root# /etc/init.d/oracle-xe configure
root# uname -rm
2.6.18-164.11.1.el5 x86_64
root# cat /etc/redhat-release
CentOS release 5.4 (Final)
root# ps aux | grep pmon
oracle 4317 0.0 1.9 226872 10104 ? Ss 02:27 0:00 xe_pmon_XE
root 5071 0.0 0.1 65372 860 pts/2 R+ 02:46 0:00 grep pmon
root# netstat -tpln | grep tnslsnr
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4164/tnslsnr
tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN 4164/tnslsnr
root# ORACLE_SID=XE
root# ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
root# export ORACLE_SID ORACLE_HOME
root# $ORACLE_HOME/bin/sqlplus -S /nolog
conn sys/XXXXXXXXXX as sysdba
select count(*) from tab;
COUNT(*)
----------
3528
quit
root#
>>632 追記。
アンインストールも問題なく出来た。
ただし、一部のディレクトリ(/usr/lib/oracle/xe以下)と、OSの
oracleユーザは残ってた。/etc/oratab もファイルは残ってるけど
中身は空になってた。
root# rpm -e oracle-xe-univ
root# rpm -qa | grep oracle
root#
>>632 念のため補足。
OSインストール後、yum update で最新状態にしてあります。
>>629 すいません、マニュアルのどこに載ってます?
探しても見つからなくて...
636 :
630 :2010/02/24(水) 10:30:10 ID:0/n14NHz
>>631-634 ありがとうございます! 成功しました。
まずお詫び。アンインストールに関しては
>>633 でOKでした。こちらの単純ミス(typo)です。申し訳ない。
で、インストールに失敗していた理由ですが・・・/etc/hostsの127.0.0.1の行にホスト名を記述していなかった、という単純なモノでした。
それが原因で、/etc/init.d/oracle-xe configureの実行に失敗していました※が、リスナーは動くので気がつくのが遅れてしまいました。
※Installation Completed Successfully.とは出るんですよね・・・:-<
上記のとおりリスナーは動いており、/etc/hostsを修正すれば(インストールに失敗した状態でも)とりあえず本体も動きます。
ですが、この状態だとcontrol.dbfが存在していないのです。どうもseeddbからの生成に失敗しているようですね。
しかし/etc/init.d/oracle-xe configureの方でseeddbを消してしまっているので、とにかくrpm -eでアンインストールして最初からやり直しする必要があったようです。
実行に失敗したことが明示されているのならコレはコレでありだとは思いますが、上記のとおり「成功した」と出てきてしまうので気がつくのが遅れてしまいました。
ともあれ、おかげさまで無事インストールすることができました。ありがとうございました!
ご存じの方がいらっしゃいましたら、ご教授願います。 SQL Developerのデータ・エディターのログ内容って、 Windowsの場合、どこに保存されるのでしょうか?
サーバAに入っているDBのフルバックアップを使用して サーバBにバックアップ元のデータベースを複製できますか? オフライン環境下での作業ですので、メディアを使用し他からデータは持って来れますがリカバリーマネージャの duplicate等が使用できません。 使用しているのはOracle10gです。 目的としてはオフライン環境下にあるPCにDBを複製することですので こういった方法がある等ご存知の方がいらっしゃいましたらご教授ください。
>>639 コールドバックアップを取ったファイルを持って行けばできる。
- 同じバージョンのOracleソフトウェア
- データファイル
- 制御ファイル
- 初期化パラメータファイル
- パスワードファイル (必要だったら)
- /etc/oratab など
- 必要なディレクトリ (USER_DUMP_DEST など)
このへんがあればいいのかな。コンサル料は200万円ね。
641 :
639 :2010/02/24(水) 22:45:27 ID:???
>640 回答ありがとうございます。 >639に記述をしてませんでしたが サーバAは停止させることができないので非一貫性バックアップしかとれないんです。
また後出しジャンケンか。ほんと困るよなぁ。 オフライン環境下での作業だと書いてあるじゃないか。 データファイルは BEGIN BACKUP END BACKUP で持ってきて、 あとはアーカイブログも持ってくればいいんじゃないの? RMAN を使えば簡単だとは思うけどね。頑なに使いたくないんだろう、どうせ。
>>639 [ソース側での作業]
1. alter database begin backup;
2. データファイル及びコントロールファイルを全部メディアにコピー。(Redoはresetlogsで上げるからいらん)
3. alter database end backup;
4. alter system switch logfile;
5. 念のために1のコマンドを打つ前のアーカイブログファイルと4で生成されたアーカイブログまでの全てをメディアにコピー。
[ターゲット側での作業]
1. データファイル及びコントロールファイルを全てターゲットサーバー側にリストア
2. init.oraをデータファイルやコントロールファイルの位置に基づいて修正
3. startup mount;
4. recover database using backup controlfile until cancel;
5. 永久にアーカイブログを当てろと言われ続けるので、ソース側の5で取得した最後のアーカイブログを充ててエラーを返さす。
6. alter database open resetlogs;
>>639 良く見るとターゲット鯖は「オフライン環境下にあるPC」とあるからプラットフォームは窓なんかいな?
だったらメディアにコピーする時にはocopyコマンドだな。
>>644 わからないよ〜
トランスポータブル表領域を使わないといけない場合も
考えておいたほうがよいかも。
次はメディアの容量がとかファイルシステムが、とか言い出すかもしれないな。
>>645 トランスポータブル表領域は該当表領域を一度読み込み専用に変えないとならないから、無理なんじゃない?
RMAN使えばトランスポータブル表領域セットも生成可能だけど、どうせRMANは使わないとかってオチなんだろ?w
EnterpriseManagerにあるDataBase Cloneってどんなときに使うの?
648 :
NAME IS NULL :2010/02/26(金) 18:08:52 ID:oqaTR62P
基本的なことを教えてくれ テーブルフルスキャンしたときデータキャッシュには入らないよな? それとも既に入っているキャッシュを押しのけて無理やり入ろうとする? 入りきれない場合はキャッシュは空になる? 基本的なことだけど忘れてしまい参考書を無くしてしまったから確認できない
650 :
NAME IS NULL :2010/02/26(金) 22:21:30 ID:oqaTR62P
651 :
NAME IS NULL :2010/02/26(金) 22:27:27 ID:XSER53NV
もう、みんなこれからはMSSQLかPostgreSQLにしようぜ Oracleのバグにうんざり
>648 必ず一度キャッシュに入る。 けど、抜けやすいキューに入るから 保持したい場合は、工夫が必要。 のはず。
>>647 文字通りクローンDBを作成出来る。
まぁ、実際は裏でRMANのDuplicateが走る。
657 :
656 :2010/02/27(土) 03:26:51 ID:???
オレが答えなきゃいけないのかと思った
>>639 フルバックアップってどうやって録ってるんだ?
RMANか?
だったらRMANのバックアップセットがあれば、別サーバーにリストアも可能だぞ?
661 :
NAME IS NULL :2010/02/28(日) 00:24:23 ID:FTs07dMV
>>660 試すも何もRMANのDuplicateコマンドは9iからずっと使っているよ。
気をつける点はバックアップセットがターゲット側のサーバーから同じディレクトリ構成で
アクセスできる状態になければならないといった点かな。
RMANは使いこなすと便利。
それこそスタンバイDBもRMAN使えばソースDBを無停止で作成出来る。
>>661 OK。
ただしソースデータベースがnoarchivelogモードだと勝手に一度mount状態にしてRMANの
コールドバックアップを録ったりしたと思う。
664 :
NAME IS NULL :2010/02/28(日) 01:46:37 ID:JifyTQlU
DBのコピー問題はすべて解決ですな。
666 :
NAME IS NULL :2010/03/03(水) 14:06:35 ID:5O+uIeTK
テーブル1:ID,Name テーブル2:ID,Address テーブル3:ID,Tel テーブル4:ID,OfficeAddress 上記のように細分化したテーブルをIDをキーとして連結する方法を調べて います。今まではWhere文で繋げていたのですが、ストアドプロシージャを 使えば管理しやすいと教えてもらいました。 そこでストアドプロシージャについて調べてみたのですが、Oracle内部に 置く関数のようなものと感じ、実際にどうやれば実現できるのかがわかり ません。 アドバイスお願いします。
PL/SQLで検索汁
40GBのHDDにORACLEサーバいれて半年運用してたら ディスクがいっぱいになっちゃったんだけど どうするのが一番いいですか
669 :
NAME IS NULL :2010/03/03(水) 23:16:46 ID:+tYETDVR
Oracleイラネ
ところで11g R2のWindows版リリース時期ってそろそろ出てきた?
>>670 某社は秋から販売開始らしい。
っていうことは、ローンチは夏ぐらいかな?
>>668 マシンごとリプレース
半年で破綻するようなデーターベース設計ならその場しのぎをやったら一ヶ月後に破綻だ。
>>668 せめて、何が容量を食いつぶしているか確認してからご相談下さい。
WindowsでもUNIXでも、調べればすぐ確認できます。
>>668 archivelogがずっと吐かれ続けてそのまんま放置とかってオチじゃないのか?w
でもOracleは
>>669 の事好きだって言うてたよ。
>>660 取りあえず直近で試した環境はこんな感じだった。
ソースDB:
- 10g R2 RAC (DBFは11G R1のASMインスタンス上に配置)
ターゲット:
- 10g R2 シングルインスタンス (DBFはファイルシステム上に配置)
テープデバイス:
- EMC Netwokerer (Ultrium)
ソースとターゲットは別サーバーだが、120GBのデータ量の場合、約1時間でRMANのDuplicateが完了。
>>677 途中変遷を示すようなメッセージはでるの?
shatdown immediate
みたいに終わるまでだんまり?
>>678 出るよ。
どのDBFをどのバックアップセットからリストア中とかちゃんと出る。
後はロールフォワードに必要なアーカイブログのリストア/アプライも表示される。
RMANのリストア状況を知りたい場合には以下のSQLが便利。
SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK, TIME_REMAINING,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK;
680 :
NAME IS NULL :2010/03/11(木) 22:58:49 ID:GwR3uE17
Oracleって3年後にあるのかなぁ そろそろPostgresにでも移行できるおうにしようかな
MySQL派生版に期待だな。 Postgresはダメ。
PostgreSQLは順調に欠点を改善してきたと聞いたことがあるが実際問題ダメなのか?
すれ違いよそでやれ
少なくとも大手金融、公官庁の基幹システムでオープンソース製品なんか 認められてないんだから、Postナンチャラカンチャラに限らず、きちんとした サポートがないももは、これ以上伸びないだろ
スキーマモードの impdp する時は、imp の時みたいに、 先に空のスキーマを作成しなくてもいいんでしょうか。 「19 オリジナルのエクスポートおよびインポート」見る限りだと、 imp の時は、システム権限とかインポートされないみたいで、 先にスキーマを作成した後に imp してたんですが、impdp の 時は不要なんでしょうか。 やってみたところ、システム権限/オブジェクト権限はインポート されてたんで ok って思ってるんですが、ちょっと不安です。 何がインポートされて、何がインポートされないって言うような 情報ってどこかにないでしょうか。
>>686 別に空のスキーマを作成する必要は無い。
>>685 そりゃちょっと世間が狭くないかい?
そんな事を言うなら、一昔前は基幹系はメインフレームだけで、
オープンシステム系のOracleだって使われてなかったぞ。
ちょうど切り替え時期の頃の基幹系の担当者は、Oracleに対しても
メインフレーム並みの堅牢性を求めるので、しんどかった。。。
オープン系とメインフレームじゃ、価格が全然違うっつーの。
689 :
NAME IS NULL :2010/03/13(土) 06:07:16 ID:yAvnvoU2
ポスグレはMySQLと比べて 初期に日本でのみ普及して海外では普及しなかったし、今でも出遅れている。 さすがに今からはもう取り戻せないくらいの差になっているので 今から勉強するのは「わざわざ日本限定のマイナー技術を勉強しようとする」 くらいオススメできない。 MySQLは日本では機能不足と認識される期間が長く続いたが、 海外のシンプル&最小限のアプリ構築では実績もそこそこあり情報も多い。 ただしカネにはならない。 DB2はロックが変態。あと日本IBMはム(ry SQLServerはプログラマーの負荷を下げるという名目での 糞仕様が山盛りで、下手にはいると抜けられない蟻地獄。 Oracleは1億持ってっても「バグではなく仕様です」で逃げる究極のチキン。
>>689 そうすると選択肢として残るのはInformix、Sybase、HiRDB、Symfowareあたりだな。
>>689 お前はDBより、まず日本語の勉強をしろ
OSがSolarisで、オラクル9iのクライアントにパッチをあてることになったのですが、 何ビットのオラクルが入っているかわからないためあてるパッチがわかりません。 何ビットのオラクルが入っているのかどうやればわかるのでしょうか?
Plus使えるんなら SELECT * FROM V$VERSION; で確認できないかい?
696 :
694 :2010/03/14(日) 23:32:51 ID:???
>>695 SELECT * FROM V$VERSION;を行いますと
たしか接続先のDBの情報が出てきたようが気がするのですが。。。
説明不足ですいません、今回あてるクライアントにはDB自体は入ってないです。
こちらの勘違いかもしれないので、明日確認してみます。
>>694 クライアント側かぁ。
たぶん、KROWN見たら確認方法が載ってると思うけど。
OracleUniversalInstall(OUI)を起動したら、出てこないかな。
>>696 なるほどクライアント側だったんだね
見落としてた、ごめんよ
>>697 さんのOUIで確認するのと、
file $ORACLE_HOME/bin/sqlplus で確認してみるのもありだね
699 :
694 :2010/03/15(月) 23:56:57 ID:???
>>696 >>697 OUIはリモートにあるためちょっとやり方がわからずできませんでしたが、
file $ORACLE_HOME/bin/sqlplus で確認してみたところ
64bitと表示されましたので64bitのようです。
ありがとうございました。
Oracle USで登録したアカウントって削除できないの? もう使わないんならほったらかしでいいんかな?
放置でいいでしょ。 まじめに個人情報入れてる場合は、でたらめなやつに変更してから。
なるほど、そうしてみる。ありがとー
703 :
NAME IS NULL :2010/03/22(月) 19:05:40 ID:QFIWBKIJ
Oracle11gR1をお試しで家のパソコン、Windows XPにインストールしてみたんだが データベースのスタートアップ、シャットダウンがOEMとAdministrator Assistant for windows からしかできなくて、sqlplus からshutdownとやると、応答が返ってこないよ。 Windows版ってそういうものなんかなー?
shutdown immediate ならどうなる?
705 :
NAME IS NULL :2010/03/22(月) 23:02:02 ID:QFIWBKIJ
>>704 shutdown abort 以外は全部だめ。
まあ、これから停止はAAWでやるからいいよ。
Windows版はお試しでやってるだけだから。
勝手にやってくれ
>>701 で古い情報はちゃんと履歴としてテーブル内に論理削除状態で残っていると。。。
さらに履歴テーブル等にも変更履歴が残っていて、
さらに外部媒体にバックアップがされていて
半永久的に保存されていると。。。お疲れ様でした。
そんな事が気になるならさっさと改名して引っ越せば良い
710 :
NAME IS NULL :2010/03/25(木) 00:28:55 ID:0H/nzx4A
バージョン:10.2.0.4 環境:HP-UX sqlplusで select 列名 from テーブル名; で検索をすると、検索結果の列名が途中で切れてしまいます。。 col 列名 format a桁数 で綺麗に表示が出来るのですが、なにぶん列数とテーブル数が多くて。。 マニュアル等は見たのですが、何か他にいい方法は無いでしょうか?
>>710 set markup html on;でもしてHTMLで吐き出してブラウザーででも見るとか?
それが面倒だったら他のクライアントツール使うしかない。
>>711 テキストで出力したいとです。
簡単にはいきませんかね。。
set line 横の文字数 spool on ファイル名 ステートメント spool off
>>710 713とかぶるけど、
set linesize ***** → 必要な桁数
あと、ここら辺りも設定しておくと幸せになれるかも
set pagesize 5000
→ 何行置きにヘッダ行を出すか。先頭のみヘッダを出す時は0だっけ?
set trimspool off
→ spoolファイルへ出力する時、linesizeで指定した桁数になるまで行末までをスペースで埋めるのを止める
詳しくは、SQL*Plusリファレンスの「set」の項目を参照の事。
>>710 PL/SQLでディクショナリを参照してcolコマンドをテキストで生成して実行、ってのを昔使ってた
ソースは手元にないんで出せないけど参考まで
>>711 HTMLで出力して、何がいいんだか。。。
>>716 htmlに出力すると結果をExcelとかで直に開けたりするし、それなりに使い勝手はあるよ。
>710 >715 さんと近いけど よくやるのは、SQL でコマンド文自体を生成する。 v$表ひけば、col文が簡単に作れるきがする。 それを、ファイルにだして、@
719 :
NAME IS NULL :2010/03/28(日) 09:03:34 ID:SOa4gNw3
テーブル作るとき、カラム名切れちゃう列のカラム数増やしておく col1 number(4) → col1 number(8) か、 select 列名 as honyarara ........ で、カラムに別名でもつけとけばいいんでないか。
Select Table_Name From User_Catalog Where Table_Type = 'TABLE' この記述で全テーブルを取得したいのですが、文字化けしたような名 前のテーブルが混ざってきてしまいます。 おかしいテーブルは全てBIN$z〜で始まっているので、その文章を含む ものは弾くとwhere文に入れてみたのですが、うまくいきませんでした。 こういったテーブルだけを抽出しないようにするにはどうしたらよいで しょうか?
PURGE RECYCLEBIN; ゴミ箱機能自体オフにしたいなら ALTER SYSTEM SET RECYCLEBIN = OFF;
>>720 BIN〜と表示されているテーブルは、DROPされたテーブルです。
OracleではDROP命令が発行されるとテーブル名をBINに書き換える事で
あたかも消えたかのような振る舞いをするのです。
これはゴミ箱機能といって間違ってテーブル消しちゃっても
もとに戻せるというWindowsのゴミ箱のような機能です。
ゴミ箱を空にしたいならPURGE RECYCLEBIN命令
ゴミ箱を空にしないままゴミ箱の中のテーブルを表示しない方法は、
user_tablesとかのビュー使った方がいいんじゃね?
indexを作り直して 処理速度が遅くなることってあるんでしょうか。
ぁ、バージョンは9iです・・・。
>>723 index再作成後、統計情報を取得し忘れていない?
取得してないせいで、indexを使わない検索になってるとか。
727 :
NAME IS NULL :2010/04/01(木) 22:49:58 ID:YW/C8ZVP
実行計画といえば、SQLDeveloperで見れるのかなあ?
728 :
NAME IS NULL :2010/04/01(木) 23:06:50 ID:WFWqN2B1
SQLDeveloperみれたはず。
表領域を自動拡張ONにしている奴は ディスクデフラグを忘れていることがある。 これまで見た最高記録は16万断片。 そういう表領域にINDEX作ったら 検索で足を引っ張るよ。
他ユーザーがいつCommitを打ったか調べる方法ってあるんかんいな? RDBMSのコンセプトから言うと図りようがない気がするんだが。 そもそもOracleの分離レベルってREAD COMMITEDだし・・・。
>>731 ログマイナー使うのめんどいな。
でもやっぱそれしかないか・・・。
質問です。 EXP(Oracleユーティリティ)をアプリの機能として実装しようとしています。 セキュリティの観点から「必要な場合」のみEXP_FULL_DATABASEを有効とするために次の仕組みを考えています。 (アプリ画面からの指示で特定のスキーマをEXPします) スキーマAAAに与える権限 1)必要最小限のシステム権限 2)EXP_FULL_DATABASEロール スキーマAAAのDEFAULT ROLEをNONEとして通常は1)のみの権限で動作します。 「必要な場合」にはSET ROLE で2)を有効にしてスキーマBBBのEXPを実行します。 EXP スキーマAAA/pass@接続先 owner=スキーマBBB; ここで気づいたのですが、SET ROLEはセッション確立後に発行するコマンドのため、 OracleユーティリティであるEXPコマンドで実現する方法が分かりません。 何かよい方法は無いものでしょうか? 環境はOracle10gR2(10.2.0.4)、Windows2008Server(x86)です。
734 :
NAME IS NULL :2010/04/06(火) 22:43:52 ID:5NEu4F4K
OracleXEClient.exeをインストールして SQL/PLUSで以下の接続をテストしました。 conn testuser/testpass @192.168.1.1/testdb 普通に接続できます。 しかし、以下のようにDB部分を省略するとエラーがでます conn testuser/testpass @192.168.1.1 エラー内容 ORA-12504: TNS: リスナーはCONNECT_DATAのSERVICE_NAMEを取得できませんでした。 DB名を省略しても接続するにはどのファイルにどのような記述を追加すればよろしいでしょうか? ちなみに以下クライアント側のtnsnames.oraです testdb = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = testdb) ) ) サーバ側のSERVICE_NAME も testdbになっていました。 詳しい方どうかご教授ください。
>>733 アプリ側でEXPする前に権限与える様にするしかないと思うが?
でもって、EXPが終了したらロールを変更するなど作り込みが必要だろうよ。
>>734 環境変数設定すれば?
sett ORACLE_SID=testdb
といった感じに?
UNIONしたVIEWに関して教えてください。 【TABLE1】 COLUMN_A NUMBER(4) 【TABLE2】 COLUMN_A NUMBER(4) 上記2つのテーブルを下記SQLでVIEW作成し、作ったVIEWをDESCで見てみたところ、 COLUMN_A NUMBER と表示され、NUMBERの桁数が不明となっていました。 【SQL】 CREATE OR REPLACE VIEW V_TABLE_A AS SELECT CAST(NVL(COLUMN_A,0) AS NUMBER(4)) AS COLUMN_A FROM TABLE1 UNION ALL SELECT CAST(NVL(COLUMN_A,0) AS NUMBER(4)) AS COLUMN_A FROM TABLE2; CAST関数、NVL関数を使わずにUNIONすると、実テーブルの桁数が継承されていたのですが、 関数を使ってUNIONするとNUMBER型の桁数は不明となってしまうのでしょうか? 初歩的な質問かもしれませんが、調べても上記現象の理由などが見つからなかったので、 質問させて頂きました。 環境は OS:AIX Version5.3 Oracle:Oracle 10g 10.2.0.4.0 です。 わかる方、どうかご教示ください。 よろしくお願いします。
>>734 つ〜か、クライアントの話だったのね。
普通に conn testuser/testpass@testdbで繋がらないか?
>>737 バグだね。
一応10g R1 Fixとなっていたけど、直っていないみたい。
SR上げてみたら?
11gR2 Win、出たね。
>>739 ご回答ありがとうございます。
そこまでレアケースではないとは思っていたのですが、
まさかバグだったとは・・・。
現在のVersionではどうしようもない、という事で
説明しようと思います。
本当にありがとうございました。
>>740 なんか空っぽのZIPファイルが落ちてくる…
IE8だと「Internet Explorer ではこのページは表示できません」とかなるし
どうなってんだろう?
>>742 Oracleでは珍しくない、
「サイトの向こう側がメンテ中(もしくは不具合発生中)」の状態。
週末とかは平気でサービス停止するのがOracleクオリティ。
月曜になってからやってみるとよし。
zip圧縮といっても、いろいろバージョンがあるからじゃない? オイラはWin32版11gR2公開当日にダウンロードして 今Lhaplusで解凍しているけど、中身は入ってるみたいだよ。
>>744 いや、今試してみたがファイルサイズがゼロの情報が送られて来る。
多分リンク先が死んでいるっぽい。
sql*plusのスクリプトで、IF文を入れ子にすることはできないのでしょうか? とりあえずIF文の入れ子やめて条件を全文ANDでつなげたら動いたんですが、 できればよりシンプルに書きたいので。 バージョンは10です。
>>746 PL/SQLブロックで書けばいいと思うけど
DECLARE
BEGIN
IF xxxxx THEN
IF xxxxx THEN
xxxxx;
ELSE
xxxxx;
END IF;
END IF;
END;
/
>>746 普通にPL/SQLで書けば良いんじゃないかと思うけど、そう言うことじゃないの?
もう少し具体的に何をやりたいか書けば、幾らでもアドバイスできると思うんだけど
PL/SQLにこだわらず、CASE文を覚えるとまた楽になるよね。
750 :
746 :2010/04/11(日) 23:10:55 ID:???
言葉足らずで済みません。SQL*Plusで sqlplus user_name/password@host @fname arg1 の指定で PL/SQLを書いたファイルを実行して、 BEGIN LOOP IF 条件A THEN IF 条件B THEN ELSE END IF; ELSE IF 条件C THEN ELSE END IF; END IF; END LOOP; END; / だと実行時にエラーになるので BEGIN LOOP IF 条件A AND 条件B THEN ELSIF 条件A AND !条件B THEN ELSIF !条件A AND 条件C THEN ELSE END IF; END LOOP; END; / のようにしたら動いたのですが、 エラーになる理由が分からない&できれば最初のように書きたいということです。
エラーの内容も示さずデバッグしろというのはずいぶんだな。
・代入は「:=」を使う。 ・処理なしの記載はNULL;(何もしない)という命令を使う。 ・行末はセミコロンが必要。 ・きちんとインデントする。でないとEND IFの対応にミスる。 ・シングルクォート(アポストロフィ)は注意して使う。 ・全角空白は使わない。 上記に気をつけて、もう一回書き直してみたら? きっと他愛もないミスをしてるだけだよ。
753 :
NAME IS NULL :2010/04/17(土) 14:21:27 ID:50ASHbe0
エラーになったプログラムをそのまま貼り付けなきゃ、答えようがないぢゃないか。 バカなの? 死ぬの?
規制でここのところ全然書けないので携帯から >751 すいません、エラーは「ORA-01756:引用符付き文字列が正しく終了していません。」です。 自己解決しました。 FTP転送の設定ミスでコメントの日本語が化けたファイルを実行していたせいです。 お騒がせしました。
質問です。 いままでLinuxでApache+PHP5+MySQLで様々なウェブアプリを開発納品して来たのですが、 今回クライアントがOracleを使っているという事で、MySQLの代わりにOracleを使って開発する事になりました。 現在使用しているサーバーはそのまま使わなければならないという事で、そのサーバーに新たにApacheとPHPをインストールしないと いけないのですが、サーバーを借り受ける事が出来ないので、開発用に同じ環境を社内に作ってくれという事で OracleとWindowsServer2003R2のディスクを借り受けました(30日しか使えないそうですけど・・・)。 WS2003もOracleも初めて使うのですが、とまどいつつもとりあえず余っているPCにWS2003をインストールし、 Oracleを同時に頂いた資料(恐らくクライアントが内部でサーバーを建てる為のガイド)を元にインストールしました。 接続テストも成功したのですが、Windowsを再起動すると、「サービスが起動出来ない」というようなエラーが出ます。 サービス一覧を見ると、Oracle関係のサービスがひとつ起動していなかったので、手動で起動しようとしてもエラーが出て起動出来ません。 恐らくエスパーじゃないと解決方法も提示出来ないとは思いますが、どういった情報を提示すればいいのかもわからないので よろしければ何を提示すれば、解決方法がわかるものなんでしょうか・・・? OS:WindowsServer2003R2 Oracle:10g よろしくお願いします。
まずサービス名くらいは書けや
>756 OracleDBConsole*****←(SID) です。 試しにインストール時にEnterprise Managerのチェックを外してインストールすると エラーは出ずにDBが使用可能になりました。 開発にはEMがないと、何かと不便ですので出来ればEMを使いたいのですが・・・ 後からEMを追加する事も可能なのでしょうか?
>>757 EM関連はバグが多いからとりあえず10.2.0.4までパッチを充ててみたら?
もしMetalinkにアカウントがあるのならPSUも充てておくといいかも。
どうしてもEMを使いたいというのであれば、セントラルグリッドの導入を
お勧めする。
PCでも既存のLinux鯖にでもリポジトリDBとセントラルグリッド入れて、
窓鯖2003側にはエージェントだけ入れておけばいい。
>>757 表領域とかのメンテがいらないのならSQL Developerでいいんじゃない
>758さん >759さん、ありがとうございます。 色々と試しているうちに、SQLPlusとEMがブラウザで動くようになりました。 ところが、不思議な現象が起こるようになりました。以下です。 ・ブラウザでSQLPlusを起動。テーブルtestを手動でSQLを打って生成 ・EMでテーブルtestが出来ている事を確認 ・DOSプロンプトでSQLPlusを起動して、データ1をINSERT ・そのままSELECTしてデータが挿入されているのを確認 ・EMで先ほど挿入したデータを確認しようと表からデータを参照するも、データは無し(行は0)。 ・ブラウザのSQLPlusでSELECTしてデータを参照するも、データが無し。 ・しかしDOSプロンプトのSQLPlusでデータを参照すると、データは存在している。 ・ブラウザのSQLPlusで、新たにデータをINSERT(データ2) ・続けてSELECTすると、データ2だけ存在 ・しかしDOSプロンプトではデータ1だけ存在 ・EMでは相変わらずデータは無し 全て同じアカウントで、同じテーブルで行っています。 これはどういう事なのでしょうか・・・?
COMMITしてないんじゃない?
自動コミットされる環境しか使ったことないのかよ
EMが見てるのは表の統計じゃないの? 1行INSERTしたくらいじゃ更新されないかも。 DBMS_STATSで統計とりなおしたらどうなる?
>>760 EMから見ているというのは何をもってそう言っている?
EMからiSQLPLUS経由でselect文打ってるって事か?
もしそうなら
>>761 や
>>762 にあるよにCommitしてないだけだろ。
>764
EMから確認というのは、ブラウザで
http://127.0.0.1:1158/em として起動するEnterprise Managerから
表を表示してデータの確認をした、という事です。
EMからはINSERT出来ないようなので、別のウィンドウ(ブラウザ)で iSql*Plusを起動してINSERTしました。
その際、ログアウトして終了させているので、COMMITは発生していると思うのですが・・・。
これまでMySQLとPostgresしかRDBMSは使ったことがないので、少し混乱しています。
phpMyAdminなどの管理ツールに慣れすぎたのもいけなかったかもしれません・・・。
>>765 iSQL*PLUSは11gでは廃止されているからねぇ。
あんまり使わんプログラムのひとつなのだよ。
いずれにせよ明示的にcommitするクセつけた方がいいと思う。
ログアウトしたときに勝手にコミットするデータベースなんてあるのかね?
11gについて以下がわかりません。教えてください @日付を格納する hire_date 列値には、次のデータが格納されています。 ・17-Jun-1987 ・21-Sep-1989 ・17-Sep-1989 WHERE句の条件に、WHERE TO_DATE(hire_date, 'DD-Mon-yy') < '01-Jan-1990' と指定した場合、検索結果として戻される行数はいくつですか? ↓ 答え:0件 A現在2003年2月25日です。 以下のSQL文を実行した結果を、(A)〜(E)の中から選んで下さい。 SQL>SELECT TO_CHAR(TO_DATE('98/02/03','RR/MM/DD'),'YYYY') FROM DUAL; (A).1998 (B).2098 (C).2198 (D).1999 (E).2003 ↓ 答え:(A) Aは意味がわかるのですが、@は何で答えが0件なんでしょうか? RR(1990)でもYY(2090)でも@のwhere句の条件だと「・17-Jun-1987 ・21-Sep-1989 ・17-Sep-1989」の全て条件を満たすと思うのですが・・・・
769 :
NAME IS NULL :2010/04/20(火) 15:13:14 ID:+8HctlK/
高度なひっかけ問題だな TO_DATE(hire_date, 'DD-Mon-yy') < '01-Jan-1990' は、TO_DATE(hire_date, 'DD-Mon-yy')が暗黙で文字列に変換される。 なので文字列の比較としての '17-Jun-1987' < '01-Jan-1990' '21-Sep-1989' < '01-Jan-1990' '17-Sep-1989' < '01-Jan-1990' が3つともfalseだからだ
なるほどw 2000年問題の問題と見せかけて、実はto_date関数の問題だったとw 分からないと言うより、気がつくわけがねぇwwww
alter session set nls_date_format='DD-MON-YY'; select to_char(to_date('17-Jun-1987','DD-Mon-YYYY')) from dual; --------- 17-Jun-87 これがto_dateに渡されるから、かな。
>>767 OracleのSQL*PLUSはログアウト時に暗黙的にCommitを発行する・・・。
774 :
NAME IS NULL :2010/04/21(水) 06:55:14 ID:xQNZIDR+
exitでコミット、quitでロールバック
嘘はいかんよw
>>768 WHERE TO_DATE(hire_date, 'DD-Mon-yy')
ではなく
WHERE TO_CHAR(hire_date, 'DD-Mon-yy')の誤記だと思われる
NLS_DATE_FORMATの指定がないから不適切な問題
>>774 どちらもコミット
>>777 それってSQL*Plus正常終了時のコミット処理とは関係ないんだが
現在、Oracle10gをWS2003で動かしています。 通常運用では問題無いのですが、停電などでWS2003が再起動されると Oracleのサービスが動作しません。 Windowsの管理でサービス一覧を見ると、Oracle関係のサービスは動作中なのですが、 実際にOracleを使用しているアプリケーションを起動すると、データベースが動作していない旨のエラーが出ます。 ただし、Oracleのデータベースコンフィグレーションアシスタントを起動して、データベースの構成を変更しようとすると アプリケーションからOracleが正常に接続されて使用出来るようになります。 数回再起動して試しましたから、このDBCAがトリガーになってるのは間違いないようです。 普段、サーバーを再起動する事なんて滅多にないので、実用上問題ないと言えばないのですが、 何か原因がわかりますでしょうか?
サポートに聞け
>>779 SET ORACLE_SID=HOGE
として環境変数ORACLE_SIDを設定した後、
SQLPLUS /NOLOG
CONNECT SYS AS SYSDBA
として、インスタンスがどうなっているのか確認
リスナが起動してないんじゃね?
>>777 SQL*PLUSはAUTOCOMMITシステム変数に関係なく、正常終了時にはCOMMITを発行する
仕様になっている。
それが嫌だったら終了時に明示的にrollbackするクセを付けておくしかない。
>>779 [原因]
- ORACLE の稼働するホストがワークグループに属し、その名称と同名の
NetBIOS 名をもつドメインが、アクセス可能なネットワーク上に存在する
- OS 認証を行っている
sqlnet.ora に下記の記載がある
SQLNET.AUTHENTICATION_SERVICES= (NTS)
[解決策]
- ワークグループ名とドメインの NetBIOS 名が重複しないようにする
- OS 認証を行わない
%ORACLE_HOME%\network\admin\sqlnet.ora から下記の記載を削除、
またはコメントアウトする。
SQLNET.AUTHENTICATION_SERVICES= (NTS)
>784 有り難う御座います。 OS認証を行わない、という方法をやりましたが、やはり駄目でした。 まったくDBに繋がらないという訳ではないので、起動時に一手間増えるだけですので このままの状態でしばらくは様子を見たいと思います。 時間があるときにサポートにでも聞いてみたいと思います。
おい、俺だ。 デッドロックです。 助けてください。良いサイト。
BUAI列にNULLが含まれているとします。この時、全社員の平均歩合を求める式を選びなさいって問題で @AVG(NVL(BUAI,0)) ASUM(BUAI)/COUNT(BUAI) ってあったんだけど、ある問題集では@が正解、あるサイトではAが正解みたいなことになってるんですが どっちがあってるの? 個人的にはNULLの社員の歩合を0円に無理やりするのはおかしいと思うから、Aが正解の気がするんだけど 解釈によってはどうとも取れるから困る。これ・・・・・・・・
>>787 歩合がNULLの社員を省くことは問題の前提に反する(全社員にならない)⇒@が正解
一切の反論を認めない
以降このスレは「NULLとは」で数スレが消費されます。
>>787 そういう、解釈に困る問題はこの手の試験にはありがち。たいがいは真の定義
(ここでは「平均歩合」)がわからなくても消去法で解けるようになっているはず。
その場合、意訳した問題文と選択肢の抜粋からは答えることができない。
ぬるぽ
トランザクションA トランザクションB (TABLE1 ロック無) (TABLE1 ロック無) TABLE1 ROW1 UPDATE TABLE1 ROW2 UPDATE TABLE1 ROW1 + ROW2 UPDATE これでデッドロックが発生するって どんな状況が想定できますか
>>793 ROW1とROW2が同じブロックに入ってるとデッドロックになる可能性が有る
共有サーバー接続で、サーバープロセスが1つしかないとか。
Oracle 11g 11.2.0.1.0 Windows XP Pro SP3 Windows機にOracleをインストールしたのですが OSのユーザーはOracleインストール時も含め常用しているもので、 管理者権限あり、パスワードなしです。 この場合、EMで要求されるホスト資格証明はどうすればいいのでしょうか? パスワードを空欄にすると必須入力の旨のメッセージが出ます。 無理でしょうか...
>>796 無理なんじゃね?
変わりにDefault credentialでsysユーザーとsysのパスワード登録しておけば
どうとでもなりそうな気もするけどな。
>>796 XPは空じゃなくても、OS自動ログインできるんじゃなかったっけ?
パスワード設定しておけば、EMの方はそれでログイン出来るだろうし。
799 :
796 :2010/04/29(木) 22:33:44 ID:???
ありがとう
>>798 これにしました。
Windowsはたしかに自動ログインできるし、EMのホスト資格証明もよさそうです
Linux版の10.2.0.5パッチセット出たね。
801 :
NAME IS NULL :2010/05/01(土) 07:11:32 ID:qoNVVD6Y
Linux版の11.2、お試し版をインストールして、a tons of error 出まくりで日本やら海外の サイト探しまわってやっとインストールできたんだが、まだEMが起動せずの状態。 sqlplusでなんとかしのいでるんだけど、Limux版のオラクルっていつもこんなにインストール時に 問題起こりまくりなの? 11.2のインストール時のエラー回避策見て唖然としながらインストールしたんだけど。
そういうもんだぎゃー。 リリースノートだけじゃ当てにならんから、ちゃんとKROWNに則ってやるしかない。
Oracle Enterprise Linux5.3 x64にはさくっとはいったよ。
804 :
NAME IS NULL :2010/05/01(土) 18:16:54 ID:SqJ/GJAW
CentOS5.4にサクッと入ったよ
>>801 32-bit版は何かと問題があるから64-bit版をお勧めする。
806 :
NAME IS NULL :2010/05/02(日) 10:33:11 ID:SBnmfv5U
>>805 インストールしたのは64ビット版ですよ。
807 :
NAME IS NULL :2010/05/02(日) 10:52:32 ID:XFknMb+T
どのディストリビューションにインスコしたんだよ 必要な情報が足りん
808 :
NAME IS NULL :2010/05/02(日) 19:24:05 ID:QmHW2PZb
ふー。やっとほぼ全てのトラブル解決した。 インスコしたディストリビューションはubuntu9.10だけど、そんなの関係ない。 あちこちのブログ、掲示板あさっていろんなとこで問題起きてるのは確認してる。 まず、インストーラが文字化けする。 これは、インストーラのjre/libの中にフォントが入ってなくてsunの日本語フォントを 使う前提でインストーラが動いてるみたい。 これの回避策はとりあえず、LANG=Cで逃げたんだけど、一時しのぎで インストール後もnetcaやらなにやらのguiツール立ち上げるとやっぱり文字化けするから 適当なサイトからsazanami*****フォント持ってきてインスコして $ORACLE_HOME/jdk/jre/lib/fonts に mkdir fallback ってやってfallbackディレクトリ作って持ってきたmincho,gothic ファントを入れとくかリンクするかする。 これで日本語文字化け回避 次にemctlがエラーになるのは /mnt/app/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsoleホスト名SIDが できてなかったことが分かり emca -config dbcontrol db -repos recreate でdbconsoleを再構築、現在に至る。 sqldeveloper も動いたし、よかったよかったw
ORACLE MASTERって日本語ですか?
英語だよ。
>>809 日本語勉強してから質問しろ。
例: Oracle Masterの試験内容は日本語なんですか?
答: 日本で受ける場合は日本語です。
815 :
NAME IS NULL :2010/05/04(火) 12:11:23 ID:z88X36Zy
つまりサポート対象外のOSにインストールできた>808はかなりのツワモノ ということなのだな。linux使いにはこういうのがかなり多いな。 Windowsユーザーと違って。
>>815 ありがちな内容だからこの程度のことくらいできるやつは多いだろ
そもそもLinuxはディストリビューションによって色々違うのに
わざわざサポート外環境に入れて文句たれるヤツは間違いなくバカ
819 :
NAME IS NULL :2010/05/06(木) 21:47:35 ID:7N66ZFBf
CentOS 5.4にOracle 11gR2 Client のお試し版を インストールタイプ:管理者でインスコしようとしたら、 Oracle Net Configuration Assistantでエラーになる。 スキップして最後までインスコして、sqlnet.oraとtnsname.oraを 手動で作成してsqlplusから別マシンの11gR1サーバに接続しようと すると、接続できない。エラーメッセージも出ずに、UNIXシェルに戻る。 10gR2、11gR1だと、問題なし。 11gR2って、Linux 32bitだと使えないの? 評価なので、CentOS使ってるんだけど、 RHEL 5.4だと大丈夫ってことないよね?
>>819 気にするな。
NetCAは昔からバグだらけだから、あてにしちゃいかん。
11gR2はLinux 32bitだと力入れてバグ取りしていない。
CRSのインスコ時にroot.shで落ちたりしていたぐらいだ。
10G RELEASE2 で VLM を利用しています。 KEEP バッファを利用したいんですが、VLM を利用していると DB_KEEP_CACHE_SIZE が利用できない状態で困っています。 ALTER SYSTEM で BUFFER_POOL_KEEP を指定しようとしても 指定できない。(エラーになる) どうすればいいんでしょうか。 誰か知っている方教えてもらえると嬉しいです。
>>821 バッファキャッシュの指定には、DB_BLOCK_BUFFERSを指定する必要があります。
DB_CACHE_SIZEや、その他以下に挙げるパラメータではVLM機能を使用できません。
db_cache_size
db_recycle_cache_size
db_keep_cache_size
db_nk_cache_size (n は次のいずれかの数字。 2,4,8,16,32)
823 :
819 :2010/05/08(土) 13:45:00 ID:chePo9ej
819だが、64bit版でやってもダメだった。
JVMがセキュリティライブラリ(libnnz11.so)のところで落ちてる。
NetCAが落ちるだけならいいのだが、SQLPLUSもつながらないので困る。
やり方は、下記のサイトとまったく一緒。
http://www.fiberbit.net/user/kunyami/oracle/11gR2-install.html 違いは、
・CentOS5.2 → 5.4
・CPU INTEL → PhenomU
・OSは仮想環境(VMware ESXi 4.0)上で構築
エラーは、
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xe5a50498, pid=6852, tid=4158167248
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c498]
#
INTEL CPUで、RHEL 5.4 32bitでは、ここは問題ないので、
CPUがAMDなのと、仮想環境であることのどちらかに
起因しているような気がする。
INTEL CPUのサーバで試してみたいんだが、持ってないんだよな。
へぇ〜、11gR2でouiだけやっとJava2化されたのか。
825 :
819 :2010/05/08(土) 16:31:12 ID:chePo9ej
826 :
819 :2010/05/08(土) 18:26:39 ID:chePo9ej
819だが訂正。 64bitは大丈夫だった。間違って32bitのOracle Clientインストールしてた。 32bitダメ。 パッチを当てればNetCAもsqlplusも問題なく動くらしい。 こんなのお試し版で公開するなよな。
>>826 Oracleのお試し版も製品版もクオリティとしてはそんなもの。
OracleもSQLだけは良かったが、世間が急速にGUI化して、あわててOUIをGUI化しようと 焦ったが、結局バグだらけのゴミをばらまく会社と成り果てたか。 世界はMSとググルで統一されたな。戦国乱世時代の終演だ。
VMPlayer上のWindowsXPまたはWindwos7のXP互換モード(VirtualPC)上のWindowsXP にOracle9i(Client)のインストールはサポートされていますか?
新しいパソを1台購入
>>829 ライセンスやサポートのことはオラクルダイレクトで聞くといいです
質問です。 現在サーバーはoracle10g(miracle linuxv3)で、クライアントはoracle10g(xp)で運用しています。 サーバーを新調したのでoracle11g(asianux3 miracle linuxv5)でクライアントはoracle10g(xp)で運用しようとしてました。 ところが、新調したサーバーではODBC→接続テスト(10秒程度)→ダイアログ立ち上がって入力画面→ユーザ、パス入力後OK→(30秒後)正常に接続できました。 となってしまいます。 旧のサーバーはODBC→接続テスト(3秒程度)→ダイアログ立ち上がって入力画面→ユーザ、パス入力後OK→(1秒後)正常に接続できました。 で正常にいけます。 接続テストだけかと思いましたが、impしたデータで実際にアクセスしても最初の接続は異常に遅いです。 原因わかるかたいらっしゃいますか?
ぐちゃぐちゃ検証する前に、クライアントの方も上げたら? 基本的に、バージョンはクライアント側が同等以上だと問題が出にくいはず。
>>834 説明不足すみませんでした。
新調したサーバー(oracle11g)で、クライアントもxp、oracle11gにして実験はしましたが同じ結果でした。
tnsnames.oraのホスト名をIPアドレスにしてもダメか?
>>836 はい。だめでした。あと、過去ログにあった、
sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(NTS)
NAMES.DIRECTORY_PATH=(TNSNAMES)
もやってみましたが、同じでした。
ODBC以外の接続ではどうなの?
!!!!自己解決しました!!!
>>838 SQL+でも同じような現象でした。繋がり遅い(20秒ほど)。→結果も返ってきますが遅い(30秒ほど)。というかんじでした。
解決ですがasianux3 miracle linux v5のsp2をあてたら直りました。
入れなおした後、全部同じ設定でやっていたので相性かパッチで直っていたという感じだと思います。
スレ汚し申し訳ございませんでした。
そもそもWindowsにOracleいれて運用したくないよな 不安定の2乗って感じ
ちょっとお聞きしたいんですけどね。 Windowsのサーバでないやつ、XPとか7とかにoracleインストールすると、 パソコン起動時に自動的にデータベース立ち上がってるじゃないですか。 それは便利でいいんだけど、 今度逆に、emとかoradimコマンドとかでデータベースシャットダウンしても、リスナー止めても プロセスはoracleもtnslsnrも終了せず、ずっと動いたままじゃないですか。 これってすごくウザイんですけど、なんとかなりませんかね。メモリ圧迫していやなんですけど。 そもそもなんでWindowsバージョンだと素直にプロセス終了してくれないんですか?
サービス落とせ
>>842 サービスを自動起動ではなく、手動に変更すればいいよ
>>842 シャットダウンしてもプロセスは残ってるけど、スレッドは確実に減ってるしメモリも全部ではないが解放されてるが?
俺はSQL*Plusでシャットダウンしてるけど、やり方によって違うのかな?
alter table文のupgrade句の意味は何ですか?
848 :
846 :2010/05/22(土) 19:33:45 ID:???
デフォルトロールってなんて言い方よ! ただ、ユーザーがログインする前に設定しただけなのに、わざわざそれを全部デフォルトロールって呼ぶなよ。 オラクルってバカなのかと思ってしまったわ!!! 死ね、オラクル!!!!
オラクル・マスターの勉強のため、Windows7にOracle11gR2を入れたんですけど スタンダード・エディションだとフラッシュバック・ドロップは使えないんですか?
>>851 すばやい回答ありがとうございます。
え〜〜〜〜〜、そうなんですか〜〜〜〜〜〜
また、インストールしなおさなきゃ_| ̄|◯
>>855 undropは10gからの機能だから9iにはないんだよ
11gスタンダードでも使える
何この流れ
>>858 というより、スタンダードでサポートされてるのはflashback queryとしか書いてないことから
分かると思うんですけど。
lashback dropってflashback queryと同じ次元で語るflashbackですか?むしろ、flashback table と
まったく同じ次元と思ってますけど。
すまそ timesten 11、win32版 ちょっと多めのデータを突っ込むとすぐexhaustするんだ (OS全部メモリを使い切った様子はない、タスクマネージャのリソースみた) ふつーのoracleならalter tablespaseでもすればいいんだが timestennだとどうするか教えてください いちおうまだまだメモリに余裕がある前提でおk
質問です。 サーバーasianux oracle11g、client xp oracle10gの環境にて oracleをクライアントからエクスポートする時に 全データベースをエクスポートします... . 表領域定義をエクスポート中 . プロファイルをエクスポート中 . ユーザー定義をエクスポート中 . ロールをエクスポート中 EXP-00008: oracleエラー1406が発生しました。 ORA-01406: フェッチされた列の値は切り捨てられました EXP-00000: エラーが発生したためエクスポートを終了します。 で終わってしまうのですが、なにかわかるかたいらっしゃいますか? linuxの文字コードはSJIS、linux OracleもSJISで2日前までできていたのですが突然できなくなりました。 exp system/hoge@lk_gs1 full=y file=E:\gs.dmp log=E:\gs.log 引数は問題ないとおもいますが、一応こんな感じです(パス、リンクは適当です)。 bufferも8192,65536等で試しましたがだめでした。 よろしくおねがしいます。
asianux使ってるところ、それなりにあるんだな
>>863 DBとClientバージョンは同じか?
10gならexpdp使うとか?
>>861 32bitはプロセスに4GB制限(厳密にはそこまで使えない)があるけど、それにひっかかっていないか?
>>866 情報ありがとう
すまんがタスクマネージャをみるかぎりそんな莫大なサイズを使ってないんだ
そもそもサイズ設定できないとか?
なにしろtimestenって情報ないんだよね
868 :
863 :2010/05/29(土) 09:29:51 ID:???
>>865 回答ありがとうございます!
調べてみます。ありがとうございました。
869 :
NAME IS NULL :2010/06/07(月) 22:06:29 ID:T5q/rGIw
ORACLEの無償版を使用しています。 列名にアンダーバーを含んだ文字を入れると 無効エラーが発生します。例:コウジョウ_クブン ダブル、シングルクオーテーションなどで囲んで 定義してもダメでした。 どのようにしたら認識されるのでしょうか? 宜しくお願いします
>>869 どちらかというと半角カタカナ+半角英文字アンダーパーとの組み合わせがエラーと
なっていそうな悪寒。
英文字だけで定義したらどうなる?
ユニコードって半角カナあったっけ?
1文字3byteだから単に長さオーバーだったりしないか?
長さオーバーだね。一文字消して コウジョウ_クブ だと作れる。
Oracleで年月を引数に以下のような1ヶ月分の日を取るには、どのように書けばよいですか? 日 曜日 _____ 1 火 2 水 3 木 〜 30 水
>>874 残念ながら曜日を日付型で持っていないから無理。
エンハンスリクエストはずっと出ているんだけどね。
centos5.4とoracle10.2.0.1を使っています。 rmanを使ってコントロールファイルとバックアップセットを取得して、 別のサーバにデータベースをコピー作ろうと思っています。 この場合リストア先のサーバにあらかじめ、 バックアップ元と同じデータベースを作っておかなくてはいけないのでしょうか? OSにoracleをインストールして、 いきなりリストアするとデータファイルが作成できませんとエラーになってしまいます。
>>878 作っておく必要は無い。
ただし、バックアップセットはコピー元と同じディレクトリ構造の所に置いておく必要あり。
面倒だったらRMANのDUPLICATEコマンド使えば?
>>878 確認だが、リカバリカタログDB使っているのか?
それともコントロールファイルのみか?
リカバリカタログDB使っているとちょっと面倒かもしれん。
別のサーバなら、ファイルコピーという手もあるわな。
レスありがとうございます。 リカバリカタログは使わずコントロールファイルでのリストアでやっています。 バックアップリストとはデータファイルの集合体という認識でいいでしょうか? list backup;で〜〜.bakという認識バックアップファイルの中の一覧が確認は出来ます。
>>882 コントロールファイルのみなら簡単だな。
手順としてはこんな感じかな。
1. リストア先のDBをnomountモードにて起動
2. RMANでcontrolファイルをリストア
3. DBをmountモードに変更。
3. RMANでデータベースファイルをリストア
4. DBをopen resetlogsでオープン。
確認だが、データベースファイルやコントロールファイルのリストア先のディレクトリは
ちゃんと前もって作成されているんだよな?
もし作成されていないのなら、set newnameコマンド使うなり、convertをinit.oraで
指定するなりしないとダメだぞ?
884 :
882 :2010/06/09(水) 14:21:40 ID:???
下記のように、SET NEWNAMEを使ってリストアすると、 データファイルは作成出来ませんと出て、alert.logに以下のような エラーも出てしまいます。 ディレクトリのパーミッションに問題はないのですが。。 ORA-01157: cannot identify/lock data file 1 - see DBWR trace file ORA-01110: data file 1: '/opt/oracle/oradata/dempoppo/system01.dbf' ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory run{ shutdown immediate; startup nomount; alter database mount; set newname for datafile 1 to '/opt/oracle/oradata/DB/system01.dbf'; restore controlfile to '/opt/oracle/oradata/DB/control01.ctl' from '/home/work/db_backup/ctrl_DB-720529582_4_1_04lf4q5e_1_1.bak'; allocate channel ch1 type disk; restore database; switch datafile all; alter database open resetlogs; }
>>884 なんでsystemファイルを最初にリストアしようとしてんの?
テスト?
というか、controlファイルを最初にリストアせんとダメっしょ。
普通だったらこんな感じっしょ?
run{
sql "shutdown abort";
sql "startup nomount";
allocate channel ch1 type disk;
restore controlfile to '/opt/oracle/oradata/DB/control01.ctl' from '/home/work/db_backup/ctrl_DB-720529582_4_1_04lf4q5e_1_1.bak';
sql "alter database mount";
restore database;
switch datafile all;
sql "alter database open resetlogs";
}
>>884 ごめん、勘違いしていた。
systemはset newnameしていただけだね。
スクリプトとしてはこんな感じになるんじゃね?
run{
sql "shutdown abort";
sql "startup nomount";
allocate channel ch1 type disk;
set newname for datafile 1 to '/opt/oracle/oradata/DB/system01.dbf';
set newname for datafile 2 to '/opt/oracle/oradata/DB/undo01.dbf';
set newname for datafile 3 to '/opt/oracle/oradata/DB/sysaux01.dbf';
:
:
:
restore controlfile to '/opt/oracle/oradata/DB/control01.ctl' from '/home/work/db_backup/ctrl_DB-720529582_4_1_04lf4q5e_1_1.bak';
sql "alter database mount";
set until time "to_date('09-JUN-2010 22:00:00','DD-MON-YYYY HH24:MI:SS')";
restore database;
recover database;
sql "alter database open resetlogs";
release channel ch1;
}
887 :
884 :2010/06/10(木) 08:58:09 ID:???
>>886 チェックありがとうございます。
recoveryやリストアで足りなかった部分を追加して試してみます。
RHLinux5&racでサービスnetplugdが動いているとちゃんとフェールオーバーできないですか?
>>888 フェイルオーバーってどういった事を言っている?
クライアント側の話?
それともDBのスプリット・ブレイン状態の解決の事?
890 :
NAME IS NULL :2010/06/12(土) 02:34:49 ID:csNFyCyz
Oracle Database Express Editionを使用していますが、 キャラクタセットをインストール時に設定されるUTFではなく SJISへ変更したいのですが、どのようにしたら良いのでしょうか? 宜しくおねがいします。
>>890 とりあえずバージョンぐらい書け。
まあ、大抵の場合、ダウンコンバートはFull Export=>DB再作成=>Full Importだな。
>>890 Expressなら、10.2.0.1だろ。
それ以前にExpressでは表向きにはキャラクターセットの変更は不可。
データベースの再作成で変更はできるが色々と弊害はある。
ググればやり方は出てくるぞ。
893 :
NAME IS NULL :2010/06/13(日) 02:40:13 ID:orTjQxXc
さすがにネタだろ、これは。
895 :
NAME IS NULL :2010/06/13(日) 09:38:45 ID:orTjQxXc
どこがどう一致しなかったのか書かなきゃわからん。
897 :
NAME IS NULL :2010/06/14(月) 00:44:08 ID:TixEgPwb
>>896 sqlplusで「test」テーブルをInsertしてCommitしました。
「desc」や「select tname from tab」で成功確認できましたが、
Accessで一覧を見ると「test」は存在しておらず「tab」のレコードには「test」が存在してます。
ユーザー名は「system」のまま行っています。
あいかわらず書き方がが意味不明だが、リンクテーブルを更新してないに一票。
(いろいろ書いては消した) ・・・おやすみなさい。
>>900 プロセッサーライセンスだったら関係ないだろ?
902 :
900 :2010/06/14(月) 17:17:14 ID:???
>>901 dです。
プロセッサーライセンスでググました。
なるほどこれなら大丈夫です。
仮想化もこれで平気なんですねぇ。
参考になりました。
ライセンスのことを2chで訊く理由が分からない
そうか? 分からない事が分からないみたいな感じの時は使えるんじゃないか? 職場や取引先にこいつバカだなとか思われる前に(笑)
システムが構築してから、ソフトウェアのライセンス価格の計算間違ってました〜 だって2chの情報が悪いんですよ〜、あと、ざっくり1億円位必要かな〜テヘッ♪ で済むような職場や取引先と仕事してるなら間違いなく使えるな
Oracleのライセンスは、よく変わるからパートナ営業に訊くしかない。
今だったら直接ボラクルダイレクトに聞くのが早くていいんじゃね?
取引先に馬鹿だと思われ始めたら次のリストラ要員。 ライセンスのことは営業に聞け。 そんなのが分からない営業がいるようならその会社は危ない。
>>905 いやいや。さすがに何が分からないか分かったら裏とりますわw
910 :
NAME IS NULL :2010/06/18(金) 13:56:19 ID:1EK5q14d
Oracle9iで5指名ユーザーライセンス版を購入していますが、 接続するユーザの合計が5以下であれば複数のサーバに Oracleをインストールしても良いのでしょうか?
>>910 なんかググっても古い情報しか出てこないな。
2002年情報(古!)オラクルも古情報をいつまでも晒しとくなよ。
http://www.oracle.co.jp/2shin/2002/ora60/32.html Q,2台のコンピューター用に指名ユーザーライセンスを購入しましたが、片方のコンピューターの使用者が減り、余ってしまいました。余ったライセンスをもう1台の別のコンピューターに使用できますか?
A,指名ユーザーライセンスはコンピューターを特定しませんので、指名ユーザーライセンスの最少数の条件を満たしていれば使用できます。2台のコンピューターのOSやOracle製品のバージョンが異なる場合は、メンテナンス・サポート契約(有償)※の対象となります。
912 :
910 :2010/06/18(金) 15:30:48 ID:1EK5q14d
>>911 ありがとうございます。
接続ユーザが5以下であれば、何台のサーバに
Oracleを入れても問題ないという認識でよいですかね。
やりたいことは5指名ユーザーライセンス付きのOracleを1つ購入していて
2つの異なるサーバにそれぞれDBを立てたいのですが。
使用する人数は5名以下です。
ん。なんかちがくね。 一台目:3人 二台目:2人 ならおkって意味じゃないのか?つまり全部で五人以下。 一台目:5人 二台目:3人 は駄目だろ。全部で五人オーバー と漏れには取れるが。
914 :
910 :2010/06/18(金) 15:54:59 ID:1EK5q14d
>>913 ありがとうございます。
とりあえず大前提として使用者が5名以内なら(どちらに接続するかはおいといて)
2台にDBを入れるのはOKで良いですよね?
>>913 さんのおっしゃる前者の場合
両方に接続いくユーザの場合は1人でも1名分を
消費してしまうということで宜しいでしょうか。
それとユーザの数え方ですが、人数でしょうか、
端末数になりますでしょうか。
質問ばかりですみませんが、よろしくお願い致します。m(__)m
916 :
910 :2010/06/18(金) 17:44:00 ID:1EK5q14d
>>915 ありがとうございます。
なるほど、最低1台のサーバには5ユーザのライセンスが
ないとダメということですね。。。
10g Express Editionてのではだめなの?
XEを商用利用している事例ってあるのかな
>>918 記事というならほとんど得るものがないから、ほとんど無いだろうな
商用利用しているとことならOracle personalユーザー数位は余裕であるだろな
教えてください。 racシステム二台構成です。 asmの場合はrmanを使用するわけですが、アーカイブログなどインスタンスごとに存在するファイルもうまいことバックアップしてくれるんでそうか。 それともすべてのノードでバックアップをしないといけないのでしょうか。
1つのノードからアーカイブREDOが全部見えてれば、そのノードからアーカイブも全部吸い上げてくれる。 アーカイブもASMにおいてるならたぶん大丈夫。
>>920 ASMではなく、各サーバーのローカルのファイルシステム上にアーカイブログを吐いていても
それぞれのインスタンスにRMANのchannelを割り当てれば、RMANで吸い上げてくれる。
ASMやクラスターファイルシステム等の共有の保存先にアーカイブが吐かれている場合には
RAC内のひとつのインスタンスにRMANのchannelを割り当てるだけで、両方インスタンスの
アーカイブログを吸い取ってくれる。
>>623 トン
自分のトコはバックアップに必要なデーターは全て共有ディスクグループに入っているのでフツーにrmanでバックアップ、リストアすれば良いわけですね。
詳しい解説有り難うございました。
ちょっとスレチぎみなんですが、racで使うような共有ディスク(ibmとかnetappとか一応名の通ったメーカー製)の場合全損とかあり得ますか? ここ10年くらいハードディスクがぶっ壊れてニッチモサッチモって経験がないんですがどうなんでしょう。 raid5とかraid6とかで、HDDが二台飛んでも動き続る(らしい)し、電源も二重化してるし。 火災で丸焼けとか地震で倒壊とかそんな事でもなければどうしようもなくぶっ壊れるってのは考えづらいですが、どのあたりまでバックアップ計画に盛り込むべきでしょうか。 どっちかっていうとプログラムのミスやオペミスでデーター飛ばした時の対策の方に重きを置いたほうがいいような気がしてます。
>>925 バックアップ計画は予算とリスクと
時間(リストア、バックアップ)と
ユーザ要求で決まる。
だから一概に決められん。
925の最後の希望はアーカイブログ運用と
フラッシュバック機能で満たせそうだけどね。
RAID5だと2台逝ったらアウトだぞ。
928 :
NAME IS NULL :2010/06/24(木) 12:57:04 ID:mYzra+A5
>>925 ストレージのコントローラ側不具合で、そのコントローラーに接続されてい
る所が全滅。ってことはあった。
システム的には別コントローラと冗長化してたので問題は出なかったけど。
とにかく単一障害点を作らないようにしておけば、実運用でバックアップが
活躍した事はないです。
BCP絡みでDataGuardの要望はチラホラ来るけど、予算的に見送られ
ることばかり。
>>925 可能性は0じゃないとしか言えないよね
RAID5で2台逝ってフルリストアする破目に陥ったところは1箇所だけ知ってるけど
>raid5とかraid6とかで、HDDが二台飛んでも動き続る(らしい)
こんな曖昧な知識しかないならまず基礎を学ぶべきではないだろうか
931 :
NAME IS NULL :2010/06/25(金) 11:51:26 ID:9Tsa3wgJ
>>930 >>925 の〜らしいと言う表現は私の預かり知らぬ部分でデーター保証がされているのでって意味に捕らえる方が正解じゃないの?
ここで零度の講釈を延々垂れ流すのはすれ違いってもんだ。
RAIDとバックアップ計画は全く別物
RAIDは保守者が来るまでのツナギだよな
オラクルに限らず、バックアップ設計の問題は、いつも頭が痛いです・・
RMANでできないことはできないと開き直る・・・なんてできない。
ああ、中小企業の社員ね。
やっぱ中小企業はSQLサーバ使った方がいいのかな。
いや中小企業は無料のMySQL。 SQLサーバーより安心で無料。これ最強。
買収されて 同じベンダーになったしな
940 :
NAME IS NULL :2010/06/27(日) 12:59:31 ID:YqDB6i6J
初心者なんですが、sqlplusでエラーを調べるコマンドあれば教えてください。
941 :
NAME IS NULL :2010/06/27(日) 23:58:26 ID:IHi7r73q
統計情報が変更される場合の 具体的な数値(データ量等)をご存知の方がいらしたら 教えてください。
>>941 小さなテーブルの場合、1カノッサ
中くらいのテーブルの場合、5カノッサ
すごい大きなテーブルの場合、100カノッサ
>>940 質問が漠然としすぎている。
ORA-*とかを調べたいという事か?
だったらsql*plusでコマンドライン呼び出してoerr oraコマンドだな。
sqlplus> !oerr ora <エラー番号>
10g使いです。 SQL Developerを使ってExcelファイルをインポートすると、 レコードに変な半角空白みたいなのが勝手に付加されて しまう現象が発生しています。 同じような経験のある方はいますか? 回避手段などあればご教示願います。
>>945 変な半角空白というのを正確に誰にでも通じるように表現できるように調べていくと
解決策が分かる可能性もある
>>946 エクセル上のセルには末尾に何も無いのだけれど、
Developerでインポートすると半角スペースが末尾に付いてしまいます。
CHAR型につっこんでる?
センセこれは・・・
こんちわ、Oracle初心者です。先週Bronzeの本を買ってきました。 11gR2インストール時に前提条件チェックでひっかかります。 『物理メモリ、使用可能物理メモリ、スワップ・サイズ 空き容量、アーキテクチャ、Enviroment”PATH”』 のステータスが全て「失敗」になり、さらに 予想される値:N/A 実際値 :N/A エラーのリスト PRVF-7531 ノード”ユーザー名”で物理メモリーのチェックを実行できません。 Cause:示されたノードで物理メモリーのチェックを実行できませんでした。 Action:指定したノードへのアクセスが可能であることを確認し、メモリー情報を表示してください。 となっていますが、何をすれば通るのかわかりません。 OSはVistaのビジネス、メモリーは2GBです。 どうぞよろぴくおながいします。
>>950 インストーラを右クリックして「管理者として実行」してみたらどうか
ていうかVistaでOracleとかやめとけと思う
>>951 だめでした><
もともとカレントユーザーをフルコンにはしていたんだけど
管理者実行でも同じ状態に。
>>952 XPも持っているんでやってみたんだけど同じ状態になったんだ。
もしかしたら両方同じ変なウイルスにやられてるのかも・・・
ついでにVistaのほうで仮想PCで作ったXPもダメだったぽ。
あきらめてHDD買ってリナかServer2008いれてみまつ・・・
その仮想PCにLinuxいれればいいだろw
>>953 ググってみたらエラー無視で強行したらインストールできたっていう人も居るみたい
まともに使えてるのかどうかは知らないけど
そもそもメモリ2GBの中で使用可能容量は1GB以上あるのかな?
>>954 ,956
強行はできるのだけど、SQLPlusが立たなくなって
管理ツールのシステムの中にもOracleが入ってない状態でなんともならなかったよ。
仮想PCで無理だった理由がメモリー不足によるものだからこればっかりはどうしようももも
さすがにノートじゃ無理か・・・まあトンクス
うちもなぜか全部失敗するが、普通にインストール&動いている模様 デスクトップとノート2台とも。 インストールの途中でWindowsファイアウォールがJavaSE?をブロックする方が気になった 手でボタン押さないといけないし Oracle11.2、XP Pro
うちでもインストールの途中の前提条件チェックは毎回失敗が出るけど 全部無視してインストールしてもTSNListener、DBサービスどっちも正常に動いているよ。 (開発用途だからサービスは自動起動させないでバッチファイルから起動させてるけど。) あと、SQL PlusもSQL Developerも問題なく動作してる。 OS:2台ともWindows XP Pro SP3 Memory:2Gと4G Oracle:11gR2(1台はStandardで、もう1台はEnterprise) 参考にならない情報でスマン
Unix/Linuxでもインストール途中では、コンソールにエラー吐きまくってるよね。 よく読めば問題ないってわかるけど、あまりに多いからちゃんとインストできているのか不安にはなる。
ちょりーっす!!! 先日VistaでOracleがインスコできなくて色々解決策を考えてもらった者です。 その節はありがとう。XPに乗り換えてなんとかできました。|Д´)ノ さっそくSQLPlusを使ってみて、わりとすいすいとできるんで このままならBronzeくらいなら簡単に取れそうな気がするッス。 で質問なんですが、DESCRIBEコマンドを入力しようと思って、黒本参考に EDでテキスト開いて desc 部門 / と記述したんですが SQL> / desc 部門 * となってしまい、「SQL文が無効です」エラー発生します。 直接入力ならいけるんですけど、漢字なので。 どこが間違ってるんでしょうか?
先生これは・・・
>>961 すまん、本当にわからないのだ。教えてくれ(´・ω・`)
desc "部門" ではどう?
>>963 無理ぽー
「"」も「'」でも囲ってみてもだめだった。
DESCRIBEコマンドなんて誰も使ってなさそうだし、もう覚えなくてもいいかな・・・
select * from user_tab_columns where table_name = '部門' で代用するとか。。。 根本的解決になってないけどね。
「直接入力ならいけるんですけど、漢字なので」が意味わからん
>>960 多バイト文字を入力したいならsqlplus以外のなんか探してこい。
>>966 この位エスパーしろ。
おまいら意地悪だな
エスパーネタとか出してくるし・・・
>>960 はエディタでdesc 部門の後に / つけちゃってるんだよ
そりゃsqlplusのコマンドをSQLとして実行しようとしたらSQL文じゃないって怒られるの当たり前
そもそもsqlplusでAlt+半角全角押せばそのまま部門でも何でも入力できるだろって
969 :
スター :2010/07/13(火) 23:02:30 ID:???
突然すみません、ご存知の方がいれば助かるのですが… OracleDB 10.2.0.3で「SQL_TRACE=’TRUE’」と「EVENT10046」で 生成されるTraceログは同じプロセスが出力しているものでなのでしょうか。 「SQL_TRACE=’TRUE’」で発生しているバグは、 「EVENT10046」の設定に変更しても発生するのでしょうか?
さすがにこれは釣りだろうな
971 :
スター :2010/07/13(火) 23:46:17 ID:???
>>970 釣りだったらこんなに切羽詰ってないです。
どっちも実運用中に設定しっぱなしにしておくものではないよね。
>>969 こんなとこでバグ云々を訊くあたりサポート契約してないんだろうけど
10gで「SQL_TRACE=’TRUE’」で発生しているバグという怪情報の
信憑性について調べたほうがいいかもね
逆にEVENT10046の不具合についても確認しておくべき
974 :
スター :2010/07/15(木) 17:33:16 ID:???
サポートのレスが遅くて、すぐに答えられるようなすごい人がいないかなと 淡い期待をしてご質問させていただいたのですが…。
わざわざ名前に「スター」なんて入れて、ご質問ですかw
>>969 EVENT 10046はトレースレベルが指定出来るからその気になればもっと細かい情報も取れる。
いずれにせよ同じバグをキャプチャ出来るんじゃね?
10gでPL/SQLのコードを書いています。 Packageの中のProcedureなりFunctionを実行中に、自分自身のPackage名、関数 名を取得する方法はありませんか?
>>977 テキストで書いとけよ
動的に変わるものなのかよ
ログ出力とかに使うつもりなんじゃね? Javaならスタックトレース呼び出して、 そのメソッドの呼び出し元の名前を参照することができるけど、 PL/SQLだとどうなんだろうね。
>>979 なるほど。Java で書けば解決するんじゃないか。
つーか、PL/SQLって何十年経っても進歩しないな
で、結局出来るの?出来ないの?
>>983 アフォ?
ググらなくても、出来ないという結論が既に出てるわけだが。
質問はPL/SQLでできるのかということだと思うんだが
PL/SQLではできないだろ
だからJavaで書けってのは解決策としてどうかと思う
あと
>>983 のリンクは質問の内容とほとんど関係ないと思う
>985 は数スレ前も読めないらしいな
このスレにはエスパーが居るな
SQL> create or replace procedure my_proc is 2 begin 3 dbms_output.put_line ($$PLSQL_UNIT); 4 end; 5 / Procedure created. SQL> exec my_proc MY_PROC PL/SQL procedure successfully completed.
環境によってはset serveroutput onしないとダメかも。
良く読んでいなかった。 この当たりの組み合わせでなんとかならんかな? SQL> CREATE OR REPLACE PROCEDURE HOGE IS BEGIN DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_CALL_STACK); END; / SQL> CREATE OR REPLACE PROCEDURE BOGE IS BEGIN HOGE; END; / SQL> set serveroutput on; SQL> exec boge; ----- PL/SQL Call Stack ----- object line object handle number name c000000074aa1d70 4 procedure SYSTEM.HOGE c000000075d77d78 4 procedure SYSTEM.BOGE c00000007f98d410 1 anonymous block PL/SQL procedure successfully completed.
979、981あたりをなぜか根拠に結論を出して 質問者を馬鹿にしちゃう984の決断力(笑)には恐れ入る
>>992 君、本当に馬鹿でしょ?w
実際に動かして試してみたの?w
>Packageの中のProcedureなりFunctionを実行中に、自分自身のPackage名、
>関数名を取得する方法はありませんか?
Package化されている場合はDBMS_UTILITY.FORMAT_CALL_STACKを使っても
$$plsql_unitを使ってもpackage名までしか取れないわけだがwwwww
自爆テラワロスwwwww
エスパーは放置で
____ / \ /\ キリッ . / (ー) (ー)\ <「質問者を馬鹿にしちゃう984の決断力(笑)には恐れ入る」 / ⌒(__人__)⌒ \ | |r┬-| | \ `ー’´ / ノ \ /´ ヽ | l \ ヽ -一””””~~``’ー?、 -一”””’ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ <だっておwww /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー’´ ヽ / / | | l||l 从人 l||l l||l 从人 l||l バンバン ヽ -一””””~~``’ー?、 -一”””’ー-、 ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
insertで一意制約違反になったときに、どのレコードが制約に引っかかったのかを 簡単に知るにはどうすればいいのですか?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。