もう14時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]女性必見!ネットで高収入バイト[PR]  

Oracle 質問総合スレ4

1 :NAME IS NULL:2009/08/23(日) 11:41:21 ID:e4fFukP4

◆前スレ

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日過ぎても別に機能的に制限が
かかるという訳ではありません。あくまで紳士協定に基づいて、
 削除してくださいという事です。


2 :NAME IS NULL:2009/08/23(日) 13:09:16 ID:???
おつ

3 :NAME IS NULL:2009/08/24(月) 09:55:08 ID:???
>>1
おつ

4 :NAME IS NULL:2009/08/24(月) 10:40:04 ID:???
Oracle USのサイトでプロファイル登録してしまったのですが
Oracle Japanでログインするには日本側のサイトで登録しないと
ログインできなかったりします?

5 :NAME IS NULL:2009/08/24(月) 11:48:02 ID:???
>>4
USとJPは別々だね。

6 :4:2009/08/25(火) 12:34:21 ID:???
やっぱそうか・・・
ありがとござます。

7 :NAME IS NULL:2009/08/25(火) 23:41:50 ID:5xfpHV6A
age

8 :NAME IS NULL:2009/08/26(水) 22:37:52 ID:???
ACERのAspireRevoを買ったので、
Vista用の10.2.0.3のRDBMSを入れてみますた。

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

もっとアリエナイ感じの動作環境自慢いませんか?

9 :NAME 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 は使うな、という事でよい?)

10 :NAME IS NULL:2009/08/27(木) 00:51:29 ID:???
>>8

Cent O/SやWhiteBox LinuxでRAC組んだぐらいだな。

11 :NAME IS NULL:2009/08/27(木) 00:52:32 ID:???
>>9

sequence.nextvalが実行されちまっている以上、その動作になるんじゃね。

12 :NAME 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

ずいぶん恥ずかしいな。馬鹿すぎる。


13 :NAME IS NULL:2009/08/27(木) 01:33:22 ID:???
>>12

はいはい、バックスラッシュはいりませんでしたね。
私が悪うござんした。

14 :NAME IS NULL:2009/08/27(木) 07:32:40 ID:???
>>9
sequenceの仕様のせいというか相性が悪いというか。
sequenceを使う人は、割り切って使うと思う。

割り切れないなら
最初に既存レコードのupdateになるか、
新レコードのinsertになるかをselect使って判定して、
insertになる場合はsequence取って・・・となって、
それは昔ながらのやり方であって、mergeは使う必要ないね。

15 :NAME IS NULL:2009/08/27(木) 07:53:47 ID:???
>>13
スラッシュだとおも

16 :NAME IS NULL:2009/08/27(木) 08:26:07 ID:???
>>13

わかっとらんな。逆ギレしてさらに馬鹿を晒すとは。

17 :NAME IS NULL:2009/08/27(木) 10:23:52 ID:???
日本語なんて通じればいいんだよ

18 :NAME 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値を設定しないほうが
挿入カラムの入れ忘れしたときにエラーを返してくれるから便利だと思うのですが。

23 :NAME IS NULL:2009/08/30(日) 23:28:08 ID:???
>>22
オイラがDefaultを設定するのは、
「データ有効フラグ」みたいな列かな。
Defaultは、あまり設定しないね。おおむね同意する。

>>19
MySQLは、オープンソースで、無料、高速なので、
貴方はMySQLを使った方が良いですよ。


24 :NAME IS NULL:2009/09/01(火) 05:11:58 ID:???
9月中に11gR2をリリースという事だけど、
Windows7とServer 2008 R2には対応するのかな。

10gR2が対応せず11gR2が対応ということなら
11gR2に移行するかもしれないけど、
個人的には10gR2でも対応して欲しい。

25 :NAME IS NULL:2009/09/01(火) 16:46:21 ID:IVAR84S8
ORACLE 8.1.7を使っている者ですが、
教えてください。m(__)m
項目名 A(NUMBER) B(NUMBER) C(NUMBER)
からなるテーブル名=ENZANがあって

SELECT (A+B) AS AB,
(A+B+C) AS ALL FROM ENZAN

はできるのですが、これを

SELECT (A+B) AS AB,
(AB+C) AS ALL FROM ENZAN

のようにすることはできないのでしょうか?

実際に用いたいSQLはA+Bの部分が長くて
もう一回書くのが大変だなって思いまして。。



26 :NAME IS NULL:2009/09/01(火) 18:20:59 ID:???
SELECT AB, (AB+C) AS ALL
FROM (SELECT (A+B) AS AB, C FROM ENZAN)


27 :NAME IS NULL:2009/09/01(火) 22:36:43 ID:???
>>26に同意

28 :NAME IS NULL:2009/09/01(火) 22:38:57 ID:???
今米国Oracleみたら、11gR2(11.2.0.1.0)が出てる。
Linux x86
Linux x86-64
だけだけど。

29 :NAME IS NULL:2009/09/01(火) 23:59:55 ID:???
ほんとだ
さっそくダウンロード開始

30 :NAME IS NULL:2009/09/02(水) 00:07:47 ID:???
へぇ。
以前から噂は聞いてたけど、出たか。
日本オラクルの人が言うには、11g R1 は 10g R3 みたいなもので、
これこそが 11g なんだとか。

ポータルサイトも出来てるんだね。気合い入ってるな。


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


つかね。OUI別物杉w


32 :25:2009/09/02(水) 13:59:39 ID:9S+hiIY1
>>26,27
ありがとうございます。
FROMにテーブル名以外が使えるって初めて知りました!

33 :NAME 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とリスナーが動くか、後日レポします。

34 :NAME 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様。

35 :NAME IS NULL:2009/09/03(木) 23:17:53 ID:???
Windows 7の対応は、今のところ11gR2だけが「Projected」と載ってますね。
10gR2を認定してくれれば嬉しいけど、直近の2つくらいしか対応しないでしょうね。
オラクルも、約2年たった11gR1や、新しい11gR2を売りたいでしょうし。


36 :NAME 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を評価してから、また考えようかな。


37 :NAME IS NULL:2009/09/05(土) 22:36:06 ID:???
>>36

Oracleに聞けよ。


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

ウチの上司がサポート高いから切れって言ってきたorz

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

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

つーか、そんな上司捨てちまえよ


40 :NAME 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


41 :NAME IS NULL:2009/09/08(火) 20:43:43 ID:???
ライセンス1個で社内のPC百数十台にインストールして大丈夫でしょうか?

42 :NAME IS NULL:2009/09/08(火) 21:27:36 ID:D/yRoqvB
>>41

サーバがProcessor ライセンスでPC数百台へクライアント製品を
インストールするなら大丈夫。


43 :NAME IS NULL:2009/09/08(火) 22:28:07 ID:???
>>39
ウチの顧客の個人情報とか売上・カード情報とか満載の超重要サーバです。
とりあえずサポート切るなら俺は知らん・責任取らん、と明言してきますた。
上司は黙ってても後3年くらいで定年退職なんで放置しておきます。

44 :NAME IS NULL:2009/09/09(水) 01:38:51 ID:???
PDFの検索、ダウンロードをするwebシステムを構築するのですが、
データベースにPDFファイルを登録します。

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

この2つの型を使い分けるには何がポイントになるのでしょうか?

45 :NAME IS NULL:2009/09/09(水) 01:52:18 ID:???
上司の意向

46 :NAME IS NULL:2009/09/09(水) 04:16:33 ID:???
>>44

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

BFILE型の場合にはDBには単にポインタが格納されているだけだから、O/S上の
実ファイルのバックアップ&リカバリ方法も当然考えないとならない。

47 :NAME 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

48 :NAME IS NULL:2009/09/09(水) 07:30:50 ID:???
ミスッた。>>47は、>>43向け



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

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

これって index 使った実行計画に変わってくれますか?
コストベースとして動きますか?
それとも、ルールベースに対し、index のオプティマイザヒントは意味がないですか?

50 :NAME IS NULL:2009/09/10(木) 07:12:25 ID:???
>>49
INDEXを使った実行計画に変わる。
また、「RULE」以外のヒントをオプティマイザヒントに使用すると
そのQUERYはコストベースで処理される。

51 :NAME IS NULL:2009/09/10(木) 21:11:19 ID:???
やっぱりルールベースが良いよな

52 :NAME IS NULL:2009/09/10(木) 21:27:48 ID:???
11g Platinum 受ける人いる?


53 :NAME IS NULL:2009/09/11(金) 01:36:30 ID:???
>>50 産休!

54 :NAME IS NULL:2009/09/16(水) 02:43:39 ID:???
>>48
お前の事だ
脳味噌の程度が低いって事

55 :NAME 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)))


56 :NAME IS NULL:2009/09/17(木) 23:55:51 ID:???
net_service_name はクライアントがアクセスするときの名前で、
service_name はインスタンスがサービスとして見せるときの名前。


57 :NAME IS NULL:2009/09/29(火) 00:40:49 ID:???
WinXPHOMEでホスト資格証明のユーザー名、パスワードがPROではないので
ログインできません。
HOMEでEnterprise Managerの設定でログインするにはどのようにしたらよいので
しょうか。
お願いいたします。

58 :NAME IS NULL:2009/09/29(火) 22:06:26 ID:???
>>57
ORACLEのバージョン情報が不足。書くのがマナー。
まあ、Xp Homeは、サポート外だから諦めた方がいい。



59 :NAME IS NULL:2009/10/02(金) 00:22:48 ID:aiOJhT4q
最近、久々にORACLE使って仕事してるけど、
いつも思うけどORACLEって使いにくいというか面倒くさいデータベースだよな。
SQLのエラーとかも相変わらず不親切すぎる、なんだこれよ。

60 :NAME IS NULL:2009/10/02(金) 00:42:28 ID:???
例えば?


61 :NAME IS NULL:2009/10/02(金) 00:45:49 ID:???
ORA-600頻発。

62 :NAME IS NULL:2009/10/02(金) 01:24:36 ID:apfhpyid
>>59

SQL文はお主が間違って書いているからエラーになっているので、
お主が悪い。


63 :NAME 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 は何か爆弾踏んだりしたら確かに頻発するなぁ。

64 :NAME IS NULL:2009/10/02(金) 06:49:43 ID:91URBOIM
Googleのオフィス
http://www.officesnapshots.com/wp-content/galleries/googlezur/goog5.jpg
http://www.officesnapshots.com/wp-content/galleries/googlezur/goog20.jpg
http://www.officesnapshots.com/wp-content/galleries/googlezur/goog22.jpg
http://www.officesnapshots.com/wp-content/galleries/googlezur/goog23.jpg
http://www.officesnapshots.com/wp-content/galleries/googlezur/goog26.jpg
http://www.officesnapshots.com/wp-content/galleries/googlezur/goog24.jpg
http://www.officesnapshots.com/wp-content/galleries/googlezur/goog25.jpg
http://www.officesnapshots.com/wp-content/galleries/googleplexmv/gp27.jpg
http://www.officesnapshots.com/wp-content/galleries/googleplexmv/gp32.jpg
http://www.officesnapshots.com/wp-content/galleries/googtai/googtai18.jpg

65 :NAME IS NULL:2009/10/02(金) 07:15:54 ID:???
ORACLEを日常的に使う人間としても、
エラーはもう少し親切に指摘して欲しい。

たとえばORA-01722なんかは、
ORA-01722: 数値が無効です。TO_NUMBERに失敗しました。strings:1234A567
とかでもイイんじゃね?

66 :NAME IS NULL:2009/10/02(金) 21:42:06 ID:???
クソだなそれ。

67 :NAME IS NULL:2009/10/03(土) 01:07:29 ID:LaXeSBFL
普通のPCサーバで十分パフォーマンスいいから、もうORACLEいらない。
というか制約事項多すぎるからORACLEさよならだな

68 :NAME IS NULL:2009/10/03(土) 06:30:30 ID:???
OoracleがPCサーバの性能を上げるためのものだったとは知らなかった

69 :NAME IS NULL:2009/10/03(土) 07:59:25 ID:bcypi5NM
>>68
Ooracleどういうソフトなの?

70 :NAME IS NULL:2009/10/03(土) 10:15:58 ID:???
>>69
クッキー焼いてくれる

71 :NAME IS NULL:2009/10/03(土) 12:23:46 ID:WLPN4C4m
「SQL Serverは長いけど、Oracleは最近から」なオレに昨日あった出来事。

A:「このSQLが遅いので見てもらえませんか」
オレ:「どれどれ。。。実行コストは対したことないのに、60秒もかかるのか。」
オレ:「なんか、このViewを抜くと秒殺になるぞ。なにこのView。」
A:「そのViewは、あまりに遅いのでViewの中のselect文でマテビュー使ってます。」
オレ:「ふ〜ん、んじゃぁ、マテビュー使ってない版に変えて実行してみて。」
A:「Create VIewし直しました。」
オレ:「なるほど、これは遅いな。んじゃぁ、マテビュー版に戻してみて。」
A:「Create Viewし直しました。」
A:「あっ!速くなりました。30秒になりましました。ありがとうございました。」
オレ:「意味わからん。。。」

誰かこの現象を説明してくれないか。
ちなみにOracle 11.1.0.6なんだが。

72 :NAME IS NULL:2009/10/03(土) 12:25:05 ID:???
そのためにはまずA氏のスリーサイズを教えてもらわないことには・・・

73 :NAME IS NULL:2009/10/03(土) 15:36:12 ID:???
マテビューのリフレッシュをしていなかっただけじゃないのかな。


74 :NAME IS NULL:2009/10/03(土) 20:44:30 ID:???
つーか、単純に60秒かかった時は、重いSQLが動いてたんじゃねえの?


75 :NAME IS NULL:2009/10/04(日) 00:29:25 ID:???
マテビューって、どっかに実際のデータが格納されてるわけだが、
そのデータに対してフラグメントや行連鎖、行移行とか発生しないのか?
マテビュー作り直して速くなったって、インデックス作り直したら
速くなりました、ってのと同じような気がする

