Oracle 質問総合スレ4at DB
Oracle 質問総合スレ4 - 暇つぶし2ch1:NAME IS NULL
09/08/23 11:41:21 e4fFukP4

◆前スレ

Oracle 質問総合スレ3
スレリンク(db板)

◆過去スレ

Oracle 質問総合スレ2
スレリンク(db板)

Oracle 質問総合スレ
スレリンク(db板)

◆公式サイト

OTN-J
URLリンク(www.oracle.com)

OTN
URLリンク(www.oracle.com)

Certify - Oracle's Certification Matrices・・・動作環境(システム要件)確認
URLリンク(www.oracle.com)


1. 質問する時はDBのバージョンとプラットフォームぐらいは書きましょう。
2. OTNからダウソ出来るものは、30日過ぎても別に機能的に制限が
かかるという訳ではありません。あくまで紳士協定に基づいて、
 削除してくださいという事です。


2:NAME IS NULL
09/08/23 13:09:16
おつ

3:NAME IS NULL
09/08/24 09:55:08
>>1
おつ

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

5:NAME IS NULL
09/08/24 11:48:02
>>4
USとJPは別々だね。

6:4
09/08/25 12:34:21
やっぱそうか・・・
ありがとござます。

7:NAME IS NULL
09/08/25 23:41:50 5xfpHV6A
age

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

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

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

9:NAME IS NULL
09/08/26 23:27:45
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
09/08/27 00:51:29
>>8

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

11:NAME IS NULL
09/08/27 00:52:32
>>9

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

12:NAME IS NULL
09/08/27 01:25:08
>10

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

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


13:NAME IS NULL
09/08/27 01:33:22
>>12

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

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

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

15:NAME IS NULL
09/08/27 07:53:47
>>13
スラッシュだとおも

16:NAME IS NULL
09/08/27 08:26:07
>>13

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

17:NAME IS NULL
09/08/27 10:23:52
日本語なんて通じればいいんだよ

18:NAME IS NULL
09/08/27 18:56:31
>>17
日本語じゃないとおも

19:名無しさん@そうだ選挙に行こう
09/08/30 11:20:05 IiFjmKoL
変な質問で申し訳ありません。
oracleとmysqlのパフォーマンス(select検索やupdateの処理速度)は
やはりoracleの方が断然早いのでしょうか?


20:名無しさん@そうだ選挙に行こう
09/08/30 17:52:55
全然mysqlの方が速いよw

21:名無しさん@そうだ選挙に行こう
09/08/30 17:54:49
Oracleは個人と法人とでの態度の違いが露骨

22:名無しさん@そうだ選挙に行こう
09/08/30 18:46:54
質問なんですが
テーブルのカラムのdefault値ってどのようなときに使用しますか?
うちのところだと、すべてのカラムがNotNull設定だからdefault値をすべての設定して
いると聞いたんですが、すべてに対してdefault値を設定する必要あるんですね?

個人的に、NotNullの設定だけして、default値を設定しないほうが
挿入カラムの入れ忘れしたときにエラーを返してくれるから便利だと思うのですが。

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

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


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

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

25:NAME IS NULL
09/09/01 16:46:21 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
09/09/01 18:20:59
SELECT AB, (AB+C) AS ALL
FROM (SELECT (A+B) AS AB, C FROM ENZAN)


27:NAME IS NULL
09/09/01 22:36:43
>>26に同意

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

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

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

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


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


つかね。OUI別物杉w


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

33:NAME IS NULL
09/09/03 20:14:30
激安激遅の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
09/09/03 23:13:56
Windows7 RC (32bit)でOracle 10gR2 Vista 32bit。
RDBMSとリスナーは大丈夫そうでした。
特に問題なく動いてます。
当然クライアントコンポーネントもイケる感じです。

