Oracle 質問総合スレ4

このエントリーをはてなブックマークに追加
1NAME IS NULL

◆前スレ

Oracle 質問総合スレ3
http://pc11.2ch.net/test/read.cgi/db/1223384283

◆過去スレ

Oracle 質問総合スレ2
http://pc11.2ch.net/test/read.cgi/db/1194742799

Oracle 質問総合スレ
http://pc11.2ch.net/test/read.cgi/db/1163907455

◆公式サイト

OTN-J
ttp://www.oracle.com/technology/global/jp/index.html

OTN
ttp://www.oracle.com/technology/index.html

Certify - Oracle's Certification Matrices・・・動作環境(システム要件)確認
ttp://www.oracle.com/technology/support/metalink/index.html


1. 質問する時はDBのバージョンとプラットフォームぐらいは書きましょう。
2. OTNからダウソ出来るものは、30日過ぎても別に機能的に制限が
かかるという訳ではありません。あくまで紳士協定に基づいて、
 削除してくださいという事です。
2NAME IS NULL:2009/08/23(日) 13:09:16 ID:???
おつ
3NAME IS NULL:2009/08/24(月) 09:55:08 ID:???
>>1
おつ
4NAME IS NULL:2009/08/24(月) 10:40:04 ID:???
Oracle USのサイトでプロファイル登録してしまったのですが
Oracle Japanでログインするには日本側のサイトで登録しないと
ログインできなかったりします?
5NAME IS NULL:2009/08/24(月) 11:48:02 ID:???
>>4
USとJPは別々だね。
64:2009/08/25(火) 12:34:21 ID:???
やっぱそうか・・・
ありがとござます。
7NAME IS NULL:2009/08/25(火) 23:41:50 ID:5xfpHV6A
age
8NAME IS NULL:2009/08/26(水) 22:37:52 ID:???
ACERのAspireRevoを買ったので、
Vista用の10.2.0.3のRDBMSを入れてみますた。

ちなみにVista Home Premiumは
ORACLEのサポート対象外なんですけど
RDBMSとリスナーは、すんなりと動きました。

もっとアリエナイ感じの動作環境自慢いませんか?
9NAME IS NULL:2009/08/26(水) 23:27:45 ID:???
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 は使うな、という事でよい?)
10NAME IS NULL:2009/08/27(木) 00:51:29 ID:???
>>8

Cent O/SやWhiteBox LinuxでRAC組んだぐらいだな。
11NAME IS NULL:2009/08/27(木) 00:52:32 ID:???
>>9

sequence.nextvalが実行されちまっている以上、その動作になるんじゃね。
12NAME IS NULL:2009/08/27(木) 01:25:08 ID:???
>10

Cent O/S
Cent O/S
Cent O/S
Cent O/S
Cent O/S

ずいぶん恥ずかしいな。馬鹿すぎる。
13NAME IS NULL:2009/08/27(木) 01:33:22 ID:???
>>12

はいはい、バックスラッシュはいりませんでしたね。
私が悪うござんした。
14NAME IS NULL:2009/08/27(木) 07:32:40 ID:???
>>9
sequenceの仕様のせいというか相性が悪いというか。
sequenceを使う人は、割り切って使うと思う。

割り切れないなら
最初に既存レコードのupdateになるか、
新レコードのinsertになるかをselect使って判定して、
insertになる場合はsequence取って・・・となって、
それは昔ながらのやり方であって、mergeは使う必要ないね。
15NAME IS NULL:2009/08/27(木) 07:53:47 ID:???
>>13
スラッシュだとおも
16NAME IS NULL:2009/08/27(木) 08:26:07 ID:???
>>13

わかっとらんな。逆ギレしてさらに馬鹿を晒すとは。
17NAME IS NULL:2009/08/27(木) 10:23:52 ID:???
日本語なんて通じればいいんだよ
18NAME IS NULL:2009/08/27(木) 18:56:31 ID:???
>>17
日本語じゃないとおも
19名無しさん@そうだ選挙に行こう:2009/08/30(日) 11:20:05 ID:IiFjmKoL
変な質問で申し訳ありません。
oracleとmysqlのパフォーマンス(select検索やupdateの処理速度)は
やはりoracleの方が断然早いのでしょうか?
20名無しさん@そうだ選挙に行こう:2009/08/30(日) 17:52:55 ID:???
全然mysqlの方が速いよw
21名無しさん@そうだ選挙に行こう:2009/08/30(日) 17:54:49 ID:???
Oracleは個人と法人とでの態度の違いが露骨
22名無しさん@そうだ選挙に行こう:2009/08/30(日) 18:46:54 ID:???
質問なんですが
テーブルのカラムのdefault値ってどのようなときに使用しますか?
うちのところだと、すべてのカラムがNotNull設定だからdefault値をすべての設定して
いると聞いたんですが、すべてに対してdefault値を設定する必要あるんですね?

個人的に、NotNullの設定だけして、default値を設定しないほうが
挿入カラムの入れ忘れしたときにエラーを返してくれるから便利だと思うのですが。
23NAME IS NULL:2009/08/30(日) 23:28:08 ID:???
>>22
オイラがDefaultを設定するのは、
「データ有効フラグ」みたいな列かな。
Defaultは、あまり設定しないね。おおむね同意する。

>>19
MySQLは、オープンソースで、無料、高速なので、
貴方はMySQLを使った方が良いですよ。
24NAME IS NULL:2009/09/01(火) 05:11:58 ID:???
9月中に11gR2をリリースという事だけど、
Windows7とServer 2008 R2には対応するのかな。

10gR2が対応せず11gR2が対応ということなら
11gR2に移行するかもしれないけど、
個人的には10gR2でも対応して欲しい。
25NAME 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の部分が長くて
もう一回書くのが大変だなって思いまして。。

26NAME IS NULL:2009/09/01(火) 18:20:59 ID:???
SELECT AB, (AB+C) AS ALL
FROM (SELECT (A+B) AS AB, C FROM ENZAN)
27NAME IS NULL:2009/09/01(火) 22:36:43 ID:???
>>26に同意
28NAME IS NULL:2009/09/01(火) 22:38:57 ID:???
今米国Oracleみたら、11gR2(11.2.0.1.0)が出てる。
Linux x86
Linux x86-64
だけだけど。
29NAME IS NULL:2009/09/01(火) 23:59:55 ID:???
ほんとだ
さっそくダウンロード開始
30NAME IS NULL:2009/09/02(水) 00:07:47 ID:???
へぇ。
以前から噂は聞いてたけど、出たか。
日本オラクルの人が言うには、11g R1 は 10g R3 みたいなもので、
これこそが 11g なんだとか。

ポータルサイトも出来てるんだね。気合い入ってるな。
31NAME IS NULL:2009/09/02(水) 01:42:27 ID:???
何も考えず、x86_64 な FC11 にインストール。
カーネルも何も設定していないのに、普通にインストール完了w
(runInstaller叩いただけ。オプション指定なし)
Link エラーが出たので compat-libstdc++-33.x86_64 を追加した程度


つかね。OUI別物杉w
3225:2009/09/02(水) 13:59:39 ID:9S+hiIY1
>>26,27
ありがとうございます。
FROMにテーブル名以外が使えるって初めて知りました!
33NAME IS NULL:2009/09/03(木) 20:14:30 ID:???
激安激遅の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とリスナーが動くか、後日レポします。
34NAME IS NULL:2009/09/03(木) 23:13:56 ID:???
Windows7 RC (32bit)でOracle 10gR2 Vista 32bit。
RDBMSとリスナーは大丈夫そうでした。
特に問題なく動いてます。
当然クライアントコンポーネントもイケる感じです。

Windows7で10gR2がサポートされるかどうかは
望みが薄いかな、と思ってましたけど
10gR2は現在主流のリリースだから期待してます。
Vista 32bit版10gR2はWindows7 32bitでも動作します、
なんて案内を出してくれれば最高です、ORACLE様。
35NAME IS NULL:2009/09/03(木) 23:17:53 ID:???
Windows 7の対応は、今のところ11gR2だけが「Projected」と載ってますね。
10gR2を認定してくれれば嬉しいけど、直近の2つくらいしか対応しないでしょうね。
オラクルも、約2年たった11gR1や、新しい11gR2を売りたいでしょうし。
36NAME IS NULL:2009/09/05(土) 22:00:37 ID:???
Vista x64+10gR2 x64 (10.2.0.4)でシステム開発してる人いますか?

今日、暇なので家で試してみたんだけど、いろいろウマくいかない。
(ODBCドライバの利用にPATCHが必要だったり・・・他にも気になる挙動がある)

なんだかなあ・・・
ウチの製品、Vista x64+10gR2 x64は、正式サポートを当面見送ろうかな。
x64対応は、Windows 7 x64+11gR2 x64を評価してから、また考えようかな。
37NAME IS NULL:2009/09/05(土) 22:36:06 ID:???
>>36

Oracleに聞けよ。
38NAME IS NULL:2009/09/08(火) 14:42:45 ID:???
Oracleってサポート契約無しでも利用して良いんだっけ?
アップグレードやパッチ当てたり出来なくなるから、
実運用上は役に立たないとは思うんだけど。
っていうか昨年度まで契約しててパッチ適用済だと既にアウトな希ガス。

ウチの上司がサポート高いから切れって言ってきたorz
39NAME IS NULL:2009/09/08(火) 18:41:41 ID:???
>>38
別にたいしたデータ扱ってないなら、サポートなしで使ってもいんじゃね
勿論サポートは受けられないしバグがあってもパッチもらえないから
自己責任の範囲になるな

仮に今サポートやめて3年後にどうしようもないバグが出てパッチを
もらう場合は今に遡って3年分のサポート料払う必要があるから
気をつけろよ

つーか、そんな上司捨てちまえよ
40NAME IS NULL:2009/09/08(火) 20:09:07 ID:???
【DB】MySQL
【レコード】2億以上
【総データ量】150GB以上
【サーバー】自作自宅サーバー
【維持コスト】電気代と光回線代とISP計月10000円程度
【作成】メモ帳、ペイント

★メイン→http://gm.bpa.nu
★SNS+blog→http://gm.bpa.nu/sns.htm
41NAME IS NULL:2009/09/08(火) 20:43:43 ID:???
ライセンス1個で社内のPC百数十台にインストールして大丈夫でしょうか?
42NAME IS NULL:2009/09/08(火) 21:27:36 ID:D/yRoqvB
>>41

サーバがProcessor ライセンスでPC数百台へクライアント製品を
インストールするなら大丈夫。
43NAME IS NULL:2009/09/08(火) 22:28:07 ID:???
>>39
ウチの顧客の個人情報とか売上・カード情報とか満載の超重要サーバです。
とりあえずサポート切るなら俺は知らん・責任取らん、と明言してきますた。
上司は黙ってても後3年くらいで定年退職なんで放置しておきます。
44NAME IS NULL:2009/09/09(水) 01:38:51 ID:???
PDFの検索、ダウンロードをするwebシステムを構築するのですが、
データベースにPDFファイルを登録します。

バイナリデータの取り扱いはBLOB型を使う場合が多いと思いますが、
BFILE型という、ファイルはOS上のファイルシステムそのままに
ファイルの場所と名前だけを登録する方法があることを知りました。

この2つの型を使い分けるには何がポイントになるのでしょうか?
45NAME IS NULL:2009/09/09(水) 01:52:18 ID:???
上司の意向
46NAME IS NULL:2009/09/09(水) 04:16:33 ID:???
>>44

使い分けのポイントとなりうる一つの点はバックアップ&リカバリだろうな。
BLOB型の場合、データがDB上に存在する訳だから、バックアップ&リカバリは
Oracle DB内で完結出来る。
障害時には通常のOracleのリカバリさえ行えばそれで終わり。

BFILE型の場合にはDBには単にポインタが格納されているだけだから、O/S上の
実ファイルのバックアップ&リカバリ方法も当然考えないとならない。
47NAME IS NULL:2009/09/09(水) 07:29:52 ID:???
Windows/Linux/Solaris(x86)版Standard Edition Oneで
動くんじゃないかな。RACは使えないけど。
機能:ttp://software.fujitsu.com/jp/oracle/products/database/func_seone.html
コイツはCPUをソケット数でカウントしてOK。

Standard Edition Oneは、1プロセッサ(ソケット)あたり、
新規661,920円 。年間サポート145,622円。税込。
2ソケットで2倍だから、新規132万、年間サポート29万でしょ。
これで利用者数が無制限。4コアCPUを2ソケット搭載は相当速いよ。
20人しか使いません、だったら20NUPで
新規40万、年間サポート8万ぐらい。安い!
ttp://www.oracle.com/lang/jp/corporate/pricing/dbse_one.html
数年前と比べても、ポカーンとするぐらい安い。

RACを使いたいとか、2ソケットを超えて使いたいなら
ttp://www.oracle.com/lang/jp/corporate/pricing/dbse.html
ttp://www.oracle.com/lang/jp/corporate/pricing/dbee.html
48NAME IS NULL:2009/09/09(水) 07:30:50 ID:???
ミスッた。>>47は、>>43向け

49NAME IS NULL:2009/09/10(木) 06:54:51 ID:???
9.2 です。OPTIMIZER_MODE = CHOOSE で、統計情報を全くとっていません。
現状、ルールベースで動いていると思います。

この条件下で、SELECT 文を発行する際、とある index を使用するように、
オプティマイザヒントを使用します。

これって index 使った実行計画に変わってくれますか?
コストベースとして動きますか?
それとも、ルールベースに対し、index のオプティマイザヒントは意味がないですか?
50NAME IS NULL:2009/09/10(木) 07:12:25 ID:???
>>49
INDEXを使った実行計画に変わる。
また、「RULE」以外のヒントをオプティマイザヒントに使用すると
そのQUERYはコストベースで処理される。
51NAME IS NULL:2009/09/10(木) 21:11:19 ID:???
やっぱりルールベースが良いよな
52NAME IS NULL:2009/09/10(木) 21:27:48 ID:???
11g Platinum 受ける人いる?
53NAME IS NULL:2009/09/11(金) 01:36:30 ID:???
>>50 産休!
54NAME IS NULL:2009/09/16(水) 02:43:39 ID:???
>>48
お前の事だ
脳味噌の程度が低いって事
55NAME IS NULL:2009/09/17(木) 22:24:19 ID:???
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)))
56NAME IS NULL:2009/09/17(木) 23:55:51 ID:???
net_service_name はクライアントがアクセスするときの名前で、
service_name はインスタンスがサービスとして見せるときの名前。
57NAME IS NULL:2009/09/29(火) 00:40:49 ID:???
WinXPHOMEでホスト資格証明のユーザー名、パスワードがPROではないので
ログインできません。
HOMEでEnterprise Managerの設定でログインするにはどのようにしたらよいので
しょうか。
お願いいたします。
58NAME IS NULL:2009/09/29(火) 22:06:26 ID:???
>>57
ORACLEのバージョン情報が不足。書くのがマナー。
まあ、Xp Homeは、サポート外だから諦めた方がいい。

59NAME IS NULL:2009/10/02(金) 00:22:48 ID:aiOJhT4q
最近、久々にORACLE使って仕事してるけど、
いつも思うけどORACLEって使いにくいというか面倒くさいデータベースだよな。
SQLのエラーとかも相変わらず不親切すぎる、なんだこれよ。
60NAME IS NULL:2009/10/02(金) 00:42:28 ID:???
例えば?
61NAME IS NULL:2009/10/02(金) 00:45:49 ID:???
ORA-600頻発。
62NAME IS NULL:2009/10/02(金) 01:24:36 ID:apfhpyid
>>59

SQL文はお主が間違って書いているからエラーになっているので、
お主が悪い。
63NAME IS NULL:2009/10/02(金) 01:46:19 ID:???
オラクルのエラーマニュアルって結構親切だと思うけど。
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 は何か爆弾踏んだりしたら確かに頻発するなぁ。
64NAME IS NULL:2009/10/02(金) 06:49:43 ID:91URBOIM
65NAME IS NULL:2009/10/02(金) 07:15:54 ID:???
ORACLEを日常的に使う人間としても、
エラーはもう少し親切に指摘して欲しい。

たとえばORA-01722なんかは、
ORA-01722: 数値が無効です。TO_NUMBERに失敗しました。strings:1234A567
とかでもイイんじゃね?
66NAME IS NULL:2009/10/02(金) 21:42:06 ID:???
クソだなそれ。
67NAME IS NULL:2009/10/03(土) 01:07:29 ID:LaXeSBFL
普通のPCサーバで十分パフォーマンスいいから、もうORACLEいらない。
というか制約事項多すぎるからORACLEさよならだな
68NAME IS NULL:2009/10/03(土) 06:30:30 ID:???
OoracleがPCサーバの性能を上げるためのものだったとは知らなかった
69NAME IS NULL:2009/10/03(土) 07:59:25 ID:bcypi5NM
>>68
Ooracleどういうソフトなの?
70NAME IS NULL:2009/10/03(土) 10:15:58 ID:???
>>69
クッキー焼いてくれる
71NAME 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なんだが。
72NAME IS NULL:2009/10/03(土) 12:25:05 ID:???
そのためにはまずA氏のスリーサイズを教えてもらわないことには・・・
73NAME IS NULL:2009/10/03(土) 15:36:12 ID:???
マテビューのリフレッシュをしていなかっただけじゃないのかな。
74NAME IS NULL:2009/10/03(土) 20:44:30 ID:???
つーか、単純に60秒かかった時は、重いSQLが動いてたんじゃねえの?
75NAME IS NULL:2009/10/04(日) 00:29:25 ID:???
マテビューって、どっかに実際のデータが格納されてるわけだが、
そのデータに対してフラグメントや行連鎖、行移行とか発生しないのか?
マテビュー作り直して速くなったって、インデックス作り直したら
速くなりました、ってのと同じような気がする
76NAME IS NULL:2009/10/04(日) 00:42:33 ID:A+/cGns5
ORACLEじゃなきゃダメだという用途なんてないんだから、
ソフトならSQL Server
ハードならDB2に集約されるかな。

ORACLEは製品として時代遅れすぎる。
ぶっちゃけORACLE=COBOL用でしか使ってるところしかしらにない。
77NAME IS NULL:2009/10/04(日) 01:03:25 ID:???
SQL ServerはWindowsオンリーなのがなぁ・・・
マルチプラットフォーム対応にしない限り、Oracleの需要は途絶えない
78NAME IS NULL:2009/10/04(日) 07:19:00 ID:???
>>76
世間知らずだな。
79NAME IS NULL:2009/10/04(日) 09:59:41 ID:???
>>75

Gold取ったばかりのときはそう考えた時代もあったな・・・
懐かしい。

dblink で他のデータベースのデータを参照する場合は
Platinum 試験に出るから練習しておくといいよ。
80NAME IS NULL:2009/10/04(日) 11:33:32 ID:???
>>73
マテビューのリフレッシュをしていなかったら、返ってくるデータが
変わってしまわないか?

>>74
それはない。オレら以外には誰も繋いでいなかった。

やっぱり誰も分からんか。。。もう少し情報を集めて、Oracle行きかな。。。
81NAME IS NULL:2009/10/04(日) 11:59:02 ID:???
グローバル仕様です
82NAME IS NULL:2009/10/04(日) 12:54:15 ID:???
前後でコスト、実行計画が変わっていたのか変わっていなかったのか?
それだけでも>>73のようなOracle内部の原因か>>74のような外部の原因か
くらいは切り分けできると思うが、前の状態でどれだけ情報を取ってる?
遅かったときの状況を再現できるか、あるいは推測できるだけの情報が
なければサポートもお手上げだと思うけどね。
83NAME IS NULL:2009/10/04(日) 14:39:46 ID:???
>>80

> やっぱり誰も分からんか。。。もう少し情報を集めて、Oracle行きかな。。。

適当な情報しか出さなくて誰も分からんとは失礼すぎるだろうが。
さっさと消えてくれ。
84NAME IS NULL:2009/10/04(日) 15:13:04 ID:???
なに顔真っ赤にしちゃってんの?
85NAME IS NULL:2009/10/04(日) 18:54:05 ID:???
>>84

誰が?
情けない顔が透けて見えるぞ。ゆとり世代は頭が悪くていかんな。
86NAME IS NULL:2009/10/04(日) 20:12:38 ID:???
大体、2ちゃんで質問してる時点で、負け
87NAME IS NULL:2009/10/04(日) 21:00:25 ID:???
必死すぎる。
88NAME IS NULL:2009/10/04(日) 21:50:18 ID:???
パフォーマンスの問題はサポートに問い合わせてもまともな答えが返ってくることは稀だぞ
89NAME IS NULL:2009/10/04(日) 23:05:54 ID:???
>>80

パフォーマンス系の問題なんだから、普通は実行計画とかまず見ると思うんだが?
>>83が言っている様に情報少なすぎ。
90NAME IS NULL:2009/10/04(日) 23:07:07 ID:???
>>76

selectなのに表レベルでlock取らなければならないDB2が製品として時代遅れでないと?
91NAME IS NULL:2009/10/04(日) 23:47:42 ID:???
>>76のことはそっとしといてやれよ
かわいそうな境遇で育ったんだよ
92NAME IS NULL:2009/10/04(日) 23:48:26 ID:???
selectで表レベルでlockとかマジなのか
93NAME IS NULL:2009/10/05(月) 00:07:41 ID:???
>>88
そうなんだよなぁ。。。

>>89
「実行コストが小さい」ことまでは確認していたんだが、まさかこんな事態に
なるとは思わなかったので、実行プランを保存しておかなかったんだよね。
しかも、遅い状態はもう再現できないし。
94NAME IS NULL:2009/10/05(月) 00:09:33 ID:0BZTbTib
Oracleが立派なのは、もはや値段だけ
以前ほど、特別に優れてもいないよ。
95NAME IS NULL:2009/10/05(月) 01:31:28 ID:???
まあオラクルになくて他のデータベースにある機能なんてそうそう無いから
オラクルが使いこなせれば他のデータベースもすぐ使いこなせるようになるよ。
96NAME IS NULL:2009/10/05(月) 10:39:52 ID:???
シーケンスを作らなくても自動インクリメントしてくれるMySQL
97NAME IS NULL:2009/10/05(月) 14:12:02 ID:???
OracleのSE RACってどうかな?
EE RACでやっているんだけど、性能的にサーバ2台で問題無さそうだし、
値段がEEとSEで段違いなんでSEに落とそうと思うんだけど、
ダウングレードした人とかいます?
98NAME IS NULL:2009/10/05(月) 21:24:13 ID:???
>>94さんは>>76さんですか?
99NAME IS NULL:2009/10/05(月) 22:13:28 ID:???
>>98

そうだけど、何か?
100NAME IS NULL:2009/10/06(火) 08:42:45 ID:???
大規模システムでOracle以外を使ってる方が珍しい。
101NAME IS NULL:2009/10/06(火) 10:03:39 ID:???
>>100
中には大規模システムも入っていると思うけど?
ttp://software.fujitsu.com/jp/symfoware/casestudies/
ttp://www.microsoft.com/japan/showcase/search/default.aspx?p1=&p2=0&p3=0&p4=0&p5=10025&p6=0&result=
ttp://www-06.ibm.com/software/jp/data/db2/casestudies.html
何をもってOracle以外が珍しいと言っているのだろう、世界狭いな。
102NAME IS NULL:2009/10/07(水) 00:08:59 ID:???
大規模システムの定義が良く分からないけどオープン系でガンガン更新トランザクションが
走るようなシステムはOracleじゃないとまともに動かないのは事実だな

DB2やSQL SERVERじゃ、よぼどアプリケーション、テーブル設計をちゃんとやらないと
排他問題で同時実行性がおちて使い物にならなくなる
103NAME IS NULL:2009/10/07(水) 00:18:49 ID:???
そういや、複数の更新トランザクションが走っているときに一方がロック待ちにならないから
OracleのReadCommitedはDB2のURと同じだとか阿呆なこと主張する奴がいたなぁ。
104NAME IS NULL:2009/10/07(水) 00:46:44 ID:RgFJ5Zvx
SQLServer2005からはREAD COMMITTED SNAPSHOTで、
ORACLEと同じ読み取り一貫性になるんだが・・・
DB2は知らん
105NAME IS NULL:2009/10/07(水) 00:56:03 ID:rI0NJuhp
そもそもOSがWindowsってところでアウト

なのでSQLServerはないな
106NAME IS NULL:2009/10/07(水) 00:56:29 ID:???
でもSQL Serverのそれって性能がた落ちするんでしょ?
107NAME IS NULL:2009/10/07(水) 01:12:53 ID:t9FR2Kza
WindowsでOracleを選択というのも多いようにも思える。
SQLServerもさすがにEnterprise Editionとかになると高価なんだよな。

個人的にはDBの性能ってHDDの性能な感じがするけど。
その場合はSunとかの高速HDD装置とかになってOracleになるのかね。

108NAME IS NULL:2009/10/07(水) 01:31:50 ID:???
アホは喋らない方が良い
109NAME IS NULL:2009/10/07(水) 07:48:31 ID:???
>>107
バカは喋らないほうがいい
110NAME IS NULL:2009/10/08(木) 13:27:59 ID:???
すいません、教えてください。

・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
111NAME IS NULL:2009/10/08(木) 17:13:52 ID:???
バインド変数が文字列だろうとシングルクオテーションで囲う必要はないよ。
文字列内に含まれるシングルクオテーションをエスケープする必要もない。
112NAME IS NULL:2009/10/08(木) 20:10:07 ID:???
>>111
レスありがとうございます。
そういうもんなんですね・・・。
同じようなので例えば、TO_CHAR('2009/01/01','yyyy/mm/dd')
の日付の部分をバインドしたい場合あどうあるべきなのでしょうか。
シングルクオテーションつけるとバインドが展開されないし、
シングルクオテーションつけないとTO_CHAR構文エラー
になったように思われます。勘違いかな?
113NAME IS NULL:2009/10/08(木) 21:25:42 ID:???
プログラミング初心者か?
何からエスケープさせるのかを意識すればわかるようになるよ。
114NAME IS NULL:2009/10/08(木) 21:35:49 ID:???
もう人生からエスケープしたい
115NAME IS NULL:2009/10/08(木) 21:42:20 ID:???
TO_CHAR(:wrk,'yyyy/mm/dd')
でいけるんじゃね?
116NAME IS NULL:2009/10/08(木) 23:31:11 ID:???
>>112
そもそも、to_char()の第1引数はDATEかNUMBERだろ。
117NAME IS NULL:2009/10/09(金) 06:24:39 ID:???
>>116
みなさんレスありがとうございます。
というか質問を書くところで書き間違えた・・・。
TO_CHARじゃなくてTO_TIMESTAMPだた。TO_CHARの第一引数が文字列なんてありえねですな。
TO_TIMESTAMPの場合の第一引数のバインドでのシングルクオテーションなのですが、
この場合どうなるのでしょうか。
118NAME IS NULL:2009/10/09(金) 11:39:35 ID:???
個別の関数が、クォートの展開をするわけではない。
変数で渡されるときも、変数の中身がそのまま渡されるから、エスケープする必要がないってこと。
119NAME IS NULL:2009/10/09(金) 13:34:06 ID:???
>>118
レスありがとうです。
変数=プレース
という事ですね。たしかに!理解できました。
120NAME IS NULL:2009/10/11(日) 17:35:35 ID:???
もしかして、OTNの掲示板より、2ちゃんの方が回答が早い?
121NAME IS NULL:2009/10/11(日) 18:35:16 ID:???
回答は早いかもしれないが2chで書いてあることを真に受けてたら
そのうち痛い目にあうことは間違いない
122NAME IS NULL:2009/10/11(日) 18:42:48 ID:ik/XDQBh
>>120
>>121

回答をもらったら、合っているかどうかの確認は必要ですね。
サポートへ問い合わせても常に100%正しい答えが返ってくるかというと
必ずしもそういうわけではないので。
123NAME IS NULL:2009/10/11(日) 18:55:13 ID:???
質問

バージョンの異なるインスタンスを混在させて同時に起動しても問題ないの?
今、9iと10gを同時に動かしてるんだけどね。もちろんリスナーのポート番号は変えたけど
124NAME IS NULL:2009/10/11(日) 19:04:29 ID:???
>>123

問題ないように動かせば問題ないけど、何が問題なの?

125NAME IS NULL:2009/10/12(月) 00:17:10 ID:rHiFo6kC
OracleはどうしてSQLDeveloperを製品版に入れて配らないんだろうか
126NAME IS NULL:2009/10/12(月) 01:04:32 ID:???
オラクルクライアント11gではSQL Developerを一緒にインストールしてくれるみたいだ。
127NAME IS NULL:2009/10/12(月) 01:11:15 ID:rHiFo6kC
SQLServerのフロントエンドよりは動作的にいまいちだが、
SQL*Plusとつくりがいまいちなクライアントツールよかはマシなんだよな。

SI Object Browserの存在意義がなくなってしまたのか。。
128NAME IS NULL:2009/10/12(月) 21:50:25 ID:???
STATSPACKのレポートのことで質問します

レポートの最初の方に出てるくるELAPSED TIMEよりも
個々のSQLのELAPSED TIMEが大きい時があります。

これをわかりやすく説明してくれる方いますか?
129NAME IS NULL:2009/10/12(月) 22:30:09 ID:???
最初の方がminsで、
個々のSQLの方がsecondsとか?
130NAME IS NULL:2009/10/12(月) 22:59:37 ID:???
>>129
それはわかっています。
ただ、TOP待機イベントを見ると、ELAPSED TIMEを超える行ロック待ちが。。。
131NAME IS NULL:2009/10/12(月) 23:16:11 ID:???
ELAPSED TIMEってリソースを使った時間じゃね?
132NAME IS NULL:2009/10/15(木) 00:51:11 ID:zuOJNKXw
OracleってSQL*Plusでの実行とSQLDeveloperとかの実行って微妙に動作違う?
SQLDeveloperで問題ないだけど、SQL*Plusとかではダメなときがあるんだが。。
133NAME IS NULL:2009/10/15(木) 07:06:50 ID:???
まんまその通りの事例ではないけど、
CUI版のsqlplus.exeでは実行できるhoge.sqlを
GUI版のsqlplusw.exeから@hoge.sqlで呼び出して実行したら
ORA-エラーが出たなんてことは、経験ある。

どうせ、sqlplus.exeを使ってください、って回答になるから
意味ねえと思ってサポートには問い合わせなかった。