76 :NAME IS NULL:2009/10/04(日) 00:42:33 ID:A+/cGns5
ORACLEじゃなきゃダメだという用途なんてないんだから、
ソフトならSQL Server
ハードならDB2に集約されるかな。

ORACLEは製品として時代遅れすぎる。
ぶっちゃけORACLE=COBOL用でしか使ってるところしかしらにない。


77 :NAME IS NULL:2009/10/04(日) 01:03:25 ID:???
SQL ServerはWindowsオンリーなのがなぁ・・・
マルチプラットフォーム対応にしない限り、Oracleの需要は途絶えない

78 :NAME IS NULL:2009/10/04(日) 07:19:00 ID:???
>>76
世間知らずだな。

79 :NAME IS NULL:2009/10/04(日) 09:59:41 ID:???
>>75

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

dblink で他のデータベースのデータを参照する場合は
Platinum 試験に出るから練習しておくといいよ。


80 :NAME IS NULL:2009/10/04(日) 11:33:32 ID:???
>>73
マテビューのリフレッシュをしていなかったら、返ってくるデータが
変わってしまわないか?

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

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

81 :NAME IS NULL:2009/10/04(日) 11:59:02 ID:???
グローバル仕様です

82 :NAME IS NULL:2009/10/04(日) 12:54:15 ID:???
前後でコスト、実行計画が変わっていたのか変わっていなかったのか?
それだけでも>>73のようなOracle内部の原因か>>74のような外部の原因か
くらいは切り分けできると思うが、前の状態でどれだけ情報を取ってる?
遅かったときの状況を再現できるか、あるいは推測できるだけの情報が
なければサポートもお手上げだと思うけどね。

83 :NAME IS NULL:2009/10/04(日) 14:39:46 ID:???
>>80

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

適当な情報しか出さなくて誰も分からんとは失礼すぎるだろうが。
さっさと消えてくれ。


84 :NAME IS NULL:2009/10/04(日) 15:13:04 ID:???
なに顔真っ赤にしちゃってんの?

85 :NAME IS NULL:2009/10/04(日) 18:54:05 ID:???
>>84

誰が?
情けない顔が透けて見えるぞ。ゆとり世代は頭が悪くていかんな。


86 :NAME IS NULL:2009/10/04(日) 20:12:38 ID:???
大体、2ちゃんで質問してる時点で、負け

87 :NAME IS NULL:2009/10/04(日) 21:00:25 ID:???
必死すぎる。

88 :NAME IS NULL:2009/10/04(日) 21:50:18 ID:???
パフォーマンスの問題はサポートに問い合わせてもまともな答えが返ってくることは稀だぞ


89 :NAME IS NULL:2009/10/04(日) 23:05:54 ID:???
>>80

パフォーマンス系の問題なんだから、普通は実行計画とかまず見ると思うんだが?
>>83が言っている様に情報少なすぎ。

90 :NAME IS NULL:2009/10/04(日) 23:07:07 ID:???
>>76

selectなのに表レベルでlock取らなければならないDB2が製品として時代遅れでないと?


91 :NAME IS NULL:2009/10/04(日) 23:47:42 ID:???
>>76のことはそっとしといてやれよ
かわいそうな境遇で育ったんだよ

92 :NAME IS NULL:2009/10/04(日) 23:48:26 ID:???
selectで表レベルでlockとかマジなのか

93 :NAME IS NULL:2009/10/05(月) 00:07:41 ID:???
>>88
そうなんだよなぁ。。。

>>89
「実行コストが小さい」ことまでは確認していたんだが、まさかこんな事態に
なるとは思わなかったので、実行プランを保存しておかなかったんだよね。
しかも、遅い状態はもう再現できないし。

94 :NAME IS NULL:2009/10/05(月) 00:09:33 ID:0BZTbTib
Oracleが立派なのは、もはや値段だけ
以前ほど、特別に優れてもいないよ。


95 :NAME IS NULL:2009/10/05(月) 01:31:28 ID:???
まあオラクルになくて他のデータベースにある機能なんてそうそう無いから
オラクルが使いこなせれば他のデータベースもすぐ使いこなせるようになるよ。

96 :NAME IS NULL:2009/10/05(月) 10:39:52 ID:???
シーケンスを作らなくても自動インクリメントしてくれるMySQL

97 :NAME IS NULL:2009/10/05(月) 14:12:02 ID:???
OracleのSE RACってどうかな?
EE RACでやっているんだけど、性能的にサーバ2台で問題無さそうだし、
値段がEEとSEで段違いなんでSEに落とそうと思うんだけど、
ダウングレードした人とかいます?

98 :NAME IS NULL:2009/10/05(月) 21:24:13 ID:???
>>94さんは>>76さんですか?

99 :NAME IS NULL:2009/10/05(月) 22:13:28 ID:???
>>98

そうだけど、何か?

100 :NAME IS NULL:2009/10/06(火) 08:42:45 ID:???
大規模システムでOracle以外を使ってる方が珍しい。

101 :NAME 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以外が珍しいと言っているのだろう、世界狭いな。

102 :NAME IS NULL:2009/10/07(水) 00:08:59 ID:???
大規模システムの定義が良く分からないけどオープン系でガンガン更新トランザクションが
走るようなシステムはOracleじゃないとまともに動かないのは事実だな

DB2やSQL SERVERじゃ、よぼどアプリケーション、テーブル設計をちゃんとやらないと
排他問題で同時実行性がおちて使い物にならなくなる


103 :NAME IS NULL:2009/10/07(水) 00:18:49 ID:???
そういや、複数の更新トランザクションが走っているときに一方がロック待ちにならないから
OracleのReadCommitedはDB2のURと同じだとか阿呆なこと主張する奴がいたなぁ。

104 :NAME IS NULL:2009/10/07(水) 00:46:44 ID:RgFJ5Zvx
SQLServer2005からはREAD COMMITTED SNAPSHOTで、
ORACLEと同じ読み取り一貫性になるんだが・・・
DB2は知らん

105 :NAME IS NULL:2009/10/07(水) 00:56:03 ID:rI0NJuhp
そもそもOSがWindowsってところでアウト

なのでSQLServerはないな

106 :NAME IS NULL:2009/10/07(水) 00:56:29 ID:???
でもSQL Serverのそれって性能がた落ちするんでしょ?

107 :NAME IS NULL:2009/10/07(水) 01:12:53 ID:t9FR2Kza
WindowsでOracleを選択というのも多いようにも思える。
SQLServerもさすがにEnterprise Editionとかになると高価なんだよな。

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



108 :NAME IS NULL:2009/10/07(水) 01:31:50 ID:???
アホは喋らない方が良い

109 :NAME IS NULL:2009/10/07(水) 07:48:31 ID:???
>>107
バカは喋らないほうがいい

110 :NAME 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

111 :NAME IS NULL:2009/10/08(木) 17:13:52 ID:???
バインド変数が文字列だろうとシングルクオテーションで囲う必要はないよ。
文字列内に含まれるシングルクオテーションをエスケープする必要もない。

112 :NAME IS NULL:2009/10/08(木) 20:10:07 ID:???
>>111
レスありがとうございます。
そういうもんなんですね・・・。
同じようなので例えば、TO_CHAR('2009/01/01','yyyy/mm/dd')
の日付の部分をバインドしたい場合あどうあるべきなのでしょうか。
シングルクオテーションつけるとバインドが展開されないし、
シングルクオテーションつけないとTO_CHAR構文エラー
になったように思われます。勘違いかな?

113 :NAME IS NULL:2009/10/08(木) 21:25:42 ID:???
プログラミング初心者か?
何からエスケープさせるのかを意識すればわかるようになるよ。

114 :NAME IS NULL:2009/10/08(木) 21:35:49 ID:???
もう人生からエスケープしたい

115 :NAME IS NULL:2009/10/08(木) 21:42:20 ID:???
TO_CHAR(:wrk,'yyyy/mm/dd')
でいけるんじゃね?

116 :NAME IS NULL:2009/10/08(木) 23:31:11 ID:???
>>112
そもそも、to_char()の第1引数はDATEかNUMBERだろ。

117 :NAME IS NULL:2009/10/09(金) 06:24:39 ID:???
>>116
みなさんレスありがとうございます。
というか質問を書くところで書き間違えた・・・。
TO_CHARじゃなくてTO_TIMESTAMPだた。TO_CHARの第一引数が文字列なんてありえねですな。
TO_TIMESTAMPの場合の第一引数のバインドでのシングルクオテーションなのですが、
この場合どうなるのでしょうか。

118 :NAME IS NULL:2009/10/09(金) 11:39:35 ID:???
個別の関数が、クォートの展開をするわけではない。
変数で渡されるときも、変数の中身がそのまま渡されるから、エスケープする必要がないってこと。


119 :NAME IS NULL:2009/10/09(金) 13:34:06 ID:???
>>118
レスありがとうです。
変数=プレース
という事ですね。たしかに!理解できました。

120 :NAME IS NULL:2009/10/11(日) 17:35:35 ID:???
もしかして、OTNの掲示板より、2ちゃんの方が回答が早い?

121 :NAME IS NULL:2009/10/11(日) 18:35:16 ID:???
回答は早いかもしれないが2chで書いてあることを真に受けてたら
そのうち痛い目にあうことは間違いない

122 :NAME IS NULL:2009/10/11(日) 18:42:48 ID:ik/XDQBh
>>120
>>121

回答をもらったら、合っているかどうかの確認は必要ですね。
サポートへ問い合わせても常に100%正しい答えが返ってくるかというと
必ずしもそういうわけではないので。

123 :NAME IS NULL:2009/10/11(日) 18:55:13 ID:???
質問

バージョンの異なるインスタンスを混在させて同時に起動しても問題ないの?
今、9iと10gを同時に動かしてるんだけどね。もちろんリスナーのポート番号は変えたけど

124 :NAME IS NULL:2009/10/11(日) 19:04:29 ID:???
>>123

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



125 :NAME IS NULL:2009/10/12(月) 00:17:10 ID:rHiFo6kC
OracleはどうしてSQLDeveloperを製品版に入れて配らないんだろうか

126 :NAME IS NULL:2009/10/12(月) 01:04:32 ID:???
オラクルクライアント11gではSQL Developerを一緒にインストールしてくれるみたいだ。

127 :NAME IS NULL:2009/10/12(月) 01:11:15 ID:rHiFo6kC
SQLServerのフロントエンドよりは動作的にいまいちだが、
SQL*Plusとつくりがいまいちなクライアントツールよかはマシなんだよな。

SI Object Browserの存在意義がなくなってしまたのか。。

128 :NAME IS NULL:2009/10/12(月) 21:50:25 ID:???
STATSPACKのレポートのことで質問します

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

これをわかりやすく説明してくれる方いますか?


129 :NAME IS NULL:2009/10/12(月) 22:30:09 ID:???
最初の方がminsで、
個々のSQLの方がsecondsとか?

130 :NAME IS NULL:2009/10/12(月) 22:59:37 ID:???
>>129
それはわかっています。
ただ、TOP待機イベントを見ると、ELAPSED TIMEを超える行ロック待ちが。。。

131 :NAME IS NULL:2009/10/12(月) 23:16:11 ID:???
ELAPSED TIMEってリソースを使った時間じゃね?

132 :NAME IS NULL:2009/10/15(木) 00:51:11 ID:zuOJNKXw
OracleってSQL*Plusでの実行とSQLDeveloperとかの実行って微妙に動作違う?
SQLDeveloperで問題ないだけど、SQL*Plusとかではダメなときがあるんだが。。

133 :NAME IS NULL:2009/10/15(木) 07:06:50 ID:???
まんまその通りの事例ではないけど、
CUI版のsqlplus.exeでは実行できるhoge.sqlを
GUI版のsqlplusw.exeから@hoge.sqlで呼び出して実行したら
ORA-エラーが出たなんてことは、経験ある。

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



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

135 :NAME IS NULL:2009/10/18(日) 15:58:49 ID:???
OTNの掲示板ダメダメだな。

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

2ちゃんよりも有害だよ。

136 :NAME IS NULL:2009/10/19(月) 19:46:16 ID:???
>>135

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

このスレは、俗っぽいみんなの本音が聞けるのが楽しい。
俺にとっては、どっちも大切な掲示板。

137 :NAME IS NULL:2009/10/19(月) 20:20:31 ID:???
障害の原因についてOTNの情報をソースとして提示したら「ブログと変わらん」って客先に却下された

138 :NAME IS NULL:2009/10/19(月) 21:59:45 ID:???
客にushitaki情報とでも言っておけ

139 :NAME IS NULL:2009/10/20(火) 00:42:04 ID:???
サポート契約してないならOTNを始めとするネットで情報収集するしかない。
サポートがネットより優秀かどうかは知らないけど。

140 :NAME IS NULL:2009/10/20(火) 22:37:33 ID:???
会社でoracle8i使ってます。

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


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

開発に必要な最小限の構成ありましたら教えてください。
よろしくお願いいたします。

141 :NAME IS NULL:2009/10/20(火) 23:10:02 ID:???
っvm

142 :NAME IS NULL:2009/10/20(火) 23:21:39 ID:???
Oracleデータベースのバックアップって
どうやってとってますか?

143 :NAME IS NULL:2009/10/20(火) 23:36:38 ID:???
cp -all

144 :NAME IS NULL:2009/10/20(火) 23:51:49 ID:N4dazINZ
>>142

dd if=/dev/rdsk/c1t11d0s0 of=backup.bkf bs=1048576

145 :NAME IS NULL:2009/10/21(水) 01:45:39 ID:???
>>142

RMAN最強伝説!

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

147 :NAME IS NULL:2009/10/21(水) 16:19:06 ID:???
>>146

ちゃんとリカバリできるのは確認した?

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

149 :NAME IS NULL:2009/10/21(水) 18:17:15 ID:???
RMAN使ってる奴っているの?