Windows7で10gR2がサポートされるかどうかは
望みが薄いかな、と思ってましたけど
10gR2は現在主流のリリースだから期待してます。
Vista 32bit版10gR2はWindows7 32bitでも動作します、
なんて案内を出してくれれば最高です、ORACLE様。

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


36:NAME IS NULL
09/09/05 22:00:37
Vista x64+10gR2 x64 (10.2.0.4)でシステム開発してる人いますか?

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

なんだかなあ・・・
ウチの製品、Vista x64+10gR2 x64は、正式サポートを当面見送ろうかな。
x64対応は、Windows 7 x64+11gR2 x64を評価してから、また考えようかな。


37:NAME IS NULL
09/09/05 22:36:06
>>36

Oracleに聞けよ。


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

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

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

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

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


40:NAME IS NULL
09/09/08 20:09:07
【DB】MySQL
【レコード】2億以上
【総データ量】150GB以上
【サーバー】自作自宅サーバー
【維持コスト】電気代と光回線代とISP計月10000円程度
【作成】メモ帳、ペイント

★メイン→URLリンク(gm.bpa.nu)<)


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

42:NAME IS NULL
09/09/08 21:27:36 D/yRoqvB
>>41

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


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

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

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

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

45:NAME IS NULL
09/09/09 01:52:18
上司の意向

46:NAME IS NULL
09/09/09 04:16:33
>>44

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

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

47:NAME IS NULL
09/09/09 07:29:52
Windows/Linux/Solaris(x86)版Standard Edition Oneで
動くんじゃないかな。RACは使えないけど。
機能:URLリンク(software.fujitsu.com)
コイツはCPUをソケット数でカウントしてOK。

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

RACを使いたいとか、2ソケットを超えて使いたいなら
URLリンク(www.oracle.com)
URLリンク(www.oracle.com)

48:NAME IS NULL
09/09/09 07:30:50
ミスッた。>>47は、>>43向け



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

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

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

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

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

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


53:NAME IS NULL
09/09/11 01:36:30
>>50 産休!

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

55:NAME IS NULL
09/09/17 22:24:19
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
09/09/17 23:55:51
net_service_name はクライアントがアクセスするときの名前で、
service_name はインスタンスがサービスとして見せるときの名前。


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

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



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

60:NAME IS NULL
09/10/02 00:42:28
例えば?


61:NAME IS NULL
09/10/02 00:45:49
ORA-600頻発。

62:NAME IS NULL
09/10/02 01:24:36 apfhpyid
>>59

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


63:NAME IS NULL
09/10/02 01:46:19
オラクルのエラーマニュアルって結構親切だと思うけど。
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
09/10/02 06:49:43 91URBOIM
Googleのオフィス
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)
URLリンク(www.officesnapshots.com)

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

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

66:NAME IS NULL
09/10/02 21:42:06
クソだなそれ。

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

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

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

70:NAME IS NULL
09/10/03 10:15:58
>>69
クッキー焼いてくれる

71:NAME IS NULL
09/10/03 12:23:46 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
09/10/03 12:25:05
そのためにはまずA氏のスリーサイズを教えてもらわないことには・・・

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


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


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

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

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


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

78:NAME IS NULL
09/10/04 07:19:00
>>76
世間知らずだな。

79:NAME IS NULL
09/10/04 09:59:41
>>75

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

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


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

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

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

81:NAME IS NULL
09/10/04 11:59:02
グローバル仕様です

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

83:NAME IS NULL
09/10/04 14:39:46
>>80

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

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


84:NAME IS NULL
09/10/04 15:13:04
なに顔真っ赤にしちゃってんの?

85:NAME IS NULL
09/10/04 18:54:05
>>84

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


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

87:NAME IS NULL
09/10/04 21:00:25
必死すぎる。

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


89:NAME IS NULL
09/10/04 23:05:54
>>80

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

90:NAME IS NULL
09/10/04 23:07:07
>>76

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


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

92:NAME IS NULL
09/10/04 23:48:26
selectで表レベルでlockとかマジなのか