134NAME IS NULL:2009/10/15(木) 08:57:02 ID:???
>>132
SQLDeveloper使ってる人って割合的に少ないと思うからここで曖昧な質問しても答えてくれる確率は低いと思うよ。
具体例出せば答えられるかも。
OTN見るとSQLDeveloperに色々とバグはあったみたいだね。
135NAME IS NULL:2009/10/18(日) 15:58:49 ID:???
OTNの掲示板ダメダメだな。

レベルの低いお節介焼きが的外れな回答するだけ。

2ちゃんよりも有害だよ。
136NAME IS NULL:2009/10/19(月) 19:46:16 ID:???
>>135

おまえ、ちゃんとOTN掲示板を利用してるの?
けっこう役立つ回答多いじゃん。

このスレは、俗っぽいみんなの本音が聞けるのが楽しい。
俺にとっては、どっちも大切な掲示板。
137NAME IS NULL:2009/10/19(月) 20:20:31 ID:???
障害の原因についてOTNの情報をソースとして提示したら「ブログと変わらん」って客先に却下された
138NAME IS NULL:2009/10/19(月) 21:59:45 ID:???
客にushitaki情報とでも言っておけ
139NAME IS NULL:2009/10/20(火) 00:42:04 ID:???
サポート契約してないならOTNを始めとするネットで情報収集するしかない。
サポートがネットより優秀かどうかは知らないけど。
140NAME IS NULL:2009/10/20(火) 22:37:33 ID:???
会社でoracle8i使ってます。

家でクライアントアプリ作りたいですが2台のマシンに
サーバーとクライアント入れてクライアントマシンでデバッグしながら
開発するしかないですかね?


oracleはかなりレジストリ汚すので
なるべくインストールしたくないです。

開発に必要な最小限の構成ありましたら教えてください。
よろしくお願いいたします。
141NAME IS NULL:2009/10/20(火) 23:10:02 ID:???
っvm
142NAME IS NULL:2009/10/20(火) 23:21:39 ID:???
Oracleデータベースのバックアップって
どうやってとってますか?
143NAME IS NULL:2009/10/20(火) 23:36:38 ID:???
cp -all
144NAME IS NULL:2009/10/20(火) 23:51:49 ID:N4dazINZ
>>142

dd if=/dev/rdsk/c1t11d0s0 of=backup.bkf bs=1048576
145NAME IS NULL:2009/10/21(水) 01:45:39 ID:???
>>142

RMAN最強伝説!
146NAME IS NULL:2009/10/21(水) 16:07:08 ID:???
オンラインバックアップでOSのコピーコマンド使ってバックアップしてる。
あんま重要じゃないサーバはDataPumpで論理バックアップのみ。
147NAME IS NULL:2009/10/21(水) 16:19:06 ID:???
>>146

ちゃんとリカバリできるのは確認した?
148NAME IS NULL:2009/10/21(水) 18:06:51 ID:???
>>147
そりゃもちろん確認してるよ。
オンラインバックアップならアーカイブログ+オンラインバックアップで
完全復旧できるけど、論理バックアップから戻す場合、
スキーマとか権限周りが若干面倒だし、アーカイブログも使えないから、
日次でバックアップとれば良いような更新頻度の低いシステムに使ってる。
149NAME IS NULL:2009/10/21(水) 18:17:15 ID:???
RMAN使ってる奴っているの?
150NAME IS NULL:2009/10/21(水) 19:16:30 ID:???
>>148

すばらしい。

俺はRMANを勧めてるんだけど、
ちゃんとやってるんだったらそういう方法でも問題ないと思う。

ダメな業者に頼むと適当にバックアップを設計して後で戻せないというのがよくある。
151NAME IS NULL:2009/10/21(水) 21:15:07 ID:???
去年、某有名企業の基幹システムのDB構築に関わったんだけどさ
24H稼働なのに、非アーカイブログモードで、バックアップはExportだけ。
俺はDBリーダーに「場合によっては、データを戻せませんよ。」
「アーカイブログモードでRMANでオンラインバックアップ取りましょう」
と言ったんだけど、俺みたいな下っ端派遣労働者の言うことは即却下。
「高性能なディスク装置を使ってるだから心配なし!」だってさ。
152NAME IS NULL:2009/10/21(水) 21:30:18 ID:???
>>151

ひどい話だ。性能と耐障害性は無関係なのにな。

俺の経験では、4億もするDS8100が壊れたということもあった。
ストレージは全く信用していない。
153NAME IS NULL:2009/10/21(水) 21:44:07 ID:???
システム障害対策としてのテープバックアップってのはだんだん廃れてきている
ような気がする。で、災害時のBCP対策としてなら、イメージバックアップより
exportの方が取り回しやすいだろうし。
154NAME 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 高橋

155NAME IS NULL:2009/10/21(水) 22:48:16 ID:ZMSB+uaT
発想がExcelなんじゃねーの?
156NAME IS NULL:2009/10/21(水) 22:49:31 ID:???
Oracleのサポートに連絡いれたらどこの企業か聞かれたんだけど
顧客の知名度によって対応変える気かこいつら
157NAME IS NULL:2009/10/21(水) 22:53:19 ID:FwBnigAg
フリーなLinuxにOracleインストールしたいんだけど、普通は何を使えばいいでしょうか?
候補は、CentOSか、OpenSuSE,Ubuntuです。
158NAME 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だから、当たり前だけど
159NAME IS NULL:2009/10/21(水) 23:01:57 ID:???
>>150
RMANで制御ファイルとSPFILEだけバックアップってありですか?
データ壊れたときは別でとっておいたExportで復旧するの
160NAME IS NULL:2009/10/21(水) 23:05:13 ID:FwBnigAg
>>158
ありがとうです。CentOSダウンロードします。
161NAME IS NULL:2009/10/21(水) 23:10:06 ID:6akxOwMs
>>160
おうがんばれー
162NAME IS NULL:2009/10/21(水) 23:12:00 ID:???
>>154
テーブル1はなんのために存在すんの?
てか、真のコボラだったら絶対@だな。カラムが200くらいあったりして。
163NAME IS NULL:2009/10/21(水) 23:16:13 ID:???
>>162
区分テーブルなんじゃね
164NAME IS NULL:2009/10/21(水) 23:59:14 ID:???
>>154
ユーザに見せるビューとして@が必要なのかもしれないな
自分らは縦持ち・横持ちって言い方をよくするけど
Aだとユーザに「こんなの入力しにくい!」とか言われるのはよくある話
165NAME IS NULL:2009/10/22(木) 00:24:30 ID:???
Aのテーブルから@のビューを作るのが普通だと。

ユーザとDBAの観点は違うからなぁ。
166NAME IS NULL:2009/10/22(木) 00:26:45 ID:???
基本的にはマスタからデータを取得してセットするが、時折例外が出る、とかな。
商品マスタ→受注TR、って構造のときに、
時々商品マスタに乗ってない注文が入るんで、商品マスタの項目も全部持ってくれ、
とか言うのは見たことある。
167NAME IS NULL:2009/10/22(木) 01:52:35 ID:???
8.1.5から10g_Expressへの移行考えてる。

8.1.7からの移行はできるみたいだけど、8.1.5は無理なのかな。
サポート契約結んでいれば、8.1.7に無償アップデートできたみたいだが、
契約はしていなかったようだ。

なんだか難しいね。面倒すぎ。
168NAME IS NULL:2009/10/22(木) 04:18:13 ID:???
>>154
Aのテーブル定義は@のテーブル定義に比べて何か優れてる点あるの?
他の用途ならともかく個人情報のテーブルなら@で十分対応可能だと思うけど。
169NAME IS NULL:2009/10/22(木) 05:50:49 ID:???
>>150

同じく基本はRMAN派。
Duplicateコマンドで自由にクローニング環境も出来るしね。


>>159

制御ファイルとSPFILEだけだったらRMAN使うよりもダンプしておけば?
170NAME IS NULL:2009/10/22(木) 05:52:21 ID:???
>>167

8i => 10gのウプグレードは8iのターミナルリリース(8.1.7.4)からしかサポートしていない。
Export/Importしか道が残っていないな。
171NAME IS NULL:2009/10/22(木) 05:53:38 ID:???
>>160

CentOSは11g R1のRACまで組んで動作確認した。
172NAME IS NULL:2009/10/22(木) 07:15:42 ID:???
>>168
しかもAだと生年月日を文字列で持つハメになったり
173NAME IS NULL:2009/10/22(木) 11:27:34 ID:???
RMANを直接は使うことはあまりないかな。
NetBackupなどのバックアップツールと連携させるためにRMAN入れるとか。<オンラインバックアップのとき。
174NAME IS NULL:2009/10/22(木) 21:14:19 ID:???
テーブル1があるという事は、
カラム追加、変更が頻繁そうだよね。
Aは、運用中にALTER TABLE
したくないから、推してる人がいるんじゃないの?

レコード数が数千万件を超えると、
たかがALTER TABLEもなかなか、
思い通りにならない気がする。

まあかえってAの方がレコード件数増えるけどね。
そんかわりALTER TABLEは無さそう。
175NAME IS NULL:2009/10/22(木) 21:29:08 ID:???
ALTER TABLE を防いでも INDEX は張りにくいことこの上ないと思う。
Aは素人だな。テーブル1 も何のためにあるのかさっぱりわからない。

年齢を「才」付きで格納していることからも釣りだろうと断定したけどね。

176NAME IS NULL:2009/10/22(木) 21:57:39 ID:YJ7QeN2I
ときどき思うんだが、正規化ができないのっては、
業務内容がわかってない証拠なんだと思う。

テーブルでも無駄にあちこちのキー項目が多かったりする設計をする人のってどうしてなんだろうか。
その時の情報を残したいとかなら別だが一意のキーを乱立して、
ほぼ同じ意味のテーブル作りまくるのっておかしいよなぁ。なんでだろう。
177NAME IS NULL:2009/10/22(木) 22:01:32 ID:???
今までSQL Serverしか使ったこと無かったのですが、最近、Oracleを使い始めました。
テーブルの参照権限のみ保有したユーザーを作りたい場合、どのような設定をすれば良いのでしょう?
また、ユーザーがテーブルに対して更新(書き込み)権限を持っているかどうかを簡単に調べるSQL文は
あるのでしょうか?
SQL Serverなら直感的にできることなのですが、いま一つ良く分かりません。
178NAME IS NULL:2009/10/22(木) 22:58:27 ID:???
>>169
RMANってリポジトリの制御ファイルとかリカバリカタログが壊れたら
二度と復旧できない?
ExportとRMANのどっちが安全?
179NAME IS NULL:2009/10/22(木) 23:03:26 ID:???
180NAME IS NULL:2009/10/22(木) 23:15:07 ID:???
>>173

普通はそうだろうな。
RMAN単体でバックアップピースの吐き先をディスクにしているのってあんまり聞かない。

>>178

RMANを使っていると、ターゲットDBのコントロールファイル内にカタログ情報との同期情報を
持つから、例えリポジトリDB内のカタログがぶっ壊れてもresync catalogで復旧出来る。
試しにコントロールファイルをダンプして、見てみるといい。

Exportはそれを取った時点のデータしか復旧出来ないが、RMANはpoint-in-timeリカバリにも
完全媒体回復にも両方対応している。
運用形態にもよるけど、選択肢は多いのは良い事だ。
181NAME IS NULL:2009/10/22(木) 23:30:11 ID:???
あとRMAN使うメリットとしてはBMR(ブロックレベルメディアリカバリ)かな。
EMCのファームウェアのバグのせいで、プロダクションのシステム表領域内のブロックが
ぶっ壊れた事あったけど、RMANのBMRでサクッと直った。
滅多に起きる事ではないけど、該当ブロックだけをバックアップから戻すだけだから、
リカバリ時間も大幅に短縮出来た。

それと11gのRMANのデータリカバリアドバイザーは結構便利。
該当障害のリカバリ用スクリプトまで自動作成してくれる。
182NAME IS NULL:2009/10/23(金) 00:20:59 ID:???
RMANなんか使うのか?

俺の経験だけど、ここ数年はストレージのシャドーコピーとOracleのオンラインバックアップを
利用してストレージ全体をバックアップしちまうのしかないけど、ちまちまRMAN使ったりすることが
あるのか?
183NAME IS NULL:2009/10/23(金) 00:46:12 ID:???
RMANとストレージのスナップショットミラーの組み合わせとかも出来るよ。
184NAME IS NULL:2009/10/23(金) 01:11:29 ID:???
RMANつかうとリカバリがほんのちょっとだけ簡単になるくらいかな。
結局は、ストレージやらバックアップソフトに頼ることになるから、RMAN一発ではいかないところがあるわけで。
バックアップソフトのOracleオプションは、RMANと連携させるものが多いから、その辺の考慮がなされてはいるけど、
価格に対しての効果があるのか?という疑問もある。
185NAME IS NULL:2009/10/23(金) 01:20:53 ID:???
RMANを「ちまちま」使うというのがよくわからんな。簡単なのに。
186NAME IS NULL:2009/10/23(金) 03:18:13 ID:???
最初はコマンドが独特でとっつきにくい所があるけど、慣れたら楽だよな。
187NAME IS NULL:2009/10/23(金) 05:15:41 ID:???
8.1.5から、Expressに移行試験中。imp/expで移している。

AL32UTF8しかだめで、元データはSJISだけど、結構うまく書き出せてるね。
文字化けは見られない。バイト数の絡みで、溢れたデータは切るしかないけど。

AL32UTF8でexpするいい方法ってあったの?
書き出す直前にWindowsの環境変数を変えてみたが、
ファイルはSJISのままだった。

今度はWInのクライアント側の問題だなあ。
データ読み出したとき、書き込む時文字化けしなければ良いが。

クライアントPCが128しかメモリ積んでないから、
instant cliant+oo4o9.0.1を試してみるか。

さてどうなることやら。oo4oのライセンスどうなんだろ?
188NAME IS NULL:2009/10/23(金) 06:52:52 ID:???
Oracle8iからOracle10g XEへの引っ越し
ttp://www.avant-tokyo.com/oracle/oracle8i-oracle10g.html
189NAME IS NULL:2009/10/23(金) 07:25:11 ID:???
>>188
サンクス。LIINUXならexport LANGで行くらしいけど
Winはそういうコマンドが無い(?)みたいだから。

今はテストだからWinだけど、実運用はLinuxにしようかと思ってます。
190NAME IS NULL:2009/10/23(金) 07:36:17 ID:???
Windowsで環境設定
set NLS_LANG=JAPANESE_JAPAN.AL32UTF8
191NAME IS NULL:2009/10/23(金) 19:42:34 ID:SBGcMn+b
CentOSでOracleが流行なのか
192NAME IS NULL:2009/10/23(金) 21:36:54 ID:???
Oracle EnterpriseLinuxじゃダメ?
あれってサポート無しなら無償利用可能でしょ?
oracle-validate-packageって言うOracle入れるのに必要な各種パッケージを
自動で入れてくれるパッケージがあって便利だった。
193NAME IS NULL:2009/10/23(金) 22:26:09 ID:0/DD6cX4
思うにOracle主導が気に入らないのだと思う。
そのラインでいくと、今後のSolarisのOracleは流行らない可能性が高い
194NAME IS NULL:2009/10/24(土) 00:43:06 ID:???
>>190
やったけど、expした時にoracleエラーで弾かれる。
AL32をカットして、Japanese.utf8なら弾かれないけど、
今日調べてみたら、まともに見れない表が多々あるね。SJISのまんまだ。

クライアントのwin98にInstant clientが対応してないとわかってきついな。
Dllのエラーでまくりなので、ひたすらDll入れるつもりだけどむりかも。
XEのclientは256のメモリ要求だし。10.2に下げてみたが上手くいかず。

oo4oを使ってなければ、MySQLにでも乗り換えるんだが……。
同じ理由でLinuxも無理だった。
195189=194:2009/10/24(土) 00:55:03 ID:???
クライアントの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が無いですエラー多発で検証できてません。

何をどうすれば良いのかわかる人いたら教えてください。
196NAME IS NULL:2009/10/24(土) 05:42:26 ID:???
win98だからダメとか、クライアントを2つ入れてるからダメとか、InstantClientはoo4oに対応してないとか、
そんな理由じゃない。
197NAME IS NULL:2009/10/24(土) 06:50:08 ID:???
>>195
レジストリHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
の設定の大半が、8iの設定であるために、8i優先になっているのでは。

まずは、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
がマッサラなPCを用意して、Instant Clientを入れて試してみる
のが手っ取り早いかも。
198NAME IS NULL:2009/10/24(土) 11:27:44 ID:???
>>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切り替えて
接続してみます。

色々レスサンクスです。他にも意見あれば教えてください。
199NAME IS NULL:2009/10/24(土) 23:27:20 ID:Xd1QwCkQ
まだ98つかてるところあるのか
200NAME IS NULL:2009/10/25(日) 12:48:12 ID:???
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とか。

何が問題なんだろう?メモリの割り当て関係のようだけど。
201200:2009/10/25(日) 13:11:46 ID:???
iniサービス名.oraのファイルに
large_pool_size=4194304
shared_pool_size=62914560
streams_pool_size=0
と他のサイト見て追加したら通った。

というわけで続けてみる。
202200: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バージョン。

よろしくお願いします。
203200:2009/10/25(日) 17:46:03 ID:???
apexインストール時のエラーはこの二つだけ。
まっさらな状態で始めたんだけど。

行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。

ログは自動で取得だった。消すのはapxremov.sqlだね。

対策ありましたら教えてください。
204NAME IS NULL:2009/10/25(日) 17:47:28 ID:???
行1でエラーが発生しました。:
ORA-00955: すでに使用されているオブジェクト名です。

もう一個はこれ。失礼しました。
205200:2009/10/26(月) 00:54:28 ID:???
catblock.sqlを実行でOK。
Thank you for installing Oracle Application Express
わーい。

さらに続ける。
206NAME IS NULL:2009/10/26(月) 09:13:24 ID:???
>>200
日記なら他所でやってくれ
207NAME IS NULL:2009/10/26(月) 21:20:24 ID:DWwkRJpi
OracleでSQLのみでHTMLデコード処理したいんですが、よい方法ありませんか?
Javaとかでストアド作ったほうがよいのかしら。。
208NAME IS NULL:2009/10/27(火) 00:32:13 ID:???
>>207
HTMLデコードってなに!?
209NAME IS NULL:2009/10/27(火) 00:44:17 ID:???
>>207

SQL*PLUSでMARKUP HTML ONとかって事か?
210NAME IS NULL:2009/10/27(火) 01:47:37 ID:dnxl11zG
MARKUP HTML ONってわからないですが、
CSVファイルでもらってる情報が<BR>とか&とか入ってるもので、
DB的にはそれが<BR>=改行,&=&になればいいとおもってるだけなんです。
やっぱ言語系かましたほうがよいのかも
211NAME IS NULL:2009/10/27(火) 01:50:11 ID:???
>>210
たったそれだけならDECODEでいいじゃん。
212NAME IS NULL:2009/10/27(火) 07:02:10 ID:???
UPDATE TABLE SET TEXT=REPLACE(REPLACE(TEXT,'<BR>',CHR(10)),'&','&')
WHERE TEXT LIKE '%<BR>%' OR TEXT LIKE '%&%'

はダメですかそうですかすみません
213NAME IS NULL:2009/10/28(水) 03:05:22 ID:???
ACFS試した人いる?
OCRや投票ディスクもおけるみたいなんだけど。
という事はRACをインストールする場合には、先にasmcaでACFS作って、その後に
CRSのインストールになるんかいな?
良く分からん。
取りあえずVMWare使って11g R2 RAC組んでみるか・・・。
214NAME IS NULL:2009/10/28(水) 12:48:30 ID:???
オラクルというより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
のようなテーブルを作りました。これでテーブルは減りましたが、
どんなに小さな値しかない項目もテキスト型になるのが気になります。

そもそもこういった設計はアリなんでしょうか?
また、繰り返し値が多数ある場合(繰り返し数は不定)の、一般的なやり方というのはあるのでしょうか?
215214:2009/10/28(水) 13:00:47 ID:g69HuQDu
あ、3,4の電話は実際は違う値です。
216NAME IS NULL:2009/10/28(水) 13:37:39 ID:???
でっけぇ釣り針だな、おい
217NAME IS NULL:2009/10/28(水) 14:04:33 ID:???
>>214
1つのSQLで全部取得しようとせずまず本体テーブルを検索してから、
電話番号テーブルやメールアドレステーブルを順次検索すればいいのでは?
218214:2009/10/28(水) 14:26:15 ID:???
>>217
レスありがとうございます。
なるほど。細かいテーブルが10, 20と増えて行くのが何となく気持ち悪いと思ったのですが、とりあえずそういうものだと割り切ることにします。
219NAME IS NULL:2009/10/28(水) 23:03:00 ID:X/2djzan
XE windows版のAPEX3.2.1インストールに成功した人いる?
http://www.orchid.halfmoon.jp/wiki/ora10gxe_04.html

と同じ方法でやってみたが、
anonymousをアンロックしても、
XDBのポップアップ認証が出て、APEXに入れない。
海外のフォーラム見ても同じ症状の人がたくさんいるみたいだ。
ttp://kr.forums.oracle.com/forums/thread.jspa?threadID=606186

再現性あり。(レジストリきれいにしてXE再インストールしても駄目)
apex_epg_config かapxconfでXDBのアクセス権見てるようだけど、
どこをどうすれば良いんだろう?


220NAME IS NULL:2009/10/28(水) 23:09:21 ID:???
apxconf.sqlじゃなくてapxldimg.sqlだった
221NAME IS NULL:2009/10/28(水) 23:50:20 ID:???
SJSI化+APEX3.2.1ね。連投失礼しました。
222NAME IS NULL:2009/10/31(土) 20:58:02 ID:???
Oracleデータベースを
Oracle VMやVMware上で動かすときは
データは仮想ディスク上に置くのではなく
RAWディスクやネットワークストレージ上に置くんですか?
223NAME IS NULL:2009/10/31(土) 21:25:53 ID:???
>>222

仮想ディスク上に置くことが多いんじゃない?
まあ、直接ディスク触っているパターンもあるとは思うけと゛。
224222:2009/10/31(土) 23:25:39 ID:???
>>223
そうですか
仮想ディスク上に置くとすると
その仮想ディスクファイルを書き込むときの
ディスクキャッシュとかどうなるのかと気になりまして。
キャッシュOFFにする設定とかした上で使うんですかね。
それとも仮想ディスクファイル自身はキャッシュされない?
225NAME IS NULL:2009/11/01(日) 11:24:22 ID:???
>>224

VMWareレベルで当然キャッシュをオフにする事も出来る。
特にVMWare RACを組む場合にはそうしないといけない。
基本的にO/SとのダブルバッファはOracleは推奨していないから
オフに出来るのならチューニングも楽だし、それに越した事はない。

ただ仮想ディスクが乗っている物理ディスクはおそらくファイル
システム上に配置される事だろうから、こっちの方はO/Sレベルで
オフに出来ないんだったらどうにもならないと思うけど。
226222:2009/11/04(水) 00:36:19 ID:???
>>225
仮想ディスクはSANやNAS上に置くのが推奨されてるみたいだから
OracleやVMwareが動作確認しているものならばきっとオフが
できる機器なんでしょうね。
227NAME IS NULL:2009/11/10(火) 20:52:45 ID:???
質問です。
'12781278'とある文字列のうち、7と8はそのまま、それ以外は半角スペースにしようした場合、
単一行関数で解決できますか?
Oracleは11gです。
228NAME IS NULL:2009/11/10(火) 20:54:28 ID:mOY2vEuL
SQLDevelop2.1リリースされてるね
若干軽くなった感じがする
229NAME IS NULL:2009/11/10(火) 21:52:01 ID:???
>>227

select translate('12781278','0123456789','_______78_') from dual ;

こうだったかな?iPhoneからなので確認してないです。
アンダーバーはスペースにして下さい。
230NAME IS NULL:2009/11/10(火) 22:23:52 ID:???
>>227 こーいうのとか?

SQL> select c1, regexp_replace(c1,'[01234569]',' ') "c1rep" from t1;

C1 c1rep
-------------------- --------------------
1234567890 78
87218721 87 87
12781278 78 78
231227:2009/11/10(火) 22:31:09 ID:???
上の二方回答ありがとうございます。
この書き込みに追加されるのを見る前に自己解決しました。
REGEXP_REPLACEを使いました。答えてくれてありがとうございます。
232名前は開発中のものです。:2009/11/11(水) 18:53:39 ID:???
質問です。

あるユーザーにストアドの実行権限があるかどうかを調べたいのですか
どうすればいいのでしょうか?

ツールはObject Browserを使用しています。
233NAME IS NULL:2009/11/11(水) 20:03:58 ID:???
>>232
DBA_TAB_PRIVS,ROLE_TAB_PRIVS
DBA_SYS_PRIVS,ROLE_SYS_PRIVS
あたりを見ればいいんじゃね?
234NAME IS NULL:2009/11/11(水) 20:08:00 ID:XB9YQk85
2バイト文字のデータが入っているDB(Oracle)を別のDB(PostgreSQL)に移さないと
いけなくなりました。どういう方法があるでしょうか?
一旦ファイルにダンプして、ファイル経由でやろうと思っているのですが、その場合、
ファイルは2バイト文字があるためバイナリファイルにしないとだめでしょうか?
どうかよろしくお願いします。
235NAME IS NULL:2009/11/12(木) 03:06:27 ID:???
>>234

CSVにでもなんにでもフラットファイルに吐きだしてそれを移すしかないんじゃね?
236NAME IS NULL:2009/11/12(木) 07:17:32 ID:???
「2バイト文字がバイナリ」というのがよくわからん
237NAME IS NULL:2009/11/12(木) 08:09:58 ID:???

2バイト文字が倍ナリ(コロスケ的な意味で)
238NAME IS NULL:2009/11/12(木) 10:57:40 ID:???
オプティマイザの指定について質問があります。
RBOをサポートしなくなったはずのOracle10.2g上で、
/*+ RULE*/というヒント付きのクエリを実行すると、
なぜか実行計画がルールベースになってしまいます。
(初期化パラメータのOPTIMIZE_MODEはALL_ROWSです)
クエリのソースを変えずに、コストベースで
実行させることはできないのでしょうか?
(できればプラン・スタビリティ等も使わずに…)
239NAME IS NULL:2009/11/12(木) 15:45:01 ID:???
ヒント句の指定が一番優先されるからヒント句をいじるしか方法はない気がする。
240NAME IS NULL:2009/11/13(金) 01:58:18 ID:???
11gR2のWindowsっていつ頃になるんだろう
241NAME IS NULL:2009/11/13(金) 02:19:51 ID:???
2099年中とあったはずだ
242NAME IS NULL:2009/11/13(金) 08:09:54 ID:???
>>241
>> 2099年中
ずいぶんと気の長い話だな、おい。
243NAME IS NULL:2009/11/13(金) 23:47:02 ID:???
>>232
OBなら、黄色の人型のボタン(ユーザ情報)を開いて、
見たいユーザを開いて、真ん中のシステム権限欄の中の
EXECUTE ANY PROCEDUREとかの左のチェックボックスがONかどうか。

あとは、ロール単位で権限が割り当てられている場合もあるので、
見たいユーザを開いた時に、左のロール欄の中に
どのロール(権限のグループ一括設定みたいな意味)がついているか確認。
チェックがついているロールをダブルクリックするとそのロールにどのような
権限がついているか見れるので、先ほどと同じシステム権限欄を見る。

あとは、オブジェクト単位(プログラム単位)に権限が割り当てられている場合もあるので、
見たいユーザを開いた時に、右のオブジェクト権限欄の中に
個別に「EXECUTE 〜 プログラム名」とかが入っていないか確認。

以上ですべて。どうよわかった?
244NAME IS NULL:2009/11/14(土) 02:19:33 ID:???
質問です。
cseで作ったテーブルに、文字コードがUnicodeのcsvファイルのデータをいれようとしているんですが、エラーが起きていれられません。
文字コードをSJISにするとちゃんと値が入るんですが…どうしたらテーブルにUnicodeのcsvデータをいれられるのでしょうか?
よろしくお願いします。
245NAME IS NULL:2009/11/14(土) 10:58:58 ID:???
Unicodeの最新はUnicode 5.2
ORACLEのバージョンによって、
どこまで対応しているか違う。
ORACLEのバージョンは必須情報。

Unicodeは、幾つかの種類があって、
多用されるものとしても
UTF-8とUTF-16がある。
その情報も必要。

ま、たいていは、環境変数NLS_LANGを
AMERICAN_AMERICA.AL32UTF8に
設定したらイケる。
SQL*Plusとかのメッセージが
英語表記になるけどね。そういうもんだから。
246NAME IS NULL:2009/11/15(日) 22:34:39 ID:u/XdpS1b
10年前に開発したVB6のシステムでOracle8iを使っています。
DBサーバの保守が切れるということで
クライアント→DBサーバ
というのを
クライアント→クライアントにインストールしたDB
という風にして、1台のスタンドアロン環境で動作するようにしたいです。

この場合、クライアントにインストールするOracle8のライセンスが必要でしょうか?
また、Oracle8はまだどこかで買えるでしょうか?
247NAME IS NULL:2009/11/15(日) 23:43:47 ID:???
>>246
保守切れのサーバにインストールしていたサーバライセンスを流用してクライアントにインストールすればライセンスいけんじゃね。
つか10年前のクライアントでDBサーバなんてうごくんか?
サーバにインストールしたときのCDはどうしたね。買うなんて不可能に近いと思うが。秋葉原の怪しげな店でもひた探すか?
248NAME IS NULL:2009/11/16(月) 01:11:47 ID:???
>>246

8なら自宅に転がっているかもなぁ。
でも引越しの時に二度と使わないと思って捨てちまった可能性も高いかも・・・。
249NAME IS NULL:2009/11/17(火) 22:23:45 ID:???
今日オラクルに問い合わせたら、11gR2は来年の中頃にはリリースって聞いた
その時聞き忘れたんだけど、現在、クライアントに関してWindows7上の動作保証が
あるバージョンって存在するのかな?
250NAME IS NULL:2009/11/18(水) 00:33:59 ID:???
>>249
来年の中頃!? Windows版のことかな。
なんじゃそりゃ…、Oracleのソースコードってどうなってんだ
251NAME IS NULL:2009/11/18(水) 00:37:19 ID:???
OSごとに別会社に委託
252NAME IS NULL:2009/11/18(水) 02:16:48 ID:???
>>250
ごめん
遅くとも来年の中頃ってこと
ちなみにWindows版の事ね