150 :NAME IS NULL:2009/10/21(水) 19:16:30 ID:???
>>148

すばらしい。

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

ダメな業者に頼むと適当にバックアップを設計して後で戻せないというのがよくある。


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


152 :NAME IS NULL:2009/10/21(水) 21:30:18 ID:???
>>151

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

俺の経験では、4億もするDS8100が壊れたということもあった。
ストレージは全く信用していない。


153 :NAME IS NULL:2009/10/21(水) 21:44:07 ID:???
システム障害対策としてのテープバックアップってのはだんだん廃れてきている
ような気がする。で、災害時のBCP対策としてなら、イメージバックアップより
exportの方が取り回しやすいだろうし。

154 :NAME IS NULL:2009/10/21(水) 22:46:43 ID:Ebu8dcg2
うちのSE、ばかなんですが、どうすればいいですか。
普通テーブル2は、Aで作るのが、プロですが、そいつは@で作ります。
コボラーうざすぎ、まじ、死んでほしい。
こういう奴、どうすればいいですか。


テーブル1
ID 内容 使用カラム
1 電話番号 4
2 氏名 5
3 年齢 3
4 郵便番号 2
5 住所 1

テーブル2
@
ID カラム1 カラム2   カラム3 カラム4 カラム5
1 東京都杉並 999-9999 20才 03-9999-9999 鈴木
2 横浜市青葉区 888-8888 30才 03-8888-8888 高橋

A
ID 連番 カラム
1 1 東京都杉並
1 2 999-9999
1 3 20才
1 4 03-9999-9999
1 5 鈴木
2 1 横浜市青葉区
2 2 888-8888
2 3 30才
2 4 03-8888-8888
2 5 高橋



155 :NAME IS NULL:2009/10/21(水) 22:48:16 ID:ZMSB+uaT
発想がExcelなんじゃねーの?

156 :NAME IS NULL:2009/10/21(水) 22:49:31 ID:???
Oracleのサポートに連絡いれたらどこの企業か聞かれたんだけど
顧客の知名度によって対応変える気かこいつら

157 :NAME IS NULL:2009/10/21(水) 22:53:19 ID:FwBnigAg
フリーなLinuxにOracleインストールしたいんだけど、普通は何を使えばいいでしょうか?
候補は、CentOSか、OpenSuSE,Ubuntuです。

158 :NAME IS NULL:2009/10/21(水) 22:57:00 ID:6akxOwMs
他すれで聞いた回答貼っとく
俺は明日CentOSに11gやる予定
そしてそっちに書き込んじまった
恥ずかしい

148 名前:NAME IS NULL[sage] 投稿日:2009/10/20(火) 00:35:27 ID:???
ubuntuにはOracleXEしか入らないはずだよ。
メモリ512MBあればギリギリ動くはず。

154 名前:NAME IS NULL[sage] 投稿日:2009/10/21(水) 22:21:57 ID:???
CentOSなら乗りそうというか、乗るよ > Oracle
実際動いてるし
まぁ、実質は無料版Redhatだから、当たり前だけど


159 :NAME IS NULL:2009/10/21(水) 23:01:57 ID:???
>>150
RMANで制御ファイルとSPFILEだけバックアップってありですか?
データ壊れたときは別でとっておいたExportで復旧するの

160 :NAME IS NULL:2009/10/21(水) 23:05:13 ID:FwBnigAg
>>158
ありがとうです。CentOSダウンロードします。


161 :NAME IS NULL:2009/10/21(水) 23:10:06 ID:6akxOwMs
>>160
おうがんばれー

162 :NAME IS NULL:2009/10/21(水) 23:12:00 ID:???
>>154
テーブル1はなんのために存在すんの?
てか、真のコボラだったら絶対@だな。カラムが200くらいあったりして。

163 :NAME IS NULL:2009/10/21(水) 23:16:13 ID:???
>>162
区分テーブルなんじゃね

164 :NAME IS NULL:2009/10/21(水) 23:59:14 ID:???
>>154
ユーザに見せるビューとして@が必要なのかもしれないな
自分らは縦持ち・横持ちって言い方をよくするけど
Aだとユーザに「こんなの入力しにくい!」とか言われるのはよくある話

165 :NAME IS NULL:2009/10/22(木) 00:24:30 ID:???
Aのテーブルから@のビューを作るのが普通だと。

ユーザとDBAの観点は違うからなぁ。

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

167 :NAME IS NULL:2009/10/22(木) 01:52:35 ID:???
8.1.5から10g_Expressへの移行考えてる。

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

なんだか難しいね。面倒すぎ。

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

169 :NAME IS NULL:2009/10/22(木) 05:50:49 ID:???
>>150

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


>>159

制御ファイルとSPFILEだけだったらRMAN使うよりもダンプしておけば?


170 :NAME IS NULL:2009/10/22(木) 05:52:21 ID:???
>>167

8i => 10gのウプグレードは8iのターミナルリリース(8.1.7.4)からしかサポートしていない。
Export/Importしか道が残っていないな。

171 :NAME IS NULL:2009/10/22(木) 05:53:38 ID:???
>>160

CentOSは11g R1のRACまで組んで動作確認した。

172 :NAME IS NULL:2009/10/22(木) 07:15:42 ID:???
>>168
しかもAだと生年月日を文字列で持つハメになったり

173 :NAME IS NULL:2009/10/22(木) 11:27:34 ID:???
RMANを直接は使うことはあまりないかな。
NetBackupなどのバックアップツールと連携させるためにRMAN入れるとか。<オンラインバックアップのとき。

174 :NAME IS NULL:2009/10/22(木) 21:14:19 ID:???
テーブル1があるという事は、
カラム追加、変更が頻繁そうだよね。
Aは、運用中にALTER TABLE
したくないから、推してる人がいるんじゃないの?

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

まあかえってAの方がレコード件数増えるけどね。
そんかわりALTER TABLEは無さそう。

175 :NAME IS NULL:2009/10/22(木) 21:29:08 ID:???
ALTER TABLE を防いでも INDEX は張りにくいことこの上ないと思う。
Aは素人だな。テーブル1 も何のためにあるのかさっぱりわからない。

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



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

テーブルでも無駄にあちこちのキー項目が多かったりする設計をする人のってどうしてなんだろうか。
その時の情報を残したいとかなら別だが一意のキーを乱立して、
ほぼ同じ意味のテーブル作りまくるのっておかしいよなぁ。なんでだろう。

177 :NAME IS NULL:2009/10/22(木) 22:01:32 ID:???
今までSQL Serverしか使ったこと無かったのですが、最近、Oracleを使い始めました。
テーブルの参照権限のみ保有したユーザーを作りたい場合、どのような設定をすれば良いのでしょう?
また、ユーザーがテーブルに対して更新(書き込み)権限を持っているかどうかを簡単に調べるSQL文は
あるのでしょうか?
SQL Serverなら直感的にできることなのですが、いま一つ良く分かりません。

178 :NAME IS NULL:2009/10/22(木) 22:58:27 ID:???
>>169
RMANってリポジトリの制御ファイルとかリカバリカタログが壊れたら
二度と復旧できない?
ExportとRMANのどっちが安全?

179 :NAME IS NULL:2009/10/22(木) 23:03:26 ID:???
>>177
ttp://luna.gonna.jp/oracle/ora_auth.html
ttp://www.atmarkit.co.jp/fdb/ref/ref_oracle/privi.html

180 :NAME IS NULL:2009/10/22(木) 23:15:07 ID:???
>>173

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

>>178

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

Exportはそれを取った時点のデータしか復旧出来ないが、RMANはpoint-in-timeリカバリにも
完全媒体回復にも両方対応している。
運用形態にもよるけど、選択肢は多いのは良い事だ。

181 :NAME IS NULL:2009/10/22(木) 23:30:11 ID:???
あとRMAN使うメリットとしてはBMR(ブロックレベルメディアリカバリ)かな。
EMCのファームウェアのバグのせいで、プロダクションのシステム表領域内のブロックが
ぶっ壊れた事あったけど、RMANのBMRでサクッと直った。
滅多に起きる事ではないけど、該当ブロックだけをバックアップから戻すだけだから、
リカバリ時間も大幅に短縮出来た。

それと11gのRMANのデータリカバリアドバイザーは結構便利。
該当障害のリカバリ用スクリプトまで自動作成してくれる。


182 :NAME IS NULL:2009/10/23(金) 00:20:59 ID:???
RMANなんか使うのか?

俺の経験だけど、ここ数年はストレージのシャドーコピーとOracleのオンラインバックアップを
利用してストレージ全体をバックアップしちまうのしかないけど、ちまちまRMAN使ったりすることが
あるのか?

183 :NAME IS NULL:2009/10/23(金) 00:46:12 ID:???
RMANとストレージのスナップショットミラーの組み合わせとかも出来るよ。

184 :NAME IS NULL:2009/10/23(金) 01:11:29 ID:???
RMANつかうとリカバリがほんのちょっとだけ簡単になるくらいかな。
結局は、ストレージやらバックアップソフトに頼ることになるから、RMAN一発ではいかないところがあるわけで。
バックアップソフトのOracleオプションは、RMANと連携させるものが多いから、その辺の考慮がなされてはいるけど、
価格に対しての効果があるのか?という疑問もある。


185 :NAME IS NULL:2009/10/23(金) 01:20:53 ID:???
RMANを「ちまちま」使うというのがよくわからんな。簡単なのに。


186 :NAME IS NULL:2009/10/23(金) 03:18:13 ID:???
最初はコマンドが独特でとっつきにくい所があるけど、慣れたら楽だよな。

187 :NAME 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のライセンスどうなんだろ?

188 :NAME IS NULL:2009/10/23(金) 06:52:52 ID:???
Oracle8iからOracle10g XEへの引っ越し
ttp://www.avant-tokyo.com/oracle/oracle8i-oracle10g.html

189 :NAME IS NULL:2009/10/23(金) 07:25:11 ID:???
>>188
サンクス。LIINUXならexport LANGで行くらしいけど
Winはそういうコマンドが無い(?)みたいだから。

今はテストだからWinだけど、実運用はLinuxにしようかと思ってます。

190 :NAME IS NULL:2009/10/23(金) 07:36:17 ID:???
Windowsで環境設定
set NLS_LANG=JAPANESE_JAPAN.AL32UTF8

191 :NAME IS NULL:2009/10/23(金) 19:42:34 ID:SBGcMn+b
CentOSでOracleが流行なのか

192 :NAME IS NULL:2009/10/23(金) 21:36:54 ID:???
Oracle EnterpriseLinuxじゃダメ?
あれってサポート無しなら無償利用可能でしょ?
oracle-validate-packageって言うOracle入れるのに必要な各種パッケージを
自動で入れてくれるパッケージがあって便利だった。

193 :NAME IS NULL:2009/10/23(金) 22:26:09 ID:0/DD6cX4
思うにOracle主導が気に入らないのだと思う。
そのラインでいくと、今後のSolarisのOracleは流行らない可能性が高い

194 :NAME 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も無理だった。

195 :189=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が無いですエラー多発で検証できてません。

何をどうすれば良いのかわかる人いたら教えてください。

196 :NAME IS NULL:2009/10/24(土) 05:42:26 ID:???
win98だからダメとか、クライアントを2つ入れてるからダメとか、InstantClientはoo4oに対応してないとか、
そんな理由じゃない。

197 :NAME 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を入れて試してみる
のが手っ取り早いかも。


198 :NAME 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切り替えて
接続してみます。

色々レスサンクスです。他にも意見あれば教えてください。

199 :NAME IS NULL:2009/10/24(土) 23:27:20 ID:Xd1QwCkQ
まだ98つかてるところあるのか

200 :NAME 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とか。

何が問題なんだろう?メモリの割り当て関係のようだけど。

201 :200:2009/10/25(日) 13:11:46 ID:???
iniサービス名.oraのファイルに
large_pool_size=4194304
shared_pool_size=62914560
streams_pool_size=0
と他のサイト見て追加したら通った。

というわけで続けてみる。

202 :200:2009/10/25(日) 16:23:18 ID:???
データ構築できたので、apex入れようとしてるけど、上手くいかないなあ。

何度も繰り返しているせいか
ora 09655 すでに使用されているオブジェクト名です
ora 00942 表またはビューが存在しません
とかいろいろ出るね。

質問1
ログとりたいんだけど、poolだと、最初の数行しか出てこなくて、内容を把握できない。
いい方法ないかな?
質問2
後は何度もverを変えて試行している関係で、エラーの内容次々に変わってる。
一度きれいにしたいんだけど、方法無いかな?試したのは3.1.2、3.2、3.2.1の3バージョン。

よろしくお願いします。

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

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

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

対策ありましたら教えてください。

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

もう一個はこれ。失礼しました。


205 :200:2009/10/26(月) 00:54:28 ID:???
catblock.sqlを実行でOK。
Thank you for installing Oracle Application Express
わーい。

さらに続ける。

206 :NAME IS NULL:2009/10/26(月) 09:13:24 ID:???
>>200
日記なら他所でやってくれ

207 :NAME IS NULL:2009/10/26(月) 21:20:24 ID:DWwkRJpi
OracleでSQLのみでHTMLデコード処理したいんですが、よい方法ありませんか?
Javaとかでストアド作ったほうがよいのかしら。。

208 :NAME IS NULL:2009/10/27(火) 00:32:13 ID:???
>>207
HTMLデコードってなに!?

209 :NAME IS NULL:2009/10/27(火) 00:44:17 ID:???
>>207

SQL*PLUSでMARKUP HTML ONとかって事か?

210 :NAME IS NULL:2009/10/27(火) 01:47:37 ID:dnxl11zG
MARKUP HTML ONってわからないですが、
CSVファイルでもらってる情報が<BR>とか&とか入ってるもので、
DB的にはそれが<BR>=改行,&=&になればいいとおもってるだけなんです。
やっぱ言語系かましたほうがよいのかも