93:NAME IS NULL
09/10/05 00:07:41
>>88
そうなんだよなぁ。。。

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

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


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

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

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

98:NAME IS NULL
09/10/05 21:24:13
>>94さんは>>76さんですか?

99:NAME IS NULL
09/10/05 22:13:28
>>98

そうだけど、何か?

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

101:NAME IS NULL
09/10/06 10:03:39
>>100
中には大規模システムも入っていると思うけど?
URLリンク(software.fujitsu.com)
URLリンク(www.microsoft.com)
URLリンク(www-06.ibm.com)
何をもってOracle以外が珍しいと言っているのだろう、世界狭いな。

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

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


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

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

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

なのでSQLServerはないな

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

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

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



108:NAME IS NULL
09/10/07 01:31:50
アホは喋らない方が良い

109:NAME IS NULL
09/10/07 07:48:31
>>107
バカは喋らないほうがいい

110:NAME IS NULL
09/10/08 13:27:59
すいません、教えてください。

・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''';
と書くと、バインドされなくなっている気がする。
ここはどう書くべきです?
ここを読んでみたけどよくわからない・・・。
URLリンク(www.shift-the-oracle.com)

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

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

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

114:NAME IS NULL
09/10/08 21:35:49
もう人生からエスケープしたい

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

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

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

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


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

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

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

122:NAME IS NULL
09/10/11 18:42:48 ik/XDQBh
>>120
>>121

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

123:NAME IS NULL
09/10/11 18:55:13
質問

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

124:NAME IS NULL
09/10/11 19:04:29
>>123

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



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

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

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

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

128:NAME IS NULL
09/10/12 21:50:25
STATSPACKのレポートのことで質問します

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

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


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

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

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

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

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

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



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

135:NAME IS NULL
09/10/18 15:58:49
OTNの掲示板ダメダメだな。

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

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

136:NAME IS NULL
09/10/19 19:46:16
>>135

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

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

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

138:NAME IS NULL
09/10/19 21:59:45
客にushitaki情報とでも言っておけ

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

140:NAME IS NULL
09/10/20 22:37:33
会社でoracle8i使ってます。

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


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

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

141:NAME IS NULL
09/10/20 23:10:02
っvm

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

143:NAME IS NULL
09/10/20 23:36:38
cp -all

144:NAME IS NULL
09/10/20 23:51:49 N4dazINZ
>>142

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

145:NAME IS NULL
09/10/21 01:45:39
>>142

RMAN最強伝説!

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

147:NAME IS NULL
09/10/21 16:19:06
>>146

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

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

149:NAME IS NULL
09/10/21 18:17:15
RMAN使ってる奴っているの?

150:NAME IS NULL
09/10/21 19:16:30
>>148

すばらしい。

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

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


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


152:NAME IS NULL
09/10/21 21:30:18
>>151

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

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


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

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


テーブル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 高橋


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
09/10/21 22:48:16 ZMSB+uaT
発想がExcelなんじゃねーの?

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

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

158:NAME IS NULL
09/10/21 22:57:00 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
09/10/21 23:01:57
>>150
RMANで制御ファイルとSPFILEだけバックアップってありですか?
データ壊れたときは別でとっておいたExportで復旧するの

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


161:NAME IS NULL
09/10/21 23:10:06 6akxOwMs
>>160
おうがんばれー

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

163:NAME IS NULL
09/10/21 23:16:13
>>162
区分テーブルなんじゃね

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

165:NAME IS NULL
09/10/22 00:24:30
②のテーブルから①のビューを作るのが普通だと。

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

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

167:NAME IS NULL
09/10/22 01:52:35
8.1.5から10g_Expressへの移行考えてる。

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

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

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

169:NAME IS NULL
09/10/22 05:50:49
>>150

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


>>159

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


170:NAME IS NULL
09/10/22 05:52:21
>>167

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

171:NAME IS NULL
09/10/22 05:53:38
>>160

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

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

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

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

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

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

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

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



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

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

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

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

179:NAME IS NULL
09/10/22 23:03:26
>>177
URLリンク(luna.gonna.jp)
URLリンク(www.atmarkit.co.jp)

180:NAME IS NULL
09/10/22 23:15:07
>>173

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

>>178

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

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

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

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


182:NAME IS NULL
09/10/23 00:20:59
RMANなんか使うのか?

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

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

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


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


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

187:NAME IS NULL
09/10/23 05:15:41
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
09/10/23 06:52:52
Oracle8iからOracle10g XEへの引っ越し
URLリンク(www.avant-tokyo.com)

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

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

190:NAME IS NULL
09/10/23 07:36:17
Windowsで環境設定
set NLS_LANG=JAPANESE_JAPAN.AL32UTF8

191:NAME IS NULL
09/10/23 19:42:34 SBGcMn+b
CentOSでOracleが流行なのか

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

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

194:NAME IS NULL
09/10/24 00:43:06
>>190
やったけど、expした時にoracleエラーで弾かれる。
AL32をカットして、Japanese.utf8なら弾かれないけど、
今日調べてみたら、まともに見れない表が多々あるね。SJISのまんまだ。

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

oo4oを使ってなければ、MySQLにでも乗り換えるんだが……。
同じ理由でLinuxも無理だった。

195:189=194
09/10/24 00:55:03
クライアントの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
09/10/24 05:42:26
win98だからダメとか、クライアントを2つ入れてるからダメとか、InstantClientはoo4oに対応してないとか、
そんな理由じゃない。

197:NAME IS NULL
09/10/24 06:50:08
>>195
レジストリHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
の設定の大半が、8iの設定であるために、8i優先になっているのでは。

まずは、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
がマッサラなPCを用意して、Instant Clientを入れて試してみる
のが手っ取り早いかも。


198:NAME IS NULL
09/10/24 11:27:44
>>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
09/10/24 23:27:20 Xd1QwCkQ
まだ98つかてるところあるのか

200:NAME IS NULL
09/10/25 12:48:12
URLリンク(www.orchid.halfmoon.jp)

ここを参考に(というかまったく同じで)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
09/10/25 13:11:46
iniサービス名.oraのファイルに
large_pool_size=4194304
shared_pool_size=62914560
streams_pool_size=0
と他のサイト見て追加したら通った。

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

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

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

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

よろしくお願いします。

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

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

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

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

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

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


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

さらに続ける。

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

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

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

209:NAME IS NULL
09/10/27 00:44:17
>>207

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

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


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

212:NAME IS NULL
09/10/27 07:02:10
UPDATE TABLE SET TEXT=REPLACE(REPLACE(TEXT,'<BR>',CHR(10)),'&','&')
WHERE TEXT LIKE '%<BR>%' OR TEXT LIKE '%&%'

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

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


214:NAME IS NULL
09/10/28 12:48:30
オラクルというより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
09/10/28 13:00:47 g69HuQDu
あ、3,4の電話は実際は違う値です。

216:NAME IS NULL
09/10/28 13:37:39
でっけぇ釣り針だな、おい

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

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

219:NAME IS NULL
09/10/28 23:03:00 X/2djzan
XE windows版のAPEX3.2.1インストールに成功した人いる?
URLリンク(www.orchid.halfmoon.jp)

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

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




220:NAME IS NULL
09/10/28 23:09:21
apxconf.sqlじゃなくてapxldimg.sqlだった

221:NAME IS NULL
09/10/28 23:50:20
SJSI化+APEX3.2.1ね。連投失礼しました。

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

223:NAME IS NULL
09/10/31 21:25:53
>>222

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

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

225:NAME IS NULL
09/11/01 11:24:22
>>224

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

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


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


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

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

229:NAME IS NULL
09/11/10 21:52:01
>>227

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

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

230:NAME IS NULL
09/11/10 22:23:52
>>227 こーいうのとか?

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

C1 c1rep
-------------------- --------------------
1234567890 78
87218721 87 87
12781278 78 78

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

232:名前は開発中のものです。
09/11/11 18:53:39
質問です。

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

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

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

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


235:NAME IS NULL
09/11/12 03:06:27
>>234

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

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

237:NAME IS NULL
09/11/12 08:09:58

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

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

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

240:NAME IS NULL
09/11/13 01:58:18
11gR2のWindowsっていつ頃になるんだろう

241:NAME IS NULL
09/11/13 02:19:51
2099年中とあったはずだ

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

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

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

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

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

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

245:NAME IS NULL
09/11/14 10:58:58
Unicodeの最新はUnicode 5.2
ORACLEのバージョンによって、
どこまで対応しているか違う。
ORACLEのバージョンは必須情報。

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

ま、たいていは、環境変数NLS_LANGを
AMERICAN_AMERICA.AL32UTF8に
設定したらイケる。
SQL*Plusとかのメッセージが
英語表記になるけどね。そういうもんだから。

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

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

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

248:NAME IS NULL
09/11/16 01:11:47
>>246

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

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

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

251:NAME IS NULL
09/11/18 00:37:19
OSごとに別会社に委託

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

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

253:NAME IS NULL
09/11/18 12:15:29
>>252

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

254:NAME IS NULL
09/11/18 22:22:59
>>254
オラクルのオラクルのWebサイト等ってことです

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

255:NAME IS NULL
09/11/18 22:32:07
>>254

ネタに(略

256:NAME IS NULL
09/11/18 22:41:17
ネタだったのか…orz

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

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

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

259:NAME IS NULL
09/11/19 11:47:16
>>257

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

260:NAME IS NULL
09/11/19 20:56:31
Oracel Exadata使ってる人いますか?

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

事例も少ないし

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


261:NAME IS NULL
09/11/20 00:38:32
>>260

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

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



263:NAME IS NULL
09/11/20 01:01:53
童貞の分際で。

264:NAME IS NULL
09/11/20 01:24:59 JpSM8BuE
は?

265:NAME IS NULL
09/11/20 01:36:07
消えろage厨

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

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

267:260
09/11/20 06:22:39
>>261,266
レスども

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

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



268:NAME IS NULL
09/11/20 06:31:33
11gR2てRACが前提なの?

269:NAME IS NULL
09/11/21 04:27:35
ITproの2009/09/16の記事から抜粋。

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

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

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

みたいな。。

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

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

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

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

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



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

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

間違ってたらスマン。

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

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

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

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

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


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

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



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

280:NAME IS NULL
09/11/26 00:51:51
またおまえか

281:NAME IS NULL
09/11/26 01:09:55
おれおれ

282:NAME IS NULL
09/11/26 01:15:15
やっぱりな

283:NAME IS NULL
09/11/26 19:49:06
>>278
HOSTコマンド

284:NAME IS NULL
09/11/27 00:34:07
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
09/11/27 00:43:45
いくらでもあります。

286:NAME IS NULL
09/11/27 00:47:17
文章の内容が悪かったようです。

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

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

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

289:NAME IS NULL
09/11/27 02:15:10
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
09/11/27 02:34:35
>>289
そもそも無名プロシージャというものを知らなかったので、
出来ると思いませんでした。
>>287の文は実行したらエラーになったし・・・


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

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

Oracle Database 10g Standard Edition Windows XP です。

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

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

292:NAME IS NULL
09/11/28 19:53:54
>>291

同じだよ。

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

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

294:NAME IS NULL
09/11/29 13:50:28
>>293

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

295:NAME IS NULL
09/11/29 14:42:03
いやです。
教えてください。

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

297:NAME IS NULL
09/11/30 23:42:53
>>296の追加だけど、Grid Infrastructure(CRS)のroot.shの実行中にSignal 11で死ぬ。
こいつと全く同じ現象。

URLリンク(forums.oracle.com)

もしかしてRH AS 5.4でテストしていない?


298:NAME IS NULL
09/12/01 19:27:21
RH AS 5.4などない。

299:NAME IS NULL
09/12/02 01:48:43
>>297
# uname -srmpio
# rpm -qa | grep -i oracleasm

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

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

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

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


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


302:NAME IS NULL
09/12/03 02:04:26 RG7qM8LP
ウイセブてなに?

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

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


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

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

308:NAME IS NULL
09/12/04 04:39:41
>>307

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

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

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

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


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

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

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


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

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

316:NAME IS NULL
09/12/06 17:09:59 XziuAWI9

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



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

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

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

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

320:NAME IS NULL
09/12/06 19:56:02
EM動かさなきゃいいじゃん。

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

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


322:NAME IS NULL
09/12/06 20:29:32
>>321

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



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


324:NAME IS NULL
09/12/06 21:39:27
>>323

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


325:NAME IS NULL
09/12/06 22:03:25
零細企業でもVISTAはないだろう、JK

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

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

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


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

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

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

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

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


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


神楽「お前ら死ね」


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

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

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

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

336:NAME IS NULL
09/12/08 20:28:24
Oracle 11g R1 Standard Edtition
Windows Server 2003 Standard Edtition

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


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


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

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

340:NAME IS NULL
09/12/09 04:06:49
>>336

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

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

342:NAME IS NULL
09/12/10 00:48:33 g/c/UJaz
Oracle 11g

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

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

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

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

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

345:NAME IS NULL
09/12/10 02:25:48
>>344

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

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

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

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

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

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

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

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


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

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

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

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

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

354:NAME IS NULL
09/12/11 00:02:32
何を防ぎたいのかがわかんない。

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

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

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

356:NAME IS NULL
09/12/11 00:43:38
>>353

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

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

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


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

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

359:NAME IS NULL
09/12/11 01:15:39
>>357

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

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

はい、次の質問ドゾー。



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

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY;

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

361:NAME IS NULL
09/12/11 04:03:13
>>357

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

362:NAME IS NULL
09/12/11 23:23:16
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
09/12/11 23:33:05
デットロックの解消方法は特にルールは決まってないから、
そういう動きをするのはオラクルの仕様なんだろう。
AもBも1,2の順でロックさせるのが基本、そうできない理由は何かあるの?

364:NAME IS NULL
09/12/12 00:25:36
>>362
URLリンク(otndnld.oracle.co.jp)


365:NAME IS NULL
09/12/12 00:36:17
>>362

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

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

367:NAME IS NULL
09/12/12 02:21:50
>>366
マニュアル案内したのに読んでないの?
URLリンク(otndnld.oracle.co.jp)
オラクルは単純にタイムアウト検出している。
なので
> 3.ユーザAがレコード2をロックしようとして、待ちに入ります。
が「4.」の処理で無限待ち確定。デッドロック判定で無条件で
タイムアウトされ60返す。

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

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

369:NAME IS NULL
09/12/12 10:35:44
下記のページにあるSQLを使って、とある処理後でデータ数が増えるテーブルの使用容量について調べています。
URLリンク(oshiete1.goo.ne.jp)
実際に流す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
09/12/12 12:13:00
いまどきは DBMS_STATS.GATHER_TABLE_STATS などを使うんじゃないかなー

371:NAME IS NULL
09/12/12 13:06:50
>>369

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

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


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

374:NAME IS NULL
09/12/12 21:47:05
>>372
もう昔の話。

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

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

377:NAME IS NULL
09/12/16 00:48:03
>>376

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

378:NAME IS NULL
09/12/16 00:56:38
>>375

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

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


380:NAME IS NULL
09/12/16 12:36:20
URLリンク(otndnld.oracle.co.jp)

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

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


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