2ヶ月前にはHPとかでお知らせがあるらしい
つまりリリースは早くとも年明けって事
253NAME IS NULL:2009/11/18(水) 12:15:29 ID:???
>>252

HPからリリースされるということ?
アライアンスとしてしか売られないとか?
254NAME IS NULL:2009/11/18(水) 22:22:59 ID:???
>>254
オラクルのオラクルのWebサイト等ってことです

ちなみに11gR2より前のバージョンはWindows7上の
動作保証は無いし、今後対応する予定も無いとのこと
255NAME IS NULL:2009/11/18(水) 22:32:07 ID:???
>>254

ネタに(略
256NAME IS NULL:2009/11/18(水) 22:41:17 ID:???
ネタだったのか…orz
257NAME IS NULL:2009/11/18(水) 23:34:38 ID:???
>>239
サンクスです。
やはりヒント自体を削除するしかないみたいですね…。

ところで、全く別件で
Oracle10gのDataPumpExportについて質問があります。
パラメータファイル内の記述をミスして、
PUMPEXPORTのジョブが停止状態になっていたのを見逃したまま
うっかりdmpファイルを削除してしまいました。
そのためジョブにattachできず、KILL_JOBもできなくなってしまいました。
データそのものには影響ないと思うのですが、
こういう場合、宙ぶらりんになったジョブを削除する方法はないのでしょうか?
258NAME IS NULL:2009/11/19(木) 01:13:28 ID:???
>>257
DPが内部的にテーブルを作成しているから
それをドロップ
259NAME IS NULL:2009/11/19(木) 11:47:16 ID:???
>>257

もしくは別ジョブを開始してそれがクリーン終了したら内部的に作成されたテーブルも消える。
260NAME IS NULL:2009/11/19(木) 20:56:31 ID:???
Oracel Exadata使ってる人いますか?

顧客から現行のDWHシステムをOracel Exadataに置き換えたいと言われてるんだけど
情報が少なくて費用対効果がでるか不安なんです

事例も少ないし

オラクルの営業に聞いても良いことしか言わないし返って信用出来ないですよ
261NAME IS NULL:2009/11/20(金) 00:38:32 ID:???
>>260

Exadata 11gR2はかなり使える機能が増えたと聞いた。
そろそろ使ってもいいんじゃまいか?
262NAME IS NULL:2009/11/20(金) 00:57:24 ID:JpSM8BuE
Oracleってサブクエリー遅いよな。

263NAME IS NULL:2009/11/20(金) 01:01:53 ID:???
童貞の分際で。
264NAME IS NULL:2009/11/20(金) 01:24:59 ID:JpSM8BuE
は?
265NAME IS NULL:2009/11/20(金) 01:36:07 ID:???
消えろage厨
266NAME IS NULL:2009/11/20(金) 02:53:27 ID:???
Exadataに関して言えば、
期待した性能が出ない可能性より、
客の予算が十分か、の方が心配だ。

2億円を超えると思う・・・
267260:2009/11/20(金) 06:22:39 ID:???
>>261,266
レスども

オラクルの営業もR2は前バージョンとは別物って言ってるけど
結局はRACなので他の専用アプライアンスに比べると性能悪いような気がするんですよね

客の予算は充分ではないけどギリギリ買えそうなレベルです
その分、俺らの設計・構築費用が削られそうだけど

268NAME IS NULL:2009/11/20(金) 06:31:33 ID:???
11gR2てRACが前提なの?
269NAME IS NULL:2009/11/21(土) 04:27:35 ID:???
ITproの2009/09/16の記事から抜粋。

Sun Oracle Database Machine
・データベース・サーバーにXeonプロセッサを最大で8CPU、64コア、メモリーを最大で400Gバイト搭載
・ストレージ・サーバーは、最大5テラバイトのフラッシュメモリーと最大336テラバイトのディスク
・データベース・サーバーとストレージ・サーバーの間は、40Gビット/秒のInfiniBandで接続
・価格は、11万ドルから115万ドル。
270NAME 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);

みたいな。。
271NAME IS NULL:2009/11/24(火) 22:36:57 ID:bK9KIBay
初心者のなのですが教えてください。

商品テーブルに商品コード、商品名、商品企画コードがあります。
商品規格テーブルに商品規格コード、諸品規格名があります。

商品コード、商品名、商品規格名をセレクトしたいのですが
商品規格コードを渡すと商品規格名を返すファンクションを作ってセレクト文に練りこむ方法と
商品規格コードでインナージョインしてセレクトする方法

どちらの検索方法が早いですか?
また、一般的なのはどちらの方法でしょうか?
272NAME IS NULL:2009/11/24(火) 22:41:12 ID:???
>>271
その構成じゃJOIN出来るカラムがないよ

273NAME IS NULL:2009/11/24(火) 22:42:49 ID:???
例えば会社コードが2バイトならmemcpyで2バイトの変数に格納することができる。
strcpyなら最低3バイト必要。

\0で初期化するのは変数の宣言時に変数内を\0で埋めるとは保障されてないからだと思う。

間違ってたらスマン。
274NAME IS NULL:2009/11/24(火) 23:00:51 ID:???
>>271
圧倒的にINNER JOIN方式だろうな。
ファンクション化方式は、
・内部の抽出条件を表に教えたくない
・抽出条件が複雑すぎるので表のSQL文簡素化の為
に有効な手段であって、高速化とは逆。

ファンクションを起動する分と
きかくテーブルをSELECTするSQL文の解釈を行う時間分
だけ多く時間がかかる。
275NAME 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句がないと駄目なのか、
よくわかりません。
276NAME IS NULL:2009/11/25(水) 07:13:18 ID:???
>>275
複数の行をまとめてFETCHしたいのであれば、
ホスト配列を使用すれば可能。
ホスト配列 Pro*C でググルとOTNのマニュアルが
ヒットするから、そこを見てください。
277NAME IS NULL:2009/11/26(木) 00:06:04 ID:???
>>276
ありがとうございました。
無事、できました。
278NAME IS NULL:2009/11/26(木) 00:13:04 ID:ec24a8ww
SQLPlusで環境変数の参照したいんだけど、もしかしていい方法ない?
まぁ情報探しにくいってのはOracleの弱点なんだよな

279NAME IS NULL:2009/11/26(木) 00:39:45 ID:???
情報を探しやすいDBってなによ?
参考までに教えて
280NAME IS NULL:2009/11/26(木) 00:51:51 ID:???
またおまえか
281NAME IS NULL:2009/11/26(木) 01:09:55 ID:???
おれおれ
282NAME IS NULL:2009/11/26(木) 01:15:15 ID:???
やっぱりな
283NAME IS NULL:2009/11/26(木) 19:49:06 ID:???
>>278
HOSTコマンド
284NAME IS NULL:2009/11/27(金) 00:34:07 ID:???
INSERT INTO 表名A
(列1, 列2, 列3)
VALUES ('&列1', '&列2', '');

UPDATE 表名A
SET 列3 = (substr(列1, 1, 1) || substr(列2, 2, 2));

こんな感じの2個の文をひとつにまとめる方法とかありますか?


Oracle 11gです。
285NAME IS NULL:2009/11/27(金) 00:43:45 ID:???
いくらでもあります。
286NAME IS NULL:2009/11/27(金) 00:47:17 ID:???
文章の内容が悪かったようです。

まとめる方法があるならば、
どうすればいいのか教えてください。
287NAME IS NULL:2009/11/27(金) 01:01:52 ID:???
"&列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
288NAME IS NULL:2009/11/27(金) 01:40:36 ID:???
>>287
最終的にやりたいことは、
&置換変数を用いて入力した値2個と
それの1部を結合した値を1行に出力して、
その文をスクリプトファイルとして保存して
レコード作成を行いたいってことです。
最初に書くべきでした。すみません。

値の入力はできれば&置換変数を用いたいのですが・・・
289NAME IS NULL:2009/11/27(金) 02:15:10 ID:???
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
290NAME IS NULL:2009/11/27(金) 02:34:35 ID:???
>>289
そもそも無名プロシージャというものを知らなかったので、
出来ると思いませんでした。
>>287の文は実行したらエラーになったし・・・


おかげさまで出来ました。
ありがとうございました。
291NAME IS NULL:2009/11/28(土) 19:27:08 ID:mokrBmmd
インストールした状態で、ライセンス形態は表示されますか?

Oracle Database 10g Standard Edition Windows XP です。

あるセミナーに参加するのに、10gをインストールしておく必要があります。
OTN開発ランセンスでインストールするか、トライアル版でもセミナーの内容には
ついて行けるのですが。

製品版を買っていない場合は、関連業者からの購入を強く促されるようです。
OTNやトライアル版をインストールしていっても正規のライセンス版と見分けが付かなければ
それで済ませたいのですが。
292NAME IS NULL:2009/11/28(土) 19:53:54 ID:???
>>291

同じだよ。
293NAME IS NULL:2009/11/28(土) 20:26:28 ID:???
「ディスライセンス イズ フォー デベロッピング オンリー」
とか表示されないんですね?

よかった。 貯金をゼロにしなくて済みます。
294NAME IS NULL:2009/11/29(日) 13:50:28 ID:???
>>293

せめて>>1ぐらい読んでから質問しようや。
295NAME IS NULL:2009/11/29(日) 14:42:03 ID:???
いやです。
教えてください。
296NAME IS NULL:2009/11/30(月) 13:30:24 ID:???
Linux(RH AS 5)版の11g R2 Grid Infrastructureのインスコに成功した人いる?
OCRとかをASM上に配置するオプションで。
なんか日本語でインスコするとASMLib使っているのにASM用のHDD候補とか
見れなかったりするんだけど?
297NAME IS NULL:2009/11/30(月) 23:42:53 ID:???
>>296の追加だけど、Grid Infrastructure(CRS)のroot.shの実行中にSignal 11で死ぬ。
こいつと全く同じ現象。

http://forums.oracle.com/forums/thread.jspa?threadID=985279&tstart=30

もしかしてRH AS 5.4でテストしていない?
298NAME IS NULL:2009/12/01(火) 19:27:21 ID:???
RH AS 5.4などない。
299NAME IS NULL:2009/12/02(水) 01:48:43 ID:???
>>297
# uname -srmpio
# rpm -qa | grep -i oracleasm
300NAME IS NULL:2009/12/02(水) 16:17:04 ID:GlCvq1AR
254のどこがネタなのかよく分からんのですが・・・・

1.ウイセブで動作保障されるOracleのクライアントは、現時点では11r2のみの予定
2.Windows版11r2クライアントソフトは、2010年中頃までには遅くともリリースされる
3.リリース2ヶ月前には、OracleのHPでアナウンスされる

ということでおkですか?

ウイセブ環境でのクラサバアプリの動作検証をせなあかんのですが、
もし、11r2のクライアントがリリースされるなら、それまで待とうかと思いまして。
301NAME IS NULL:2009/12/02(水) 20:44:22 ID:???
>>300
どうも>>254の者です
ネタの話は置いておいて…
それであっていますよ
302NAME IS NULL:2009/12/03(木) 02:04:26 ID:RG7qM8LP
ウイセブてなに?
303NAME IS NULL:2009/12/03(木) 06:45:15 ID:???
254を読めよ。
なんで省略するのか訳わからんが。
304NAME IS NULL:2009/12/03(木) 13:16:40 ID:???
>>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で作成して試してみたが同じ症状。

分からん。
305NAME IS NULL:2009/12/03(木) 15:59:35 ID:3GiTAxwX
>>301
dクスです。
現時点で未定だと、さすがに作業に支障があるので
win7に10gr2を互換モードでインストールすることにしました。
>>302
windows7のことです。
DQNなうちの会社ではみんなウイセブと呼んでいるので、つい伝染してしまいました。
他の会社では、なんと呼んでいるんだろう。やっぱり「セブン」かな?
306NAME IS NULL:2009/12/03(木) 21:53:53 ID:???
「うぃんなな」以外の呼び方があるとは思いもよらなかった。
307NAME IS NULL:2009/12/04(金) 00:25:41 ID:???
>>304
rpm は i686 とかまで見たかったけど、まぁいいや。
glibc の問題とか色々あるみたいだけど。
まだ11gR2はDBしか触ってないので、場所が同じなら
$ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log
あたりのログから何か無いかね。
308NAME IS NULL:2009/12/04(金) 04:39:41 ID:???
>>307

ログは探してみたけどないなぁ。
インストールログも何の手掛かりも無し。
coreとか吐いてくれていたらgdbとかも使えるんだろうけど、coreも無し。
その内コソっと直ったバージョンとかがOTNにウプされていそう。
309NAME IS NULL:2009/12/04(金) 09:16:10 ID:6g9IQkjN
>>300
それってよく聞くけどオラクル社から正式発表されてる?
URLあったら教えてほしい。
ホームページを探してみたが探し方が悪いのか見つからない。
310NAME IS NULL:2009/12/05(土) 00:31:42 ID:???
>>309
URLというかオラクルダイレクトに電話して聞いた
0120-155-096
リリース時期は未定だけど、大体いつ頃になりそうですか?
って聞いたらその回答が返ってきた
311NAME IS NULL:2009/12/05(土) 12:17:14 ID:inq9WrQ/
>>310
ありがとうございます。
早速月曜日に聞いてみます。


規制でPCから書き込めないの不便だな〜
312NAME IS NULL:2009/12/05(土) 15:51:47 ID:???
UbuntuにEnterpriseで無理やり入れてたら、インストールはできたが
インスタンスが上がらなくて、Ubuntuに32bitと64bit版があるのに
今更気がついた。遊びだからいいけど、貴重な休日が・・。
313NAME IS NULL:2009/12/06(日) 00:18:04 ID:7evwUms2
最近、OracleてPostgreSQLに食われてるよな
314NAME IS NULL:2009/12/06(日) 00:36:11 ID:???
無料であること以外に明らかに勝ってる要素がないと客は動かないぞ。
315NAME IS NULL:2009/12/06(日) 08:33:58 ID:???
sybase一筋の人にOracleを学んでもらうのに適した資料ってありませんかね?
316NAME IS NULL:2009/12/06(日) 17:09:59 ID:XziuAWI9

RAM 2GBのVistaマシンに11g入れたんだけど、
常時HDDがガリガリ言ってて参った。
2GBも積んでまだ足りないのか。

317NAME IS NULL:2009/12/06(日) 17:40:11 ID:???
10gしか知らないけど、SGAやPGAの値をギリギリまで小さくすれば512MBでも普通に動いたぞ。
EnterpriseManagerも何とか動く。
256MBは流石にHDDガリガリいってて無理だったので512MBにしたんだが。
Vistaじゃなくて2000だけど。
318NAME IS NULL:2009/12/06(日) 19:03:14 ID:???
>EnterpriseManagerも何とか動く。
512kでこれは動かす気がしなかった。
319NAME IS NULL:2009/12/06(日) 19:17:44 ID:???
>>317,318
Enterprise Managerはjavaの起動オプションで1024KBきってるから
起動はするし、動くには動くだろうけど、それこそHDガリガリじゃないの

以前、サポートにjavaの起動オプション変えられないのか聞いたことあるけど
当然無理と言われたぞ
320NAME IS NULL:2009/12/06(日) 19:56:02 ID:???
EM動かさなきゃいいじゃん。
321NAME IS NULL:2009/12/06(日) 20:27:44 ID:???
>>320
EM動かさなかったら動かさなかったでEMが勝手にやってくれるメトリック監視とかを
作りこまなきゃならないだろ

趣味でOracle使ってる奴ばかりじゃないんだぞ
322NAME IS NULL:2009/12/06(日) 20:29:32 ID:???
>>321

EM を起動するかどうかと、repository を持っているかどうかは別問題なんだけどね。
ちゃんと勉強し直したほうがいいよ。

323NAME IS NULL:2009/12/06(日) 21:16:09 ID:???
というか趣味で動かすんじゃないなら
ちゃんとしたスペックのマシンを用意しろよ
324NAME IS NULL:2009/12/06(日) 21:39:27 ID:???
>>323