211 :NAME IS NULL:2009/10/27(火) 01:50:11 ID:???
>>210
たったそれだけならDECODEでいいじゃん。

212 :NAME 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 '%&%'

はダメですかそうですかすみません

213 :NAME IS NULL:2009/10/28(水) 03:05:22 ID:???
ACFS試した人いる?
OCRや投票ディスクもおけるみたいなんだけど。
という事はRACをインストールする場合には、先にasmcaでACFS作って、その後に
CRSのインストールになるんかいな?
良く分からん。
取りあえずVMWare使って11g R2 RAC組んでみるか・・・。


214 :NAME 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  メール a@example.com
3  2  電話  yyy-yyy-yyyy
4  2  電話  yyy-yyy-yyyy
のようなテーブルを作りました。これでテーブルは減りましたが、
どんなに小さな値しかない項目もテキスト型になるのが気になります。

そもそもこういった設計はアリなんでしょうか?
また、繰り返し値が多数ある場合(繰り返し数は不定)の、一般的なやり方というのはあるのでしょうか?


215 :214:2009/10/28(水) 13:00:47 ID:g69HuQDu
あ、3,4の電話は実際は違う値です。

216 :NAME IS NULL:2009/10/28(水) 13:37:39 ID:???
でっけぇ釣り針だな、おい

217 :NAME IS NULL:2009/10/28(水) 14:04:33 ID:???
>>214
1つのSQLで全部取得しようとせずまず本体テーブルを検索してから、
電話番号テーブルやメールアドレステーブルを順次検索すればいいのでは?

218 :214:2009/10/28(水) 14:26:15 ID:???
>>217
レスありがとうございます。
なるほど。細かいテーブルが10, 20と増えて行くのが何となく気持ち悪いと思ったのですが、とりあえずそういうものだと割り切ることにします。

219 :NAME IS NULL:2009/10/28(水) 23:03:00 ID:X/2djzan
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のアクセス権見てるようだけど、
どこをどうすれば良いんだろう?




220 :NAME IS NULL:2009/10/28(水) 23:09:21 ID:???
apxconf.sqlじゃなくてapxldimg.sqlだった

221 :NAME IS NULL:2009/10/28(水) 23:50:20 ID:???
SJSI化+APEX3.2.1ね。連投失礼しました。

222 :NAME IS NULL:2009/10/31(土) 20:58:02 ID:???
Oracleデータベースを
Oracle VMやVMware上で動かすときは
データは仮想ディスク上に置くのではなく
RAWディスクやネットワークストレージ上に置くんですか?

223 :NAME IS NULL:2009/10/31(土) 21:25:53 ID:???
>>222

仮想ディスク上に置くことが多いんじゃない?
まあ、直接ディスク触っているパターンもあるとは思うけと゛。

224 :222:2009/10/31(土) 23:25:39 ID:???
>>223
そうですか
仮想ディスク上に置くとすると
その仮想ディスクファイルを書き込むときの
ディスクキャッシュとかどうなるのかと気になりまして。
キャッシュOFFにする設定とかした上で使うんですかね。
それとも仮想ディスクファイル自身はキャッシュされない?

225 :NAME IS NULL:2009/11/01(日) 11:24:22 ID:???
>>224

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

ただ仮想ディスクが乗っている物理ディスクはおそらくファイル
システム上に配置される事だろうから、こっちの方はO/Sレベルで
オフに出来ないんだったらどうにもならないと思うけど。


226 :222:2009/11/04(水) 00:36:19 ID:???
>>225
仮想ディスクはSANやNAS上に置くのが推奨されてるみたいだから
OracleやVMwareが動作確認しているものならばきっとオフが
できる機器なんでしょうね。


227 :NAME IS NULL:2009/11/10(火) 20:52:45 ID:???
質問です。
'12781278'とある文字列のうち、7と8はそのまま、それ以外は半角スペースにしようした場合、
単一行関数で解決できますか?
Oracleは11gです。

228 :NAME IS NULL:2009/11/10(火) 20:54:28 ID:mOY2vEuL
SQLDevelop2.1リリースされてるね
若干軽くなった感じがする

229 :NAME IS NULL:2009/11/10(火) 21:52:01 ID:???
>>227

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

こうだったかな?iPhoneからなので確認してないです。
アンダーバーはスペースにして下さい。

230 :NAME 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

231 :227:2009/11/10(火) 22:31:09 ID:???
上の二方回答ありがとうございます。
この書き込みに追加されるのを見る前に自己解決しました。
REGEXP_REPLACEを使いました。答えてくれてありがとうございます。

232 :名前は開発中のものです。:2009/11/11(水) 18:53:39 ID:???
質問です。

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

ツールはObject Browserを使用しています。

233 :NAME IS NULL:2009/11/11(水) 20:03:58 ID:???
>>232
DBA_TAB_PRIVS,ROLE_TAB_PRIVS
DBA_SYS_PRIVS,ROLE_SYS_PRIVS
あたりを見ればいいんじゃね?

234 :NAME IS NULL:2009/11/11(水) 20:08:00 ID:XB9YQk85
2バイト文字のデータが入っているDB(Oracle)を別のDB(PostgreSQL)に移さないと
いけなくなりました。どういう方法があるでしょうか?
一旦ファイルにダンプして、ファイル経由でやろうと思っているのですが、その場合、
ファイルは2バイト文字があるためバイナリファイルにしないとだめでしょうか?
どうかよろしくお願いします。


235 :NAME IS NULL:2009/11/12(木) 03:06:27 ID:???
>>234

CSVにでもなんにでもフラットファイルに吐きだしてそれを移すしかないんじゃね?

236 :NAME IS NULL:2009/11/12(木) 07:17:32 ID:???
「2バイト文字がバイナリ」というのがよくわからん

237 :NAME IS NULL:2009/11/12(木) 08:09:58 ID:???

2バイト文字が倍ナリ(コロスケ的な意味で)

238 :NAME IS NULL:2009/11/12(木) 10:57:40 ID:???
オプティマイザの指定について質問があります。
RBOをサポートしなくなったはずのOracle10.2g上で、
/*+ RULE*/というヒント付きのクエリを実行すると、
なぜか実行計画がルールベースになってしまいます。
(初期化パラメータのOPTIMIZE_MODEはALL_ROWSです)
クエリのソースを変えずに、コストベースで
実行させることはできないのでしょうか?
(できればプラン・スタビリティ等も使わずに…)

239 :NAME IS NULL:2009/11/12(木) 15:45:01 ID:???
ヒント句の指定が一番優先されるからヒント句をいじるしか方法はない気がする。

240 :NAME IS NULL:2009/11/13(金) 01:58:18 ID:???
11gR2のWindowsっていつ頃になるんだろう

241 :NAME IS NULL:2009/11/13(金) 02:19:51 ID:???
2099年中とあったはずだ

242 :NAME IS NULL:2009/11/13(金) 08:09:54 ID:???
>>241
>> 2099年中
ずいぶんと気の長い話だな、おい。

243 :NAME IS NULL:2009/11/13(金) 23:47:02 ID:???
>>232
OBなら、黄色の人型のボタン(ユーザ情報)を開いて、
見たいユーザを開いて、真ん中のシステム権限欄の中の
EXECUTE ANY PROCEDUREとかの左のチェックボックスがONかどうか。

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

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

以上ですべて。どうよわかった?

244 :NAME IS NULL:2009/11/14(土) 02:19:33 ID:???
質問です。
cseで作ったテーブルに、文字コードがUnicodeのcsvファイルのデータをいれようとしているんですが、エラーが起きていれられません。
文字コードをSJISにするとちゃんと値が入るんですが…どうしたらテーブルにUnicodeのcsvデータをいれられるのでしょうか?
よろしくお願いします。

245 :NAME 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とかのメッセージが
英語表記になるけどね。そういうもんだから。

246 :NAME IS NULL:2009/11/15(日) 22:34:39 ID:u/XdpS1b
10年前に開発したVB6のシステムでOracle8iを使っています。
DBサーバの保守が切れるということで
クライアント→DBサーバ
というのを
クライアント→クライアントにインストールしたDB
という風にして、1台のスタンドアロン環境で動作するようにしたいです。

この場合、クライアントにインストールするOracle8のライセンスが必要でしょうか?
また、Oracle8はまだどこかで買えるでしょうか?

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

248 :NAME IS NULL:2009/11/16(月) 01:11:47 ID:???
>>246

8なら自宅に転がっているかもなぁ。
でも引越しの時に二度と使わないと思って捨てちまった可能性も高いかも・・・。

249 :NAME IS NULL:2009/11/17(火) 22:23:45 ID:???
今日オラクルに問い合わせたら、11gR2は来年の中頃にはリリースって聞いた
その時聞き忘れたんだけど、現在、クライアントに関してWindows7上の動作保証が
あるバージョンって存在するのかな?

250 :NAME IS NULL:2009/11/18(水) 00:33:59 ID:???
>>249
来年の中頃!? Windows版のことかな。
なんじゃそりゃ…、Oracleのソースコードってどうなってんだ

251 :NAME IS NULL:2009/11/18(水) 00:37:19 ID:???
OSごとに別会社に委託

252 :NAME IS NULL:2009/11/18(水) 02:16:48 ID:???
>>250
ごめん
遅くとも来年の中頃ってこと
ちなみにWindows版の事ね

2ヶ月前にはHPとかでお知らせがあるらしい
つまりリリースは早くとも年明けって事

253 :NAME IS NULL:2009/11/18(水) 12:15:29 ID:???
>>252

HPからリリースされるということ?
アライアンスとしてしか売られないとか?

254 :NAME IS NULL:2009/11/18(水) 22:22:59 ID:???
>>254
オラクルのオラクルのWebサイト等ってことです

ちなみに11gR2より前のバージョンはWindows7上の
動作保証は無いし、今後対応する予定も無いとのこと

255 :NAME IS NULL:2009/11/18(水) 22:32:07 ID:???
>>254