たぶん零細企業で自転車操業なんだろうから、そのへんは大目に見てあげようよ。
325NAME IS NULL:2009/12/06(日) 22:03:25 ID:???
零細企業でもVISTAはないだろう、JK
326NAME IS NULL:2009/12/06(日) 23:33:14 ID:???
ChromeOSよろしく、インスコしたら一発でOracleまでインストール、
起動されるOracleOSってのが欲しい。
いや、OracleVMのテンプレートでそんな感じの奴があるけどさ。
どうせOSもOracle社で作ってるんだし、やってやれないことは無いと思うんだけど。
327NAME IS NULL:2009/12/06(日) 23:39:32 ID:???
昔 MiracleLinux というのがあってだね、(以下略
328NAME IS NULL:2009/12/06(日) 23:42:57 ID:7evwUms2
Oracle糞会社にそこまで期待する奴がいるとは思わなかった。
来年あたりはOracleヤバイんじゃねーの?
329NAME IS NULL:2009/12/06(日) 23:52:29 ID:???
いや、今でもOracle EnterpriseLinuxってのがあるのは重々承知してるんだけど、
WindowsとかLinuxとかSolarisとか色んなOSサポートしていくよりは、
OELとの組み合わせでしか検証しません、その代わりOSと組み合わせて提供します、
の方がサポートも楽だし、導入する側も変に頭悩ませなくて済むと思うんですが。
どうせ大規模データベース市場は実質的にOracleしか選択肢無い訳だし。
330NAME IS NULL:2009/12/06(日) 23:56:08 ID:7evwUms2
Oracleの対抗としてはSQLServerかDB2になるわな。
でも実際はPostgreSqlとかで足りると思う。
331NAME IS NULL:2009/12/07(月) 01:02:09 ID:???
逆に、いろんなハードを面倒見る手間がかかるだろ
332NAME IS NULL:2009/12/07(月) 19:28:26 ID:???
MySQLと違って、PostgreSQLじゃなきゃダメ、ってのがない。
333NAME IS NULL:2009/12/08(火) 01:46:03 ID:nndDDrU0
まぁしかしOracleのオプティマイザーもふざけすぎでしょ
できの悪いもホドがあると思うよ。
334NAME IS NULL:2009/12/08(火) 12:41:11 ID:YPusK/Y0
メンタマル「うわっ」ぷー
シャナ「」ブ〜ッ
大河「」ブ〜ッ
ナギ「」プリッ
ルイズ「」ブリッ


神楽「お前ら死ね」


おまえらざまぁああああ
おまえらの大好きなキャラも屁もウンコもするしケツノアナに手を突っ込んで臭いかぐんだよ!!!!

ざまぁwwwwwww
メwwwwシwwwウwwwwマwwww

死ね!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
335NAME IS NULL:2009/12/08(火) 12:45:42 ID:YPusK/Y0
私前原圭一は竜宮レナの肛門にトラウマがありますどうかこの事件を解決して下さい、そして私前原圭一は大石さんを愛しています
336NAME IS NULL:2009/12/08(火) 20:28:24 ID:???
Oracle 11g R1 Standard Edtition
Windows Server 2003 Standard Edtition

LOB型のチャンクサイズを4096バイトにするには
表領域のブロックサイズを4096バイト以下にする以外方法はないですか?
337NAME IS NULL:2009/12/09(水) 00:04:54 ID:???
sqlplus等で他のサーバにあるOracleに接続する際、
接続文字列としてサービス名を使わずに
「user/pass@IPアドレス:ポート番号/SID」
という形式で指定できると思うのですが
これはOracle9i等の古いVerでも可能なのでしょうか?
Oracle10g以降で出来るのは分かったのですが…。
338NAME IS NULL:2009/12/09(水) 00:15:10 ID:???
EZCONNECTは10gの新機能なので9iでは使えないよ。
339NAME IS NULL:2009/12/09(水) 00:44:51 ID:Ao+i+k7i
IPアドレスで接続がEZCONNECT、それもバージョン10以上か糞だな
340NAME IS NULL:2009/12/09(水) 04:06:49 ID:???
>>336

TABLESPACE hogets DISABLE STORAGE IN ROW CHUNK 4096ではダメなんかいな?
ただこの場合にはChunkってdb_block_sizeの切り上げたサイズにしかならないけど。
341NAME IS NULL:2009/12/09(水) 06:34:30 ID:???
>>340
ありがとうございます
やってみます
342NAME IS NULL:2009/12/10(木) 00:48:33 ID:g/c/UJaz
Oracle 11g

ロックに関して質問です。
コミット後も継続して行排他ロックを掛ける方法は無いでしょうか?
できれば時間指定できれば尚良いのですが?
343NAME IS NULL:2009/12/10(木) 01:14:10 ID:???
なにそのRDBMSのトランザクションのコンセプトを丸っきり無視した様な要求は?
344NAME 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に変更する処理となり、エラーとなってしまう

この事象を回避するために田中さんがコミット後も継続して
行ロックを行いたいのです。ただし、表ロック等はダメです。
方法はありますでしょうか?
345NAME IS NULL:2009/12/10(木) 02:25:48 ID:???
>>344

無理なんじゃない。
出来るとしたらトランザクションを管理する表を別につくことか?

1. 田中さんがトランザクションを開始したらその表にトランザクション中というフラグを立てる。
2. フラグが立っている間は山田さんはコミットしない。
3. 田中さんの全トランザクションが終了したらフラグを消す。
4. 山田さんが晴れてコミット可能。
346NAME IS NULL:2009/12/10(木) 02:58:18 ID:???
トランザクションがぜんぜん分かってない感じだな。
ロングトランザクションかショートトランザクションかも書いてない。

普通にトランザクションを開始した場合。
田中読み取り
山田読み取り
田中更新
山田更新・・・田中のトランザクションが完了するまで待機状態。
田中コミット・・・山田はトランザクションが失敗する。
(または 田中ロールバック・・・・山田更新成功)

最初の読み取り時に for update 指定で読みにいった場合。
田中 for update指定で読み取り
山田 for update指定で読み取り・・田中のトランザクションが完了するまで読み取りは待機状態となる。
よって不整合は発生しない。
347NAME IS NULL:2009/12/10(木) 03:14:45 ID:???
整合性うんぬんの話じゃなくて、田中がselect for updateで取りに行っても
commitされた瞬間に山田がupdate出来るのを防ぎたいというのが要求
だと思ったが?
要するにアプリ側にエラーを返したくないというのが狙いだと俺は思ったけど?
348NAME IS NULL:2009/12/10(木) 03:16:37 ID:???
いずれにせよRDBMSのトランザクションのコンセプトを無視した要求で
ある事には間違いないけどね。
349NAME IS NULL:2009/12/10(木) 03:40:07 ID:???
読み取りと書き込みを別のトランザクションでやってるんじゃないかな。
350NAME IS NULL:2009/12/10(木) 05:45:52 ID:???
A1,A2,B,Cがそれぞれ何を意味するのかオレにはわからん。
お前ら、よくわかるな。感心する。
351NAME IS NULL:2009/12/10(木) 10:03:02 ID:???
そういうをレースコンディションていうんですかね?
・田中のトランザクションが終わるまで
 山田にトランザクションを開始させない。(>>346)
・書き込み直前にfor updateで値を読んで、
 他者が更新してないことを確認してから更新する。
 更新されてたら何かハンドリングする。
他にもやりかたあるのかな。
352NAME IS NULL:2009/12/10(木) 22:44:40 ID:???
select for updateかとも思ったけど、田中コミット後もロックを継続することが
できたら解決するというのがわからんなぁ。
353342:2009/12/10(木) 23:44:45 ID:g/c/UJaz
リード時に更新日時(systimestamp)を取得しておき
アップデートするときに再度、更新日時を取得して
リード時の更新日時と違っていたらアップデートできない
ようにすれば防ぐことができると思ったんですが却下されました。

何か良い案は無いのでしょうか?
354NAME IS NULL:2009/12/11(金) 00:02:32 ID:???
何を防ぎたいのかがわかんない。

>山田さんはA2をCに変更する処理となり、エラーとなってしまう

エラーが発生したらそれを捕まえて適切な処理したらいいんでない?
355NAME IS NULL:2009/12/11(金) 00:12:54 ID:???
>>353
山田がどうなればいいのか分からない。
それが却下なら、
田中がロック獲得→更新可
山田がロック獲得失敗→エラー又は参照のみ
しかないんじゃ?
356NAME IS NULL:2009/12/11(金) 00:43:38 ID:???
>>353

RDBMSのトランザクションがどういったものかまず理解してからそういった
要求出せと百万回言ってこい。
それが却下されるのなら適切なエラーハンドリング以外道が無いだろうよ。
357342:2009/12/11(金) 00:47:41 ID:w8ODXZPb
A2がCに変更できないのはあくまで1つの例であって、
他にもそういうパターンが多数あるんですよ。
全パターンそれぞれエラーハンドリングの処理を実装する
わけにもいかない規模なので、うまくOracleのロック機能
だけでできないでしょうか?

要するに、1人がデータAに対してトランザクションを開始したら
他のものはデータAに対してトランザクションを開始できなくしたいのです。
(ただし、リードは可能)
358NAME IS NULL:2009/12/11(金) 01:12:24 ID:???
相変わらずこういう人って、いろいろ質問が出ていても肝心の情報は
何も明かさないのね。

>>357
他の人も書いてるけど、単にトランザクション失敗させるんじゃだめなの?
トランザクションをエラーハンドリングするのは当然だし、それも成功と
失敗の二パターンだけ考えればよいというのが大きなメリットなわけだし。
359NAME IS NULL:2009/12/11(金) 01:15:39 ID:???
>>357

こういえば納得するのか?

・その実装はOracleのロック機能だけで実現する事は出来ない。

はい、次の質問ドゾー。

360NAME IS NULL:2009/12/11(金) 01:35:44 ID:???
分離レベルでなんとかなるかどうか分からんが調べてみたら?
以下の二つをうまく組み合わせれば幾つかは実現出来るかも知れないね。

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY;

でもDBをOracleでやる必要なんて、全く無いよね。
361NAME IS NULL:2009/12/11(金) 04:03:13 ID:???
>>357

そもそもトランザクションの単位はcommitもしくはrollbackが行われるまでだろ?
ところがそちらの要求はcommit/rollbackが行われた後でさえ他のユーザーからの
アップデートを許さないという。
ユーザーセッションの接続単位でトランザクションをコントロールしたいというのが
RDBMSのコンセプトからするとどれだけ無理な要求をしていることか・・・。
362NAME IS NULL:2009/12/11(金) 23:23:16 ID:???
1.ユーザAがレコード1をロックします。
2.ユーザBがレコード2をロックします。
3.ユーザAがレコード2をロックしようとして、待ちに入ります。
4.ユーザBがレコード1をロックしようとして、待ちに入ります。

いわゆるデッドロックで、
オラクルでは4の時点でデッドロックエラーが発生するのですが、
私はユーザBに発生すると思っていました。
ところが、実際にはユーザAの方にデッドロックエラーが発生しました。
なぜなのでしょう?オラクルだけの仕様?
データベースではあたりまえのこと?
教えてください。

あと、もう一つ。4.でロックを行う際、
select ... for update wait 10
のようにロックタイムアウトを指定していても、
実行した瞬間にユーザAにデッドロックエラーが発生してしまいます。
これは回避できないのでしょうか?
363NAME IS NULL:2009/12/11(金) 23:33:05 ID:???
デットロックの解消方法は特にルールは決まってないから、
そういう動きをするのはオラクルの仕様なんだろう。
AもBも1,2の順でロックさせるのが基本、そうできない理由は何かあるの?
364NAME IS NULL:2009/12/12(土) 00:25:36 ID:???
365NAME IS NULL:2009/12/12(土) 00:36:17 ID:???
>>362

つ〜か、デッドロックが発生する状況なんてものはアプリの設計がそもそも間違っているんだが?
そういった状況をOracle様側で解決してやるんだから、ありがたく思えというのがスタンスだよ。
366362:2009/12/12(土) 01:20:09 ID:???
回答ありがとうございます。
デッドロックの動作を確認するために人為的にデッドロックを起こしています。
説明不足で申し訳ありません。
>>362でユーザBではなく、ユーザAにエラーが発生する理由、
何かあると思うのですが、オラクルのみぞ知るなんでしょうか?
367NAME IS NULL:2009/12/12(土) 02:21:50 ID:???
>>366
マニュアル案内したのに読んでないの?
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-04/initparams.htm#76813
オラクルは単純にタイムアウト検出している。
なので
> 3.ユーザAがレコード2をロックしようとして、待ちに入ります。
が「4.」の処理で無限待ち確定。デッドロック判定で無条件で
タイムアウトされ60返す。

と個人的認識。
仕様を知りたいなら最低限バージョン情報が必要。
確実を求めるならサポートにどうぞ。
368362:2009/12/12(土) 02:49:00 ID:???
>>367
タイムアウトで判定しているのは分散トランザクションの
グローバル・デッドロックである、と理解したため、
4.のタイミングで一瞬でエラーになるローカル・デッドロックとは
別の話と考えていました。
ただ、ローカル・デッドロックではタイムアウトを省略している、
とすればとにかく先に待ちに入った方がエラーになると考えられる訳ですね。
なんとなく合点が行きました。ありがとうございます。
369NAME IS NULL:2009/12/12(土) 10:35:44 ID:???
下記のページにある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で件数を取ってみると、処理後でテーブルのデータ数は増えているのは間違いないのです。
そもそも統計情報の扱い方を間違っているのか、それとも・・・。
どなたかご教示お願い致します。
370NAME IS NULL:2009/12/12(土) 12:13:00 ID:???
いまどきは DBMS_STATS.GATHER_TABLE_STATS などを使うんじゃないかなー
371NAME IS NULL:2009/12/12(土) 13:06:50 ID:???
>>369

num_rowsは統計情報が取得されて初めて更新されるものだから。
372369:2009/12/12(土) 20:32:00 ID:???
レスありがとうございます。
てっきりanalyze文で統計情報を更新するものとばかり思っていましたが、違うのでしょうか?
373NAME IS NULL:2009/12/12(土) 20:39:50 ID:???
OracleはANALYZEコマンドは使わずにDBMS_STATSパッケージを使ってくれと言っている
374NAME IS NULL:2009/12/12(土) 21:47:05 ID:???
>>372
もう昔の話。
375NAME IS NULL:2009/12/16(水) 00:00:23 ID:BGzwbVQJ
jdbcコネクションプール(10g)使ってんだけど
トランザクション途中でtomcatがハングアップもしくは強制再起動した場合にロールバックされない。
Oracleの仕様っぽく暗黙コミットされるんだけど
対応方法ってある?
376NAME IS NULL:2009/12/16(水) 00:19:15 ID:???
>>375
conn.setAutoCommit(false);
377NAME IS NULL:2009/12/16(水) 00:48:03 ID:???
>>376

OTNの掲示板を見る限りではそれでは解決になってないらしい。
378NAME IS NULL:2009/12/16(水) 00:56:38 ID:???
>>375

- 実行中のトランザクションが存在する状態で、closeConnections() メソッドを実行しない
- closeConnections() メソッドを実行する前に、実行中のトランザクションをロールバックする
- JDBC Driver 10g からの新機能、暗黙的接続キャッシュを使用する
379NAME IS NULL:2009/12/16(水) 10:51:34 ID:???
>>378
暗黙的接続キャッシュってよくわかんないな。
コールバックとか使うといいの?
380NAME IS NULL:2009/12/16(水) 12:36:20 ID:???
381NAME IS NULL:2009/12/16(水) 14:01:13 ID:???
OracleConnection.close しないことにはコミット(暗黙的コミットを含む)されない
ってこと?
382NAME IS NULL:2009/12/16(水) 16:34:54 ID:???
ほんと、長さ0の文字列の扱いと暗黙コミットはOracleのうんこ仕様だよなぁ。
383NAME IS NULL:2009/12/16(水) 23:31:53 ID:Emdvo+qQ
確かにOracleうんこ仕様多いのよな。
384NAME IS NULL:2009/12/17(木) 01:46:51 ID:wRNRd0lz
WindowsXP + VMWareで、RACの検証環境を作りたいと思っています。
DBの規模は20〜30GB程度で、バッチ処理がメインのシステムです。

検証のメインは、RAC環境の構築手順の検証と、基本的な動作検証です。

どの程度のスペック(CPU、メモリ)のPCを用意すれば、ストレスなく検証できるでしょうか?
と言っても、これだけの情報では判断が難しいと思いますが、もし、
現在、こんなマシンで同じような事をして、そこそこ動いているとか、そういう情報が
ありましたら、お教え下さい。
385NAME IS NULL:2009/12/17(木) 03:02:12 ID:???
>>384

最低でもCPUのコアは4つ。
クロックスピードは早ければ早い方が良いのは越した事はない。
メモリは32bit O/SだとMaxでも3GBちょっとしか認識しないが、取りあえず8GB積んで
認識していないエリアをGavotte RamdiskでRamdiskを作成、そこにページファイルを
作成する様にすればそれなりに動く様になる。
32bit O/Sはやはりメインメモリがどうしても制限事項となる。
386NAME IS NULL:2009/12/17(木) 18:13:26 ID:???
どうもシルバーです。
387NAME IS NULL:2009/12/18(金) 00:30:58 ID:/afUwtQE
オラクルの4000/1/1って何ですか?
タイムスタンプ型のデフォルト値ですか?
388384:2009/12/18(金) 01:53:56 ID:???
>>385
ご回答ありがとうございます。

OSは残念ながら32bitで決定なのですが、CPUは4コア、メモリも多めの機種にしてみます。
ありがとうございました。
389NAME IS NULL:2009/12/18(金) 04:34:57 ID:???
>>388

メモリはBIOSレベルで認識していないとGavotteでRamdisk作れないからそこの所注意な。
ちなみにVMWareで使うO/Sは何にするんだ?
32bit O/Sだと各VMWareに対して最大でも1.5GBずつぐらいしかメモリを割り当てられない
から、Oracle Instanceを起動させるとなるとかなりタイトになるとだけ言っておく。
390NAME IS NULL:2009/12/21(月) 16:57:36 ID:???
知識少なすぎて何から調べていいやら、、、すみません、助けてください。

WebLogicのJDBC接続プールから繋いでいるんですが、
とある契機でOracleセッション数がガクンと落ちました。

Oracleセッション数がガクンと落ちたのは、
WebLogicの管理対象サーバを再起動してからですが、
WebLogicのスレッド数、アクセス数は再起動前後で変化がなく、
WebLogicのJDBC接続数は逆に上がっています。
いままでは、Oracleのセッション数は、WebLogicのスレッド数と一致していました。

すみません、何から調べたらよいでしょうか。。。
391NAME IS NULL:2009/12/21(月) 21:08:25 ID:???
USER数偽ってライセンス購入した場合、バレるもんなのかね。
安くなったとは言え高いわw
392NAME IS NULL:2009/12/21(月) 22:16:53 ID:???
>390
単純にJDBCのプール数(コネクション数)が減ったからじゃないの
管理対象サーバのJDBCのコネクション数って初期値と最大値が設定出来るよね
例えばJDBCのコネクション数を初期値1、最大値30とかで設定していると
管理対象サーバの再起動前のはオラクルから見たセッション数が30で
再起動後は1になるってことが起きるよ

普通はコネクションが増えた時のオーバヘッドを考慮して初期値=最大に
するんだけどね
393NAME IS NULL:2009/12/22(火) 00:29:31 ID:???
>>391
客が金出すならともかく自分達で金を出すなら無料のPostgreSQLにしとけ。
394NAME IS NULL:2009/12/23(水) 11:02:54 ID:???
>>308

どうやら32-bit O/S独特の問題みたい。
32-bit Linuxのほとんどが同じ現象に直面している。
テストしてからちゃんとリリースしろと言いたい。

http://erudans.wordpress.com/2009/12/21/strange-failure-on-installing-11gr2-grid-infrastructure-32-bit/
395NAME IS NULL:2009/12/25(金) 00:23:29 ID:???
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のディスクグループに作成出来る様になった。
396NAME IS NULL:2009/12/25(金) 00:29:49 ID:0yLbvf3m
Oracleの実行計画で、いつもMarge Joinにイラッとする
馬鹿すぎるよな、ふざけすぎ
397NAME IS NULL:2009/12/25(金) 03:23:33 ID:???
MargeじゃなくてMerge。
どう?またイラッとした?
398NAME IS NULL:2009/12/25(金) 03:31:38 ID:???
何にイラッとしてるのかわからん
トータルで見てMerge Joinがベストな選択なことはよくあることだろ
気に入らないならヒント使えよ
399NAME IS NULL:2009/12/25(金) 22:32:34 ID:???
oracleのorder byの並び順って何順でしょうか?
内部で使用しているcharacter set順でしょうか?
400NAME IS NULL:2009/12/25(金) 22:47:08 ID:???
>>399

またすごい質問が来たな。
401NAME IS NULL:2009/12/25(金) 23:37:07 ID:???
>>399
大体あってる。
402NAME IS NULL:2009/12/26(土) 00:34:19 ID:???
数値でもcharacter set順でソートされちゃかなわんよ。
403NAME IS NULL:2009/12/26(土) 02:16:19 ID:???
こんなの出すと混乱するのかな?

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行が選択されました。
404NAME IS NULL:2009/12/26(土) 02:19:20 ID:???
なにこれ
405NAME IS NULL:2009/12/26(土) 02:51:58 ID:???
alterゴニョゴョスルアル
406NAME IS NULL:2009/12/26(土) 02:54:49 ID:???
シルバーだかゴールドだかの黒本に載ってたな
407NAME IS NULL:2009/12/26(土) 05:23:37 ID:???
ttp://www.shift-the-oracle.com/sql/national-language-compare.html

NLS_SORTなんてのがあるのね。
知らんかった。
408NAME IS NULL:2009/12/26(土) 10:27:24 ID:???
>>403
知ったか乙
409NAME IS NULL:2009/12/26(土) 12:07:23 ID:???
知ったかついでにこんなのとか。
(ちなみに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)
410NAME IS NULL:2009/12/26(土) 12:18:22 ID:???
この人なにがしたいの?
411NAME IS NULL:2009/12/26(土) 14:06:32 ID:???
知識無い奴をからかって楽しんでるに決まってるだろ。
教える気があるならスパっと教えるなり誘導するなりすりゃいいし、
教える気がないなら何も書かなきゃいいのに。
412NAME IS NULL:2009/12/26(土) 14:44:36 ID:???
SQL> ゴニョゴニョ

ORA-00600: 内部エラー・コード,引数 .....

SQL> ゴニョゴニョ

ORA-03113 通信tチャネルでファイルの終わりが検出されました。

・・・・ _/ ̄|○
413NAME IS NULL:2009/12/26(土) 18:43:55 ID:???
>>412
おもしろい。
414NAME IS NULL:2009/12/28(月) 03:15:11 ID:???
Oracle10gのサーバーパラメータファイルについて質問です。
インスタンスが稼働してる状態で、spfileをroot権限で削除したらマズいでしょうか?
415NAME IS NULL:2009/12/28(月) 06:26:29 ID:???
SPFILEをALTER SYSTEMで変更する時、対象をメモリかファイルかそれともその両方かを選べるだろ。
ファイルのみを手動、もしくはALTER SYSTEMで変更した場合、現在のインスタンスにすぐに反映されるかい?
416NAME IS NULL:2009/12/28(月) 06:29:20 ID:???
何のために削除するの
417NAME IS NULL:2009/12/28(月) 13:58:01 ID:???
>>414

別にインスタンスが突然シャットダウンしたりとかはしない。
だがRMANでバックアップをとっていて、 controlfile autobackupがonになって
いたりするとORA-19580やORA-27037が起きる。
またinit.oraから再作成すればこの問題は回避できるけど。
いずれにせよspfileで起動かけたのならそれを消す事はお勧めしない。
418NAME IS NULL:2010/01/04(月) 21:06:56 ID:???
order byのバイナリ順って文字コードでし?
419NAME IS NULL:2010/01/05(火) 00:33:29 ID:???
そうでし。
420NAME IS NULL:2010/01/05(火) 00:56:56 ID:???
シロちゃんを思い出した。ナツカシス
421NAME IS NULL:2010/01/05(火) 01:14:44 ID:???
>>418
具体的にはShift-JISでし。
422NAME IS NULL:2010/01/05(火) 22:28:17 ID:???
>>419-421
ありがとうございます!
おかげで顧客への説明が無事完了しました!
助かりました!
423NAME IS NULL:2010/01/06(水) 02:17:19 ID:???
shift-jisで説明したのかよ。。。
424NAME IS NULL:2010/01/09(土) 08:13:45 ID:???
Oracle10gのクライアントからOracle11gサーバへの接続は可能でしょうか?
425NAME IS NULL:2010/01/09(土) 10:34:17 ID:???
>>424

可能だしサポートもされている。
426NAME IS NULL:2010/01/12(火) 11:58:21 ID:???
select * from DBA_DATA_FILES
を実行すると「ORA-00942: 表またはビューが存在しません。」
というエラーになるんですが、
これ、DBA_DATA_FILESビューが作成されてないってことでしょうか。
427NAME IS NULL:2010/01/12(火) 13:48:03 ID:???
>>426
そのぐらいGoogleすると幸せになれるよ
ttp://www.google.co.jp/search?q=DBA_DATA_FILES+ORA-00942
428NAME IS NULL:2010/01/12(火) 13:59:53 ID:???
>>427
DBA_DATA_FILES って、システムで必ず作成されるビューじゃないんでしょうか…?
429NAME IS NULL:2010/01/12(火) 14:15:12 ID:???
>>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
430NAME IS NULL:2010/01/12(火) 14:37:28 ID:???
>>429
丁寧にありがとうございます。勉強してきます。。。
431NAME IS NULL:2010/01/12(火) 22:17:42 ID:???
>>426-430
単に権限がないだけと見た。
432NAME IS NULL:2010/01/13(水) 00:42:56 ID:???
おいらもそう思った。
どのユーザーでログインしている?
sysかsystemでログインして同じSQL実行してみ?
433NAME IS NULL:2010/01/13(水) 09:30:23 ID:???
>>431-432
systemでログインしたら、実行できました。。。
すみません、お騒がせしました。ありがとうございました。
434NAME IS NULL:2010/01/13(水) 17:46:08 ID:???
どなたか、情報をお持ちでしたら教えてください。

11gR1でインスタンス作成時にインストールしたOracleXDBを
後から削除する方法はないのでしょうか。

9iは、マニュアルに方法が記載されていました。
10gは、削除ではありませんが、再構築方法が記載されていました。
しかし、11gになると、それすら記載がありません。
(一応、catnoqm.sqlは、製品ディレクトリに存在しているようです)
435NAME 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文の違いにどのような問題があるのでしょうか?よろしくお願いします。
436NAME IS NULL:2010/01/13(水) 22:22:25 ID:???
下げ忘れ失礼しました。。。
437NAME IS NULL:2010/01/13(水) 23:17:19 ID:???
ALLとかANYとか使う人はあまり見たことがない。

参考
ttp://oracle.se-free.com/dml/01_in.html
438NAME IS NULL:2010/01/14(木) 01:18:08 ID:???
439NAME IS NULL:2010/01/14(木) 01:23:04 ID:???
>>434

基本は変わらずにcatnoqm.sqlみたいだな。

conn / as sysdba
spool xdb_reins.log
Shutdown Immediate;
Startup;
?/rdbms/admin/catnoqm.sql
440NAME IS NULL:2010/01/14(木) 04:49:33 ID:???
マルチポストするなよ
441NAME IS NULL:2010/01/15(金) 13:03:55 ID:I594pvrx
ストアドファンクションの戻り値をレコードセットのように見せかける方法はないでしょうか?
select hoge_func(var1) as hoge from dual
としたいんですが、ファンクション「hoge_func」の中でデータを更新してるので、ORA-14551が出てしまいます。

中の更新ではEXCLUSIVEでテーブルロックをしているので、自立型トランザクションを使うのも避けたいのです。
何かいい方法は無いでしょうか?
442NAME IS NULL:2010/01/15(金) 18:41:41 ID:???
SELECT文の中に自立型でない更新を行う関数を入れることはできないはず。
443NAME IS NULL:2010/01/16(土) 00:14:37 ID:Jfzoknfk
windows xp
java 1.4
eclipse

ですが、Oracleの Instant Client でDB接続ができず困っております。

で、気になっているのが、
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/instclnt.htm#CHDCJEDD
には、oraocijdbc10.dll も必要とあるのですが、

http://www.oracle.com/technology/global/jp/software/tech/oci/instantclient/htdocs/winsoft.html
の何を落としても、oraocijdbc10.dll が落とせません。

oraocijdbc10.dll で検索しても、
ヒットしないし、これは今や不要なものでしょうか?
444NAME IS NULL:2010/01/16(土) 00:34:12 ID:Yf7zXe9E
>>443


マニュアルの oraocijdbc10.dll は、ocijdbc10.dllを間違えて記述したものだと思われる。
あと、ocijdbc10.dll はJDBC-OCI接続(TYPE2)の時は必要だけど、JDBC Thin接続(TYPE4)の時は不要。
445NAME IS NULL:2010/01/16(土) 00:40:43 ID:???
>>443
Java なら Instant Client じゃなく、JDBC Thin ドライバを使う
コード(設定)になってない?
http://www.oracle.com/technology/global/jp/software/tech/java/sqlj_jdbc/index.html
446443:2010/01/16(土) 01:19:53 ID:Jfzoknfk
>>444
なるほど。ocijdbc10.dllの間違いってのはあり得ますね。
となると、材料はそろっているはずか…
もうちょい、調査を続けます。

>>445
今、Thinドライバを使って動いているものを、
tnsnames.ora を使いため、OCIドライバで動かそうとしております。

レス、ありがとうございました。
447441:2010/01/16(土) 17:16:05 ID:zkezsguh
>>442
やはり、回避方法はまったくないのですね。
単に、呼び出し元に(今回はPHP)戻り値を戻したいだけなのですが・・・。
(特に今回はトランザクションがらみなので)理屈は解りますが、不便ですねぇ・・・。
448NAME IS NULL:2010/01/18(月) 00:48:14 ID:???
>>447
>>441の様な場合に適用出来るかどうかは分からないけど、
ストアドプロシージャのOUT引数で、更新後のレコードのカーソル返してみたら?

実装方法は、以下参照
ttp://jp2.php.net/manual/ja/function.oci-new-cursor.php

更新して、カーソル返すっていう実装は行ったことがないので、うまくいくかどうかは分かりません。
449NAME IS NULL:2010/01/18(月) 15:28:07 ID:???
oracle client 8.1.7をダウンロードしたいんだが
色々ありすぎてどれが該当するのかわからん・・・
つか9iぐらいまでしか無理ぽ?
450NAME IS NULL:2010/01/19(火) 05:46:14 ID:???
今となっては9iすらダウソできなんいじゃね?
451441:2010/01/19(火) 09:20:10 ID:???
>>448
おっと、お返事ありがとうございます。
なるほど、OCIを直に叩くわけですか。
正直、今となってはあまりやりたくありませんが、他に方法が無いなら仕方ありませんよね。
どうしてもダメなら、最後の手段として可能かどうか試してみます。
452NAME IS NULL:2010/01/20(水) 14:10:15 ID:???
10g Express Editionをダウンロード出来ません。。。
Oracle Database 10g Express Edition (Universal) を選択して、Username/Passwordを入力しても
"Authentication failure"となり、アカウント取得かパスワード再発行を促されてしまいます。
・アカウントは取得済みでプロファイル編集もできます。
・ブラウザのクッキーは禁止していません。
・プロファイルのチェックボックスは、"Opt-out of Oracle Communications"以外は全てチェックしてみました。

何が原因なのでしょうか;
453NAME IS NULL:2010/01/20(水) 14:37:36 ID:???
自己解決しました、
Firefoxでアクセスしてたのですが、IEからアクセスしたらダウンロードできました。
なおFirefoxではアドオンを有効/無効切り替えたり、キャッシュとかも全部消したのだけどダメでした。
454NAME IS NULL:2010/01/20(水) 17:58:04 ID:H8JMqDfQ
3月納期マシンはやっぱり Win7 ?、

Win7 対応の R2 早く出して欲しい、いまさら Vista なんか持っていけません。

困ったよ〜
455NAME IS NULL:2010/01/20(水) 22:23:48 ID:???
ちょっと質問なんですが、

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型で時間を取り扱うのをやめる以外に何か方法はないでしょうか?

(日本なら日本時間、アメリカならアメリカ時間で表示したい・・)
456NAME IS NULL:2010/01/20(水) 23:15:08 ID:???
もしかしてcurrent_dateでDB登録してる?
457NAME IS NULL:2010/01/20(水) 23:41:52 ID:zvRmg6ep
>>455

タイムゾーン付きタイムスタンプ(TIMESTAMP WITH TIME ZONE)データ型を
使えばやろうとしていることは出来るはず。

458455:2010/01/21(木) 00:11:11 ID:???
レスしていただき、ありがとうございます。

>>456
current_dateは使われてなかったと思います。

>>457
TIMESTAMP WITH TIME ZONE型でデータを保持する案は
提案したのですが、却下されてしまいました・・
Date型でないとダメだと言われていまして・・・

Date型で時差を考慮した時間で表示しようとするならば、
DB登録時に時間をUTCに変換してから登録する必要があるのでしょうか、、
459NAME IS NULL:2010/01/21(木) 00:15:49 ID:???
そもそもDBには直接接続してるのか、それともAPサーバを介して接続してるのか、
APサーバなら世界中にいくつもあるのか、そこら辺がまず不明すぎる。
460NAME IS NULL:2010/01/21(木) 00:27:24 ID:cIjY0AOd
Oracleは糞だけど、糞だからこそサードベンダーが育つっていう意見もある。けど実際どうなの?
461457:2010/01/21(木) 01:27:55 ID:ZZ4eoWKU
>>458

DATE型ではTIME ZONEの情報は持てないので、登録した時間を時差を
考慮した時間で表示することをDATE型で行いたいのであれば、
DB登録時にUTCへ変換するか、登録した時のタイムゾーンを入れるカラムを
別に持って表示時に変換するかのどちらかになってしまうと思います。

462458:2010/01/22(金) 00:29:35 ID:???
またレスしていただき、ありがとうございます。

>>459

環境について何も記述していませんでした。すいません。

環境はDBサーバにAPサーバを介してアクセスしています。
DB、APサーバはともに日本国内にしかない状態です。

それぞれの国のクライアントからAPサーバを介してDBサーバに登録という感じです。

>>461

やはりUTCに変換した時間で保持するか、タイムゾーン情報を
別に持つということでしかやりたいことは実現できないですよね。

貴重なご意見、ありがとうございました。
463NAME IS NULL:2010/01/22(金) 15:33:58 ID:???
DB、APサーバが共に国内にしかないということは、TIMESTAMP型でも意味ない。
DBから見るとクライアント側のタイムゾーン=APサーバのタイムゾーンだから。
DBのタイムゾーンをUTCにしておけば、SYSDATEを使って登録する限りはUTC時刻で登録される。
各国の時間で表示するには、APサーバのJavaだかPHPだかの言語内で自力で計算して算出するのが無難。
464458:2010/01/24(日) 21:03:44 ID:???
遅くなりましたが、レスありがとうございます。

>>463

「DBから見るとクライアント側のタイムゾーン=APサーバのタイムゾーン」

そうですね、ここが頭に入ってなかったように思いました。
このことを踏まえて、クライアントのブラウザ経由で地域(タイムゾーン)を取得し、
Java側で時差の制御を行おうと思います。

貴重なご意見、ありがとうございました。
465NAME IS NULL:2010/01/25(月) 09:56:47 ID:mg9WJfJF
Oracleの解説サイトに「検索したいレコード件数が、
レコード全体の5〜15%程度までの場合は、索引スキャンの方が
効率的」と書いてありましたが、5%未満の場合はどういう
検索方法をすれば良いのでしょうか?
466NAME IS NULL:2010/01/25(月) 10:00:48 ID:???
>>465
日本語って難しいよな
まず日本語の勉強からやり直せ
467NAME IS NULL:2010/01/25(月) 12:34:08 ID:???
>>465みたいなのがカウンターになると大変だな。
468NAME IS NULL:2010/01/25(月) 21:20:44 ID:???
469NAME IS NULL:2010/01/26(火) 08:02:34 ID:???
クソ意地の悪いスレだなw
>>465
「程度までは」主意で、〜は範囲というよりaboutのニュアンスに近い。
470NAME IS NULL:2010/01/26(火) 08:59:10 ID:???
>>465
一杯釣れたな
471NAME IS NULL:2010/01/27(水) 01:47:00 ID:???
>>465

同志かもしれんので、一応返事を。

レコード全体の5〜15%程度までの場合は索引スキャンの方が効率的で、
5%未満の場合は索引スキャンが「とっても」効果的。

ちなみに、15%以上でも効果的な場合はある。

気になったら、実際にSQLトレースを取って、インデックスなし、インデックスありで
読み込みブロック数とElapsed Timeを比較して確認してみるのが吉。


あと、参照元が分かっているのなら、そのURLを挙げておけば、前後の文脈も含めて
誰か答えてくれるかもしれないし、他の人の参考にもなる(かもしれない)
472NAME IS NULL:2010/01/28(木) 18:15:28 ID:PjULwI2f
すいません 教えてください

今までVB内で書いてたSQLをすべてPL/SQLに移行して
VBからパッケージのストアドをキックするように変更依頼が来たんですけどPL/SQLでカーソルを使わんで
普通にUPDATE文とかって書いて動きます?
473NAME IS NULL:2010/01/28(木) 20:31:25 ID:K33IZ3Yv
こんばんは。
4、5年前にオラクルマスターを持っている人を紹介してあげるって言われたんだけど、データベース扱ってる人って神経質そうなイメージだったんで断ってしまいました。
実際のところはどうなんでしょうか?
私は惜しいことをしてしまったんでしょうか…
474NAME IS NULL:2010/01/28(木) 23:34:52 ID:???
>>473
人それぞれ

資格の有無以上に大事なものは何なのか?と
考えればわかるんでは?

オラクルマスタープラチナを最近取得したが
やってることは変わらないよ。

俺は、資格よりもコミュニケーション力と
技術力が大事だと思うよ。
475NAME IS NULL:2010/01/28(木) 23:57:58 ID:???
>>472
VBって一言で言われても、VB6なのかVB.NETなのか
ミドルウェアも何使ってるかわかんないから答えようがないよ
476NAME IS NULL:2010/01/29(金) 00:09:29 ID:???
>>473
どういう意味で紹介されたかによる。

結婚相手として紹介されたのであれば、数字に強いので、生涯の伴侶としては
オススメできる。

477NAME IS NULL:2010/01/29(金) 20:35:38 ID:???
>>474 >>476
レスどうもです。
その紹介を断ってからというもの出会いがなくて後悔している。
(´・ω・`)
478465:2010/02/02(火) 13:24:02 ID:OxwPS9HL
>>469 >>471

ご回答ありがとうございましたm(__)m
やはりそうですよね。
@ITの
http://www.atmarkit.co.jp/fdb/rensai/orasql02/orasql02_2.html
の記事に書いてありました。
479NAME IS NULL:2010/02/02(火) 17:27:25 ID:2dyu5lrG
すいません
SQLのテスト仕様書ってどんな事を書けばいいんですか?
480NAME IS NULL:2010/02/02(火) 17:28:59 ID:???
オラクルの試験って週何回ぐらいやってるんですか?
あとギターベースのスレどこ?
481NAME IS NULL:2010/02/02(火) 20:14:10 ID:???
>>479
考えうるパターン全部網羅すればいいんだよ。
全パターン網羅がめんどいなら上手く手を抜く。
482NAME IS NULL:2010/02/02(火) 20:42:06 ID:???
11gR1(11.1.0.6)をHyper-V上のWin2008にインストールしたんだけど
DBConsoleのサービスを起動しているともっそい動きが遅くなります
同じ症状が出て解決した方いませんか?
483NAME IS NULL:2010/02/02(火) 21:10:27 ID:???
メモリを増やせば?
484NAME IS NULL:2010/02/03(水) 01:33:43 ID:???
>>479
普通の単体試験といっしょでいいんじゃない?
基本的には、正常系、異常系、境界試験あたり。


確認項目としては、下記あたりを確認すればいいんじゃないかな。

(1) レコードが想定通りになっているか
   → 必要なレコードが存在し、不必要なレコードが存在しない
(2) 実行計画の確認(SQLトレースで確認)
   → インデックスの使用、テーブルの結合が想定通りになっているかetc..
(3) Elapsed Timeが目標値以下になっているか
(4) 読み込みブロック数が目標値以下になっているか


あと、注意事項としては、DBキャッシュの状態と、パースの時間に
気を付ける(テスト条件を合わせる)事かなぁ。
※ 性能的な要件が無いのであれば、それほど気にしなくてもいいかも


つか、私はアプリ屋さんじゃなくて運用系の人間なので、ひょっとしたら項目や観点に
過不足があるかもしれない。
経験者に確認されたし。
485NAME IS NULL:2010/02/03(水) 01:43:44 ID:???
>>482
何かがボトルネックになっているんじゃないかな。
パフォーマンスログを見て、原因を確認してみたら?

パフォーマンスを見れば、遅くなっている原因がCPUなのか、それとも
メモリ不足でページアウトが頻繁に起こっているのか、それ以外の原因なのか、
あたりがつけられると思う。
486NAME IS NULL:2010/02/04(木) 13:53:33 ID:???
指名ユーザライセンスがさらにぼったくりに・・・。
487NAME IS NULL:2010/02/05(金) 14:59:53 ID:VzQ4eaiA
カーソルでループさせてアップデートすればいいのに
inner joinとか複雑なの使って一回のSQLでアップデートさせようとする東京のSE!
お前は馬鹿なの?オラクルだからループで回した方が早いって行ってるのに
私を馬鹿にした報いだ!社長にチクってやったらクビざまー(笑)
488NAME IS NULL:2010/02/05(金) 23:11:18 ID:BmXSPH+8
>>487

一回のSQL文で更新した方がREDOの発生量を抑えられるから、
一概にどの方法が良いとはいえない。
489NAME IS NULL:2010/02/05(金) 23:23:14 ID:???
オラクルだからとか…
少ない経験則に基づく決めつけほど愚かなものはないと知れ
490NAME IS NULL:2010/02/05(金) 23:36:52 ID:???
件数が少ないならカーソルループでも十分だけど、
多くなってくるとSQL 1文ですますなら並列化もできるしね。
EE限定だけど。
491NAME IS NULL:2010/02/06(土) 02:08:39 ID:???
>>488
実際やってみりゃわかるが、たいした軽減にはならんぞ。
492NAME IS NULL:2010/02/06(土) 03:49:57 ID:???
ループで回した方が速いってことは、まずなかろ。
ヘタレなSQLを書きゃ別だが
493NAME IS NULL:2010/02/06(土) 09:33:20 ID:???
>>487
カーソルでループさせた方が「速いと思う」なの?
それとも「速かった」なの?

人をクビにまでして「検証したらほぼ性能いっしょでした」だったら、
ぶん殴られても仕方ないよ。

つか、性能の話をするんだったら、inner joinがどうのじゃなくて
実際の実行計画で、結合方式がhash joinなのかnested loopなのか
という所じゃないの?
そういう話が出てこないところを見ると、技術レベルが低いんじゃないかと
思ってしまう。

そして、リソースが十分にあるんだったら、余計なオーバーヘッドが無い分、
ループより一括SQLの方が速いんじゃないの?


Oracle8.0の時代から使ってる人間としては、ループで処理する事の
メリットは、例えば1000件単位でコミットをこまめにする事で、ORA-1555が
発生しにくくできる事じゃないかと思う。
(ロールバックセグメント数を多めにする必要はあるけど)

UNDO領域使ってても、その辺りはいっしょかな? UNDO領域になってから
その辺の動作を試した事がないので、よく分からん。
494NAME IS NULL:2010/02/06(土) 15:01:25 ID:???
UNDO表領域になってから、というか最近はディスクもでかいし、ORA-1555なんて見なくなったなー
495NAME IS NULL:2010/02/06(土) 15:04:23 ID:2cHN8Zec
カーソルは複数個バンバン使って一重ループの直列処理で書く
ヒントは見やすい
東京から来た馬鹿は無職になるといいよ
496NAME IS NULL:2010/02/06(土) 16:07:42 ID:???
「早い」から「見やすい」に誤魔化すのは田舎のジジババクライアントには
通用するだろうけど東京では通用しないから以後気をつけるように
497NAME IS NULL:2010/02/06(土) 16:09:46 ID:???
おっと、言い忘れたが
カーソルは複数個バンバン使って≠見やすい
の点も注意しろよ
498NAME IS NULL:2010/02/06(土) 16:32:29 ID:???
>カーソルは複数個バンバン使って一重ループの直列処理で書く
結合するの知らないってこと?
499NAME IS NULL:2010/02/06(土) 16:47:22 ID:???
大規模な更新処理とかで、内部に極大ソートとかが入る場合は
オンメモリになるように設定されたファイルシステム上に一度キーを吐き出させて
高速な外部ソートツールでソートさせて食いなおさせるとかするとけっこう高速化する。

あとは、1回の与えられた時間では処理が完了しないことを前提に、
コミット切りながら何回かに分けて処理を行うって場合は多いね。
500NAME IS NULL:2010/02/06(土) 17:01:03 ID:???
>>499
たぶん田舎にそんな大きな仕事は落ちてこない
501NAME IS NULL:2010/02/06(土) 17:43:39 ID:???
そんな特別な場合の話はしとりゃせんのじゃろ。
「オラクルだから〜」とか言うとるのじゃけ。
502NAME IS NULL:2010/02/06(土) 19:45:31 ID:???
>>495
ぐだぐだ言ってねえで、inner joinとPL/SQL?両方のSQLトレースをうp。


>>499
そういや、前にどっかで、日立のISAMだかを使ってやってたなぁ。
503NAME IS NULL:2010/02/06(土) 20:04:36 ID:???
2chでSQLトレースupとかバカだろ
504NAME IS NULL:2010/02/06(土) 23:49:01 ID:???
>>503
お前・・・まさか自分はバカ以外の何かだと思ってるの?
505NAME IS NULL:2010/02/07(日) 01:59:41 ID:???
クライアントがカーソル使って書けって言ってんだよ
ここもつかえね〜奴ばっかだな
ここの連中より、うちの堺工場の工員の方が優秀だわ(笑)
506NAME IS NULL:2010/02/07(日) 03:36:26 ID:???
カーソルでループさせてアップデートした方が早い
※ ×早い
  ○速い
       ↓
カーソルの方が見やすい
       ↓
クライアントがカーソル使って書けって言ってんだよ


フリーザだったら、もう3段階残ってるな。
507NAME IS NULL:2010/02/07(日) 04:43:25 ID:???
オラクルだからどうとか大上段に振りかぶらずに
最初からそう書けばええじゃろ。
508NAME IS NULL:2010/02/07(日) 05:21:11 ID:???
>>507
そんな事書いたら最初の発言自体が意味不明になるわな
509NAME IS NULL:2010/02/07(日) 06:00:06 ID:???
10gのEMが英語表記なんだけどこれってデフォルトだったっけ?
日本語表記に変えたいんだが、変えれたっけ?
510NAME IS NULL:2010/02/07(日) 06:16:55 ID:???
最初の発言自体にどんな意味があるの
511NAME IS NULL:2010/02/07(日) 09:02:29 ID:???
>>509

ブラウザの言語設定を変えたらいいよ。
512NAME IS NULL:2010/02/07(日) 11:41:51 ID:???
>>509

ブラウザの優先の言語設定を日本語に変えればいいだけ。
ただしもしEMのインストール時に日本語オプションを選んでいなかったら
日本語の一部が□□□□とかって文字化けする。
513NAME IS NULL:2010/02/07(日) 19:27:17 ID:???
Oracle 10g 、Redhat Linux、GNU Cを使います。
どうやって開発したらいいですか?
514NAME IS NULL:2010/02/07(日) 20:00:05 ID:???
エスパーじゃないので、それだけの情報ではコメントするのも無理です。
515NAME IS NULL:2010/02/07(日) 20:05:53 ID:???
C言語からOracleにアクセスするにはOCIを使うんでしょうか?
516482:2010/02/07(日) 21:13:37 ID:???
>>483>>485
亀レスですいませんがありがとう
パフォーマンスログ確認とメモリ増やして試してみます
あと、実機でも試してみます
517NAME IS NULL:2010/02/08(月) 02:59:56 ID:???
だからさ
PL/SQLでグリグリぶん回せや
アホなSQL厨にPL/SQLでぶん回した方が速いって啓蒙しないと
518NAME IS NULL:2010/02/08(月) 05:15:46 ID:???
切り口を変えてきたなw
519NAME IS NULL:2010/02/08(月) 08:55:01 ID:???
Pro*Cってまだあるのかな。
520NAME IS NULL:2010/02/08(月) 14:34:14 ID:FyhidEnB
SQL厨をクビにして業務委託に追い込んだのに
パラメータカーソルとか言うの使ってきやがった

二重にループを回すとか、東京もんは男らしくない
どうせスレも覗いてるんだろ?速く消えて関東に逃げ帰れ
521NAME IS NULL:2010/02/08(月) 14:42:19 ID:???
これでも意味のある発言と言えるかね?
522NAME IS NULL:2010/02/08(月) 16:53:21 ID:???
>>520
確かにSQL厨は男らしくなわな
inner joinとか女々し過ぎ
オラクルなんだからwhere句で=使って結べばいい
カッコつけすぎて無駄なモン書きすぎだよね

しかし、ほんとに東京モンは使えねえな
523NAME IS NULL:2010/02/08(月) 17:33:51 ID:???
>>520
同意
一回のトランザクション内だから複数のカーソルでええやんなw
524NAME IS NULL:2010/02/08(月) 20:53:05 ID:???
>>520
あんたには単価の良いお客さん向けのドキュメントは書かせられないな
525NAME IS NULL:2010/02/08(月) 23:53:20 ID:???
みんな何言ってるのか分かんねえよ!
でも段々面白くなってきたw

今の論争は、SQL厨 VS PL/SQL厨 VS OCI厨 なのか?
526NAME IS NULL:2010/02/09(火) 01:48:33 ID:5sfGunk8
東京のSQL厨涙目www
クビになって悔しいよなw
OUTER JOINとか得意げに使ってんじゃね〜よwww
527NAME IS NULL:2010/02/09(火) 01:51:45 ID:c2H9r7vs
いまどきはINNER JOINとOUTER JOINは普通に使うでしょ。
Oracleに限ってはWHERE派が多いのは事実
528NAME IS NULL:2010/02/09(火) 02:03:30 ID:???
WHERE=だと無駄が多くね?
529NAME IS NULL:2010/02/09(火) 02:10:48 ID:???
無能と性格異常でクビになった人が逆の立場を夢想してるスレはここですか。
530NAME IS NULL:2010/02/09(火) 02:17:37 ID:5sfGunk8
SQL厨登場(笑)
531NAME IS NULL:2010/02/09(火) 05:42:51 ID:???
論争になってないがな
カーソルで回すほうが速い理由を説明するならともかく
どう考えても「東京もん」のほうがまともじゃろ
わしは529が正解だと思うぞ
532NAME IS NULL:2010/02/09(火) 19:10:50 ID:???
>OUTER JOINとか得意げに使ってんじゃね〜よwww

え、もしかしてご存じでない…?
533NAME IS NULL:2010/02/09(火) 19:15:56 ID:???
オラクルではINNER JOIN使うよりも
FunctionをSQL内で使って値を取ってくる方が速い件
534NAME IS NULL:2010/02/09(火) 21:29:16 ID:2iVc1Ngh
ところで、SQLのコーディングルールみたいなのってどうしてる?
キーワード(例えばSELECTとかUPDATE)は大文字、項目名称は小文字にするとか。
SELECT文とかで、削除しやすいようにカンマはフィールドの前にするとか。

SELECT
A
,B
,C
FROM TABLE_A

それと、プログラムから参照する場合はテーブルを直接参照するんではなく、ストアドから呼び出すとかわりと徹底しているところもあるよね。
535NAME IS NULL:2010/02/09(火) 21:40:51 ID:???
>>534
単独開発なのか、複数協力会社参画での開発なのかによって変わる。
後者になって複雑になればなるほど、
「select *」で列指定するのは禁止&ゲッター/セッターなどでも
カラム位置指定での取得は禁止、とか
必ずストアドやビューを経由しろ、とかになってく。

コーディングルールについては、分かりやすさを犠牲にした小手先の技は使わないところが多いだろう。
項目名称は大文字のPJが多かった印象。
536NAME IS NULL:2010/02/10(水) 02:24:01 ID:???
DBの設計というか、ER図とかについての質問は
どこでしたらいいでしょうか・・・?
537NAME IS NULL:2010/02/10(水) 02:39:51 ID:???
ここくらいかなぁ。。。

T字形ER(TM)ってどうよ?
http://pc11.2ch.net/test/read.cgi/db/1156946197/l50


質問によっては、ここで聞いてもいいかもしれん。叩かれるかもしれないけど。
538NAME IS NULL:2010/02/10(水) 02:44:45 ID:???
断然先頭カンマ派

後ろにつけるやつは爆発しろ
539NAME IS NULL:2010/02/10(水) 03:33:06 ID:???
>>537
T字の場合ERの意味が違うからな。
T字はEntity-relationshipじゃなくてEvent-Resourceだったと思う。
540NAME IS NULL:2010/02/10(水) 05:57:15 ID:???
>削除しやすいようにカンマはフィールドの前にするとか
理由としては弱すぎる
前につけようが後につけようがたいして変わらん
単なる好みの問題
538みたいな奴もいる
541NAME IS NULL:2010/02/10(水) 15:47:59 ID:84PirwtY
SQLの構文は比較的にシンプルだけど、表現方法の好みの差あるよな。その人の出自によるけど
現代的なプログラミング言語にならって、お好みに整形してくれるツールがほしいな。

それとサブクエリーを何十にも多用するのはSQLの良いところだけど、
多用しすぎて理解に苦しむ場合もあるんだけど、もうちょっといい方法がないものかと思ったりもする。
542NAME IS NULL:2010/02/10(水) 19:04:42 ID:???
後ろにカンマ付けたら修正前と修正後を比較する時分かり辛いじゃないか。
543NAME IS NULL:2010/02/10(水) 22:08:52 ID:???
サブクエリー使うより、ストアド使ってカーソル回す方が現実的
544NAME IS NULL:2010/02/10(水) 22:51:49 ID:???
はいはい、現実的、現実的。
545NAME IS NULL:2010/02/10(水) 23:09:09 ID:???
冷たい奴だな
お前らだって東京嫌いだろ?
546NAME IS NULL:2010/02/11(木) 05:41:25 ID:/Sz2f5yX
なんだ、最近よう湧いてる沖縄のアフォか。
ちゃんと勉強してから書けよ
547NAME IS NULL:2010/02/11(木) 07:34:22 ID:???
大事なのはルールを守ること、守らせることだろ。
プログラマが10人いたとして
10人全員が納得する(好みに合う)ルールなんて作成できないだろ。

先頭カンマ派に聞きたいのだが、
関数の引数も先頭カンマ?
そうじゃないとおかしいよなw
548NAME IS NULL:2010/02/11(木) 07:41:07 ID:???
オレが今まで出会った中で
一番すごいSQLコーディングルールは

結合禁止!!

10年前の話だけどなw
549NAME IS NULL:2010/02/11(木) 07:47:55 ID:???
ここにはプログラマーしかいないのかよ
550NAME IS NULL:2010/02/11(木) 08:38:28 ID:???
前カンマだと、カラム追加の時に修正行が少ないし、修正漏れが起こりにくいので好き。
col3というカラムを足す時、こうなる。

■前カンマ
 SELECT
  col1
  , col2
  , col3 ← 追加
 FROM ・・・・・・

■後カンマ
 SELECT
   col1,
   col2,  ← 変更(カンマ追記)
   col3  ← 追加
 FROM ・・・・・・


>>547
関数の引数も、ってどういう意味?
551NAME IS NULL:2010/02/11(木) 10:13:18 ID:???
>>550
そういう小手先のテクニックは普通使われない。
ごく小規模で自社のみが使う短期利用システムとかならあり得るが。

たとえば、その論調で「じゃあ、SELECT文に新しい取得列を追加する場合は、
一番最後じゃなくてSELECTの直下の行に入れていけばいいじゃん」も成立する。
が、これも同じく採用されない。

多くのプロジェクトでは、後カンマで素直に書け、
記述を追加するのは(あったとしても)特例をのぞけば一番後ろだ
(特例としては、たとえば行の更新日時や最終更新者など)、という、
誰でも思いつき、「読むときわかりやすい」一番無難そうな規約にとどめる。
552NAME IS NULL:2010/02/11(木) 11:14:20 ID:???
取得カラムを追加する場合はテーブル定義と同じ順で書く。
複数テーブルから取得や複数カラムを1カラムに纏めて取得する場合等はともかく。
でないと作成者以外が見た時テーブル定義書と見比べるのが面倒。

カンマはカラムの後ろに記述しなければいけないという世界共通規約はおそらくない。
553NAME IS NULL:2010/02/11(木) 16:37:51 ID:???
質問です!
家計簿ソフトを作ろうと考えているのですが、
家賃の入力とか食費を入力といった「入力」という
行為はエンティティになり得ますか?

初歩的な質問ですみません
554NAME IS NULL:2010/02/11(木) 19:22:14 ID:???
>>552
>でないと作成者以外が見た時テーブル定義書と見比べるのが面倒。

テーブル上でのカラムの存在位置を明確に意識した上でのコーディングは
(古い時代の一部の性能対策を除けば)過去から嫌われるコーディングに他ならない。
複数ベンダー、複数作業主体、複数案件(それぞれ、実施されたり切り戻されたり)が入り乱れたとき、テーブルへの列の追加や削除が
すべての環境ですべて一致する保証をとる行為は現実的に困難になる。
環境移行が行われ新テーブル体系に移ったときも同様。テーブルイメージ
(といっても、カラムの並び順とか程度だけど)は
おそらく「一番上の会社が認識しているイメージ」に強制的に変更される。

だから、カラム位置という要素に依存しないコーディング規約が
徹底されることになる (これらの例はすぐ上で出てるので割愛)。
>552 の話も、付随して意識する必要がなくなる。
他社の環境でのカラム並び順と、自社の環境でのカラム並び順が同じとは限らない、
それどころか数年後に自社が使わされてるカラム並び順とも同じとは限らないのに
今の自社の環境だけを前提にして労力をつぎ込んでも仕方がない。
555NAME IS NULL:2010/02/11(木) 20:57:53 ID:???
>>554
最初にコーディング規約で決めておけば、大した労力をつぎ込む必要は無いように
思えるのだけど、違うの?

ちなみに>>554さんは、具体的にどの程度の規模のPJの話を言ってる?
556NAME IS NULL:2010/02/11(木) 20:58:54 ID:???
>>553
ここはOracle質問スレだけど、その家計簿ソフトでOracleを使うの?
557NAME IS NULL:2010/02/11(木) 21:27:03 ID:???
>>555
>最初にコーディング規約で決めておけば、大した労力をつぎ込む必要は
>無いように思えるのだけど、違うの?

>554 で示したような理由から、カラム並び順について「不定」とした場合、
カラム順が全環境で一律固定であるという前提に頼ったコーディングは避けるべし
(これは当たり前)となるし、
同様にそれを前提とした小手先のテクニックも最初から否定傾向となる。

自分だけ/自社だけがステークホルダーなんて場合を除けば、
それを肯定に持って行くのはとても大変なこと。
「”根拠はないけど”こういうやり方にしましょう、
 このシステム全体をそのやり方で統一させましょう」というくらいに。
そんなことでいちいち手間をかけないために、そんな規約は定めない。

>ちなみに>>554さんは、具体的にどの程度の規模のPJの話を言ってる?

分割発注のポリシーは発注元によるが、
一つの開発会社に単独開発させるのは無理だ、と判断され
「(分割のコストを受け入れて)意図的に分割統治させる」くらいの規模から上。
規模が直接の問題じゃないが、規模に比例して上記要素が増えるのが実経験上の感覚としてある。
558NAME IS NULL:2010/02/11(木) 21:45:42 ID:???
カラム順が変わったら動かなくなるなんて誰も言ってないじゃん。
読みやすいか読みにくいかと言ってるだけ。

それにテーブル定義は誰かが作ったらそれを全環境に使いまわすものだと思うけど。
559NAME IS NULL:2010/02/11(木) 21:47:52 ID:???
>>558
>それにテーブル定義は誰かが作ったらそれを全環境に使いまわすものだと思うけど。

>554
>複数ベンダー、複数作業主体、複数案件(それぞれ、実施されたり切り戻されたり)
>が入り乱れたとき、テーブルへの列の追加や削除が
>すべての環境ですべて一致する保証をとる行為は現実的に困難になる。
560NAME IS NULL:2010/02/11(木) 22:13:21 ID:???
>>556

他に質問できるところがなかったので
ここで聞いてみました。
Oracleには直接関係ないけど、
DBの設計ということで勘弁してもらえませんか?
561NAME IS NULL:2010/02/12(金) 03:03:46 ID:???
後ろカンマにしちゃうとフィールドを追加した行以外の
カンマを追加しただけの行も修正行として差分がでちゃうの。
だからやだぷ。
562NAME IS NULL:2010/02/12(金) 03:24:22 ID:???
こまけぇこたぁ良いんだよ。
563NAME IS NULL:2010/02/12(金) 08:24:07 ID:???
>>560

DBの設計は別にスレがあるだろうが。
564NAME IS NULL:2010/02/12(金) 08:36:57 ID:???
DBの設計経験がないのか・・・それじゃあ
答えようがないよな・・・すまん
565NAME IS NULL:2010/02/12(金) 08:46:56 ID:???
>>564
逆ギレ?
566NAME IS NULL:2010/02/12(金) 09:05:28 ID:???
行を他の表にコピーしたいけど、
列の値によってコピーする先の表を変えるには
どうすればいいんだっけ
567NAME IS NULL:2010/02/12(金) 11:31:22 ID:???
{ a, b, c, d, } とかける言語は増えてきてるから、そのうちきっとSQLも。
それまでは宗教論争が続きそうだな。
568NAME IS NULL:2010/02/12(金) 13:04:16 ID:???
>>566
INSERT ALL|FIRST または動的SQLじゃね

宗教論争に参加するつもりはないが
カンマを前につけて書いている本を見たことがない。
だから、カンマを前につけるのはすごく違和感がある。
569NAME IS NULL:2010/02/12(金) 20:49:10 ID:???
大昔は前カンマが主流だったよ
Win3.1時代だがw

1カラム毎のカーソル回せ!
カンマなんか気にならなくなる

そして東京モンを追い出せ
570NAME IS NULL:2010/02/12(金) 20:51:52 ID:???
はいはい、カーソル、カーソル。
571NAME IS NULL:2010/02/13(土) 03:33:45 ID:???
3カラムのときは3回まわすわけですね
わかります
572NAME IS NULL:2010/02/13(土) 23:48:55 ID:???
沖縄蛮族と一緒にするな
私は生粋の大阪人だ
573NAME IS NULL:2010/02/14(日) 10:35:51 ID:???
リソース・コンシューマー・グループのマッピングにルールがなかったら、
*_USER.INITIAL_RSRC_CONSUMER_GROUPが割り当てられるって
マニュアルに書いてあるんですが、INITIAL_RSRC_CONSUMER_GROUPに
値をセットする方法がわかりません。
どなたかご存じの方はいらっしゃいましたら、教えていただけませんか。
574NAME IS NULL:2010/02/14(日) 17:41:05 ID:???
>>573
OEMを使うのが一番簡単
それ以外の方法だと確かプロシジャーだかパッケージがあったと思う
575NAME IS NULL:2010/02/15(月) 20:23:04 ID:???
オラクル10gを入れ、DBとして運用を行なったサーバAがあります。
一年ほど運用した後に、もしもの際に備えてもう一台サーバを用意することになりました。(サーバBとします。オラクルは同じ10g)
サーバAで運用しているDBの非シードテンプレートを出力し、作成したテンプレートを使いサーバBにDBを作成した後
サーバAのDBのフルバックアップファイルを用意し、RMANでサーバBにリストア・リカバリを行って
同じDBを作成できますか?

Aをメインで運用しつつ、Aに障害が発生した場合Bを動かし、
Aで作成された差分バックアップファイルで適用させようと思っているのですが
RMANでこういったことが可能なのかご存知の方ご教授願います。
576NAME IS NULL:2010/02/15(月) 21:52:19 ID:???
>>575

1つ目はできる。
Oracle のソフトウェア自体は別途インストールする必要はある。
DBは作成しなくてもフルバックアップがあればそこから作れる。別に作っても構わない。

2つ目は差分バックアップを自動的に適用しようとするんだったら
DataGuardを使ったほうが楽だと思う。
577NAME IS NULL:2010/02/15(月) 23:04:37 ID:???
>576
ありがとうございます。
578NAME IS NULL:2010/02/16(火) 02:28:46 ID:???
>>575

RMANだったらDuplicationコマンド使って全部自動でクローンDB作れる。
クローンDBのSID名は後からnidで変えればいいし。

2番目はまさにDataGuardのコンセプトそのものだな。
579NAME IS NULL:2010/02/16(火) 07:57:40 ID:???
>>578

RMAN の duplicate database は 11g 新機能だと勝手に勘違いしてたよ。
9i や 10g でも使えるんだね。知らんかった…
580NAME IS NULL:2010/02/16(火) 08:17:21 ID:???
DataGuardはEE限定だね
581NAME IS NULL:2010/02/16(火) 11:50:17 ID:6yZYYNE/
どなたかわかる方いらっしゃったら教えて下さい。

Application Express 3.1.2で、
ログインページ101を誤って消してしまったため、
再度101ページとして作り直したのですが、
開発画面に出る、ページを示すアイコン(1ページなら家のアイコン)が
鍵じゃなくて歯車のようなものになってしまいました。

触ってみた感じ、普通にログインしたりは出来るのですが、
とにかくアイコンが前と違います。
デフォルトのログインページと、何か違うのでしょうか。

582NAME IS NULL:2010/02/17(水) 02:45:37 ID:???
>>579

9iからDuplicationコマンド使っているよ。
というか当時はRACのクローニングがサポートされているのってRMANぐらいしか適当なのが無かった。
勿論O/Sレベルでは色々と方法があるんだが、働いていた場所が欧州だったから、Oracle標準ツールで
なんとかしないと何かと面倒だった。
583NAME IS NULL:2010/02/17(水) 14:31:46 ID:???
操作ログがとれるOracleのGUIツールってありますか?
584NAME IS NULL:2010/02/17(水) 15:50:44 ID:???
ものすごいスレチなんですが、気になって...
電気設備の法定点検では全てのサーバーを停止していますが大手プロバイダーとかはどうしてるんですか?
585NAME IS NULL:2010/02/17(水) 16:19:41 ID:???

OracleのKVSへの対応ってどうよ?
まさか、KVS無視してるとか、ただ敵視してるとかで
なにもしてない、ってことはないよな。
586NAME IS NULL:2010/02/17(水) 18:20:56 ID:???

googleやAmazonやmixiといったWebベースで不特定多数の顧客相手に商売しているところが
システム構築する際、Oracleなどのrdbmsの導入を最初からあきらめ、それらが全部、データの
一貫性を捨てることで(もしくはDBに頼らないでアプリケーションで対処することで)成功し、
それからほぼ10年たった今、それらが段々大きく取り上げられ始めたことって
素敵なことやん。
587NAME IS NULL:2010/02/17(水) 20:16:01 ID:???
>>585
KVSへの対応ってなんだ?
Oracleとは別にKVSベースのDBエンジンをラインアップに持つべきって事?
588NAME IS NULL:2010/02/17(水) 21:26:20 ID:???
>>587

まあ、>>586を読めば分かると思うけど、今までRDBMSが頑なに守り続けていた
データの整合性を崩すことで、新たな分野(しかも大規模な)への進出が出来ているんだから
このビジネスチャンスを逃すのはなんだか惜しいな、と思うのですよ。
レプリケーションを使えばとか議論はあるかも知れないけど、それではコストが
とんでもなく上がる。だから、googleやアマゾンはOracleを使わなかったわけでしょ。
KVSはデータの整合性の矛盾をアプリケーションに押し付けることでスケーラビリティを
飛躍的に上げたけど、もし、Oracleにロックを掛けるモード、ロックを掛けないモードが
選べることができて、その矛盾をユーティリティで吸収出来るようにすれば、新たな
ビジネスチャンスが生まれるのではないかと思った次第ですよ。
589NAME IS NULL:2010/02/17(水) 22:37:59 ID:???
Oracle を KVS として使うことは自由だろう。
ビジネスチャンスだと思うんだったらさっさとやれば良い。誰も止めないよ。

バズワードに踊らされてるだけにしか見えないけどね。

590NAME IS NULL:2010/02/17(水) 22:55:40 ID:???
>>589

>Oracle を KVS として使うことは自由だろう。

今のOracleで出来る訳ないでしょwww
なんにも分かってないなぁ。

>バズワードに踊らされてるだけにしか見えないけどね。

google、youtube、amazonと成功例がいっぱいあるんだけどなあ。
591NAME IS NULL:2010/02/18(木) 00:10:24 ID:???
>>584

普通は予備電源とかに切り替えるだろ。
592NAME IS NULL:2010/02/18(木) 01:33:37 ID:???
>>590
だからOracleが畑違いのKVSなんかに手を出す必要ないじゃん。
そもそもGoogleでさえ、BigTableそのもので商売しちゃいないのに。
593NAME IS NULL:2010/02/18(木) 01:35:12 ID:???
他の企業がやって、利益を上げているところがあるとなると、二番煎じ三番煎じと分かっていても
やらないと、株主・投資家が納得しないのですよ。
594NAME IS NULL:2010/02/18(木) 01:42:54 ID:???
じゃあOracleもサーチエンジンや動画共有サイトを立ち上げるべきだと?
595NAME IS NULL:2010/02/18(木) 10:06:08 ID:???
>>593

だからお前がやれと言っている。

ところで何%くらい株持ってるの?
596NAME IS NULL:2010/02/18(木) 10:13:40 ID:???
>>592
本当に畑違いなのだろうか?
MSも手を出し始めているのに。

ユーザー数もアクセス数も不特定でテーブルもどこまで大きくなるか分からない環境では
圧倒的に低コストでスケーラビリティを上げられるシステムを選ぶんじゃないだろうか。
597NAME IS NULL:2010/02/18(木) 13:45:43 ID:vxxnhyCd
オラクルのCoherenceやアイビーエムのWebSphere eXtreme ScaleなんかがKVSじゃないの?
これらってデータグリッドとか呼ばれてたけど、根本はKVSでしょ
598NAME IS NULL:2010/02/18(木) 14:50:21 ID:???
>>591
ほんとかなぁ。
電気設備をニ系統持っているということ?
年一度の法定点検の為だけに?
599NAME IS NULL:2010/02/18(木) 19:29:54 ID:???
>>597

確かにオラクル自身が、KVSに相当するオラクル側の解はCoherenceだと言ってるね。

http://www.oracle.co.jp/iSeminars/090630_1330/090630_Coherence.pdf
600NAME IS NULL:2010/02/19(金) 00:05:58 ID:???
>>598

はあ? ミッション・クリティカルなサーバーならバックアップ電源は必須だし、
停電時でも予備電源で運用続けるのなんか常識だろ?
法定点検のためなんかじゃなく、停電が起きた時の事を考えてそのあたりは
ちゃんとしているよ。
601NAME IS NULL:2010/02/19(金) 00:18:50 ID:/h43/+Tx
まぁそうだな。ビルで言ったら自家発電とか電源車で供給できないのは意味がいないからな
602NAME IS NULL:2010/02/19(金) 00:19:15 ID:???
>>600
それはさすがに言い過ぎ。
実際そのくらいやってるところ
(それこそ自家発電系統を確保するとか)もあるが、
多くは事前にメンテナンス予定を立てて
法廷点検時はサーバーを止めるとする程度で十分だし、
ガチでミッションクリティカルなサーバーはディザスタリカバリ対策で
「そのビル一つくらい、丸ごと死んでもなんとかできる」体制だったりする。
603NAME IS NULL:2010/02/19(金) 00:22:04 ID:/h43/+Tx
あんま詳しくないんだが、近代的なビルはCVCFってんだっけか
そういう装置は備えてるもんなの?
604NAME IS NULL:2010/02/19(金) 00:30:13 ID:???
>>603
最初からサーバールームが設置される(誘致する)前提で設計しない限り、
緊急時用の電源系統を最初から提供するビルってのは多くない
(ように思うが、経験少ないのでもしかしたら間違ってるかも)。
入居企業に緊急電源系統を必要とする企業がいない場合
無駄な金食い虫になるだけだからね。

将来を見越して、発電設備を入れられるスペースを確保しておくくらいは
やってるところが多いだろうけど。
605NAME IS NULL:2010/02/19(金) 00:38:33 ID:???
>>604 補足

>604 で書いたのは、消防法とかで出てくる
「ビル自身が必要とする緊急電源(消火設備向けとか)」じゃなくて、
「入居してる企業へ有償サービスとして提供する緊急電源設備」ね。

避難経路や消火設備用の自家発電装置を持つビルは多くあるけど、
それはビル自身向けで、
ビル自身が要求する容量以上のキャパをあらかじめ確保して、
それを(未知の)入居企業向けに責任もって提供するというサービスを
デフォで受けてるビルってのは少ないんじゃないかなぁ、と思う。
606NAME IS NULL:2010/02/19(金) 01:11:24 ID:???
>>602

そうか?
俺の入っていた所は大抵それぐらいの事はしていたぞ?
勿論ビルひとつが吹っ飛んでもいい様にRACでキャンパスクラスのクラスター組んでいたし。
流石にコンチネンタルクラスのクラスターはまだ組んだ事はないが。
607NAME IS NULL:2010/02/19(金) 08:56:31 ID:???

クラウドコンピューティングで商売してるセールスフォースが100万のユーザーを
1000台のサーバーでサポートしてるとか、セールスフォースが使用してるDBは
オラクルだけど、管理はすべてのユーザーを同一データベース、同一スキーマで
行ってる(これで、別々のユーザー間のセキュリティをどう守ってるのだろう?)とか
クラウドコンピューティングの現状を読んでくとなんか、面白い。

http://www.publickey.jp/blog/09/1saas.html
http://www.publickey.jp/blog/09/2id.html
http://www.publickey.jp/blog/09/3_2.html


あと、セールスフォースが宣伝に使ってるビデオ

http://www.publickey.jp/blog/09/3_3.html

これ見ると、ラリー・エリソンはネット・コンピューティングのバズワードだって、怒り出すと
思うけど、思うにクラウドはネットコンピューティングの行き着いた最も理想の状態。
しかも、ネットコンピューティングは理論ばかり先走りして実際の実装技術が追いついて
なかったけど、クラウドは実装技術を開発、運営した経験した企業がセールスを始め
またバックアップもしている。去年から今年にかけてのクラウドコンピューティングが
データベース市場に与える影響ってずいぶん大きなものがあるんじゃないかと思うんだけど。
608NAME IS NULL:2010/02/19(金) 15:22:24 ID:???
電源系統の二重化より強力な専用回線で他のサーバー室と同期を取っている。




方が面白い
609NAME IS NULL:2010/02/19(金) 21:06:42 ID:???
      .∧_∧               ゴシゴシ ∧,,∧     ∧,,∧
      ( `・ω・)つ                 (`・ω・)    (・ω・´)
−=≡ (  づ ノ             ┐    /   o     o o  ) ゴシゴシ          ┌
     と__/"(__)      −=≡ ( ・∀・)  しー-J\_ _/しーJ             (´д` )
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
610NAME IS NULL:2010/02/19(金) 23:31:45 ID:e8EafeOG
すいません、質問させてください。
Oracle11gを使ってます。
ある日、勝手にUSERS表領域が読み取り専用になっていることに気づき、
そのときは理由を深くは追わずに書き込み可能に変更したのですが、
一週間後、次は別の表領域(自分で追加)が読み取り専用になっていました。。。

ある1つの表領域だけが読み取り専用になる理由として何が考えられますか?
もし分かる方がいればご教示いただきたいです。
611NAME IS NULL:2010/02/20(土) 00:04:47 ID:???
管理者以外ALTER TABLESPACE権限を持ったユーザーでログイン出来るようにしてないよね?
612NAME IS NULL:2010/02/20(土) 00:23:11 ID:IY/sHKIU
>>611
返信ありがとうございます。
管理者以外にはALTER TABLESPACE権限は与えていません。。。
613NAME IS NULL:2010/02/20(土) 02:29:25 ID:???
>>610

RMAN使ってトランスポータブル表領域のジョブとか走らせていたりとかしていない?
614NAME IS NULL:2010/02/20(土) 11:38:42 ID:???
>>610
理由は思いつかないけど、アラートログを見れば、いつREAD ONLYになったかは
分かると思うので、その時間に何をしたか探ってみたら?
615NAME IS NULL:2010/02/20(土) 18:04:32 ID:???
ご質問です。
オラクルの完全外部結合(FULL OUTER JOIN)に不具合があると
聞いたことがあるんですが、
不具合の詳細を知っている方は、教えて頂けないでしょうか?
ちなみにバージョンは10gです。
616NAME IS NULL:2010/02/20(土) 21:39:03 ID:???
>>615
とりあえず日本語勉強してこい。
自分のすることに「ご」とかつけんな。
617NAME IS NULL:2010/02/20(土) 21:58:34 ID:???
>>615

FULL OUTER JOIN を使用した SELECT 文の実行時に ORA-918 が発生するというもの。
618NAME IS NULL:2010/02/20(土) 23:52:50 ID:G9fBWNdd
Oracleは不用品
619NAME IS NULL:2010/02/21(日) 03:49:41 ID:???
10gR2(10.2.0.5)のクライアントのみ、Windows7をサポートする予定らしい。
リリース時期は、今年の第3四半期だと。
諸事情からこの情報は嬉しい。今年度末の納品に間に合わないのが残念だが。
それにしても「11gR2 for Windows」の品質は大丈夫なのか。
11gR2がやばそうなので、10gR2を残したっていう話でなきゃいいのだが。
620NAME IS NULL:2010/02/21(日) 08:46:43 ID:???
Oracleはサポート契約を結ばないとバグの修正パッチを当てられない。
つまりサポート契約を結んでないOracleなど業務では使い物にならない。
621NAME IS NULL:2010/02/21(日) 11:41:54 ID:qmDkSE7R
ぶっちゃけOracleバグ多いよな。
しかも放置するし、サポートも適当すぎる
622NAME IS NULL:2010/02/21(日) 12:21:38 ID:???
まあな
でも規模が大きかったりダウンタイムを限りなく少なくしようとするとOracle意外に選択肢がないのも事実だがな

それと公官庁のシステムなんかだとアプリケーションサーバとかは何でも良いがDBだけはOracle意外
認めないってとこも多いわな
623NAME IS NULL:2010/02/21(日) 13:10:14 ID:???
技術者が多い
624NAME IS NULL:2010/02/21(日) 13:17:56 ID:???
>>621

だってバグ出しは顧客に任せればいいってラリーが公言してんだもん。
バグが多くて当たり前。
それがボラクルクオリティ。
625NAME IS NULL:2010/02/21(日) 13:19:10 ID:???
>>622

ほう、それは意外だ。
取りあえず日本語勉強しなおしてこい。
626NAME IS NULL:2010/02/21(日) 23:05:13 ID:9WoNxEEu
もう、みんなこれからはPostgreSQLにしようぜ
627NAME IS NULL:2010/02/22(月) 08:38:54 ID:???
参考書にflashback databaseする前にmount exclusiveしないとだめとか
かいてあってsqlplusでstartup mount exclusiveしてみるとちゃんとマウントされるんですが、
exclusiveの意味についてsqlplusのマニュアルで確認しようとおもって調べてもでてこないんです。
というか、mountのオプションはdb_nameでデータベース名を指定すると書いてあるんです。
もちろんexclusiveという名前のデータベースはありません。
これはいったいどういうことなんでしょうか?
628NAME IS NULL:2010/02/22(月) 20:23:55 ID:???
>>622
確かに公官庁のシステムの入札条件なんか
Oracleマスターゴールド以上がXX名以上いること
なんてことあるもんな

システム構成を提案する時点でOracle以外の選択肢がないことが多いのは事実
629NAME IS NULL:2010/02/22(月) 23:44:46 ID:???
>>627

exclusiveの意味通りだけど?
クラスターDBだったら他のインスタンス(スレッド)が間違って起動されてもそっちにはmountさせないって意味。
630NAME IS NULL:2010/02/23(火) 19:02:19 ID:YFT5GxdN
Oracle 10g Express editionのLinux用を、CentOS5.4(x64)にインストールしようとしたのですがうまくいきません。
検索したところ、「64bit版に入れるのは、可能ではあるものの面倒」という情報を発見しましたが、具体的な方法については見つけることが出来ませんでした。
・rpmで入れた場合のアンインストール方法
 (rpm -eでは削除できませんでした)
・x64へのインストール方法
について、何かご存知の方がいらっしゃいましたらアドバイスをいただければ幸いです。
よろしくお願いします。
631NAME IS NULL:2010/02/24(水) 00:04:27 ID:???
>>630

Ubuntuだけど、64bitで入れている人いるね。
32bitのライブラリ関係をまずインストールして、それから導入しているみたい。

http://littlebrain.org/2008/05/12/how-to-install-oracle-xe-in-ubuntu-64-bit/
632NAME IS NULL:2010/02/24(水) 02:48:51 ID:???
>>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#
633NAME IS NULL:2010/02/24(水) 02:58:46 ID:???
>>632
追記。
アンインストールも問題なく出来た。
ただし、一部のディレクトリ(/usr/lib/oracle/xe以下)と、OSの
oracleユーザは残ってた。/etc/oratab もファイルは残ってるけど
中身は空になってた。

root# rpm -e oracle-xe-univ
root# rpm -qa | grep oracle
root#
634NAME IS NULL:2010/02/24(水) 03:03:05 ID:???
>>632
念のため補足。
OSインストール後、yum update で最新状態にしてあります。
635NAME IS NULL:2010/02/24(水) 09:16:43 ID:???
>>629 すいません、マニュアルのどこに載ってます?
探しても見つからなくて...
636630: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でアンインストールして最初からやり直しする必要があったようです。
実行に失敗したことが明示されているのならコレはコレでありだとは思いますが、上記のとおり「成功した」と出てきてしまうので気がつくのが遅れてしまいました。

ともあれ、おかげさまで無事インストールすることができました。ありがとうございました!
637NAME IS NULL:2010/02/24(水) 11:09:07 ID:???
>>635

Oracle 8で廃止されたオプションだからマニュアルに載ってなくても仕方ない。

http://www.dba-oracle.com/concepts/db_startup_shutdown.htm
638NAME IS NULL:2010/02/24(水) 15:50:18 ID:???
ご存じの方がいらっしゃいましたら、ご教授願います。
SQL Developerのデータ・エディターのログ内容って、
Windowsの場合、どこに保存されるのでしょうか?
639NAME IS NULL:2010/02/24(水) 21:07:55 ID:???
サーバAに入っているDBのフルバックアップを使用して
サーバBにバックアップ元のデータベースを複製できますか?
オフライン環境下での作業ですので、メディアを使用し他からデータは持って来れますがリカバリーマネージャの
duplicate等が使用できません。
使用しているのはOracle10gです。

目的としてはオフライン環境下にあるPCにDBを複製することですので
こういった方法がある等ご存知の方がいらっしゃいましたらご教授ください。
640NAME IS NULL:2010/02/24(水) 22:06:41 ID:???
>>639

コールドバックアップを取ったファイルを持って行けばできる。

- 同じバージョンのOracleソフトウェア
- データファイル
- 制御ファイル
- 初期化パラメータファイル
- パスワードファイル (必要だったら)
- /etc/oratab など
- 必要なディレクトリ (USER_DUMP_DEST など)

このへんがあればいいのかな。コンサル料は200万円ね。
641639:2010/02/24(水) 22:45:27 ID:???
>640
回答ありがとうございます。
>639に記述をしてませんでしたが
サーバAは停止させることができないので非一貫性バックアップしかとれないんです。
642NAME IS NULL:2010/02/24(水) 22:51:27 ID:???
また後出しジャンケンか。ほんと困るよなぁ。
オフライン環境下での作業だと書いてあるじゃないか。

データファイルは BEGIN BACKUP END BACKUP で持ってきて、
あとはアーカイブログも持ってくればいいんじゃないの?

RMAN を使えば簡単だとは思うけどね。頑なに使いたくないんだろう、どうせ。
643NAME IS NULL:2010/02/24(水) 23:58:11 ID:???
>>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;


644NAME IS NULL:2010/02/25(木) 01:17:51 ID:???
>>639

良く見るとターゲット鯖は「オフライン環境下にあるPC」とあるからプラットフォームは窓なんかいな?
だったらメディアにコピーする時にはocopyコマンドだな。
645NAME IS NULL:2010/02/25(木) 01:51:42 ID:???
>>644

わからないよ〜

トランスポータブル表領域を使わないといけない場合も
考えておいたほうがよいかも。

次はメディアの容量がとかファイルシステムが、とか言い出すかもしれないな。
646NAME IS NULL:2010/02/25(木) 03:59:39 ID:???
>>645

トランスポータブル表領域は該当表領域を一度読み込み専用に変えないとならないから、無理なんじゃない?
RMAN使えばトランスポータブル表領域セットも生成可能だけど、どうせRMANは使わないとかってオチなんだろ?w
647NAME IS NULL:2010/02/26(金) 12:12:41 ID:???
EnterpriseManagerにあるDataBase Cloneってどんなときに使うの?
648NAME IS NULL:2010/02/26(金) 18:08:52 ID:oqaTR62P
基本的なことを教えてくれ

テーブルフルスキャンしたときデータキャッシュには入らないよな?
それとも既に入っているキャッシュを押しのけて無理やり入ろうとする?
入りきれない場合はキャッシュは空になる?

基本的なことだけど忘れてしまい参考書を無くしてしまったから確認できない
649NAME IS NULL:2010/02/26(金) 22:18:53 ID:???
>>648
ggrks
650NAME IS NULL:2010/02/26(金) 22:21:30 ID:oqaTR62P
>>649
知らないの?
651NAME IS NULL:2010/02/26(金) 22:27:27 ID:XSER53NV
もう、みんなこれからはMSSQLかPostgreSQLにしようぜ
Oracleのバグにうんざり
652NAME IS NULL:2010/02/26(金) 22:32:03 ID:???
653NAME IS NULL:2010/02/26(金) 22:42:14 ID:???
>648
必ず一度キャッシュに入る。
けど、抜けやすいキューに入るから
保持したい場合は、工夫が必要。

のはず。
654NAME IS NULL:2010/02/26(金) 22:49:24 ID:???
>>648
少し考えりゃわかるだろ
655NAME IS NULL:2010/02/26(金) 23:04:31 ID:???
>>647

文字通りクローンDBを作成出来る。
まぁ、実際は裏でRMANのDuplicateが走る。
656NAME IS NULL:2010/02/27(土) 03:26:07 ID:???
>>648
>>658が正解ってこった
657656:2010/02/27(土) 03:26:51 ID:???
>>653だった
アンカミス
658NAME IS NULL:2010/02/27(土) 03:33:54 ID:???
オレが答えなきゃいけないのかと思った
659NAME IS NULL:2010/02/27(土) 12:45:36 ID:???
>>639

フルバックアップってどうやって録ってるんだ?
RMANか?
だったらRMANのバックアップセットがあれば、別サーバーにリストアも可能だぞ?
660NAME IS NULL:2010/02/28(日) 00:04:59 ID:???
661NAME IS NULL:2010/02/28(日) 00:24:23 ID:FTs07dMV
>>655
ソースDBは不停止でOK?
662NAME IS NULL:2010/02/28(日) 01:22:25 ID:???
>>660

試すも何もRMANのDuplicateコマンドは9iからずっと使っているよ。
気をつける点はバックアップセットがターゲット側のサーバーから同じディレクトリ構成で
アクセスできる状態になければならないといった点かな。

RMANは使いこなすと便利。
それこそスタンバイDBもRMAN使えばソースDBを無停止で作成出来る。
663NAME IS NULL:2010/02/28(日) 01:23:42 ID:???
>>661

OK。
ただしソースデータベースがnoarchivelogモードだと勝手に一度mount状態にしてRMANの
コールドバックアップを録ったりしたと思う。
664NAME IS NULL:2010/02/28(日) 01:46:37 ID:JifyTQlU
DBのコピー問題はすべて解決ですな。
665NAME IS NULL:2010/02/28(日) 02:38:43 ID:???
666NAME 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内部に
置く関数のようなものと感じ、実際にどうやれば実現できるのかがわかり
ません。
アドバイスお願いします。
667NAME IS NULL:2010/03/03(水) 19:53:41 ID:???
PL/SQLで検索汁
668NAME IS NULL:2010/03/03(水) 23:09:13 ID:???
40GBのHDDにORACLEサーバいれて半年運用してたら
ディスクがいっぱいになっちゃったんだけど
どうするのが一番いいですか
669NAME IS NULL:2010/03/03(水) 23:16:46 ID:+tYETDVR
Oracleイラネ
670NAME IS NULL:2010/03/04(木) 00:13:54 ID:???
ところで11g R2のWindows版リリース時期ってそろそろ出てきた?
671NAME IS NULL:2010/03/04(木) 03:52:35 ID:???
>>668

HDD増設すれば?
672NAME IS NULL:2010/03/04(木) 07:47:56 ID:???
>>670
某社は秋から販売開始らしい。
っていうことは、ローンチは夏ぐらいかな?
673NAME IS NULL:2010/03/04(木) 08:52:37 ID:???
>>668
マシンごとリプレース

半年で破綻するようなデーターベース設計ならその場しのぎをやったら一ヶ月後に破綻だ。
674NAME IS NULL:2010/03/05(金) 02:27:11 ID:???
>>668
せめて、何が容量を食いつぶしているか確認してからご相談下さい。
WindowsでもUNIXでも、調べればすぐ確認できます。
675NAME IS NULL:2010/03/05(金) 07:46:26 ID:???
>>668

archivelogがずっと吐かれ続けてそのまんま放置とかってオチじゃないのか?w
676NAME IS NULL:2010/03/07(日) 21:13:33 ID:???
でもOracleは>>669の事好きだって言うてたよ。
677NAME IS NULL:2010/03/08(月) 01:57:24 ID:???
>>660

取りあえず直近で試した環境はこんな感じだった。

ソースDB:
- 10g R2 RAC (DBFは11G R1のASMインスタンス上に配置)

ターゲット:
- 10g R2 シングルインスタンス (DBFはファイルシステム上に配置)

テープデバイス:
- EMC Netwokerer (Ultrium)


ソースとターゲットは別サーバーだが、120GBのデータ量の場合、約1時間でRMANのDuplicateが完了。
678NAME IS NULL:2010/03/08(月) 08:00:52 ID:???
>>677
途中変遷を示すようなメッセージはでるの?
shatdown immediate
みたいに終わるまでだんまり?
679NAME IS NULL:2010/03/08(月) 09:22:38 ID:???
>>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;
680NAME IS NULL:2010/03/11(木) 22:58:49 ID:GwR3uE17
Oracleって3年後にあるのかなぁ
そろそろPostgresにでも移行できるおうにしようかな
681NAME IS NULL:2010/03/11(木) 23:02:17 ID:???
>>680
反対だろ
682NAME IS NULL:2010/03/12(金) 07:55:56 ID:???
MySQL派生版に期待だな。
Postgresはダメ。
683NAME IS NULL:2010/03/12(金) 09:37:32 ID:???
PostgreSQLは順調に欠点を改善してきたと聞いたことがあるが実際問題ダメなのか?
684NAME IS NULL:2010/03/12(金) 12:08:26 ID:???
すれ違いよそでやれ
685NAME IS NULL:2010/03/12(金) 19:38:54 ID:???
少なくとも大手金融、公官庁の基幹システムでオープンソース製品なんか
認められてないんだから、Postナンチャラカンチャラに限らず、きちんとした
サポートがないももは、これ以上伸びないだろ
686NAME IS NULL:2010/03/12(金) 22:12:50 ID:???
スキーマモードの impdp する時は、imp の時みたいに、
先に空のスキーマを作成しなくてもいいんでしょうか。

「19 オリジナルのエクスポートおよびインポート」見る限りだと、
imp の時は、システム権限とかインポートされないみたいで、
先にスキーマを作成した後に imp してたんですが、impdp の
時は不要なんでしょうか。

やってみたところ、システム権限/オブジェクト権限はインポート
されてたんで ok って思ってるんですが、ちょっと不安です。

何がインポートされて、何がインポートされないって言うような
情報ってどこかにないでしょうか。
687NAME IS NULL:2010/03/12(金) 23:49:12 ID:???
>>686

別に空のスキーマを作成する必要は無い。
688NAME IS NULL:2010/03/13(土) 03:09:51 ID:???
>>685
そりゃちょっと世間が狭くないかい?

そんな事を言うなら、一昔前は基幹系はメインフレームだけで、
オープンシステム系のOracleだって使われてなかったぞ。


ちょうど切り替え時期の頃の基幹系の担当者は、Oracleに対しても
メインフレーム並みの堅牢性を求めるので、しんどかった。。。
オープン系とメインフレームじゃ、価格が全然違うっつーの。
689NAME IS NULL:2010/03/13(土) 06:07:16 ID:yAvnvoU2
ポスグレはMySQLと比べて
初期に日本でのみ普及して海外では普及しなかったし、今でも出遅れている。
さすがに今からはもう取り戻せないくらいの差になっているので
今から勉強するのは「わざわざ日本限定のマイナー技術を勉強しようとする」
くらいオススメできない。

MySQLは日本では機能不足と認識される期間が長く続いたが、
海外のシンプル&最小限のアプリ構築では実績もそこそこあり情報も多い。
ただしカネにはならない。

DB2はロックが変態。あと日本IBMはム(ry

SQLServerはプログラマーの負荷を下げるという名目での
糞仕様が山盛りで、下手にはいると抜けられない蟻地獄。

Oracleは1億持ってっても「バグではなく仕様です」で逃げる究極のチキン。
690NAME IS NULL:2010/03/13(土) 21:38:25 ID:???
>>687

ありがとうございます。
691NAME IS NULL:2010/03/13(土) 22:14:17 ID:???
>>689
そうすると選択肢として残るのはInformix、Sybase、HiRDB、Symfowareあたりだな。
692NAME IS NULL:2010/03/14(日) 01:58:55 ID:???
>>691
それもDBなの?
693NAME IS NULL:2010/03/14(日) 06:38:28 ID:???
>>689
お前はDBより、まず日本語の勉強をしろ
694NAME IS NULL:2010/03/14(日) 22:40:18 ID:???
OSがSolarisで、オラクル9iのクライアントにパッチをあてることになったのですが、
何ビットのオラクルが入っているかわからないためあてるパッチがわかりません。
何ビットのオラクルが入っているのかどうやればわかるのでしょうか?
695NAME IS NULL:2010/03/14(日) 23:01:07 ID:???
Plus使えるんなら SELECT * FROM V$VERSION; で確認できないかい?
696694:2010/03/14(日) 23:32:51 ID:???
>>695
SELECT * FROM V$VERSION;を行いますと
たしか接続先のDBの情報が出てきたようが気がするのですが。。。
説明不足ですいません、今回あてるクライアントにはDB自体は入ってないです。
こちらの勘違いかもしれないので、明日確認してみます。
697NAME IS NULL:2010/03/14(日) 23:49:43 ID:???
>>694
クライアント側かぁ。
たぶん、KROWN見たら確認方法が載ってると思うけど。


OracleUniversalInstall(OUI)を起動したら、出てこないかな。

698NAME IS NULL:2010/03/14(日) 23:57:23 ID:???
>>696
なるほどクライアント側だったんだね
見落としてた、ごめんよ
>>697 さんのOUIで確認するのと、
file $ORACLE_HOME/bin/sqlplus で確認してみるのもありだね
699694:2010/03/15(月) 23:56:57 ID:???
>>696
>>697
OUIはリモートにあるためちょっとやり方がわからずできませんでしたが、
file $ORACLE_HOME/bin/sqlplus で確認してみたところ
64bitと表示されましたので64bitのようです。
ありがとうございました。
700NAME IS NULL:2010/03/19(金) 16:21:11 ID:???
Oracle USで登録したアカウントって削除できないの?
もう使わないんならほったらかしでいいんかな?
701NAME IS NULL:2010/03/19(金) 19:43:34 ID:???
放置でいいでしょ。
まじめに個人情報入れてる場合は、でたらめなやつに変更してから。
702NAME IS NULL:2010/03/19(金) 23:42:42 ID:???
なるほど、そうしてみる。ありがとー
703NAME IS NULL:2010/03/22(月) 19:05:40 ID:QFIWBKIJ

Oracle11gR1をお試しで家のパソコン、Windows XPにインストールしてみたんだが
データベースのスタートアップ、シャットダウンがOEMとAdministrator Assistant for windows
からしかできなくて、sqlplus からshutdownとやると、応答が返ってこないよ。
Windows版ってそういうものなんかなー?
704NAME IS NULL:2010/03/22(月) 22:12:54 ID:???
shutdown immediate ならどうなる?
705NAME IS NULL:2010/03/22(月) 23:02:02 ID:QFIWBKIJ
>>704

shutdown abort 以外は全部だめ。

まあ、これから停止はAAWでやるからいいよ。
Windows版はお試しでやってるだけだから。
706NAME IS NULL:2010/03/23(火) 07:59:05 ID:???
勝手にやってくれ
707NAME IS NULL:2010/03/23(火) 08:01:14 ID:???
>>703
そういうもんですw
708NAME IS NULL:2010/03/23(火) 11:32:18 ID:???
>>701
で古い情報はちゃんと履歴としてテーブル内に論理削除状態で残っていると。。。
さらに履歴テーブル等にも変更履歴が残っていて、
さらに外部媒体にバックアップがされていて
半永久的に保存されていると。。。お疲れ様でした。
709NAME IS NULL:2010/03/23(火) 22:23:40 ID:???
そんな事が気になるならさっさと改名して引っ越せば良い
710NAME IS NULL:2010/03/25(木) 00:28:55 ID:0H/nzx4A
バージョン:10.2.0.4
環境:HP-UX

sqlplusで

select 列名 from テーブル名;

で検索をすると、検索結果の列名が途中で切れてしまいます。。

col 列名 format a桁数

で綺麗に表示が出来るのですが、なにぶん列数とテーブル数が多くて。。
マニュアル等は見たのですが、何か他にいい方法は無いでしょうか? 
711NAME IS NULL:2010/03/25(木) 01:54:08 ID:???
>>710

set markup html on;でもしてHTMLで吐き出してブラウザーででも見るとか?
それが面倒だったら他のクライアントツール使うしかない。
712NAME IS NULL:2010/03/25(木) 08:10:49 ID:???
>>711
テキストで出力したいとです。
簡単にはいきませんかね。。
713NAME IS NULL:2010/03/25(木) 08:19:31 ID:???
set line 横の文字数
spool on ファイル名
ステートメント
spool off
714NAME IS NULL:2010/03/25(木) 09:09:24 ID:???
>>710
713とかぶるけど、
 set linesize ***** → 必要な桁数

あと、ここら辺りも設定しておくと幸せになれるかも
 set pagesize 5000
  → 何行置きにヘッダ行を出すか。先頭のみヘッダを出す時は0だっけ?
 set trimspool off
  → spoolファイルへ出力する時、linesizeで指定した桁数になるまで行末までをスペースで埋めるのを止める


詳しくは、SQL*Plusリファレンスの「set」の項目を参照の事。
715NAME IS NULL:2010/03/25(木) 20:55:52 ID:???
>>710
PL/SQLでディクショナリを参照してcolコマンドをテキストで生成して実行、ってのを昔使ってた
ソースは手元にないんで出せないけど参考まで
716NAME IS NULL:2010/03/26(金) 07:40:34 ID:???
>>711
HTMLで出力して、何がいいんだか。。。
717NAME IS NULL:2010/03/26(金) 09:04:45 ID:???
>>716

htmlに出力すると結果をExcelとかで直に開けたりするし、それなりに使い勝手はあるよ。
718NAME IS NULL:2010/03/26(金) 22:22:01 ID:???
>710

>715 さんと近いけど
よくやるのは、SQL でコマンド文自体を生成する。
v$表ひけば、col文が簡単に作れるきがする。
それを、ファイルにだして、@

719NAME IS NULL:2010/03/28(日) 09:03:34 ID:SOa4gNw3

テーブル作るとき、カラム名切れちゃう列のカラム数増やしておく

col1 number(4) → col1 number(8)

か、

select 列名 as honyarara ........

で、カラムに別名でもつけとけばいいんでないか。
720NAME IS NULL:2010/03/29(月) 14:34:43 ID:???
Select Table_Name From User_Catalog Where Table_Type = 'TABLE'

この記述で全テーブルを取得したいのですが、文字化けしたような名
前のテーブルが混ざってきてしまいます。

おかしいテーブルは全てBIN$z〜で始まっているので、その文章を含む
ものは弾くとwhere文に入れてみたのですが、うまくいきませんでした。

こういったテーブルだけを抽出しないようにするにはどうしたらよいで
しょうか?
721NAME IS NULL:2010/03/29(月) 14:49:35 ID:???
PURGE RECYCLEBIN;
ゴミ箱機能自体オフにしたいなら
ALTER SYSTEM SET RECYCLEBIN = OFF;
722NAME IS NULL:2010/03/29(月) 23:03:48 ID:???
>>720
BIN〜と表示されているテーブルは、DROPされたテーブルです。
OracleではDROP命令が発行されるとテーブル名をBINに書き換える事で
あたかも消えたかのような振る舞いをするのです。
これはゴミ箱機能といって間違ってテーブル消しちゃっても
もとに戻せるというWindowsのゴミ箱のような機能です。
ゴミ箱を空にしたいならPURGE RECYCLEBIN命令
ゴミ箱を空にしないままゴミ箱の中のテーブルを表示しない方法は、
user_tablesとかのビュー使った方がいいんじゃね?
723NAME IS NULL:2010/03/31(水) 02:52:52 ID:???
indexを作り直して
処理速度が遅くなることってあるんでしょうか。
724NAME IS NULL:2010/03/31(水) 03:32:37 ID:???
ぁ、バージョンは9iです・・・。
725NAME IS NULL:2010/03/31(水) 09:07:18 ID:???
>>723
index再作成後、統計情報を取得し忘れていない?
取得してないせいで、indexを使わない検索になってるとか。
726NAME IS NULL:2010/03/31(水) 10:14:46 ID:???
>>723

実行計画取って見てみたら?
727NAME IS NULL:2010/04/01(木) 22:49:58 ID:YW/C8ZVP

実行計画といえば、SQLDeveloperで見れるのかなあ?
728NAME IS NULL:2010/04/01(木) 23:06:50 ID:WFWqN2B1
SQLDeveloperみれたはず。
729NAME IS NULL:2010/04/02(金) 06:28:57 ID:???
表領域を自動拡張ONにしている奴は
ディスクデフラグを忘れていることがある。
これまで見た最高記録は16万断片。

そういう表領域にINDEX作ったら
検索で足を引っ張るよ。
730NAME IS NULL:2010/04/02(金) 13:09:22 ID:???
他ユーザーがいつCommitを打ったか調べる方法ってあるんかんいな?
RDBMSのコンセプトから言うと図りようがない気がするんだが。
そもそもOracleの分離レベルってREAD COMMITEDだし・・・。
731NAME IS NULL:2010/04/02(金) 23:21:19 ID:???
>>730
REDOログをダンプして直に見る。
732NAME IS NULL:2010/04/02(金) 23:50:35 ID:???
>>731

ログマイナー使うのめんどいな。
でもやっぱそれしかないか・・・。
733NAME IS NULL:2010/04/05(月) 23:53:33 ID:???
質問です。

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)です。

734NAME 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になっていました。

詳しい方どうかご教授ください。
735NAME IS NULL:2010/04/07(水) 13:48:58 ID:???
>>733

アプリ側でEXPする前に権限与える様にするしかないと思うが?
でもって、EXPが終了したらロールを変更するなど作り込みが必要だろうよ。
736NAME IS NULL:2010/04/07(水) 13:50:44 ID:???
>>734

環境変数設定すれば?

sett ORACLE_SID=testdb
といった感じに?
737NAME IS NULL:2010/04/07(水) 20:02:14 ID:???
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
です。

わかる方、どうかご教示ください。
よろしくお願いします。
738NAME IS NULL:2010/04/07(水) 23:55:47 ID:???
>>734

つ〜か、クライアントの話だったのね。
普通に conn testuser/testpass@testdbで繋がらないか?
739NAME IS NULL:2010/04/08(木) 00:21:21 ID:???
>>737

バグだね。
一応10g R1 Fixとなっていたけど、直っていないみたい。
SR上げてみたら?
740NAME IS NULL:2010/04/09(金) 21:50:54 ID:???
11gR2 Win、出たね。
741NAME IS NULL:2010/04/10(土) 00:24:04 ID:???
>>739
ご回答ありがとうございます。

そこまでレアケースではないとは思っていたのですが、
まさかバグだったとは・・・。

現在のVersionではどうしようもない、という事で
説明しようと思います。

本当にありがとうございました。
742NAME IS NULL:2010/04/10(土) 23:03:08 ID:???
>>740
なんか空っぽのZIPファイルが落ちてくる…
IE8だと「Internet Explorer ではこのページは表示できません」とかなるし
どうなってんだろう?
743NAME IS NULL:2010/04/10(土) 23:07:21 ID:???
>>742
Oracleでは珍しくない、
「サイトの向こう側がメンテ中(もしくは不具合発生中)」の状態。
週末とかは平気でサービス停止するのがOracleクオリティ。

月曜になってからやってみるとよし。
744NAME IS NULL:2010/04/11(日) 08:04:44 ID:???
zip圧縮といっても、いろいろバージョンがあるからじゃない?
オイラはWin32版11gR2公開当日にダウンロードして
今Lhaplusで解凍しているけど、中身は入ってるみたいだよ。
745NAME IS NULL:2010/04/11(日) 10:51:48 ID:???
>>744

いや、今試してみたがファイルサイズがゼロの情報が送られて来る。
多分リンク先が死んでいるっぽい。
746NAME IS NULL:2010/04/11(日) 19:11:21 ID:???
sql*plusのスクリプトで、IF文を入れ子にすることはできないのでしょうか?
とりあえずIF文の入れ子やめて条件を全文ANDでつなげたら動いたんですが、
できればよりシンプルに書きたいので。

バージョンは10です。
747NAME IS NULL:2010/04/11(日) 21:10:25 ID:???
>>746
PL/SQLブロックで書けばいいと思うけど

DECLARE
BEGIN
IF xxxxx THEN
IF xxxxx THEN
xxxxx;
ELSE
xxxxx;
END IF;
END IF;
END;
/
748NAME IS NULL:2010/04/11(日) 21:10:49 ID:???
>>746
普通にPL/SQLで書けば良いんじゃないかと思うけど、そう言うことじゃないの?
もう少し具体的に何をやりたいか書けば、幾らでもアドバイスできると思うんだけど
749NAME IS NULL:2010/04/11(日) 21:28:13 ID:???
PL/SQLにこだわらず、CASE文を覚えるとまた楽になるよね。
750746: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;
/
のようにしたら動いたのですが、
エラーになる理由が分からない&できれば最初のように書きたいということです。
751NAME IS NULL:2010/04/12(月) 07:45:09 ID:???
エラーの内容も示さずデバッグしろというのはずいぶんだな。
752NAME IS NULL:2010/04/13(火) 06:27:49 ID:???
・代入は「:=」を使う。
・処理なしの記載はNULL;(何もしない)という命令を使う。
・行末はセミコロンが必要。
・きちんとインデントする。でないとEND IFの対応にミスる。
・シングルクォート(アポストロフィ)は注意して使う。
・全角空白は使わない。

上記に気をつけて、もう一回書き直してみたら?
きっと他愛もないミスをしてるだけだよ。
753NAME IS NULL:2010/04/17(土) 14:21:27 ID:50ASHbe0

エラーになったプログラムをそのまま貼り付けなきゃ、答えようがないぢゃないか。
バカなの? 死ぬの?
754NAME IS NULL:2010/04/17(土) 20:51:37 ID:???
規制でここのところ全然書けないので携帯から

>751
すいません、エラーは「ORA-01756:引用符付き文字列が正しく終了していません。」です。

自己解決しました。
FTP転送の設定ミスでコメントの日本語が化けたファイルを実行していたせいです。
お騒がせしました。
755NAME IS NULL:2010/04/19(月) 10:27:29 ID:???
質問です。
いままでLinuxでApache+PHP5+MySQLで様々なウェブアプリを開発納品して来たのですが、
今回クライアントがOracleを使っているという事で、MySQLの代わりにOracleを使って開発する事になりました。
現在使用しているサーバーはそのまま使わなければならないという事で、そのサーバーに新たにApacheとPHPをインストールしないと
いけないのですが、サーバーを借り受ける事が出来ないので、開発用に同じ環境を社内に作ってくれという事で
OracleとWindowsServer2003R2のディスクを借り受けました(30日しか使えないそうですけど・・・)。
WS2003もOracleも初めて使うのですが、とまどいつつもとりあえず余っているPCにWS2003をインストールし、
Oracleを同時に頂いた資料(恐らくクライアントが内部でサーバーを建てる為のガイド)を元にインストールしました。
接続テストも成功したのですが、Windowsを再起動すると、「サービスが起動出来ない」というようなエラーが出ます。
サービス一覧を見ると、Oracle関係のサービスがひとつ起動していなかったので、手動で起動しようとしてもエラーが出て起動出来ません。
恐らくエスパーじゃないと解決方法も提示出来ないとは思いますが、どういった情報を提示すればいいのかもわからないので
よろしければ何を提示すれば、解決方法がわかるものなんでしょうか・・・?
OS:WindowsServer2003R2
Oracle:10g
よろしくお願いします。
756NAME IS NULL:2010/04/19(月) 15:12:03 ID:???
まずサービス名くらいは書けや
757NAME IS NULL:2010/04/19(月) 17:32:46 ID:???
>756
OracleDBConsole*****←(SID) です。

試しにインストール時にEnterprise Managerのチェックを外してインストールすると
エラーは出ずにDBが使用可能になりました。
開発にはEMがないと、何かと不便ですので出来ればEMを使いたいのですが・・・
後からEMを追加する事も可能なのでしょうか?
758NAME IS NULL:2010/04/20(火) 00:25:17 ID:???
>>757

EM関連はバグが多いからとりあえず10.2.0.4までパッチを充ててみたら?
もしMetalinkにアカウントがあるのならPSUも充てておくといいかも。

どうしてもEMを使いたいというのであれば、セントラルグリッドの導入を
お勧めする。
PCでも既存のLinux鯖にでもリポジトリDBとセントラルグリッド入れて、
窓鯖2003側にはエージェントだけ入れておけばいい。
759NAME IS NULL:2010/04/20(火) 00:27:47 ID:???
>>757
表領域とかのメンテがいらないのならSQL Developerでいいんじゃない
760NAME IS NULL:2010/04/20(火) 00:59:54 ID:???
>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では相変わらずデータは無し
全て同じアカウントで、同じテーブルで行っています。
これはどういう事なのでしょうか・・・?
761NAME IS NULL:2010/04/20(火) 01:07:53 ID:???
COMMITしてないんじゃない?
762NAME IS NULL:2010/04/20(火) 01:11:00 ID:???
自動コミットされる環境しか使ったことないのかよ
763NAME IS NULL:2010/04/20(火) 01:29:31 ID:???
EMが見てるのは表の統計じゃないの?
1行INSERTしたくらいじゃ更新されないかも。
DBMS_STATSで統計とりなおしたらどうなる?
764NAME IS NULL:2010/04/20(火) 02:26:37 ID:???
>>760

EMから見ているというのは何をもってそう言っている?
EMからiSQLPLUS経由でselect文打ってるって事か?
もしそうなら>>761>>762にあるよにCommitしてないだけだろ。
765NAME IS NULL:2010/04/20(火) 07:04:36 ID:???
>764
EMから確認というのは、ブラウザで http://127.0.0.1:1158/em として起動するEnterprise Managerから
表を表示してデータの確認をした、という事です。
EMからはINSERT出来ないようなので、別のウィンドウ(ブラウザ)で iSql*Plusを起動してINSERTしました。
その際、ログアウトして終了させているので、COMMITは発生していると思うのですが・・・。
これまでMySQLとPostgresしかRDBMSは使ったことがないので、少し混乱しています。
phpMyAdminなどの管理ツールに慣れすぎたのもいけなかったかもしれません・・・。
766NAME IS NULL:2010/04/20(火) 07:57:51 ID:???
>>765

iSQL*PLUSは11gでは廃止されているからねぇ。
あんまり使わんプログラムのひとつなのだよ。
いずれにせよ明示的にcommitするクセつけた方がいいと思う。
767NAME IS NULL:2010/04/20(火) 10:23:12 ID:???
ログアウトしたときに勝手にコミットするデータベースなんてあるのかね?
768NAME IS NULL:2010/04/20(火) 14:24:19 ID:???
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」の全て条件を満たすと思うのですが・・・・
769NAME 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だからだ



770NAME IS NULL:2010/04/20(火) 16:16:39 ID:???
なるほどw
2000年問題の問題と見せかけて、実はto_date関数の問題だったとw
分からないと言うより、気がつくわけがねぇwwww
771NAME IS NULL:2010/04/20(火) 18:57:19 ID:???
日付型と文字型の比較の時は、文字型が日付型に変換されるんでは?
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05750-03/sql_elements.htm#41079
772NAME IS NULL:2010/04/20(火) 19:09:22 ID:???
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に渡されるから、かな。
773NAME IS NULL:2010/04/20(火) 22:42:30 ID:???
>>767

OracleのSQL*PLUSはログアウト時に暗黙的にCommitを発行する・・・。
774NAME IS NULL:2010/04/21(水) 06:55:14 ID:xQNZIDR+


exitでコミット、quitでロールバック

775NAME IS NULL:2010/04/21(水) 08:02:11 ID:???
嘘はいかんよw
776NAME IS NULL:2010/04/21(水) 08:10:51 ID:???
>>768
WHERE TO_DATE(hire_date, 'DD-Mon-yy')
ではなく
WHERE TO_CHAR(hire_date, 'DD-Mon-yy')の誤記だと思われる
NLS_DATE_FORMATの指定がないから不適切な問題

>>774
どちらもコミット
777NAME IS NULL:2010/04/21(水) 10:29:17 ID:???
>>773-775
SqlPlusの場合AUTOCOMMITシステム変数次第だって事だね
778NAME IS NULL:2010/04/21(水) 10:38:59 ID:???
>>777
それってSQL*Plus正常終了時のコミット処理とは関係ないんだが
779NAME IS NULL:2010/04/21(水) 11:38:26 ID:???
現在、Oracle10gをWS2003で動かしています。
通常運用では問題無いのですが、停電などでWS2003が再起動されると
Oracleのサービスが動作しません。
Windowsの管理でサービス一覧を見ると、Oracle関係のサービスは動作中なのですが、
実際にOracleを使用しているアプリケーションを起動すると、データベースが動作していない旨のエラーが出ます。
ただし、Oracleのデータベースコンフィグレーションアシスタントを起動して、データベースの構成を変更しようとすると
アプリケーションからOracleが正常に接続されて使用出来るようになります。
数回再起動して試しましたから、このDBCAがトリガーになってるのは間違いないようです。
普段、サーバーを再起動する事なんて滅多にないので、実用上問題ないと言えばないのですが、
何か原因がわかりますでしょうか?
780NAME IS NULL:2010/04/21(水) 12:42:49 ID:???
サポートに聞け
781NAME IS NULL:2010/04/21(水) 16:02:01 ID:???
>>779
SET ORACLE_SID=HOGE
として環境変数ORACLE_SIDを設定した後、
SQLPLUS /NOLOG
CONNECT SYS AS SYSDBA
として、インスタンスがどうなっているのか確認

782NAME IS NULL:2010/04/21(水) 18:49:00 ID:???
リスナが起動してないんじゃね?
783NAME IS NULL:2010/04/21(水) 23:38:29 ID:???
>>777

SQL*PLUSはAUTOCOMMITシステム変数に関係なく、正常終了時にはCOMMITを発行する
仕様になっている。
それが嫌だったら終了時に明示的にrollbackするクセを付けておくしかない。
784NAME IS NULL:2010/04/22(木) 01:42:53 ID:???
>>779

[原因]
- ORACLE の稼働するホストがワークグループに属し、その名称と同名の
NetBIOS 名をもつドメインが、アクセス可能なネットワーク上に存在する

- OS 認証を行っている
sqlnet.ora に下記の記載がある
SQLNET.AUTHENTICATION_SERVICES= (NTS)

[解決策]
- ワークグループ名とドメインの NetBIOS 名が重複しないようにする

- OS 認証を行わない
%ORACLE_HOME%\network\admin\sqlnet.ora から下記の記載を削除、
またはコメントアウトする。

SQLNET.AUTHENTICATION_SERVICES= (NTS)
785NAME IS NULL:2010/04/22(木) 10:27:03 ID:???
>784
有り難う御座います。
OS認証を行わない、という方法をやりましたが、やはり駄目でした。

まったくDBに繋がらないという訳ではないので、起動時に一手間増えるだけですので
このままの状態でしばらくは様子を見たいと思います。
時間があるときにサポートにでも聞いてみたいと思います。
786NAME IS NULL:2010/04/23(金) 23:05:21 ID:???
おい、俺だ。
デッドロックです。
助けてください。良いサイト。
787NAME IS NULL:2010/04/24(土) 00:48:18 ID:???
BUAI列にNULLが含まれているとします。この時、全社員の平均歩合を求める式を選びなさいって問題で
 @AVG(NVL(BUAI,0))
 ASUM(BUAI)/COUNT(BUAI)

ってあったんだけど、ある問題集では@が正解、あるサイトではAが正解みたいなことになってるんですが
どっちがあってるの?

個人的にはNULLの社員の歩合を0円に無理やりするのはおかしいと思うから、Aが正解の気がするんだけど
解釈によってはどうとも取れるから困る。これ・・・・・・・・
788NAME IS NULL:2010/04/24(土) 22:23:00 ID:???
>>787
歩合がNULLの社員を省くことは問題の前提に反する(全社員にならない)⇒@が正解
一切の反論を認めない
789NAME IS NULL:2010/04/25(日) 03:54:04 ID:???
以降このスレは「NULLとは」で数スレが消費されます。
790NAME IS NULL:2010/04/25(日) 06:12:46 ID:???
>>787
そういう、解釈に困る問題はこの手の試験にはありがち。たいがいは真の定義
(ここでは「平均歩合」)がわからなくても消去法で解けるようになっているはず。

その場合、意訳した問題文と選択肢の抜粋からは答えることができない。
791NAME IS NULL:2010/04/25(日) 12:05:44 ID:???
ぬるぽ
792NAME IS NULL:2010/04/25(日) 13:34:55 ID:???
>>791

ガッ!(死語)
793NAME IS NULL:2010/04/25(日) 20:04:53 ID:???
   トランザクションA       トランザクションB
  (TABLE1 ロック無)      (TABLE1 ロック無) 
                    TABLE1 ROW1 UPDATE
 
  TABLE1 ROW2 UPDATE
 
                    TABLE1 ROW1 + ROW2 UPDATE
 
 
これでデッドロックが発生するって
どんな状況が想定できますか
794NAME IS NULL:2010/04/25(日) 21:37:58 ID:???
>>793
ROW1とROW2が同じブロックに入ってるとデッドロックになる可能性が有る
795NAME IS NULL:2010/04/26(月) 00:01:29 ID:???
共有サーバー接続で、サーバープロセスが1つしかないとか。
796NAME IS NULL:2010/04/27(火) 23:00:10 ID:???
Oracle 11g 11.2.0.1.0
Windows XP Pro SP3

Windows機にOracleをインストールしたのですが
OSのユーザーはOracleインストール時も含め常用しているもので、
管理者権限あり、パスワードなしです。

この場合、EMで要求されるホスト資格証明はどうすればいいのでしょうか?
パスワードを空欄にすると必須入力の旨のメッセージが出ます。
無理でしょうか...
797NAME IS NULL:2010/04/29(木) 03:10:06 ID:???
>>796

無理なんじゃね?
変わりにDefault credentialでsysユーザーとsysのパスワード登録しておけば
どうとでもなりそうな気もするけどな。
798NAME IS NULL:2010/04/29(木) 14:11:49 ID:???
>>796
XPは空じゃなくても、OS自動ログインできるんじゃなかったっけ?
パスワード設定しておけば、EMの方はそれでログイン出来るだろうし。
799796:2010/04/29(木) 22:33:44 ID:???
ありがとう
>>798
これにしました。
Windowsはたしかに自動ログインできるし、EMのホスト資格証明もよさそうです
800NAME IS NULL:2010/05/01(土) 05:43:33 ID:???
Linux版の10.2.0.5パッチセット出たね。
801NAME IS NULL:2010/05/01(土) 07:11:32 ID:qoNVVD6Y

Linux版の11.2、お試し版をインストールして、a tons of error 出まくりで日本やら海外の
サイト探しまわってやっとインストールできたんだが、まだEMが起動せずの状態。
sqlplusでなんとかしのいでるんだけど、Limux版のオラクルっていつもこんなにインストール時に
問題起こりまくりなの?
11.2のインストール時のエラー回避策見て唖然としながらインストールしたんだけど。
802NAME IS NULL:2010/05/01(土) 15:43:05 ID:???
そういうもんだぎゃー。
リリースノートだけじゃ当てにならんから、ちゃんとKROWNに則ってやるしかない。
803NAME IS NULL:2010/05/01(土) 15:50:20 ID:???
Oracle Enterprise Linux5.3 x64にはさくっとはいったよ。
804NAME IS NULL:2010/05/01(土) 18:16:54 ID:SqJ/GJAW
CentOS5.4にサクッと入ったよ
805NAME IS NULL:2010/05/01(土) 21:21:35 ID:???
>>801

32-bit版は何かと問題があるから64-bit版をお勧めする。
806NAME IS NULL:2010/05/02(日) 10:33:11 ID:SBnmfv5U
>>805

インストールしたのは64ビット版ですよ。
807NAME IS NULL:2010/05/02(日) 10:52:32 ID:XFknMb+T
どのディストリビューションにインスコしたんだよ
必要な情報が足りん
808NAME 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

809NAME IS NULL:2010/05/03(月) 06:34:18 ID:???
ORACLE MASTERって日本語ですか?
810NAME IS NULL:2010/05/03(月) 06:50:20 ID:???
英語だよ。
811NAME IS NULL:2010/05/03(月) 20:41:44 ID:???
>>809
質問の意図を端折り過ぎる人
>>810
わかってて意地悪な答えをする人

812NAME IS NULL:2010/05/03(月) 20:45:47 ID:???
>>809

日本語勉強してから質問しろ。

例: Oracle Masterの試験内容は日本語なんですか?

答: 日本で受ける場合は日本語です。
813NAME IS NULL:2010/05/03(月) 23:25:55 ID:???
>>808

関係あるってw
そもそもUbuntuは対応ディストリビューションじゃないし?

http://download.oracle.com/docs/cd/E11882_01/install.112/e10840/pre_install.htm#CHDFFBIF

それで「エラーが出る」って文句言ってるのってヴァカなの?
814NAME IS NULL:2010/05/04(火) 06:19:34 ID:???
>>808

天気もいいし, 釣りか ?
815NAME IS NULL:2010/05/04(火) 12:11:23 ID:z88X36Zy
つまりサポート対象外のOSにインストールできた>808はかなりのツワモノ
ということなのだな。linux使いにはこういうのがかなり多いな。
Windowsユーザーと違って。
816NAME IS NULL:2010/05/04(火) 12:47:57 ID:???
>>814
今日、仕事だって言っただろ
817NAME IS NULL:2010/05/04(火) 18:35:55 ID:???
>>815
ありがちな内容だからこの程度のことくらいできるやつは多いだろ

そもそもLinuxはディストリビューションによって色々違うのに
わざわざサポート外環境に入れて文句たれるヤツは間違いなくバカ
818NAME IS NULL:2010/05/05(水) 02:31:13 ID:???
>>816
そうか, すまん. お疲れ.
819NAME 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だと大丈夫ってことないよね?




820NAME IS NULL:2010/05/06(木) 23:19:09 ID:???
>>819

気にするな。
NetCAは昔からバグだらけだから、あてにしちゃいかん。

11gR2はLinux 32bitだと力入れてバグ取りしていない。
CRSのインスコ時にroot.shで落ちたりしていたぐらいだ。
821NAME IS NULL:2010/05/07(金) 00:41:03 ID:???
10G RELEASE2 で VLM を利用しています。

KEEP バッファを利用したいんですが、VLM を利用していると
DB_KEEP_CACHE_SIZE が利用できない状態で困っています。
ALTER SYSTEM で BUFFER_POOL_KEEP を指定しようとしても
指定できない。(エラーになる)
どうすればいいんでしょうか。

誰か知っている方教えてもらえると嬉しいです。
822NAME IS NULL:2010/05/07(金) 03:05:40 ID:???
>>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)
823819: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のサーバで試してみたいんだが、持ってないんだよな。

824NAME IS NULL:2010/05/08(土) 15:56:38 ID:???
へぇ〜、11gR2でouiだけやっとJava2化されたのか。
825819:2010/05/08(土) 16:31:12 ID:chePo9ej
826819:2010/05/08(土) 18:26:39 ID:chePo9ej
819だが訂正。
64bitは大丈夫だった。間違って32bitのOracle Clientインストールしてた。

32bitダメ。
パッチを当てればNetCAもsqlplusも問題なく動くらしい。

こんなのお試し版で公開するなよな。

827NAME IS NULL:2010/05/11(火) 04:30:01 ID:???
>>826

Oracleのお試し版も製品版もクオリティとしてはそんなもの。
828NAME IS NULL:2010/05/15(土) 07:40:46 ID:???

OracleもSQLだけは良かったが、世間が急速にGUI化して、あわててOUIをGUI化しようと
焦ったが、結局バグだらけのゴミをばらまく会社と成り果てたか。
世界はMSとググルで統一されたな。戦国乱世時代の終演だ。
829NAME IS NULL:2010/05/15(土) 20:17:31 ID:???
VMPlayer上のWindowsXPまたはWindwos7のXP互換モード(VirtualPC)上のWindowsXP
にOracle9i(Client)のインストールはサポートされていますか?
830NAME IS NULL:2010/05/15(土) 20:20:30 ID:???
新しいパソを1台購入
831NAME IS NULL:2010/05/17(月) 23:30:43 ID:???
>>829