ネタに(略

256 :NAME IS NULL:2009/11/18(水) 22:41:17 ID:???
ネタだったのか…orz

257 :NAME IS NULL:2009/11/18(水) 23:34:38 ID:???
>>239
サンクスです。
やはりヒント自体を削除するしかないみたいですね…。

ところで、全く別件で
Oracle10gのDataPumpExportについて質問があります。
パラメータファイル内の記述をミスして、
PUMPEXPORTのジョブが停止状態になっていたのを見逃したまま
うっかりdmpファイルを削除してしまいました。
そのためジョブにattachできず、KILL_JOBもできなくなってしまいました。
データそのものには影響ないと思うのですが、
こういう場合、宙ぶらりんになったジョブを削除する方法はないのでしょうか?

258 :NAME IS NULL:2009/11/19(木) 01:13:28 ID:???
>>257
DPが内部的にテーブルを作成しているから
それをドロップ

259 :NAME IS NULL:2009/11/19(木) 11:47:16 ID:???
>>257

もしくは別ジョブを開始してそれがクリーン終了したら内部的に作成されたテーブルも消える。

260 :NAME IS NULL:2009/11/19(木) 20:56:31 ID:???
Oracel Exadata使ってる人いますか?

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

事例も少ないし

オラクルの営業に聞いても良いことしか言わないし返って信用出来ないですよ


261 :NAME IS NULL:2009/11/20(金) 00:38:32 ID:???
>>260

Exadata 11gR2はかなり使える機能が増えたと聞いた。
そろそろ使ってもいいんじゃまいか?

262 :NAME IS NULL:2009/11/20(金) 00:57:24 ID:JpSM8BuE
Oracleってサブクエリー遅いよな。



263 :NAME IS NULL:2009/11/20(金) 01:01:53 ID:???
童貞の分際で。

264 :NAME IS NULL:2009/11/20(金) 01:24:59 ID:JpSM8BuE
は?

265 :NAME IS NULL:2009/11/20(金) 01:36:07 ID:???
消えろage厨

266 :NAME IS NULL:2009/11/20(金) 02:53:27 ID:???
Exadataに関して言えば、
期待した性能が出ない可能性より、
客の予算が十分か、の方が心配だ。

2億円を超えると思う・・・

267 :260:2009/11/20(金) 06:22:39 ID:???
>>261,266
レスども

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

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



268 :NAME IS NULL:2009/11/20(金) 06:31:33 ID:???
11gR2てRACが前提なの?

269 :NAME 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万ドル。

270 :NAME IS NULL:2009/11/24(火) 19:00:00 ID:HjCw1L6A
Pro*Cとか業務アプリのC(PC)のプログラムを見てて思うんですが
文字列なのにmemcpyで会社コードをコピーしたり
いちいち\0で初期化してから文字列を格納したりするの
非常に多く見かけるんですけど、何でですか?
何か特別な配慮があるのだろうか・??

memset(kcode,0,sizeof(kcode));
sprintf(kcode,"%d",foo);

みたいな。。

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

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

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

どちらの検索方法が早いですか?
また、一般的なのはどちらの方法でしょうか?

272 :NAME IS NULL:2009/11/24(火) 22:41:12 ID:???
>>271
その構成じゃJOIN出来るカラムがないよ



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

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

間違ってたらスマン。

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

ファンクションを起動する分と
きかくテーブルをSELECTするSQL文の解釈を行う時間分
だけ多く時間がかかる。

275 :NAME IS NULL:2009/11/25(水) 02:04:43 ID:E/U8MXi2
業務でPro*Cを使っているのですが、
Pro*CのFETCHはBULKを使えるのでしょうか?

EXEC SQL FETCH CUR1 INTO 配列
と記述すれば行けそうかなと予想が付いてきたのですが、
PL/SQLにある、BULK COLLECT句がないと駄目なのか、
よくわかりません。

276 :NAME IS NULL:2009/11/25(水) 07:13:18 ID:???
>>275
複数の行をまとめてFETCHしたいのであれば、
ホスト配列を使用すれば可能。
ホスト配列 Pro*C でググルとOTNのマニュアルが
ヒットするから、そこを見てください。


277 :NAME IS NULL:2009/11/26(木) 00:06:04 ID:???
>>276
ありがとうございました。
無事、できました。

278 :NAME IS NULL:2009/11/26(木) 00:13:04 ID:ec24a8ww
SQLPlusで環境変数の参照したいんだけど、もしかしていい方法ない?
まぁ情報探しにくいってのはOracleの弱点なんだよな



279 :NAME IS NULL:2009/11/26(木) 00:39:45 ID:???
情報を探しやすいDBってなによ?
参考までに教えて

280 :NAME IS NULL:2009/11/26(木) 00:51:51 ID:???
またおまえか

281 :NAME IS NULL:2009/11/26(木) 01:09:55 ID:???
おれおれ

282 :NAME IS NULL:2009/11/26(木) 01:15:15 ID:???
やっぱりな

283 :NAME IS NULL:2009/11/26(木) 19:49:06 ID:???
>>278
HOSTコマンド

284 :NAME 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です。

285 :NAME IS NULL:2009/11/27(金) 00:43:45 ID:???
いくらでもあります。

286 :NAME IS NULL:2009/11/27(金) 00:47:17 ID:???
文章の内容が悪かったようです。

まとめる方法があるならば、
どうすればいいのか教えてください。

287 :NAME 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

288 :NAME IS NULL:2009/11/27(金) 01:40:36 ID:???
>>287
最終的にやりたいことは、
&置換変数を用いて入力した値2個と
それの1部を結合した値を1行に出力して、
その文をスクリプトファイルとして保存して
レコード作成を行いたいってことです。
最初に書くべきでした。すみません。

値の入力はできれば&置換変数を用いたいのですが・・・

289 :NAME 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

290 :NAME IS NULL:2009/11/27(金) 02:34:35 ID:???
>>289
そもそも無名プロシージャというものを知らなかったので、
出来ると思いませんでした。
>>287の文は実行したらエラーになったし・・・


おかげさまで出来ました。
ありがとうございました。

291 :NAME IS NULL:2009/11/28(土) 19:27:08 ID:mokrBmmd
インストールした状態で、ライセンス形態は表示されますか?

Oracle Database 10g Standard Edition Windows XP です。

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

製品版を買っていない場合は、関連業者からの購入を強く促されるようです。
OTNやトライアル版をインストールしていっても正規のライセンス版と見分けが付かなければ
それで済ませたいのですが。

292 :NAME IS NULL:2009/11/28(土) 19:53:54 ID:???
>>291

同じだよ。

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

よかった。 貯金をゼロにしなくて済みます。

294 :NAME IS NULL:2009/11/29(日) 13:50:28 ID:???
>>293

せめて>>1ぐらい読んでから質問しようや。

295 :NAME IS NULL:2009/11/29(日) 14:42:03 ID:???
いやです。
教えてください。

296 :NAME IS NULL:2009/11/30(月) 13:30:24 ID:???
Linux(RH AS 5)版の11g R2 Grid Infrastructureのインスコに成功した人いる?
OCRとかをASM上に配置するオプションで。
なんか日本語でインスコするとASMLib使っているのにASM用のHDD候補とか
見れなかったりするんだけど?

297 :NAME 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でテストしていない?


298 :NAME IS NULL:2009/12/01(火) 19:27:21 ID:???
RH AS 5.4などない。

299 :NAME IS NULL:2009/12/02(水) 01:48:43 ID:???
>>297
# uname -srmpio
# rpm -qa | grep -i oracleasm

300 :NAME IS NULL:2009/12/02(水) 16:17:04 ID:GlCvq1AR
254のどこがネタなのかよく分からんのですが・・・・

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

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

ウイセブ環境でのクラサバアプリの動作検証をせなあかんのですが、
もし、11r2のクライアントがリリースされるなら、それまで待とうかと思いまして。


301 :NAME IS NULL:2009/12/02(水) 20:44:22 ID:???
>>300
どうも>>254の者です
ネタの話は置いておいて…
それであっていますよ


302 :NAME IS NULL:2009/12/03(木) 02:04:26 ID:RG7qM8LP
ウイセブてなに?

303 :NAME IS NULL:2009/12/03(木) 06:45:15 ID:???
254を読めよ。
なんで省略するのか訳わからんが。

304 :NAME 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で作成して試してみたが同じ症状。

分からん。


305 :NAME IS NULL:2009/12/03(木) 15:59:35 ID:3GiTAxwX
>>301
dクスです。
現時点で未定だと、さすがに作業に支障があるので
win7に10gr2を互換モードでインストールすることにしました。
>>302
windows7のことです。
DQNなうちの会社ではみんなウイセブと呼んでいるので、つい伝染してしまいました。
他の会社では、なんと呼んでいるんだろう。やっぱり「セブン」かな?


306 :NAME IS NULL:2009/12/03(木) 21:53:53 ID:???
「うぃんなな」以外の呼び方があるとは思いもよらなかった。

307 :NAME IS NULL:2009/12/04(金) 00:25:41 ID:???
>>304
rpm は i686 とかまで見たかったけど、まぁいいや。
glibc の問題とか色々あるみたいだけど。
まだ11gR2はDBしか触ってないので、場所が同じなら
$ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log
あたりのログから何か無いかね。

308 :NAME IS NULL:2009/12/04(金) 04:39:41 ID:???
>>307

ログは探してみたけどないなぁ。
インストールログも何の手掛かりも無し。
coreとか吐いてくれていたらgdbとかも使えるんだろうけど、coreも無し。
その内コソっと直ったバージョンとかがOTNにウプされていそう。

309 :NAME IS NULL:2009/12/04(金) 09:16:10 ID:6g9IQkjN
>>300
それってよく聞くけどオラクル社から正式発表されてる?
URLあったら教えてほしい。
ホームページを探してみたが探し方が悪いのか見つからない。

310 :NAME IS NULL:2009/12/05(土) 00:31:42 ID:???
>>309
URLというかオラクルダイレクトに電話して聞いた
0120-155-096
リリース時期は未定だけど、大体いつ頃になりそうですか?
って聞いたらその回答が返ってきた

311 :NAME IS NULL:2009/12/05(土) 12:17:14 ID:inq9WrQ/
>>310
ありがとうございます。
早速月曜日に聞いてみます。


規制でPCから書き込めないの不便だな〜

312 :NAME IS NULL:2009/12/05(土) 15:51:47 ID:???
UbuntuにEnterpriseで無理やり入れてたら、インストールはできたが
インスタンスが上がらなくて、Ubuntuに32bitと64bit版があるのに
今更気がついた。遊びだからいいけど、貴重な休日が・・。

313 :NAME IS NULL:2009/12/06(日) 00:18:04 ID:7evwUms2
最近、OracleてPostgreSQLに食われてるよな


314 :NAME IS NULL:2009/12/06(日) 00:36:11 ID:???
無料であること以外に明らかに勝ってる要素がないと客は動かないぞ。

315 :NAME IS NULL:2009/12/06(日) 08:33:58 ID:???
sybase一筋の人にOracleを学んでもらうのに適した資料ってありませんかね?

316 :NAME IS NULL:2009/12/06(日) 17:09:59 ID:XziuAWI9

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



317 :NAME IS NULL:2009/12/06(日) 17:40:11 ID:???
10gしか知らないけど、SGAやPGAの値をギリギリまで小さくすれば512MBでも普通に動いたぞ。
EnterpriseManagerも何とか動く。
256MBは流石にHDDガリガリいってて無理だったので512MBにしたんだが。
Vistaじゃなくて2000だけど。

318 :NAME IS NULL:2009/12/06(日) 19:03:14 ID:???
>EnterpriseManagerも何とか動く。
512kでこれは動かす気がしなかった。

319 :NAME IS NULL:2009/12/06(日) 19:17:44 ID:???
>>317,318
Enterprise Managerはjavaの起動オプションで1024KBきってるから
起動はするし、動くには動くだろうけど、それこそHDガリガリじゃないの

以前、サポートにjavaの起動オプション変えられないのか聞いたことあるけど
当然無理と言われたぞ

320 :NAME IS NULL:2009/12/06(日) 19:56:02 ID:???
EM動かさなきゃいいじゃん。

321 :NAME IS NULL:2009/12/06(日) 20:27:44 ID:???
>>320
EM動かさなかったら動かさなかったでEMが勝手にやってくれるメトリック監視とかを
作りこまなきゃならないだろ

趣味でOracle使ってる奴ばかりじゃないんだぞ


322 :NAME IS NULL:2009/12/06(日) 20:29:32 ID:???
>>321

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



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


324 :NAME IS NULL:2009/12/06(日) 21:39:27 ID:???
>>323

たぶん零細企業で自転車操業なんだろうから、そのへんは大目に見てあげようよ。


325 :NAME IS NULL:2009/12/06(日) 22:03:25 ID:???
零細企業でもVISTAはないだろう、JK

326 :NAME IS NULL:2009/12/06(日) 23:33:14 ID:???
ChromeOSよろしく、インスコしたら一発でOracleまでインストール、
起動されるOracleOSってのが欲しい。
いや、OracleVMのテンプレートでそんな感じの奴があるけどさ。
どうせOSもOracle社で作ってるんだし、やってやれないことは無いと思うんだけど。

327 :NAME IS NULL:2009/12/06(日) 23:39:32 ID:???
昔 MiracleLinux というのがあってだね、(以下略

328 :NAME IS NULL:2009/12/06(日) 23:42:57 ID:7evwUms2
Oracle糞会社にそこまで期待する奴がいるとは思わなかった。
来年あたりはOracleヤバイんじゃねーの?


329 :NAME IS NULL:2009/12/06(日) 23:52:29 ID:???
いや、今でもOracle EnterpriseLinuxってのがあるのは重々承知してるんだけど、
WindowsとかLinuxとかSolarisとか色んなOSサポートしていくよりは、
OELとの組み合わせでしか検証しません、その代わりOSと組み合わせて提供します、
の方がサポートも楽だし、導入する側も変に頭悩ませなくて済むと思うんですが。
どうせ大規模データベース市場は実質的にOracleしか選択肢無い訳だし。

330 :NAME IS NULL:2009/12/06(日) 23:56:08 ID:7evwUms2
Oracleの対抗としてはSQLServerかDB2になるわな。
でも実際はPostgreSqlとかで足りると思う。

331 :NAME IS NULL:2009/12/07(月) 01:02:09 ID:???
逆に、いろんなハードを面倒見る手間がかかるだろ

332 :NAME IS NULL:2009/12/07(月) 19:28:26 ID:???
MySQLと違って、PostgreSQLじゃなきゃダメ、ってのがない。

333 :NAME IS NULL:2009/12/08(火) 01:46:03 ID:nndDDrU0
まぁしかしOracleのオプティマイザーもふざけすぎでしょ
できの悪いもホドがあると思うよ。


334 :NAME IS NULL:2009/12/08(火) 12:41:11 ID:YPusK/Y0
メンタマル「うわっ」ぷー
シャナ「」ブ〜ッ
大河「」ブ〜ッ
ナギ「」プリッ
ルイズ「」ブリッ


神楽「お前ら死ね」


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

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

死ね!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

335 :NAME IS NULL:2009/12/08(火) 12:45:42 ID:YPusK/Y0
私前原圭一は竜宮レナの肛門にトラウマがありますどうかこの事件を解決して下さい、そして私前原圭一は大石さんを愛しています

336 :NAME IS NULL:2009/12/08(火) 20:28:24 ID:???
Oracle 11g R1 Standard Edtition
Windows Server 2003 Standard Edtition

LOB型のチャンクサイズを4096バイトにするには
表領域のブロックサイズを4096バイト以下にする以外方法はないですか?


337 :NAME IS NULL:2009/12/09(水) 00:04:54 ID:???
sqlplus等で他のサーバにあるOracleに接続する際、
接続文字列としてサービス名を使わずに
「user/pass@IPアドレス:ポート番号/SID」
という形式で指定できると思うのですが
これはOracle9i等の古いVerでも可能なのでしょうか?
Oracle10g以降で出来るのは分かったのですが…。


338 :NAME IS NULL:2009/12/09(水) 00:15:10 ID:???
EZCONNECTは10gの新機能なので9iでは使えないよ。

339 :NAME IS NULL:2009/12/09(水) 00:44:51 ID:Ao+i+k7i
IPアドレスで接続がEZCONNECT、それもバージョン10以上か糞だな

340 :NAME IS NULL:2009/12/09(水) 04:06:49 ID:???
>>336

TABLESPACE hogets DISABLE STORAGE IN ROW CHUNK 4096ではダメなんかいな?
ただこの場合にはChunkってdb_block_sizeの切り上げたサイズにしかならないけど。

341 :NAME IS NULL:2009/12/09(水) 06:34:30 ID:???
>>340
ありがとうございます
やってみます

342 :NAME IS NULL:2009/12/10(木) 00:48:33 ID:g/c/UJaz
Oracle 11g

ロックに関して質問です。
コミット後も継続して行排他ロックを掛ける方法は無いでしょうか?
できれば時間指定できれば尚良いのですが?

343 :NAME IS NULL:2009/12/10(木) 01:14:10 ID:???
なにそのRDBMSのトランザクションのコンセプトを丸っきり無視した様な要求は?

344 :NAME IS NULL:2009/12/10(木) 02:10:03 ID:g/c/UJaz
>>343
A1はBとCに変更が可能
A2はBには変更できるが、Cには変更できないとする

この条件で、
田中さんがA1をリード、山田さんもA1をリード
田中さんがA1をA2にアップデート
山田さんがA1をCに変更する前に田中さんがコミットしてしまうと
山田さんはA2をCに変更する処理となり、エラーとなってしまう

この事象を回避するために田中さんがコミット後も継続して
行ロックを行いたいのです。ただし、表ロック等はダメです。
方法はありますでしょうか?

345 :NAME IS NULL:2009/12/10(木) 02:25:48 ID:???
>>344

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

1. 田中さんがトランザクションを開始したらその表にトランザクション中というフラグを立てる。
2. フラグが立っている間は山田さんはコミットしない。
3. 田中さんの全トランザクションが終了したらフラグを消す。
4. 山田さんが晴れてコミット可能。

346 :NAME IS NULL:2009/12/10(木) 02:58:18 ID:???
トランザクションがぜんぜん分かってない感じだな。
ロングトランザクションかショートトランザクションかも書いてない。

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

最初の読み取り時に for update 指定で読みにいった場合。
田中 for update指定で読み取り
山田 for update指定で読み取り・・田中のトランザクションが完了するまで読み取りは待機状態となる。
よって不整合は発生しない。

347 :NAME IS NULL:2009/12/10(木) 03:14:45 ID:???
整合性うんぬんの話じゃなくて、田中がselect for updateで取りに行っても
commitされた瞬間に山田がupdate出来るのを防ぎたいというのが要求
だと思ったが?
要するにアプリ側にエラーを返したくないというのが狙いだと俺は思ったけど?

348 :NAME IS NULL:2009/12/10(木) 03:16:37 ID:???
いずれにせよRDBMSのトランザクションのコンセプトを無視した要求で
ある事には間違いないけどね。

349 :NAME IS NULL:2009/12/10(木) 03:40:07 ID:???
読み取りと書き込みを別のトランザクションでやってるんじゃないかな。


350 :NAME IS NULL:2009/12/10(木) 05:45:52 ID:???
A1,A2,B,Cがそれぞれ何を意味するのかオレにはわからん。
お前ら、よくわかるな。感心する。

351 :NAME IS NULL:2009/12/10(木) 10:03:02 ID:???
そういうをレースコンディションていうんですかね?
・田中のトランザクションが終わるまで
 山田にトランザクションを開始させない。(>>346)
・書き込み直前にfor updateで値を読んで、
 他者が更新してないことを確認してから更新する。
 更新されてたら何かハンドリングする。
他にもやりかたあるのかな。

352 :NAME IS NULL:2009/12/10(木) 22:44:40 ID:???
select for updateかとも思ったけど、田中コミット後もロックを継続することが
できたら解決するというのがわからんなぁ。

353 :342:2009/12/10(木) 23:44:45 ID:g/c/UJaz
リード時に更新日時(systimestamp)を取得しておき
アップデートするときに再度、更新日時を取得して
リード時の更新日時と違っていたらアップデートできない
ようにすれば防ぐことができると思ったんですが却下されました。

何か良い案は無いのでしょうか?

354 :NAME IS NULL:2009/12/11(金) 00:02:32 ID:???
何を防ぎたいのかがわかんない。

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

エラーが発生したらそれを捕まえて適切な処理したらいいんでない?

355 :NAME IS NULL:2009/12/11(金) 00:12:54 ID:???
>>353
山田がどうなればいいのか分からない。
それが却下なら、
田中がロック獲得→更新可
山田がロック獲得失敗→エラー又は参照のみ
しかないんじゃ?

356 :NAME IS NULL:2009/12/11(金) 00:43:38 ID:???
>>353

RDBMSのトランザクションがどういったものかまず理解してからそういった
要求出せと百万回言ってこい。
それが却下されるのなら適切なエラーハンドリング以外道が無いだろうよ。

357 :342:2009/12/11(金) 00:47:41 ID:w8ODXZPb
A2がCに変更できないのはあくまで1つの例であって、
他にもそういうパターンが多数あるんですよ。
全パターンそれぞれエラーハンドリングの処理を実装する
わけにもいかない規模なので、うまくOracleのロック機能
だけでできないでしょうか?

要するに、1人がデータAに対してトランザクションを開始したら
他のものはデータAに対してトランザクションを開始できなくしたいのです。
(ただし、リードは可能)


358 :NAME IS NULL:2009/12/11(金) 01:12:24 ID:???
相変わらずこういう人って、いろいろ質問が出ていても肝心の情報は
何も明かさないのね。

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

359 :NAME IS NULL:2009/12/11(金) 01:15:39 ID:???
>>357

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

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

はい、次の質問ドゾー。



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

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY;

でもDBをOracleでやる必要なんて、全く無いよね。

361 :NAME IS NULL:2009/12/11(金) 04:03:13 ID:???
>>357

そもそもトランザクションの単位はcommitもしくはrollbackが行われるまでだろ?
ところがそちらの要求はcommit/rollbackが行われた後でさえ他のユーザーからの
アップデートを許さないという。
ユーザーセッションの接続単位でトランザクションをコントロールしたいというのが
RDBMSのコンセプトからするとどれだけ無理な要求をしていることか・・・。

362 :NAME 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にデッドロックエラーが発生してしまいます。
これは回避できないのでしょうか?

363 :NAME IS NULL:2009/12/11(金) 23:33:05 ID:???
デットロックの解消方法は特にルールは決まってないから、
そういう動きをするのはオラクルの仕様なんだろう。
AもBも1,2の順でロックさせるのが基本、そうできない理由は何かあるの?

364 :NAME IS NULL:2009/12/12(土) 00:25:36 ID:???
>>362
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19215-02/consist.htm#887453


365 :NAME IS NULL:2009/12/12(土) 00:36:17 ID:???
>>362

つ〜か、デッドロックが発生する状況なんてものはアプリの設計がそもそも間違っているんだが?
そういった状況をOracle様側で解決してやるんだから、ありがたく思えというのがスタンスだよ。

366 :362:2009/12/12(土) 01:20:09 ID:???
回答ありがとうございます。
デッドロックの動作を確認するために人為的にデッドロックを起こしています。
説明不足で申し訳ありません。
>>362でユーザBではなく、ユーザAにエラーが発生する理由、
何かあると思うのですが、オラクルのみぞ知るなんでしょうか?

367 :NAME 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返す。

と個人的認識。
仕様を知りたいなら最低限バージョン情報が必要。
確実を求めるならサポートにどうぞ。

368 :362:2009/12/12(土) 02:49:00 ID:???
>>367
タイムアウトで判定しているのは分散トランザクションの
グローバル・デッドロックである、と理解したため、
4.のタイミングで一瞬でエラーになるローカル・デッドロックとは
別の話と考えていました。
ただ、ローカル・デッドロックではタイムアウトを省略している、
とすればとにかく先に待ちに入った方がエラーになると考えられる訳ですね。
なんとなく合点が行きました。ありがとうございます。

369 :NAME 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で件数を取ってみると、処理後でテーブルのデータ数は増えているのは間違いないのです。
そもそも統計情報の扱い方を間違っているのか、それとも・・・。
どなたかご教示お願い致します。


370 :NAME IS NULL:2009/12/12(土) 12:13:00 ID:???
いまどきは DBMS_STATS.GATHER_TABLE_STATS などを使うんじゃないかなー

371 :NAME IS NULL:2009/12/12(土) 13:06:50 ID:???
>>369

num_rowsは統計情報が取得されて初めて更新されるものだから。

372 :369:2009/12/12(土) 20:32:00 ID:???
レスありがとうございます。
てっきりanalyze文で統計情報を更新するものとばかり思っていましたが、違うのでしょうか?


373 :NAME IS NULL:2009/12/12(土) 20:39:50 ID:???
OracleはANALYZEコマンドは使わずにDBMS_STATSパッケージを使ってくれと言っている

374 :NAME IS NULL:2009/12/12(土) 21:47:05 ID:???
>>372
もう昔の話。

375 :NAME IS NULL:2009/12/16(水) 00:00:23 ID:BGzwbVQJ
jdbcコネクションプール(10g)使ってんだけど
トランザクション途中でtomcatがハングアップもしくは強制再起動した場合にロールバックされない。
Oracleの仕様っぽく暗黙コミットされるんだけど
対応方法ってある?

376 :NAME IS NULL:2009/12/16(水) 00:19:15 ID:???
>>375
conn.setAutoCommit(false);

377 :NAME IS NULL:2009/12/16(水) 00:48:03 ID:???
>>376

OTNの掲示板を見る限りではそれでは解決になってないらしい。

378 :NAME IS NULL:2009/12/16(水) 00:56:38 ID:???
>>375

- 実行中のトランザクションが存在する状態で、closeConnections() メソッドを実行しない
- closeConnections() メソッドを実行する前に、実行中のトランザクションをロールバックする
- JDBC Driver 10g からの新機能、暗黙的接続キャッシュを使用する

379 :NAME IS NULL:2009/12/16(水) 10:51:34 ID:???
>>378
暗黙的接続キャッシュってよくわかんないな。
コールバックとか使うといいの?


380 :NAME IS NULL:2009/12/16(水) 12:36:20 ID:???
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/concache.htm

381 :NAME IS NULL:2009/12/16(水) 14:01:13 ID:???
OracleConnection.close しないことにはコミット(暗黙的コミットを含む)されない
ってこと?

382 :NAME IS NULL:2009/12/16(水) 16:34:54 ID:???
ほんと、長さ0の文字列の扱いと暗黙コミットはOracleのうんこ仕様だよなぁ。

383 :NAME IS NULL:2009/12/16(水) 23:31:53 ID:Emdvo+qQ
確かにOracleうんこ仕様多いのよな。


384 :NAME IS NULL:2009/12/17(木) 01:46:51 ID:wRNRd0lz
WindowsXP + VMWareで、RACの検証環境を作りたいと思っています。
DBの規模は20〜30GB程度で、バッチ処理がメインのシステムです。

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

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


385 :NAME IS NULL:2009/12/17(木) 03:02:12 ID:???
>>384

最低でもCPUのコアは4つ。
クロックスピードは早ければ早い方が良いのは越した事はない。
メモリは32bit O/SだとMaxでも3GBちょっとしか認識しないが、取りあえず8GB積んで
認識していないエリアをGavotte RamdiskでRamdiskを作成、そこにページファイルを
作成する様にすればそれなりに動く様になる。
32bit O/Sはやはりメインメモリがどうしても制限事項となる。


386 :NAME IS NULL:2009/12/17(木) 18:13:26 ID:???
どうもシルバーです。

387 :NAME IS NULL:2009/12/18(金) 00:30:58 ID:/afUwtQE
オラクルの4000/1/1って何ですか?
タイムスタンプ型のデフォルト値ですか?

388 :384:2009/12/18(金) 01:53:56 ID:???
>>385
ご回答ありがとうございます。

OSは残念ながら32bitで決定なのですが、CPUは4コア、メモリも多めの機種にしてみます。
ありがとうございました。

389 :NAME IS NULL:2009/12/18(金) 04:34:57 ID:???
>>388

メモリはBIOSレベルで認識していないとGavotteでRamdisk作れないからそこの所注意な。
ちなみにVMWareで使うO/Sは何にするんだ?
32bit O/Sだと各VMWareに対して最大でも1.5GBずつぐらいしかメモリを割り当てられない
から、Oracle Instanceを起動させるとなるとかなりタイトになるとだけ言っておく。

390 :NAME IS NULL:2009/12/21(月) 16:57:36 ID:???
知識少なすぎて何から調べていいやら、、、すみません、助けてください。

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

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

すみません、何から調べたらよいでしょうか。。。

391 :NAME IS NULL:2009/12/21(月) 21:08:25 ID:???
USER数偽ってライセンス購入した場合、バレるもんなのかね。
安くなったとは言え高いわw

392 :NAME IS NULL:2009/12/21(月) 22:16:53 ID:???
>390
単純にJDBCのプール数(コネクション数)が減ったからじゃないの
管理対象サーバのJDBCのコネクション数って初期値と最大値が設定出来るよね
例えばJDBCのコネクション数を初期値1、最大値30とかで設定していると
管理対象サーバの再起動前のはオラクルから見たセッション数が30で
再起動後は1になるってことが起きるよ

普通はコネクションが増えた時のオーバヘッドを考慮して初期値=最大に
するんだけどね

393 :NAME IS NULL:2009/12/22(火) 00:29:31 ID:???
>>391
客が金出すならともかく自分達で金を出すなら無料のPostgreSQLにしとけ。

394 :NAME 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/

395 :NAME 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のディスクグループに作成出来る様になった。


396 :NAME IS NULL:2009/12/25(金) 00:29:49 ID:0yLbvf3m
Oracleの実行計画で、いつもMarge Joinにイラッとする
馬鹿すぎるよな、ふざけすぎ

397 :NAME IS NULL:2009/12/25(金) 03:23:33 ID:???
MargeじゃなくてMerge。
どう?またイラッとした?

398 :NAME IS NULL:2009/12/25(金) 03:31:38 ID:???
何にイラッとしてるのかわからん
トータルで見てMerge Joinがベストな選択なことはよくあることだろ
気に入らないならヒント使えよ

399 :NAME IS NULL:2009/12/25(金) 22:32:34 ID:???
oracleのorder byの並び順って何順でしょうか?
内部で使用しているcharacter set順でしょうか?

400 :NAME IS NULL:2009/12/25(金) 22:47:08 ID:???
>>399

またすごい質問が来たな。

401 :NAME IS NULL:2009/12/25(金) 23:37:07 ID:???
>>399
大体あってる。

402 :NAME IS NULL:2009/12/26(土) 00:34:19 ID:???
数値でもcharacter set順でソートされちゃかなわんよ。

403 :NAME 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行が選択されました。

404 :NAME IS NULL:2009/12/26(土) 02:19:20 ID:???
なにこれ

405 :NAME IS NULL:2009/12/26(土) 02:51:58 ID:???
alterゴニョゴョスルアル

406 :NAME IS NULL:2009/12/26(土) 02:54:49 ID:???
シルバーだかゴールドだかの黒本に載ってたな

407 :NAME IS NULL:2009/12/26(土) 05:23:37 ID:???
ttp://www.shift-the-oracle.com/sql/national-language-compare.html

NLS_SORTなんてのがあるのね。
知らんかった。

408 :NAME IS NULL:2009/12/26(土) 10:27:24 ID:???
>>403
知ったか乙

409 :NAME 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)

410 :NAME IS NULL:2009/12/26(土) 12:18:22 ID:???
この人なにがしたいの?

411 :NAME IS NULL:2009/12/26(土) 14:06:32 ID:???
知識無い奴をからかって楽しんでるに決まってるだろ。
教える気があるならスパっと教えるなり誘導するなりすりゃいいし、
教える気がないなら何も書かなきゃいいのに。

412 :NAME IS NULL:2009/12/26(土) 14:44:36 ID:???
SQL> ゴニョゴニョ

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

SQL> ゴニョゴニョ

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

・・・・ _/ ̄|○

413 :NAME IS NULL:2009/12/26(土) 18:43:55 ID:???
>>412
おもしろい。

414 :NAME IS NULL:2009/12/28(月) 03:15:11 ID:???
Oracle10gのサーバーパラメータファイルについて質問です。
インスタンスが稼働してる状態で、spfileをroot権限で削除したらマズいでしょうか?

415 :NAME IS NULL:2009/12/28(月) 06:26:29 ID:???
SPFILEをALTER SYSTEMで変更する時、対象をメモリかファイルかそれともその両方かを選べるだろ。
ファイルのみを手動、もしくはALTER SYSTEMで変更した場合、現在のインスタンスにすぐに反映されるかい?

416 :NAME IS NULL:2009/12/28(月) 06:29:20 ID:???
何のために削除するの

417 :NAME IS NULL:2009/12/28(月) 13:58:01 ID:???
>>414

別にインスタンスが突然シャットダウンしたりとかはしない。
だがRMANでバックアップをとっていて、 controlfile autobackupがonになって
いたりするとORA-19580やORA-27037が起きる。
またinit.oraから再作成すればこの問題は回避できるけど。
いずれにせよspfileで起動かけたのならそれを消す事はお勧めしない。

418 :NAME IS NULL:2010/01/04(月) 21:06:56 ID:???
order byのバイナリ順って文字コードでし?

419 :NAME IS NULL:2010/01/05(火) 00:33:29 ID:???
そうでし。

420 :NAME IS NULL:2010/01/05(火) 00:56:56 ID:???
シロちゃんを思い出した。ナツカシス

421 :NAME IS NULL:2010/01/05(火) 01:14:44 ID:???
>>418
具体的にはShift-JISでし。

422 :NAME IS NULL:2010/01/05(火) 22:28:17 ID:???
>>419-421
ありがとうございます!
おかげで顧客への説明が無事完了しました!
助かりました!

423 :NAME IS NULL:2010/01/06(水) 02:17:19 ID:???
shift-jisで説明したのかよ。。。

424 :NAME IS NULL:2010/01/09(土) 08:13:45 ID:???
Oracle10gのクライアントからOracle11gサーバへの接続は可能でしょうか?

425 :NAME IS NULL:2010/01/09(土) 10:34:17 ID:???
>>424

可能だしサポートもされている。

426 :NAME IS NULL:2010/01/12(火) 11:58:21 ID:???
select * from DBA_DATA_FILES
を実行すると「ORA-00942: 表またはビューが存在しません。」
というエラーになるんですが、
これ、DBA_DATA_FILESビューが作成されてないってことでしょうか。

427 :NAME IS NULL:2010/01/12(火) 13:48:03 ID:???
>>426
そのぐらいGoogleすると幸せになれるよ
ttp://www.google.co.jp/search?q=DBA_DATA_FILES+ORA-00942

428 :NAME IS NULL:2010/01/12(火) 13:59:53 ID:???
>>427
DBA_DATA_FILES って、システムで必ず作成されるビューじゃないんでしょうか…?

429 :NAME 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

430 :NAME IS NULL:2010/01/12(火) 14:37:28 ID:???
>>429
丁寧にありがとうございます。勉強してきます。。。

431 :NAME IS NULL:2010/01/12(火) 22:17:42 ID:???
>>426-430
単に権限がないだけと見た。

432 :NAME IS NULL:2010/01/13(水) 00:42:56 ID:???
おいらもそう思った。
どのユーザーでログインしている?
sysかsystemでログインして同じSQL実行してみ?

433 :NAME IS NULL:2010/01/13(水) 09:30:23 ID:???
>>431-432
systemでログインしたら、実行できました。。。
すみません、お騒がせしました。ありがとうございました。

434 :NAME IS NULL:2010/01/13(水) 17:46:08 ID:???
どなたか、情報をお持ちでしたら教えてください。

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

9iは、マニュアルに方法が記載されていました。
10gは、削除ではありませんが、再構築方法が記載されていました。
しかし、11gになると、それすら記載がありません。
(一応、catnoqm.sqlは、製品ディレクトリに存在しているようです)


435 :NAME IS NULL:2010/01/13(水) 22:21:43 ID:jl6Ejtg3
現在、仕事で使用する機会がありそうなのでOracleでSQLを勉強しています。
ある教本の練習問題をしていて気になったので質問させてください。

単純な受注に関するデータベースの問題です。
CUSTOMER_TとSLIP_Tというテーブルがあり、
CUSTOMER_Tは顧客コード、顧客の名前、顧客の住所が載っています。
SLIP_Tは受注番号、発注した顧客の顧客コード、受注した日が載っています。
2007年1月10日以降に受注したことのない顧客の名前を出力する問題なのですが私は以下のように解答しました。
SELECT CUST_NAME
FROM CUSTOMER_T
WHERE CUST_CODE != ALL(SELECT CUST_CODE
FROM SLIP_T
WHERE SLIP_DATE >= '2007-1-10');

しかし解答は以下でした。
SELECT CUST_NAME
FROM CUSTOMER_T
WHERE CUST_CODE NOT IN(SELECT CUST_CODE
FROM SLIP_T
WHERE SLIP_DATE >= '2007-1-10');

自分で簡単なデータベースを作り試してみたのですが出力結果は同じになりました。
この二つのSQL文の違いにどのような問題があるのでしょうか?よろしくお願いします。


436 :NAME IS NULL:2010/01/13(水) 22:22:25 ID:???
下げ忘れ失礼しました。。。

437 :NAME IS NULL:2010/01/13(水) 23:17:19 ID:???
ALLとかANYとか使う人はあまり見たことがない。

参考
ttp://oracle.se-free.com/dml/01_in.html

438 :NAME IS NULL:2010/01/14(木) 01:18:08 ID:???
>>434

http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19255-01/appaman.htm

439 :NAME 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


440 :NAME IS NULL:2010/01/14(木) 04:49:33 ID:???
マルチポストするなよ

441 :NAME IS NULL:2010/01/15(金) 13:03:55 ID:I594pvrx
ストアドファンクションの戻り値をレコードセットのように見せかける方法はないでしょうか?
select hoge_func(var1) as hoge from dual
としたいんですが、ファンクション「hoge_func」の中でデータを更新してるので、ORA-14551が出てしまいます。

中の更新ではEXCLUSIVEでテーブルロックをしているので、自立型トランザクションを使うのも避けたいのです。
何かいい方法は無いでしょうか?

442 :NAME IS NULL:2010/01/15(金) 18:41:41 ID:???
SELECT文の中に自立型でない更新を行う関数を入れることはできないはず。

443 :NAME 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 で検索しても、
ヒットしないし、これは今や不要なものでしょうか?

444 :NAME IS NULL:2010/01/16(土) 00:34:12 ID:Yf7zXe9E
>>443


マニュアルの oraocijdbc10.dll は、ocijdbc10.dllを間違えて記述したものだと思われる。
あと、ocijdbc10.dll はJDBC-OCI接続(TYPE2)の時は必要だけど、JDBC Thin接続(TYPE4)の時は不要。


445 :NAME 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

446 :443:2010/01/16(土) 01:19:53 ID:Jfzoknfk
>>444
なるほど。ocijdbc10.dllの間違いってのはあり得ますね。
となると、材料はそろっているはずか…
もうちょい、調査を続けます。

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

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

447 :441:2010/01/16(土) 17:16:05 ID:zkezsguh
>>442
やはり、回避方法はまったくないのですね。
単に、呼び出し元に(今回はPHP)戻り値を戻したいだけなのですが・・・。
(特に今回はトランザクションがらみなので)理屈は解りますが、不便ですねぇ・・・。

448 :NAME IS NULL:2010/01/18(月) 00:48:14 ID:???
>>447
>>441の様な場合に適用出来るかどうかは分からないけど、
ストアドプロシージャのOUT引数で、更新後のレコードのカーソル返してみたら?

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

更新して、カーソル返すっていう実装は行ったことがないので、うまくいくかどうかは分かりません。

449 :NAME IS NULL:2010/01/18(月) 15:28:07 ID:???
oracle client 8.1.7をダウンロードしたいんだが
色々ありすぎてどれが該当するのかわからん・・・
つか9iぐらいまでしか無理ぽ?

450 :NAME IS NULL:2010/01/19(火) 05:46:14 ID:???
今となっては9iすらダウソできなんいじゃね?

451 :441:2010/01/19(火) 09:20:10 ID:???
>>448
おっと、お返事ありがとうございます。
なるほど、OCIを直に叩くわけですか。
正直、今となってはあまりやりたくありませんが、他に方法が無いなら仕方ありませんよね。
どうしてもダメなら、最後の手段として可能かどうか試してみます。

452 :NAME 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"以外は全てチェックしてみました。

何が原因なのでしょうか;


453 :NAME IS NULL:2010/01/20(水) 14:37:36 ID:???
自己解決しました、
Firefoxでアクセスしてたのですが、IEからアクセスしたらダウンロードできました。
なおFirefoxではアドオンを有効/無効切り替えたり、キャッシュとかも全部消したのだけどダメでした。

454 :NAME IS NULL:2010/01/20(水) 17:58:04 ID:H8JMqDfQ
3月納期マシンはやっぱり Win7 ?、

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

困ったよ〜

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

(日本なら日本時間、アメリカならアメリカ時間で表示したい・・)

456 :NAME IS NULL:2010/01/20(水) 23:15:08 ID:???
もしかしてcurrent_dateでDB登録してる?

457 :NAME IS NULL:2010/01/20(水) 23:41:52 ID:zvRmg6ep
>>455

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



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

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

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

Date型で時差を考慮した時間で表示しようとするならば、
DB登録時に時間をUTCに変換してから登録する必要があるのでしょうか、、

459 :NAME IS NULL:2010/01/21(木) 00:15:49 ID:???
そもそもDBには直接接続してるのか、それともAPサーバを介して接続してるのか、
APサーバなら世界中にいくつもあるのか、そこら辺がまず不明すぎる。

460 :NAME IS NULL:2010/01/21(木) 00:27:24 ID:cIjY0AOd
Oracleは糞だけど、糞だからこそサードベンダーが育つっていう意見もある。けど実際どうなの?

461 :457:2010/01/21(木) 01:27:55 ID:ZZ4eoWKU
>>458

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



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

>>459

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

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

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

>>461

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

貴重なご意見、ありがとうございました。


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

464 :458:2010/01/24(日) 21:03:44 ID:???
遅くなりましたが、レスありがとうございます。

>>463

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

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

貴重なご意見、ありがとうございました。

465 :NAME IS NULL:2010/01/25(月) 09:56:47 ID:mg9WJfJF
Oracleの解説サイトに「検索したいレコード件数が、
レコード全体の5〜15%程度までの場合は、索引スキャンの方が
効率的」と書いてありましたが、5%未満の場合はどういう
検索方法をすれば良いのでしょうか?


466 :NAME IS NULL:2010/01/25(月) 10:00:48 ID:???
>>465
日本語って難しいよな
まず日本語の勉強からやり直せ

467 :NAME IS NULL:2010/01/25(月) 12:34:08 ID:???
>>465みたいなのがカウンターになると大変だな。

468 :NAME IS NULL:2010/01/25(月) 21:20:44 ID:???
>>465
>>465
>>465
>>465
>>465
>>465
>>465
>>465


469 :NAME IS NULL:2010/01/26(火) 08:02:34 ID:???
クソ意地の悪いスレだなw
>>465
「程度までは」主意で、〜は範囲というよりaboutのニュアンスに近い。

470 :NAME IS NULL:2010/01/26(火) 08:59:10 ID:???
>>465
一杯釣れたな

471 :NAME IS NULL:2010/01/27(水) 01:47:00 ID:???
>>465

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

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

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

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


あと、参照元が分かっているのなら、そのURLを挙げておけば、前後の文脈も含めて
誰か答えてくれるかもしれないし、他の人の参考にもなる(かもしれない)

472 :NAME IS NULL:2010/01/28(木) 18:15:28 ID:PjULwI2f
すいません 教えてください

今までVB内で書いてたSQLをすべてPL/SQLに移行して
VBからパッケージのストアドをキックするように変更依頼が来たんですけどPL/SQLでカーソルを使わんで
普通にUPDATE文とかって書いて動きます?


473 :NAME IS NULL:2010/01/28(木) 20:31:25 ID:K33IZ3Yv
こんばんは。
4、5年前にオラクルマスターを持っている人を紹介してあげるって言われたんだけど、データベース扱ってる人って神経質そうなイメージだったんで断ってしまいました。
実際のところはどうなんでしょうか?
私は惜しいことをしてしまったんでしょうか…

474 :NAME IS NULL:2010/01/28(木) 23:34:52 ID:???
>>473
人それぞれ

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

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

俺は、資格よりもコミュニケーション力と
技術力が大事だと思うよ。


475 :NAME IS NULL:2010/01/28(木) 23:57:58 ID:???
>>472
VBって一言で言われても、VB6なのかVB.NETなのか
ミドルウェアも何使ってるかわかんないから答えようがないよ

476 :NAME IS NULL:2010/01/29(金) 00:09:29 ID:???
>>473
どういう意味で紹介されたかによる。

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



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

478 :465:2010/02/02(火) 13:24:02 ID:OxwPS9HL
>>469 >>471

ご回答ありがとうございましたm(__)m
やはりそうですよね。
@ITの
http://www.atmarkit.co.jp/fdb/rensai/orasql02/orasql02_2.html
の記事に書いてありました。

479 :NAME IS NULL:2010/02/02(火) 17:27:25 ID:2dyu5lrG
すいません
SQLのテスト仕様書ってどんな事を書けばいいんですか?

480 :NAME IS NULL:2010/02/02(火) 17:28:59 ID:???
オラクルの試験って週何回ぐらいやってるんですか?
あとギターベースのスレどこ?

481 :NAME IS NULL:2010/02/02(火) 20:14:10 ID:???
>>479
考えうるパターン全部網羅すればいいんだよ。
全パターン網羅がめんどいなら上手く手を抜く。

482 :NAME IS NULL:2010/02/02(火) 20:42:06 ID:???
11gR1(11.1.0.6)をHyper-V上のWin2008にインストールしたんだけど
DBConsoleのサービスを起動しているともっそい動きが遅くなります
同じ症状が出て解決した方いませんか?

483 :NAME IS NULL:2010/02/02(火) 21:10:27 ID:???
メモリを増やせば?

484 :NAME IS NULL:2010/02/03(水) 01:33:43 ID:???
>>479
普通の単体試験といっしょでいいんじゃない?
基本的には、正常系、異常系、境界試験あたり。


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

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


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


つか、私はアプリ屋さんじゃなくて運用系の人間なので、ひょっとしたら項目や観点に
過不足があるかもしれない。
経験者に確認されたし。


485 :NAME IS NULL:2010/02/03(水) 01:43:44 ID:???
>>482
何かがボトルネックになっているんじゃないかな。
パフォーマンスログを見て、原因を確認してみたら?

パフォーマンスを見れば、遅くなっている原因がCPUなのか、それとも
メモリ不足でページアウトが頻繁に起こっているのか、それ以外の原因なのか、
あたりがつけられると思う。

486 :NAME IS NULL:2010/02/04(木) 13:53:33 ID:???
指名ユーザライセンスがさらにぼったくりに・・・。

487 :NAME IS NULL:2010/02/05(金) 14:59:53 ID:VzQ4eaiA
カーソルでループさせてアップデートすればいいのに
inner joinとか複雑なの使って一回のSQLでアップデートさせようとする東京のSE!
お前は馬鹿なの?オラクルだからループで回した方が早いって行ってるのに
私を馬鹿にした報いだ!社長にチクってやったらクビざまー(笑)

488 :NAME IS NULL:2010/02/05(金) 23:11:18 ID:BmXSPH+8
>>487

一回のSQL文で更新した方がREDOの発生量を抑えられるから、
一概にどの方法が良いとはいえない。


489 :NAME IS NULL:2010/02/05(金) 23:23:14 ID:???
オラクルだからとか…
少ない経験則に基づく決めつけほど愚かなものはないと知れ

490 :NAME IS NULL:2010/02/05(金) 23:36:52 ID:???
件数が少ないならカーソルループでも十分だけど、
多くなってくるとSQL 1文ですますなら並列化もできるしね。
EE限定だけど。

491 :NAME IS NULL:2010/02/06(土) 02:08:39 ID:???
>>488
実際やってみりゃわかるが、たいした軽減にはならんぞ。


492 :NAME IS NULL:2010/02/06(土) 03:49:57 ID:???
ループで回した方が速いってことは、まずなかろ。
ヘタレなSQLを書きゃ別だが

493 :NAME IS NULL:2010/02/06(土) 09:33:20 ID:???
>>487
カーソルでループさせた方が「速いと思う」なの?
それとも「速かった」なの?

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

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

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


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

UNDO領域使ってても、その辺りはいっしょかな? UNDO領域になってから
その辺の動作を試した事がないので、よく分からん。


494 :NAME IS NULL:2010/02/06(土) 15:01:25 ID:???
UNDO表領域になってから、というか最近はディスクもでかいし、ORA-1555なんて見なくなったなー

495 :NAME IS NULL:2010/02/06(土) 15:04:23 ID:2cHN8Zec
カーソルは複数個バンバン使って一重ループの直列処理で書く
ヒントは見やすい
東京から来た馬鹿は無職になるといいよ

496 :NAME IS NULL:2010/02/06(土) 16:07:42 ID:???
「早い」から「見やすい」に誤魔化すのは田舎のジジババクライアントには
通用するだろうけど東京では通用しないから以後気をつけるように

497 :NAME IS NULL:2010/02/06(土) 16:09:46 ID:???
おっと、言い忘れたが
カーソルは複数個バンバン使って≠見やすい
の点も注意しろよ

498 :NAME IS NULL:2010/02/06(土) 16:32:29 ID:???
>カーソルは複数個バンバン使って一重ループの直列処理で書く
結合するの知らないってこと?

499 :NAME IS NULL:2010/02/06(土) 16:47:22 ID:???
大規模な更新処理とかで、内部に極大ソートとかが入る場合は
オンメモリになるように設定されたファイルシステム上に一度キーを吐き出させて
高速な外部ソートツールでソートさせて食いなおさせるとかするとけっこう高速化する。

あとは、1回の与えられた時間では処理が完了しないことを前提に、
コミット切りながら何回かに分けて処理を行うって場合は多いね。

500 :NAME IS NULL:2010/02/06(土) 17:01:03 ID:???
>>499
たぶん田舎にそんな大きな仕事は落ちてこない

501 :NAME IS NULL:2010/02/06(土) 17:43:39 ID:???
そんな特別な場合の話はしとりゃせんのじゃろ。
「オラクルだから〜」とか言うとるのじゃけ。

502 :NAME IS NULL:2010/02/06(土) 19:45:31 ID:???
>>495
ぐだぐだ言ってねえで、inner joinとPL/SQL?両方のSQLトレースをうp。


>>499
そういや、前にどっかで、日立のISAMだかを使ってやってたなぁ。

503 :NAME IS NULL:2010/02/06(土) 20:04:36 ID:???
2chでSQLトレースupとかバカだろ

504 :NAME IS NULL:2010/02/06(土) 23:49:01 ID:???
>>503
お前・・・まさか自分はバカ以外の何かだと思ってるの?

505 :NAME IS NULL:2010/02/07(日) 01:59:41 ID:???
クライアントがカーソル使って書けって言ってんだよ
ここもつかえね〜奴ばっかだな
ここの連中より、うちの堺工場の工員の方が優秀だわ(笑)


506 :NAME IS NULL:2010/02/07(日) 03:36:26 ID:???
カーソルでループさせてアップデートした方が早い
※ ×早い
  ○速い
       ↓
カーソルの方が見やすい
       ↓
クライアントがカーソル使って書けって言ってんだよ


フリーザだったら、もう3段階残ってるな。

507 :NAME IS NULL:2010/02/07(日) 04:43:25 ID:???
オラクルだからどうとか大上段に振りかぶらずに
最初からそう書けばええじゃろ。

508 :NAME IS NULL:2010/02/07(日) 05:21:11 ID:???
>>507
そんな事書いたら最初の発言自体が意味不明になるわな

509 :NAME IS NULL:2010/02/07(日) 06:00:06 ID:???
10gのEMが英語表記なんだけどこれってデフォルトだったっけ?
日本語表記に変えたいんだが、変えれたっけ?

510 :NAME IS NULL:2010/02/07(日) 06:16:55 ID:???
最初の発言自体にどんな意味があるの

511 :NAME IS NULL:2010/02/07(日) 09:02:29 ID:???
>>509

ブラウザの言語設定を変えたらいいよ。

512 :NAME IS NULL:2010/02/07(日) 11:41:51 ID:???
>>509

ブラウザの優先の言語設定を日本語に変えればいいだけ。
ただしもしEMのインストール時に日本語オプションを選んでいなかったら
日本語の一部が□□□□とかって文字化けする。

513 :NAME IS NULL:2010/02/07(日) 19:27:17 ID:???
Oracle 10g 、Redhat Linux、GNU Cを使います。
どうやって開発したらいいですか?

514 :NAME IS NULL:2010/02/07(日) 20:00:05 ID:???
エスパーじゃないので、それだけの情報ではコメントするのも無理です。

515 :NAME IS NULL:2010/02/07(日) 20:05:53 ID:???
C言語からOracleにアクセスするにはOCIを使うんでしょうか?

516 :482:2010/02/07(日) 21:13:37 ID:???
>>483>>485
亀レスですいませんがありがとう
パフォーマンスログ確認とメモリ増やして試してみます
あと、実機でも試してみます

517 :NAME IS NULL:2010/02/08(月) 02:59:56 ID:???
だからさ
PL/SQLでグリグリぶん回せや
アホなSQL厨にPL/SQLでぶん回した方が速いって啓蒙しないと

518 :NAME IS NULL:2010/02/08(月) 05:15:46 ID:???
切り口を変えてきたなw

519 :NAME IS NULL:2010/02/08(月) 08:55:01 ID:???
Pro*Cってまだあるのかな。

520 :NAME IS NULL:2010/02/08(月) 14:34:14 ID:FyhidEnB
SQL厨をクビにして業務委託に追い込んだのに
パラメータカーソルとか言うの使ってきやがった

二重にループを回すとか、東京もんは男らしくない
どうせスレも覗いてるんだろ?速く消えて関東に逃げ帰れ

521 :NAME IS NULL:2010/02/08(月) 14:42:19 ID:???
これでも意味のある発言と言えるかね?

522 :NAME IS NULL:2010/02/08(月) 16:53:21 ID:???
>>520
確かにSQL厨は男らしくなわな
inner joinとか女々し過ぎ
オラクルなんだからwhere句で=使って結べばいい
カッコつけすぎて無駄なモン書きすぎだよね

しかし、ほんとに東京モンは使えねえな

523 :NAME IS NULL:2010/02/08(月) 17:33:51 ID:???
>>520
同意
一回のトランザクション内だから複数のカーソルでええやんなw

524 :NAME IS NULL:2010/02/08(月) 20:53:05 ID:???
>>520
あんたには単価の良いお客さん向けのドキュメントは書かせられないな

525 :NAME IS NULL:2010/02/08(月) 23:53:20 ID:???
みんな何言ってるのか分かんねえよ!
でも段々面白くなってきたw

今の論争は、SQL厨 VS PL/SQL厨 VS OCI厨 なのか?

526 :NAME IS NULL:2010/02/09(火) 01:48:33 ID:5sfGunk8
東京のSQL厨涙目www
クビになって悔しいよなw
OUTER JOINとか得意げに使ってんじゃね〜よwww

527 :NAME IS NULL:2010/02/09(火) 01:51:45 ID:c2H9r7vs
いまどきはINNER JOINとOUTER JOINは普通に使うでしょ。
Oracleに限ってはWHERE派が多いのは事実

528 :NAME IS NULL:2010/02/09(火) 02:03:30 ID:???
WHERE=だと無駄が多くね?

529 :NAME IS NULL:2010/02/09(火) 02:10:48 ID:???
無能と性格異常でクビになった人が逆の立場を夢想してるスレはここですか。

530 :NAME IS NULL:2010/02/09(火) 02:17:37 ID:5sfGunk8
SQL厨登場(笑)

531 :NAME IS NULL:2010/02/09(火) 05:42:51 ID:???
論争になってないがな
カーソルで回すほうが速い理由を説明するならともかく
どう考えても「東京もん」のほうがまともじゃろ
わしは529が正解だと思うぞ

532 :NAME IS NULL:2010/02/09(火) 19:10:50 ID:???
>OUTER JOINとか得意げに使ってんじゃね〜よwww

え、もしかしてご存じでない…?

533 :NAME IS NULL:2010/02/09(火) 19:15:56 ID:???
オラクルではINNER JOIN使うよりも
FunctionをSQL内で使って値を取ってくる方が速い件

534 :NAME IS NULL:2010/02/09(火) 21:29:16 ID:2iVc1Ngh
ところで、SQLのコーディングルールみたいなのってどうしてる?
キーワード(例えばSELECTとかUPDATE)は大文字、項目名称は小文字にするとか。
SELECT文とかで、削除しやすいようにカンマはフィールドの前にするとか。

SELECT
A
,B
,C
FROM TABLE_A

それと、プログラムから参照する場合はテーブルを直接参照するんではなく、ストアドから呼び出すとかわりと徹底しているところもあるよね。


535 :NAME IS NULL:2010/02/09(火) 21:40:51 ID:???
>>534
単独開発なのか、複数協力会社参画での開発なのかによって変わる。
後者になって複雑になればなるほど、
「select *」で列指定するのは禁止&ゲッター/セッターなどでも
カラム位置指定での取得は禁止、とか
必ずストアドやビューを経由しろ、とかになってく。

コーディングルールについては、分かりやすさを犠牲にした小手先の技は使わないところが多いだろう。
項目名称は大文字のPJが多かった印象。

536 :NAME IS NULL:2010/02/10(水) 02:24:01 ID:???
DBの設計というか、ER図とかについての質問は
どこでしたらいいでしょうか・・・?

537 :NAME IS NULL:2010/02/10(水) 02:39:51 ID:???
ここくらいかなぁ。。。

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


質問によっては、ここで聞いてもいいかもしれん。叩かれるかもしれないけど。

538 :NAME IS NULL:2010/02/10(水) 02:44:45 ID:???
断然先頭カンマ派

後ろにつけるやつは爆発しろ

539 :NAME IS NULL:2010/02/10(水) 03:33:06 ID:???
>>537
T字の場合ERの意味が違うからな。
T字はEntity-relationshipじゃなくてEvent-Resourceだったと思う。


540 :NAME IS NULL:2010/02/10(水) 05:57:15 ID:???
>削除しやすいようにカンマはフィールドの前にするとか
理由としては弱すぎる
前につけようが後につけようがたいして変わらん
単なる好みの問題
538みたいな奴もいる

145 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]

取りに行ったけどなかった。次は一時間後に取りに行くです。
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)