サポートされない。
832NAME IS NULL:2010/05/17(月) 23:57:09 ID:???
>>829
ライセンスやサポートのことはオラクルダイレクトで聞くといいです
833NAME IS NULL:2010/05/18(火) 13:52:09 ID:???
質問です。
現在サーバーはoracle10g(miracle linuxv3)で、クライアントはoracle10g(xp)で運用しています。
サーバーを新調したのでoracle11g(asianux3 miracle linuxv5)でクライアントはoracle10g(xp)で運用しようとしてました。
ところが、新調したサーバーではODBC→接続テスト(10秒程度)→ダイアログ立ち上がって入力画面→ユーザ、パス入力後OK→(30秒後)正常に接続できました。
となってしまいます。
旧のサーバーはODBC→接続テスト(3秒程度)→ダイアログ立ち上がって入力画面→ユーザ、パス入力後OK→(1秒後)正常に接続できました。
で正常にいけます。
接続テストだけかと思いましたが、impしたデータで実際にアクセスしても最初の接続は異常に遅いです。
原因わかるかたいらっしゃいますか?
834NAME IS NULL:2010/05/18(火) 14:04:24 ID:???
ぐちゃぐちゃ検証する前に、クライアントの方も上げたら?
基本的に、バージョンはクライアント側が同等以上だと問題が出にくいはず。
835NAME IS NULL:2010/05/18(火) 14:15:05 ID:???
>>834
説明不足すみませんでした。
新調したサーバー(oracle11g)で、クライアントもxp、oracle11gにして実験はしましたが同じ結果でした。
836NAME IS NULL:2010/05/18(火) 14:40:09 ID:???
tnsnames.oraのホスト名をIPアドレスにしてもダメか?
837NAME IS NULL:2010/05/18(火) 15:38:29 ID:???
>>836
はい。だめでした。あと、過去ログにあった、
sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(NTS)
NAMES.DIRECTORY_PATH=(TNSNAMES)
もやってみましたが、同じでした。
838NAME IS NULL:2010/05/18(火) 16:54:54 ID:???
ODBC以外の接続ではどうなの?
839NAME IS NULL:2010/05/18(火) 17:03:02 ID:???
!!!!自己解決しました!!!

>>838
SQL+でも同じような現象でした。繋がり遅い(20秒ほど)。→結果も返ってきますが遅い(30秒ほど)。というかんじでした。

解決ですがasianux3 miracle linux v5のsp2をあてたら直りました。
入れなおした後、全部同じ設定でやっていたので相性かパッチで直っていたという感じだと思います。

スレ汚し申し訳ございませんでした。
840NAME IS NULL:2010/05/19(水) 22:42:34 ID:???
>>830
>>830-832
レスありがとう
ダイレクトに問い合わせたところ「動作保証対象外」とはっきり言われました。
841NAME IS NULL:2010/05/19(水) 22:46:40 ID:???
そもそもWindowsにOracleいれて運用したくないよな
不安定の2乗って感じ
842NAME IS NULL:2010/05/20(木) 19:08:35 ID:???
ちょっとお聞きしたいんですけどね。
Windowsのサーバでないやつ、XPとか7とかにoracleインストールすると、
パソコン起動時に自動的にデータベース立ち上がってるじゃないですか。
それは便利でいいんだけど、
今度逆に、emとかoradimコマンドとかでデータベースシャットダウンしても、リスナー止めても
プロセスはoracleもtnslsnrも終了せず、ずっと動いたままじゃないですか。
これってすごくウザイんですけど、なんとかなりませんかね。メモリ圧迫していやなんですけど。

そもそもなんでWindowsバージョンだと素直にプロセス終了してくれないんですか?
843NAME IS NULL:2010/05/20(木) 19:50:49 ID:???
サービス落とせ
844NAME IS NULL:2010/05/21(金) 21:27:29 ID:???
>>842
サービスを自動起動ではなく、手動に変更すればいいよ
845NAME IS NULL:2010/05/21(金) 21:56:52 ID:???
>>842
シャットダウンしてもプロセスは残ってるけど、スレッドは確実に減ってるしメモリも全部ではないが解放されてるが?
俺はSQL*Plusでシャットダウンしてるけど、やり方によって違うのかな?
846NAME IS NULL:2010/05/22(土) 09:47:41 ID:???
alter table文のupgrade句の意味は何ですか?
847NAME IS NULL:2010/05/22(土) 11:36:11 ID:???
>>846

カラムの属性とかを変更した時に表に存在する既存のデータを新規属性に合わせたい時とかに使う。

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19256-01/adobjadv.htm
848846:2010/05/22(土) 19:33:45 ID:???
>>847
ありがとうございました!
849NAME IS NULL:2010/05/22(土) 22:27:19 ID:???

デフォルトロールってなんて言い方よ!

ただ、ユーザーがログインする前に設定しただけなのに、わざわざそれを全部デフォルトロールって呼ぶなよ。

オラクルってバカなのかと思ってしまったわ!!!

死ね、オラクル!!!!
850NAME IS NULL:2010/05/26(水) 23:02:00 ID:???
オラクル・マスターの勉強のため、Windows7にOracle11gR2を入れたんですけど
スタンダード・エディションだとフラッシュバック・ドロップは使えないんですか?
851NAME IS NULL:2010/05/26(水) 23:03:41 ID:???
>>850

使えない。
852NAME IS NULL:2010/05/26(水) 23:20:50 ID:???
>>851
すばやい回答ありがとうございます。
え〜〜〜〜〜、そうなんですか〜〜〜〜〜〜
また、インストールしなおさなきゃ_| ̄|◯
853NAME IS NULL:2010/05/27(木) 01:24:28 ID:???
854NAME IS NULL:2010/05/27(木) 05:02:39 ID:???
855NAME IS NULL:2010/05/27(木) 17:47:49 ID:???
>>853,>>854
うーむ、バージョンによって違うんですね。気をつけなくちゃ。
856NAME IS NULL:2010/05/27(木) 18:52:53 ID:???
>>855
undropは10gからの機能だから9iにはないんだよ
11gスタンダードでも使える
857NAME IS NULL:2010/05/27(木) 19:49:18 ID:???
>>856
え???
11gではエンタープライズのみの機能だって>>853で・・・・
858NAME IS NULL:2010/05/27(木) 20:02:14 ID:???
>>857
だから >>854
flashback dropは書いてない
859NAME IS NULL:2010/05/27(木) 22:15:39 ID:???
何この流れ
860NAME IS NULL:2010/05/27(木) 22:28:39 ID:???
>>858
というより、スタンダードでサポートされてるのはflashback queryとしか書いてないことから
分かると思うんですけど。
lashback dropってflashback queryと同じ次元で語るflashbackですか?むしろ、flashback table と
まったく同じ次元と思ってますけど。
861NAME IS NULL:2010/05/28(金) 01:44:41 ID:???
すまそ
timesten 11、win32版
ちょっと多めのデータを突っ込むとすぐexhaustするんだ
(OS全部メモリを使い切った様子はない、タスクマネージャのリソースみた)

ふつーのoracleならalter tablespaseでもすればいいんだが
timestennだとどうするか教えてください

いちおうまだまだメモリに余裕がある前提でおk

862NAME IS NULL:2010/05/28(金) 05:53:14 ID:???
>>860
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/license.102/B19199-15/editions.htm#429706

このサポート状態でflashback dropはSEでつかえるから全然同じ次元ではない
863NAME IS NULL:2010/05/28(金) 11:20:48 ID:???
質問です。

サーバー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等で試しましたがだめでした。
よろしくおねがしいます。
864NAME IS NULL:2010/05/28(金) 20:13:30 ID:???
asianux使ってるところ、それなりにあるんだな
865NAME IS NULL:2010/05/28(金) 22:51:21 ID:???
>>863

DBとClientバージョンは同じか?
10gならexpdp使うとか?
866NAME IS NULL:2010/05/28(金) 22:54:23 ID:???
>>861

32bitはプロセスに4GB制限(厳密にはそこまで使えない)があるけど、それにひっかかっていないか?
867NAME IS NULL:2010/05/29(土) 01:04:32 ID:???
>>866
情報ありがとう
すまんがタスクマネージャをみるかぎりそんな莫大なサイズを使ってないんだ
そもそもサイズ設定できないとか?
なにしろtimestenって情報ないんだよね
868863:2010/05/29(土) 09:29:51 ID:???
>>865
回答ありがとうございます!
調べてみます。ありがとうございました。
869NAME IS NULL:2010/06/07(月) 22:06:29 ID:T5q/rGIw
ORACLEの無償版を使用しています。
列名にアンダーバーを含んだ文字を入れると
無効エラーが発生します。例:コウジョウ_クブン
ダブル、シングルクオーテーションなどで囲んで
定義してもダメでした。
どのようにしたら認識されるのでしょうか?
宜しくお願いします
870NAME IS NULL:2010/06/08(火) 00:49:13 ID:???
>>869

どちらかというと半角カタカナ+半角英文字アンダーパーとの組み合わせがエラーと
なっていそうな悪寒。
英文字だけで定義したらどうなる?
871NAME IS NULL:2010/06/08(火) 01:00:50 ID:???
ユニコードって半角カナあったっけ?
872NAME IS NULL:2010/06/08(火) 06:17:55 ID:???
1文字3byteだから単に長さオーバーだったりしないか?
873NAME IS NULL:2010/06/08(火) 06:54:03 ID:???
長さオーバーだね。一文字消して
コウジョウ_クブ
だと作れる。
874NAME IS NULL:2010/06/08(火) 12:00:12 ID:???
Oracleで年月を引数に以下のような1ヶ月分の日を取るには、どのように書けばよいですか?

日 曜日
_____
1 火
2 水
3 木

30 水
875NAME IS NULL:2010/06/08(火) 12:12:03 ID:???
>>874

残念ながら曜日を日付型で持っていないから無理。
エンハンスリクエストはずっと出ているんだけどね。
876NAME IS NULL:2010/06/08(火) 21:55:43 ID:???
>>871-3
おお気づかなかったw
そんな俺は試験に落ちるだろう
877NAME IS NULL:2010/06/08(火) 22:39:23 ID:???
>>874
ROWNUM&階層問い合わせ
878NAME IS NULL:2010/06/09(水) 01:36:05 ID:???
centos5.4とoracle10.2.0.1を使っています。
rmanを使ってコントロールファイルとバックアップセットを取得して、
別のサーバにデータベースをコピー作ろうと思っています。
この場合リストア先のサーバにあらかじめ、
バックアップ元と同じデータベースを作っておかなくてはいけないのでしょうか?

OSにoracleをインストールして、
いきなりリストアするとデータファイルが作成できませんとエラーになってしまいます。
879NAME IS NULL:2010/06/09(水) 04:13:04 ID:???
>>878

作っておく必要は無い。
ただし、バックアップセットはコピー元と同じディレクトリ構造の所に置いておく必要あり。

面倒だったらRMANのDUPLICATEコマンド使えば?
880NAME IS NULL:2010/06/09(水) 04:14:29 ID:???
>>878

確認だが、リカバリカタログDB使っているのか?
それともコントロールファイルのみか?
リカバリカタログDB使っているとちょっと面倒かもしれん。
881NAME IS NULL:2010/06/09(水) 06:56:27 ID:???
別のサーバなら、ファイルコピーという手もあるわな。
882NAME IS NULL:2010/06/09(水) 09:16:39 ID:???
レスありがとうございます。

リカバリカタログは使わずコントロールファイルでのリストアでやっています。
バックアップリストとはデータファイルの集合体という認識でいいでしょうか?
list backup;で〜〜.bakという認識バックアップファイルの中の一覧が確認は出来ます。
883NAME IS NULL:2010/06/09(水) 11:44:39 ID:???
>>882

コントロールファイルのみなら簡単だな。
手順としてはこんな感じかな。

1. リストア先のDBをnomountモードにて起動
2. RMANでcontrolファイルをリストア
3. DBをmountモードに変更。
3. RMANでデータベースファイルをリストア
4. DBをopen resetlogsでオープン。

確認だが、データベースファイルやコントロールファイルのリストア先のディレクトリは
ちゃんと前もって作成されているんだよな?
もし作成されていないのなら、set newnameコマンド使うなり、convertをinit.oraで
指定するなりしないとダメだぞ?
884882: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;
}
885NAME IS NULL:2010/06/09(水) 23:12:42 ID:???
>>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";
}
886NAME IS NULL:2010/06/10(木) 03:40:49 ID:???
>>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;
}
887884:2010/06/10(木) 08:58:09 ID:???
>>886

チェックありがとうございます。
recoveryやリストアで足りなかった部分を追加して試してみます。
888NAME IS NULL:2010/06/11(金) 08:46:15 ID:???
RHLinux5&racでサービスnetplugdが動いているとちゃんとフェールオーバーできないですか?
889NAME IS NULL:2010/06/11(金) 23:01:20 ID:???
>>888

フェイルオーバーってどういった事を言っている?
クライアント側の話?
それともDBのスプリット・ブレイン状態の解決の事?
890NAME IS NULL:2010/06/12(土) 02:34:49 ID:csNFyCyz
Oracle Database Express Editionを使用していますが、
キャラクタセットをインストール時に設定されるUTFではなく
SJISへ変更したいのですが、どのようにしたら良いのでしょうか?
宜しくおねがいします。
891NAME IS NULL:2010/06/12(土) 05:43:25 ID:???
>>890

とりあえずバージョンぐらい書け。
まあ、大抵の場合、ダウンコンバートはFull Export=>DB再作成=>Full Importだな。
892NAME IS NULL:2010/06/12(土) 06:18:51 ID:???
>>890
Expressなら、10.2.0.1だろ。
それ以前にExpressでは表向きにはキャラクターセットの変更は不可。

データベースの再作成で変更はできるが色々と弊害はある。
ググればやり方は出てくるぞ。
893NAME IS NULL:2010/06/13(日) 02:40:13 ID:orTjQxXc
すいません。初心者なんですがAccessスレで解決しなかったので教えてください。

http://speedo.ula.cc/test/r.so/pc11.2ch.net/bsoft/1265710293/524?guid=ON
894NAME IS NULL:2010/06/13(日) 07:54:42 ID:???
さすがにネタだろ、これは。
895NAME IS NULL:2010/06/13(日) 09:38:45 ID:orTjQxXc
>>894
ネタじゃないです。
896NAME IS NULL:2010/06/13(日) 23:31:19 ID:???

どこがどう一致しなかったのか書かなきゃわからん。
897NAME 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」のまま行っています。
898NAME IS NULL:2010/06/14(月) 00:54:57 ID:???
あいかわらず書き方がが意味不明だが、リンクテーブルを更新してないに一票。
899NAME IS NULL:2010/06/14(月) 01:01:56 ID:???
(いろいろ書いては消した)

・・・おやすみなさい。
900NAME IS NULL:2010/06/14(月) 10:39:05 ID:???
教えてください。

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/rac.102/B40115-03/install.htm



>独自のホーム・ディレクトリにASMをインストールすると、
>データベース・ホーム・ディレクトリ(ORACLE_HOME)とは別に
>ASMホームを保持できます。個別のホーム・ディレクトリを使用すると、
>ASMおよびOracle Databaseソフトウェアに対して別々にアップグレードおよびパッチ適用ができ、
>ASMインスタンスに影響を及ぼすことなくOracle Databaseソフトウェアを削除できます。

つまりはdatabaseソフトウェアを二つインストールすることになりますが、
この場合ライセンスは複数必要なんでしょうか。

901NAME IS NULL:2010/06/14(月) 12:33:15 ID:???
>>900

プロセッサーライセンスだったら関係ないだろ?
902900:2010/06/14(月) 17:17:14 ID:???
>>901

dです。

プロセッサーライセンスでググました。
なるほどこれなら大丈夫です。

仮想化もこれで平気なんですねぇ。

参考になりました。
903NAME IS NULL:2010/06/14(月) 23:29:25 ID:???
ライセンスのことを2chで訊く理由が分からない
904NAME IS NULL:2010/06/15(火) 01:01:20 ID:???
そうか?
分からない事が分からないみたいな感じの時は使えるんじゃないか?
職場や取引先にこいつバカだなとか思われる前に(笑)
905NAME IS NULL:2010/06/15(火) 01:13:51 ID:???
システムが構築してから、ソフトウェアのライセンス価格の計算間違ってました〜
だって2chの情報が悪いんですよ〜、あと、ざっくり1億円位必要かな〜テヘッ♪
で済むような職場や取引先と仕事してるなら間違いなく使えるな
906NAME IS NULL:2010/06/15(火) 01:47:43 ID:???
Oracleのライセンスは、よく変わるからパートナ営業に訊くしかない。
907NAME IS NULL:2010/06/15(火) 02:03:18 ID:???
今だったら直接ボラクルダイレクトに聞くのが早くていいんじゃね?
908NAME IS NULL:2010/06/15(火) 07:54:06 ID:???

取引先に馬鹿だと思われ始めたら次のリストラ要員。
ライセンスのことは営業に聞け。
そんなのが分からない営業がいるようならその会社は危ない。
909NAME IS NULL:2010/06/15(火) 13:20:51 ID:???
>>905
いやいや。さすがに何が分からないか分かったら裏とりますわw
910NAME IS NULL:2010/06/18(金) 13:56:19 ID:1EK5q14d
Oracle9iで5指名ユーザーライセンス版を購入していますが、
接続するユーザの合計が5以下であれば複数のサーバに
Oracleをインストールしても良いのでしょうか?
911NAME IS NULL:2010/06/18(金) 15:12:39 ID:???
>>910
なんかググっても古い情報しか出てこないな。
2002年情報(古!)オラクルも古情報をいつまでも晒しとくなよ。

http://www.oracle.co.jp/2shin/2002/ora60/32.html

Q,2台のコンピューター用に指名ユーザーライセンスを購入しましたが、片方のコンピューターの使用者が減り、余ってしまいました。余ったライセンスをもう1台の別のコンピューターに使用できますか?

A,指名ユーザーライセンスはコンピューターを特定しませんので、指名ユーザーライセンスの最少数の条件を満たしていれば使用できます。2台のコンピューターのOSやOracle製品のバージョンが異なる場合は、メンテナンス・サポート契約(有償)※の対象となります。
912910:2010/06/18(金) 15:30:48 ID:1EK5q14d
>>911
ありがとうございます。

接続ユーザが5以下であれば、何台のサーバに
Oracleを入れても問題ないという認識でよいですかね。

やりたいことは5指名ユーザーライセンス付きのOracleを1つ購入していて
2つの異なるサーバにそれぞれDBを立てたいのですが。
使用する人数は5名以下です。
913NAME IS NULL:2010/06/18(金) 15:46:05 ID:???
ん。なんかちがくね。

一台目:3人
二台目:2人

ならおkって意味じゃないのか?つまり全部で五人以下。

一台目:5人
二台目:3人

は駄目だろ。全部で五人オーバー

と漏れには取れるが。
914910:2010/06/18(金) 15:54:59 ID:1EK5q14d
>>913
ありがとうございます。

とりあえず大前提として使用者が5名以内なら(どちらに接続するかはおいといて)
2台にDBを入れるのはOKで良いですよね?

>>913さんのおっしゃる前者の場合
両方に接続いくユーザの場合は1人でも1名分を
消費してしまうということで宜しいでしょうか。

それとユーザの数え方ですが、人数でしょうか、
端末数になりますでしょうか。

質問ばかりですみませんが、よろしくお願い致します。m(__)m

915NAME IS NULL:2010/06/18(金) 17:29:51 ID:???
>>914
>両方に接続いくユーザの場合
http://www.oracle.com/lang/jp/direct/oracledatabaselicense.pdf
の6ページ

>ユーザの数え方です
http://www.oracle.com/lang/jp/corporate/pricing/words.html#02

指名ユーザの場合、最少ユーザ数の規定があるっぽい
5人を分けると最少ユーザ数割るのでダメだと思われ
916910:2010/06/18(金) 17:44:00 ID:1EK5q14d
>>915

ありがとうございます。
なるほど、最低1台のサーバには5ユーザのライセンスが
ないとダメということですね。。。

917NAME IS NULL:2010/06/18(金) 20:32:17 ID:???
10g Express Editionてのではだめなの?
918NAME IS NULL:2010/06/18(金) 20:47:02 ID:???
XEを商用利用している事例ってあるのかな
919NAME IS NULL:2010/06/18(金) 21:39:28 ID:???
>>918
記事というならほとんど得るものがないから、ほとんど無いだろうな
商用利用しているとことならOracle personalユーザー数位は余裕であるだろな
920NAME IS NULL:2010/06/21(月) 13:38:35 ID:???
教えてください。

racシステム二台構成です。
asmの場合はrmanを使用するわけですが、アーカイブログなどインスタンスごとに存在するファイルもうまいことバックアップしてくれるんでそうか。
それともすべてのノードでバックアップをしないといけないのでしょうか。
921NAME IS NULL:2010/06/21(月) 21:06:14 ID:???
1つのノードからアーカイブREDOが全部見えてれば、そのノードからアーカイブも全部吸い上げてくれる。
アーカイブもASMにおいてるならたぶん大丈夫。
922NAME IS NULL:2010/06/21(月) 22:36:08 ID:???
>>921
ありがd

923NAME IS NULL:2010/06/21(月) 22:53:06 ID:???
>>920

ASMではなく、各サーバーのローカルのファイルシステム上にアーカイブログを吐いていても
それぞれのインスタンスにRMANのchannelを割り当てれば、RMANで吸い上げてくれる。

ASMやクラスターファイルシステム等の共有の保存先にアーカイブが吐かれている場合には
RAC内のひとつのインスタンスにRMANのchannelを割り当てるだけで、両方インスタンスの
アーカイブログを吸い取ってくれる。
924NAME IS NULL:2010/06/22(火) 01:53:38 ID:???
>>623
トン
自分のトコはバックアップに必要なデーターは全て共有ディスクグループに入っているのでフツーにrmanでバックアップ、リストアすれば良いわけですね。
詳しい解説有り難うございました。
925NAME IS NULL:2010/06/24(木) 09:56:08 ID:???
ちょっとスレチぎみなんですが、racで使うような共有ディスク(ibmとかnetappとか一応名の通ったメーカー製)の場合全損とかあり得ますか?
ここ10年くらいハードディスクがぶっ壊れてニッチモサッチモって経験がないんですがどうなんでしょう。
raid5とかraid6とかで、HDDが二台飛んでも動き続る(らしい)し、電源も二重化してるし。
火災で丸焼けとか地震で倒壊とかそんな事でもなければどうしようもなくぶっ壊れるってのは考えづらいですが、どのあたりまでバックアップ計画に盛り込むべきでしょうか。

どっちかっていうとプログラムのミスやオペミスでデーター飛ばした時の対策の方に重きを置いたほうがいいような気がしてます。
926NAME IS NULL:2010/06/24(木) 11:25:06 ID:???
>>925
バックアップ計画は予算とリスクと
時間(リストア、バックアップ)と
ユーザ要求で決まる。
だから一概に決められん。

925の最後の希望はアーカイブログ運用と
フラッシュバック機能で満たせそうだけどね。
927NAME IS NULL:2010/06/24(木) 11:27:16 ID:???
RAID5だと2台逝ったらアウトだぞ。
928NAME IS NULL:2010/06/24(木) 12:57:04 ID:mYzra+A5
929NAME IS NULL:2010/06/24(木) 23:33:58 ID:???
>>925
ストレージのコントローラ側不具合で、そのコントローラーに接続されてい
る所が全滅。ってことはあった。
システム的には別コントローラと冗長化してたので問題は出なかったけど。
とにかく単一障害点を作らないようにしておけば、実運用でバックアップが
活躍した事はないです。

BCP絡みでDataGuardの要望はチラホラ来るけど、予算的に見送られ
ることばかり。
930NAME IS NULL:2010/06/25(金) 10:47:25 ID:???
>>925
可能性は0じゃないとしか言えないよね
RAID5で2台逝ってフルリストアする破目に陥ったところは1箇所だけ知ってるけど
>raid5とかraid6とかで、HDDが二台飛んでも動き続る(らしい)
こんな曖昧な知識しかないならまず基礎を学ぶべきではないだろうか
931NAME IS NULL:2010/06/25(金) 11:51:26 ID:9Tsa3wgJ
>>930
>>925の〜らしいと言う表現は私の預かり知らぬ部分でデーター保証がされているのでって意味に捕らえる方が正解じゃないの?

ここで零度の講釈を延々垂れ流すのはすれ違いってもんだ。

932NAME IS NULL:2010/06/25(金) 11:58:10 ID:???
RAIDとバックアップ計画は全く別物
933NAME IS NULL:2010/06/25(金) 20:28:04 ID:???
RAIDは保守者が来るまでのツナギだよな
934NAME IS NULL:2010/06/25(金) 21:34:35 ID:???
オラクルに限らず、バックアップ設計の問題は、いつも頭が痛いです・・
935NAME IS NULL:2010/06/25(金) 22:29:16 ID:???
RMANでできないことはできないと開き直る・・・なんてできない。
936NAME IS NULL:2010/06/25(金) 22:47:50 ID:???

ああ、中小企業の社員ね。
937NAME IS NULL:2010/06/25(金) 22:56:50 ID:???
やっぱ中小企業はSQLサーバ使った方がいいのかな。
938NAME IS NULL:2010/06/25(金) 23:57:18 ID:???

いや中小企業は無料のMySQL。

SQLサーバーより安心で無料。これ最強。
939NAME IS NULL:2010/06/26(土) 02:01:23 ID:???
買収されて
同じベンダーになったしな
940NAME IS NULL:2010/06/27(日) 12:59:31 ID:YqDB6i6J
初心者なんですが、sqlplusでエラーを調べるコマンドあれば教えてください。
941NAME IS NULL:2010/06/27(日) 23:58:26 ID:IHi7r73q
統計情報が変更される場合の
具体的な数値(データ量等)をご存知の方がいらしたら
教えてください。

942NAME IS NULL:2010/06/28(月) 07:07:09 ID:???
>>941
小さなテーブルの場合、1カノッサ
中くらいのテーブルの場合、5カノッサ
すごい大きなテーブルの場合、100カノッサ
943NAME IS NULL:2010/06/30(水) 04:35:17 ID:???
>>940

質問が漠然としすぎている。
ORA-*とかを調べたいという事か?

だったらsql*plusでコマンドライン呼び出してoerr oraコマンドだな。

sqlplus> !oerr ora <エラー番号>
944NAME IS NULL:2010/06/30(水) 04:47:43 ID:???
>>941

この当たりを熟読するとヒントになるかもな。
http://www.oracle.com/technology/global/jp/pub/jp/db_magazine/mongai/chapter4_2.html
945NAME IS NULL:2010/07/03(土) 09:50:03 ID:???
10g使いです。
SQL Developerを使ってExcelファイルをインポートすると、
レコードに変な半角空白みたいなのが勝手に付加されて
しまう現象が発生しています。
同じような経験のある方はいますか?
回避手段などあればご教示願います。
946NAME IS NULL:2010/07/03(土) 11:43:12 ID:???
>>945
変な半角空白というのを正確に誰にでも通じるように表現できるように調べていくと
解決策が分かる可能性もある
947NAME IS NULL:2010/07/03(土) 12:49:15 ID:???
>>946
エクセル上のセルには末尾に何も無いのだけれど、
Developerでインポートすると半角スペースが末尾に付いてしまいます。
948NAME IS NULL:2010/07/03(土) 14:14:17 ID:???
CHAR型につっこんでる?
949NAME IS NULL:2010/07/03(土) 16:07:32 ID:???
センセこれは・・・
950NAME IS NULL:2010/07/05(月) 17:15:05 ID:???
こんちわ、Oracle初心者です。先週Bronzeの本を買ってきました。
11gR2インストール時に前提条件チェックでひっかかります。

『物理メモリ、使用可能物理メモリ、スワップ・サイズ
空き容量、アーキテクチャ、Enviroment”PATH”』
のステータスが全て「失敗」になり、さらに

予想される値:N/A
実際値    :N/A
エラーのリスト
PRVF-7531
ノード”ユーザー名”で物理メモリーのチェックを実行できません。
Cause:示されたノードで物理メモリーのチェックを実行できませんでした。
Action:指定したノードへのアクセスが可能であることを確認し、メモリー情報を表示してください。

となっていますが、何をすれば通るのかわかりません。
OSはVistaのビジネス、メモリーは2GBです。
どうぞよろぴくおながいします。
951NAME IS NULL:2010/07/05(月) 18:27:13 ID:???
>>950
インストーラを右クリックして「管理者として実行」してみたらどうか
952NAME IS NULL:2010/07/05(月) 18:28:48 ID:???
ていうかVistaでOracleとかやめとけと思う
953NAME IS NULL:2010/07/05(月) 20:56:26 ID:???
>>951
だめでした><
もともとカレントユーザーをフルコンにはしていたんだけど
管理者実行でも同じ状態に。

>>952
XPも持っているんでやってみたんだけど同じ状態になったんだ。
もしかしたら両方同じ変なウイルスにやられてるのかも・・・

ついでにVistaのほうで仮想PCで作ったXPもダメだったぽ。
あきらめてHDD買ってリナかServer2008いれてみまつ・・・
954NAME IS NULL:2010/07/05(月) 21:02:00 ID:???
その仮想PCにLinuxいれればいいだろw
955NAME IS NULL:2010/07/06(火) 01:22:03 ID:???
>>953
ググってみたらエラー無視で強行したらインストールできたっていう人も居るみたい
まともに使えてるのかどうかは知らないけど
そもそもメモリ2GBの中で使用可能容量は1GB以上あるのかな?
956NAME IS NULL:2010/07/06(火) 01:38:25 ID:???
>>954,956
強行はできるのだけど、SQLPlusが立たなくなって
管理ツールのシステムの中にもOracleが入ってない状態でなんともならなかったよ。
仮想PCで無理だった理由がメモリー不足によるものだからこればっかりはどうしようももも
さすがにノートじゃ無理か・・・まあトンクス
957NAME IS NULL:2010/07/06(火) 09:38:17 ID:???
うちもなぜか全部失敗するが、普通にインストール&動いている模様
デスクトップとノート2台とも。

インストールの途中でWindowsファイアウォールがJavaSE?をブロックする方が気になった
手でボタン押さないといけないし

Oracle11.2、XP Pro
958NAME IS NULL:2010/07/06(火) 15:00:15 ID:???
うちでもインストールの途中の前提条件チェックは毎回失敗が出るけど
全部無視してインストールしてもTSNListener、DBサービスどっちも正常に動いているよ。
(開発用途だからサービスは自動起動させないでバッチファイルから起動させてるけど。)
あと、SQL PlusもSQL Developerも問題なく動作してる。

OS:2台ともWindows XP Pro SP3
Memory:2Gと4G
Oracle:11gR2(1台はStandardで、もう1台はEnterprise)

参考にならない情報でスマン
959NAME IS NULL:2010/07/06(火) 19:23:28 ID:???
Unix/Linuxでもインストール途中では、コンソールにエラー吐きまくってるよね。
よく読めば問題ないってわかるけど、あまりに多いからちゃんとインストできているのか不安にはなる。
960NAME IS NULL:2010/07/07(水) 23:55:59 ID:???
ちょりーっす!!!
先日VistaでOracleがインスコできなくて色々解決策を考えてもらった者です。
その節はありがとう。XPに乗り換えてなんとかできました。|Д´)ノ

さっそくSQLPlusを使ってみて、わりとすいすいとできるんで
このままならBronzeくらいなら簡単に取れそうな気がするッス。


で質問なんですが、DESCRIBEコマンドを入力しようと思って、黒本参考に
EDでテキスト開いて

desc 部門
/

と記述したんですが

SQL> /
desc 部門
*

となってしまい、「SQL文が無効です」エラー発生します。
直接入力ならいけるんですけど、漢字なので。
どこが間違ってるんでしょうか?
961NAME IS NULL:2010/07/08(木) 01:15:00 ID:???
先生これは・・・
962NAME IS NULL:2010/07/08(木) 23:26:22 ID:???
>>961
すまん、本当にわからないのだ。教えてくれ(´・ω・`)
963NAME IS NULL:2010/07/08(木) 23:52:44 ID:???
desc "部門"

ではどう?
964NAME IS NULL:2010/07/09(金) 23:07:09 ID:???
>>963
無理ぽー
「"」も「'」でも囲ってみてもだめだった。

DESCRIBEコマンドなんて誰も使ってなさそうだし、もう覚えなくてもいいかな・・・
965名無しさん@そうだ選挙に行こう:2010/07/11(日) 00:34:33 ID:???
select * from user_tab_columns where table_name = '部門'
で代用するとか。。。
根本的解決になってないけどね。
966NAME IS NULL:2010/07/12(月) 12:30:04 ID:???
「直接入力ならいけるんですけど、漢字なので」が意味わからん
967NAME IS NULL:2010/07/13(火) 01:12:40 ID:???
>>960
多バイト文字を入力したいならsqlplus以外のなんか探してこい。
>>966
この位エスパーしろ。
968NAME IS NULL:2010/07/13(火) 22:03:12 ID:???
おまいら意地悪だな
エスパーネタとか出してくるし・・・

>>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」の設定に変更しても発生するのでしょうか?
970NAME IS NULL:2010/07/13(火) 23:27:13 ID:???
さすがにこれは釣りだろうな
971スター:2010/07/13(火) 23:46:17 ID:???
>>970
釣りだったらこんなに切羽詰ってないです。
972NAME IS NULL:2010/07/15(木) 00:24:24 ID:???
どっちも実運用中に設定しっぱなしにしておくものではないよね。
973NAME IS NULL:2010/07/15(木) 13:01:28 ID:???
>>969
こんなとこでバグ云々を訊くあたりサポート契約してないんだろうけど
10gで「SQL_TRACE=’TRUE’」で発生しているバグという怪情報の
信憑性について調べたほうがいいかもね
逆にEVENT10046の不具合についても確認しておくべき
974スター:2010/07/15(木) 17:33:16 ID:???
サポートのレスが遅くて、すぐに答えられるようなすごい人がいないかなと
淡い期待をしてご質問させていただいたのですが…。

975NAME IS NULL:2010/07/15(木) 21:34:39 ID:???
わざわざ名前に「スター」なんて入れて、ご質問ですかw
976NAME IS NULL:2010/07/15(木) 23:19:12 ID:???
>>969

EVENT 10046はトレースレベルが指定出来るからその気になればもっと細かい情報も取れる。
いずれにせよ同じバグをキャプチャ出来るんじゃね?
977NAME IS NULL:2010/07/17(土) 12:51:52 ID:???
10gでPL/SQLのコードを書いています。
Packageの中のProcedureなりFunctionを実行中に、自分自身のPackage名、関数
名を取得する方法はありませんか?
978NAME IS NULL:2010/07/17(土) 19:07:15 ID:???
>>977
テキストで書いとけよ
動的に変わるものなのかよ
979NAME IS NULL:2010/07/17(土) 23:28:57 ID:???
ログ出力とかに使うつもりなんじゃね?
Javaならスタックトレース呼び出して、
そのメソッドの呼び出し元の名前を参照することができるけど、
PL/SQLだとどうなんだろうね。
980NAME IS NULL:2010/07/18(日) 00:40:00 ID:???
>>979

なるほど。Java で書けば解決するんじゃないか。
981NAME IS NULL:2010/07/18(日) 07:37:45 ID:???
つーか、PL/SQLって何十年経っても進歩しないな
982NAME IS NULL:2010/07/18(日) 12:30:14 ID:???
で、結局出来るの?出来ないの?
983NAME IS NULL:2010/07/18(日) 14:34:08 ID:???
984NAME IS NULL:2010/07/18(日) 21:45:14 ID:???
>>983
アフォ?
ググらなくても、出来ないという結論が既に出てるわけだが。
985NAME IS NULL:2010/07/19(月) 01:39:25 ID:???
>>984
アホはおまえ
どこに結論が出てんだよ
986NAME IS NULL:2010/07/19(月) 02:22:42 ID:???
質問はPL/SQLでできるのかということだと思うんだが
PL/SQLではできないだろ
だからJavaで書けってのは解決策としてどうかと思う
あと>>983のリンクは質問の内容とほとんど関係ないと思う
987NAME IS NULL:2010/07/19(月) 03:26:17 ID:???
>985 は数スレ前も読めないらしいな
988NAME IS NULL:2010/07/19(月) 16:37:56 ID:???
このスレにはエスパーが居るな
989NAME IS NULL:2010/07/20(火) 04:21:00 ID:???
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.
990NAME IS NULL:2010/07/20(火) 04:23:47 ID:???
環境によってはset serveroutput onしないとダメかも。
991NAME IS NULL:2010/07/20(火) 04:45:18 ID:???
良く読んでいなかった。
この当たりの組み合わせでなんとかならんかな?


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.
992NAME IS NULL:2010/07/20(火) 08:29:44 ID:???
979、981あたりをなぜか根拠に結論を出して
質問者を馬鹿にしちゃう984の決断力(笑)には恐れ入る
993NAME IS NULL:2010/07/20(火) 10:33:47 ID:???
>>992
君、本当に馬鹿でしょ?w
実際に動かして試してみたの?w

>Packageの中のProcedureなりFunctionを実行中に、自分自身のPackage名、
>関数名を取得する方法はありませんか?

Package化されている場合はDBMS_UTILITY.FORMAT_CALL_STACKを使っても
$$plsql_unitを使ってもpackage名までしか取れないわけだがwwwww

自爆テラワロスwwwww
994NAME IS NULL:2010/07/20(火) 13:53:09 ID:???
エスパーは放置で
995NAME IS NULL:2010/07/20(火) 14:40:35 ID:???


          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    <「質問者を馬鹿にしちゃう984の決断力(笑)には恐れ入る」
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
996NAME IS NULL:2010/07/20(火) 22:38:01 ID:???
insertで一意制約違反になったときに、どのレコードが制約に引っかかったのかを
簡単に知るにはどうすればいいのですか?
997NAME IS NULL:2010/07/20(火) 22:41:40 ID:???
>>997
1行ずつInsertしろや、カス
998NAME IS NULL:2010/07/20(火) 23:25:02 ID:???
次スレです。

Oracle 質問総合スレ5
http://pc11.2ch.net/test/read.cgi/db/1279635842/
999NAME IS NULL:2010/07/20(火) 23:26:40 ID:???
テンプレの

Certify - Oracle's Certification Matrices・・・動作環境(システム要件)確認
ttp://www.oracle.com/technology/support/metalink/index.html

が無くなっていたため

Install Center

に変更しました。
1000NAME IS NULL:2010/07/20(火) 23:34:35 ID:???
1000GETで幸せ家族計画!

Oracle 質問総合スレ5
http://pc11.2ch.net/test/read.cgi/db/1279635842/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。