Oracle 質問総合スレ

このエントリーをはてなブックマークに追加
1NAME IS NULL
このような質問は、今後このスレでしていきましょう↓↓

質問例
DB板自治・質問・雑談スレ(432)
http://pc8.2ch.net/test/read.cgi/db/1056957157/432
2NAME IS NULL:2006/11/19(日) 15:35:26 ID:???
    |┃三           `、 - 、_                 _,.  マ
    |┃三             `ヽ、~` - 、_  , -──、._,. - '  /
    |┃三               \    i' l´l l⌒l l`i   /
    |┃三                  \  |⊂⊃~⊂⊃|_ /    いやだ
    |┃三                  ⊂) ). ロ l⌒l ロ|)⊃
    |┃三                    ヽ.iコ `-´ ri/|  
    |┃三             , '⌒ ヽ_,. -/ヽ._,.旦,_ン. .|  , - 、
    |┃三          ,. - '~`ヽ      `ヽ、     :|, -~──'── 、_
    |┃三         >-─-、 |   , -─-、. `──── `       ヽ
    |┃三      ,  '    |::| |   |     |   ,───、 / ̄ ̄ヽ    i_.
3NAME IS NULL:2006/11/19(日) 16:10:11 ID:???
来週、職場にSANが導入されるのですが、新米DBAの自分に扱えるのかどうか?
そのSANってのは、8本HDDで構成されるRAIDなんだそうです。

それで、オラクルエキスパートの皆さんに質問したいのですけど
ASMを使ってSANを扱う場合、ディスクグループは単純にデータ用と
リカバリ用の二つにしちゃっていいでしょうか?

テーブルスペースも、テーブルと索引で分けたりする必要ないような
気がしてます。
4NAME IS NULL:2006/11/19(日) 20:39:14 ID:???
裸に靴だけってかなりエロくね?
http://life7.2ch.net/test/read.cgi/shoes/1163933647/

8 名前:足元見られる名無しさん[] 投稿日:2006/11/19(土) 19:33:06 ID:kUtuSe4x
>>6
カワユスw脚キレイー


自衛隊員のお姉ちゃんの昔履いてたアーミーブーツ?みたいなのあった。
裸にコレって結構エロかっこいいと思うんだけど。

ちょっと試着(笑)してくるノシ 
5NAME IS NULL:2006/11/21(火) 13:23:28 ID:ZVoUNrAm
すいません。PL/SQL でカーソルを作って select させるときに
1レコードごとに %rowtype の変数に入れられますが、この時
カラムの名前が事前に分からない場合はどうしたらいいんで
しょうか?

DECLARE
CURSOR c IS SELECT * FROM x;
BEGIN
FOR r IN c

ここで r の内容を全部出したい。

END FOR;
END;
/

実際にやりたいのはCSV出力です。
6NAME IS NULL:2006/11/21(火) 13:52:21 ID:???
あ、FOR の辺りちょっと間違えた。
すいません。FOR r IN c LOOP 〜 END LOOP; ですね。
7NAME IS NULL:2006/11/21(火) 20:23:50 ID:???
>カラムの名前が事前に分からない場合

多分、無理なんじゃないかな。
EXCEL/VBAで、ADOとかoo4oを使えばできるけどね。
カラムを番号で取れるから。
8NAME IS NULL:2006/11/22(水) 00:50:48 ID:???
>>5
そのケースで言う
x表の定義が確定してないってこと?
それとも表は決まってて、使う列が不明ってこと?
前者だったら結構苦しい方法を取ることになるのかのう
95:2006/11/22(水) 21:38:29 ID:7Hi0ms3O
>>7
本とかも立ち読みして色々調べてみましたが、段々と無理っぽいことが分かってきました。

>>8
表の定義が変更された時に一々書き換えるのが面倒だなと思ったんです。
10NAME IS NULL:2006/11/25(土) 20:39:16 ID:fB7Zbtis
すみません、お尋ねしたいことがありますが
OracleのiSQL*Plusの起動はできたのですが、ログイン時のユーザ名はどこから参照すれば見つかりますか?
パスワードはわかるのですが、ユーザ名が・・・
なので、アドバイスお願いします。
11NAME IS NULL:2006/11/26(日) 15:34:54 ID:???
そのユーザーは自分で作ったの?
デフォルトで作成されるユーザーならSYSかSYSTEMで試してみなさい
(SYSDBA,SYSOPER接続で)。
デフォルト以外のユーザーならとりあえず、接続できないと、
参照できん。
12NAME IS NULL:2006/11/27(月) 09:51:34 ID:3lLbgr1L
Oracle10gで
データベースAをexpするとログは日本語ででてくるのですが
データベースBをexpするとログは英語で吐き出されます

コレを英語で統一したいのですがどのようにすればいいか教えていただけ無いでしょうか?
13NAME IS NULL:2006/11/27(月) 11:44:47 ID:3lLbgr1L
まじであんなしょぼ更新2回かよ
11時と11時30
14NAME IS NULL:2006/11/27(月) 21:39:12 ID:???
Linuxに入れたOracleをtarで固めて別のLinuxに移行する時って、
どのディレクトリとファイルを移動したらいいの?

とりあえずoracleが入ってるディレクトリと、/etcだけ移動してみようかと思ってるんだけど
15NAME IS NULL:2006/11/27(月) 22:22:16 ID:???
>>12

NLS_LANG
16NAME IS NULL:2006/11/27(月) 23:24:18 ID:???
14の方は釣りですか?
17NAME IS NULL:2006/11/27(月) 23:25:03 ID:???
動くことは動くだろ
18NAME IS NULL:2006/11/28(火) 07:12:54 ID:???
どうだろ?
19NAME IS NULL:2006/11/30(木) 20:38:04 ID:???
windowsで2ノードRACを組もうと思ったら、最安の構成はなんでしょうか?
できるだけ今ある機器を生かしたいです。検証用なので可用性は二の次でいいです。
現在ある機器はWIN2Kサーバが入っているPC2台/NIC6枚/玄箱1個です。
2万以内なら機材購入可能です。
Linuxなら玄箱が使えるようなんですが。
20NAME IS NULL:2006/12/01(金) 09:58:40 ID:???
なんの検証なのかわからないけど、組んで動かすだけならW2K Serverにメモリを
2G以上にして仮想PC突っ込めば1台で済むんじゃね?
21NAME IS NULL:2006/12/02(土) 00:36:12 ID:URXeSl2Z
ここまで揃ってるのに、VMを薦めるのはどうかな。

SCSIカード2枚・・・・AHA-29160あたりで大丈夫@1,000〜2,000
外付HDD・・・・中身がIDEのじゃなくて純SCSIのもの。@5,000〜15,000
SCSIケーブル・・・・これが難しい。SUNやHPの中古が見つかればグー。新品は高い。
あとは、SCSIカード − HDD − SCSIカードをデイジーチェーンで。
これでちゃんとしたRACの出来上がり。サポートだって受けられる。ノードは増やせないけどね。

外付HDDはunipackやNTCあたりのが中古で安く買えるんでないかと。
急ぐならottoあたりで、ヤフオク覗けば安いのもある。ケーブルは粗悪品を掴まないよう注意。
以上、机上論でやった事ない(w  成功を祈る。
22NAME IS NULL:2006/12/02(土) 01:05:23 ID:???
なんでVMを‥‥って、お前は最初に「2万以内なら機材購入可能」と
条件ついていたのが読めんかったのか?
23NAME IS NULL:2006/12/02(土) 02:42:36 ID:???
検証用ならVMでいんじゃねぇ?
もしくは、マニアックに実際にRAC組んで満足したいならそれでもいいが、
どうせすぐあきると思う。
24NAME IS NULL:2006/12/02(土) 10:11:50 ID:???
VMWareをVMというのはやめないか。
25NAME IS NULL:2006/12/02(土) 12:32:48 ID:???
>>22

21は楽勝で2万以内なんじゃね?unipackの中古なんて安いしいけると思う。
Unipack2個買ってASMで冗長化までいけるかも。
FC考えてたから敷居が高かったけど、SCSIなら安く組めるんだねぇ。
NIC余ってるからのチーミングでインターコネクトも冗長化できるかも。
俺もSCSI押したいね。ぜひ報告よろ>>19
26NAME IS NULL:2006/12/02(土) 21:05:00 ID:???
誰かVMwareのつもりで使っている人がいたのか?
>24 以外の人で。
27NAME IS NULL:2006/12/03(日) 19:08:37 ID:???
なるほど、SCSIでいけるんですね。
PCIが64bitじゃないですけど、大丈夫でしょうか。
まあ、やってみます。tarも使いたいですし、推奨構成なのは大きいです。
自分では考え付きませんでした。相談させていただいて良かったです。
本当にありがとうございました。
仮想PCを薦めてくれた方もありがとうございました。

結果は報告させていただきます。
28NAME IS NULL:2006/12/06(水) 21:40:19 ID:n5iQdNX2
質問です。
PL/SQLで、CURSORのSELECT分に
IN句をつかっているんですが
そこの値に配列を渡して処理することは可能でしょうか?
29NAME IS NULL:2006/12/09(土) 03:16:17 ID:???
初心者の質問、ごめんなさい。
プロシージャの中で関数を使いたいんですけど
「PLS-00201 関数名を宣言してください」って出ちゃいます。
どうしてでしょうか、、、
下がだいたいの私のコードです、、、

create or replace function func1
( p_string in varchar2)
return number
as
l_number number;
begin
......
end;
/

CREATE OR REPLACE procedure proc1(
in_num in number
)
as
anum number
begin

anum := func1('1');

end;
/

どなたかご存知の方がいたら
よろしくお願いしますm(__)m
30NAME IS NULL:2006/12/09(土) 13:37:22 ID:???
>>29
procedure の実行権限が付与されていない可能性があります。
3127:2006/12/10(日) 14:14:33 ID:Q2S38gbG
無事構築できました。
SCSIカード ASC-29160(中古) \2,000×2
外付HDD SUN Unipack(中古)  \6,000
SCSIケーブル KB-WSAM1(新品) \4,000×2
合計 約\18,000
でRAC組めました。
アドバイスいただいたとおり、ケーブルが厳しかったです。
中古を探している余裕がなかったので、安い新品探して購入しました。

インストールも全く問題なく、無事に検証環境ができました。
アドバイス、本当にありがとうございました。
32NAME IS NULL:2006/12/11(月) 10:23:20 ID:E6HiKDK4
>>31

あ、行けたんだ。おめでとう。
新品にしてはケーブル安いな〜。ottoの中古より安いよ。
VHDCIと68ピンか。ジャンクを探すのは確かにしんどい。
その値段なら買って正解だと思うよ。
2万で出来るのか〜。
33NAME IS NULL:2006/12/11(月) 17:37:22 ID:Jr+OMzZp
Named User Plusライセンスについてなのですが
例えばwebアプリを通してDBにアクセスするシステムを、使う可能性がある人が50人居たとすれば
50人分のライセンスが必要なんでしょうか?それともwebサーバーを一人と見なしてライセンス1個でいいんでしょうか?
34NAME IS NULL:2006/12/11(月) 19:40:29 ID:???
>>33

50人分になる。
35NAME IS NULL:2006/12/11(月) 22:01:27 ID:???
テーブルを作成する時、別テーブルと同じ索引名を指定してしまった
のですが、この場合どうなるんでしょうか?
索引を再作成しないといけないのでしょうか?
3629:2006/12/11(月) 23:45:14 ID:???
>>30
できました!お返事遅くてごめんなさい。
どうもありがとうございます!!
37NAME IS NULL:2006/12/13(水) 16:31:14 ID:???
SQL Serverを長く使っていたのですが、Oracleを利用する事になりました。

Create文を作る際、

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TABLENAME]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TABLENAME]')
GO


と入れておくと、テーブルが既に作られていた場合はDROP TABLEを実行するのですが、
OracleでこのようなSQL文は書くことが出来るのでしょうか?
PL/SQLでは BEGIN内で更新関係のSQL文はNGらしく悩んでます。
38NAME IS NULL:2006/12/13(水) 22:28:56 ID:???
俺の知識が正しければ無理。

DROP TABLE 〜
/
CREATE TABLE 〜
/
の様にセットで書いたら?
存在しないテーブルに対してDROPするとエラーになるが、悪さはしないので無視すれば良い。

一番楽なのは Object Browser 等でテーブルの一覧を全選択して右クリックで削除を選択するとか。
但し、間違えた時のリスクを考えると、この方法はお勧め出来ない。

以下の方法とかもあるけど、そこまでしなくてもいいと思う。
DECLARE
 CURSOR CUR IS
 SELECT A.OWNER, A.TABLE_NAME
 FROM ALL_TABLES A
 WHERE A.OWNER = 'USR01' AND A.OBJECT_TYPE = 'TABLE';
BEGIN
 FOR CU_REC IN CUR
 LOOP
  BEGIN
   EXECUTE IMMEDIATE 'DROP TABLE ' || CU_REC.OWNER || '.' || CU_REC.TABLE_NAME;
   DBMS_OUTPUT.PUT_LINE('DROP成功 : ' || CU_REC.OWNER || '.' || CU_REC.TABLE_NAME);
  EXCEPTION
   DBMS_OUTPUT.PUT_LINE('DROP失敗 : ' || CU_REC.OWNER || '.' || CU_REC.TABLE_NAME);
  END;
 END LOOP;
END;
/
※自宅にORACLE環境が無いので動かしていないから、正常動作するかは分からないよ。多分大丈夫。
39NAME IS NULL:2006/12/13(水) 22:35:04 ID:???
ちょこっと修正

DECLARE
 CURSOR CUR IS
 SELECT A.OWNER || '.' || A.TABLE_NAME AS TBL
 FROM SYS.ALL_TABLES A
 WHERE A.OWNER = 'USR01' AND A.OBJECT_TYPE = 'TABLE';
BEGIN
 FOR CUR_REC IN CUR
 LOOP
  BEGIN
   EXECUTE IMMEDIATE 'DROP TABLE ' || CUR_REC.TBL;
   DBMS_OUTPUT.PUT_LINE('DROP成功 : ' || CUR_REC.TBL);
  EXCEPTION
   DBMS_OUTPUT.PUT_LINE('DROP失敗 : ' || CUR_REC.TBL);
  END;
 END LOOP;
END;
/
40NAME IS NULL:2006/12/15(金) 00:26:23 ID:AN/K2Elz
くだらない質問かもしれませんが、、、
UPDATE文でWHERE句で条件絞って、NULLで
更新をかける、sql文があります。
対象レコード数に大きな変動が無いにも関わらず
sqlの処理時間にバラつきが・・・
テーブルはバッファキープ有効に設定しています。
原因を思い当たる方がいらっしゃいましたら
ご指導くださいませ;
41NAME IS NULL:2006/12/15(金) 01:47:57 ID:???
>>40

@個別に↓を流した後に update しても処理時間がばらつくか、試してみて。
  alter system switch logfile;
  alter system flush shared_pool;
  alter system flush buffer_cache;

A統計情報や実行計画は取得してみた?

Bnullに更新する列の長さが、レコード毎に大きく異なることはないよね?
42NAME IS NULL:2006/12/16(土) 12:46:47 ID:???
>>37
>PL/SQLでは BEGIN内で更新関係のSQL文はNGらしく悩んでます。
動的なら可能
43NAME IS NULL:2006/12/16(土) 12:56:21 ID:???
インストール時に選択しなかったんだと思いますが、
exp/impのexeファイルがbin下にいない端末があります。

これはexp.exeとimp.exeだけを他端末からコピーしてくれば動きますか?
それともoracleのインストールからやり直さないとダメですか?
44NAME IS NULL:2006/12/16(土) 17:32:14 ID:4ZspRBrb
>>43
exp/impをインストール時に選択できないんじゃぁ・・・。
誰かがexeファイルを消してしまった可能性があるなら
単純にコピーでおk
45NAME IS NULL:2006/12/21(木) 14:22:06 ID:???
RHEL ESver4上に、ORACLE10gR2をインストールしました。
その後、DBCAでデータベースを作成し、NETCAでリスナーを
作成しました。
データベースはstartできたのですが、リスナーが起動できません。
リスナーを起動すると以下のエラーが出力されます。
リスナーの設定はいろいろといじってみましたが、変わりません
でした。9iで使用していた設定でもだめでした。
一応自分でも調べましたが、分かりませんでした。
もしかしたらOS側の設定かなという気もします。
原因わかりましたら教えてください。

エラー内容
TNS-12537:TNS:connection closed
TNS-12560:TNS:protocol adapter error
TNS-00507:Connection closed
Linux Error:29:Illegal seek
46NAME IS NULL:2006/12/21(木) 18:59:47 ID:R8+8OtYh
10gで文字化けを起こしてしまう一覧を紹介してくれているところはない
でしょうか?
今までは化けてしまうものは外字登録でごまかしていたのですが、最近
は遠隔地のお客さんや数十台使用のおきゃくさんが増えてきたので、し
っかりと対策を練りたいと考えています。
47NAME IS NULL:2006/12/21(木) 23:55:08 ID:???
文字化けは10gだからとか関係ない。
データベース、アプリケーションサーバー、クライアントがどの文字コードを使うかによって
変わる。
48NAME IS NULL:2006/12/23(土) 18:28:21 ID:7fqq+QaR
table T にa、b、cのカラムがあり且つa、b、cでPKの場合
where a=1、b=2とすると全件操作よりは効率いいもんなんでしょうか?
49NAME IS NULL:2006/12/23(土) 18:50:57 ID:fExmKA+s
Java+Oracleのシステムでの話です。
データを絞り込んで取得する場合、SQLで複問い合わせを駆使して取得するのと、
Java側で全件取得後絞り込むのでは、ネットワーク転送負荷を考慮しない場合、やはりSQLでやらせたほうが高速なのでしょうか?
50NAME IS NULL:2006/12/23(土) 19:29:38 ID:???
>>48
PKがa,b,cの複合インデックスになってるはずだから、
a,bなら前方一致でインデックスが効くはず。

>>49
プログラム側で全件取り込む発想をするやつは癌あつかいされるから気をつける!

51NAME IS NULL:2006/12/23(土) 19:51:48 ID:???
>> 49
件数がおおいなら、Oracleで絞り込んだほうが速いと思うけど。
52NAME IS NULL:2006/12/23(土) 20:10:17 ID:???
>>50
ありがとう。
PKの定義順で変わるということですか。
例えばb、c、aと定義すると
where b=1、c=2は前方一致というやつで全件検索しない
where c=1、a=2とすると全件検索。
正しい?
53NAME IS NULL:2006/12/23(土) 21:22:25 ID:???
> >>49
> プログラム側で全件取り込む発想をするやつは癌あつかいされるから気をつける!

そうだね。
Javaに展開されるコストをかんがえれば、全件取り込みのデメリットはわかるとは思うけど。
54NAME IS NULL:2006/12/24(日) 00:39:59 ID:???
>>52
OK
55NAME IS NULL:2006/12/24(日) 03:47:21 ID:???
>>54
どうもありがとう
56NAME IS NULL:2006/12/24(日) 19:01:48 ID:???
>>54
おま。OKってよりYESって言うべきだろ。そこ。
57NAME IS NULL:2006/12/26(火) 22:34:18 ID:???
Oracleの一時テーブルって同じテーブルでもセッション毎に違うデータを持てるるんですよね?
今、Oracle10gとAccess2003でCS型のシステムを作ってるんですけど
Access側からストアドを起動してOracleの一時テーブルにデータを書き込んで
そのデータは取っておきたいからローカルテーブルにコピーしておこうと思ったら
なんとセッションが違うのでリンクテーブルやパススルークエリではデータをもってこれませんでした。
なにかいい方法ありませんかね?
今は、レコードセットを取得してループさせて1レコードずつローカルテーブルにコピーしてるんですけど
どうにも遅くて困ってます。
58NAME IS NULL:2006/12/26(火) 23:12:41 ID:???
だから一時テーブルだと思うんだが。
59NAME IS NULL:2006/12/26(火) 23:38:15 ID:???
なんですってー!
ありがとう>>58
60NAME IS NULL:2006/12/27(水) 14:01:16 ID:ZriWyeGJ
RACについて教えてください。

RACは一つのサーバが故障しても他のサーバが稼動していれば大丈夫
ってことららしいんだけど、
共有ディスクの故障についてはどう対策しているんでしょう?

別にスタンバイDBでレプリカ作ったり
データガードを導入しないといけないのかしら?
61NAME IS NULL:2006/12/27(水) 17:59:37 ID:ZnqaKKoc
>>60
共有ディスクが故障したらオシマイ。

要件にもよるが・・・。
外部記憶媒体からのバックアップがNGなら
データガードを使うしかなかんべ。
6260:2006/12/27(水) 18:35:01 ID:???
やっぱRACだけじゃダメなのね。
ありがとう!
63NAME IS NULL:2006/12/29(金) 09:46:59 ID:KzbHeGcY
9i以降ってローカル管理表領域を使うのが一般的だと
思うのですが、テーブルのエクステント数って気にするべきですか?
オラクルが自動管理しているみたいなので不要?
64NAME IS NULL:2007/01/05(金) 21:32:25 ID:kpayA3aZ
初歩的な質問で申し訳ありませんが…
Oracle10gに対し、VB2005でODP.NETを利用して接続を試みてるのですが
接続がうまくいきません。
【VB2005 ソース】
’一番先頭に宣言
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types

’SUB内
Dim con As New Oracle.DataAccess.Client.OracleConnection
con = New Oracle.DataAccess.Client.OracleConnection()

con.ConnectionString = "User Id=USR; Password=PASS; Data Source=ORCL"
con.Open() ← ここでエラー「ORA-12154:TNS:指定された接続識別子を解決できませんでした。」

と、なってしまいます。

tnsnames.ora内では
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOST名)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)

SQL*PLUS上では、「connect USR/PASS@ORCL」で接続可能です。
開発端末には、Oracle10g Cliantを管理者ベースで導入しました。
VS2005 Professionalはインストール後、「参照の追加」でOracle.Data.Access(10.2.0.100)は追加しました。
VS2005上のサーバークスプローラーからはデータの接続は可能です。
レジストリ上のORACLE_HOMEもきちんと設定されています。

正直、この後、何を調べれば良いのか想像もつきません…
どなたか、ご教授いただけないでしょうか…
65NAME IS NULL:2007/01/06(土) 11:00:50 ID:???
接続文字列の最後の要素の後にも;追加してらどうなる??つまり
"ほにゃらら・・Password=PASS; Data Source=ORCL;"
ORCLの後にも;ね。
66NAME IS NULL:2007/01/06(土) 16:31:47 ID:hltvdUi7
>>65
ありがとうございます。
しかし、それも試しましたが、結果は同じでした…

なんか、基本的なトコを何か見逃してるのかも知れません…
67デフォルトの名無しさん:2007/01/06(土) 22:07:03 ID:???
>> con = New Oracle.DataAccess.Client.OracleConnection()
これ必要か?
68NAME IS NULL:2007/01/07(日) 18:07:23 ID:TuWvDd0G
>>67
無い場合もやって見ました。でも、結果は同じだったので残してあっただけです。
申し訳ありません。
69NAME IS NULL:2007/01/07(日) 23:22:00 ID:???
>>64
(SERVER = DEDICATED)
70NAME IS NULL:2007/01/09(火) 08:17:56 ID:???
Oracle初心者です。もしかするととんでもない質問かもしれませんが、ご教授ください。

expでエクスポートするとdmpファイルを作成できますが、
このdmpファイルのファイルサイズを見積もることは可能なのでしょうか?(レコード件数や表領域の大きさ等で)

よろしくお願いします。
7170:2007/01/09(火) 08:20:14 ID:???
言葉不足でした。
目的は、dmpファイルを外部媒体にバックアップしたいのですが、
どれくらいの容量を想定すればいいのかが分かればと思います。
72NAME IS NULL:2007/01/09(火) 10:09:23 ID:???
>>70
レコード件数に比例する。
表領域の大きさは関係しない。
中をのぞくと、create tableやinsert命令がなまに近い(そのままではないが)形で
書き出されているのがわかる。
73NAME IS NULL:2007/01/09(火) 10:48:20 ID:NpJ7dbVJ
>>69
ありがとうございます。
tnsnames.oraを下記のように修正してやって見ました。
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)

が、やはり駄目でした…orz

SERVICE_NAMEをSIDに直したり、HOSTをIPアドレスにしたりも
しましたが、「ORA-12154」のメッセージは変わりません…
ひょっとして、Oracle.Data.Access(10.2.0.100)はVS2005に
対応していないのでしょうか?
74NAME IS NULL:2007/01/10(水) 00:11:29 ID:???
>>73
Oracle.Data.Access(10.2.0.100)+VS2005で試してみたがちゃんとつながる。
なんの問題もない。
FireWallとかの設定じゃないの?
75NAME IS NULL:2007/01/10(水) 12:46:55 ID:7lHXEzdc
>>74
ありがとうございます。
FireWall完全に切って見ても駄目でした…
ひょっとしたら、サーバ側に何か製品が足りないのかも知れません。
それか、VS2005の環境か?

両方の製品から洗い直しして見ます。
76NAME IS NULL:2007/01/11(木) 13:07:44 ID:FFqUR/Nn
DBLINKを使用したトリガーは作成可能でしょうか?
77NAME IS NULL:2007/01/13(土) 01:09:01 ID:bK5WbtzQ
SQLで質問があります。
データ型Intervalを比較して出力するにはどのようなSQL文を書けば良いのでしょうか?
例えば、工事計画のテーブルで工事日数(Intervalで設定)が30日以上かかる物のみを出力する、といった感じです。
ググっても出てこないので困り果てています。
78NAME IS NULL:2007/01/14(日) 18:12:58 ID:???
flashbackの動きについて教えてください。
下記手順で、IDの登録前にflashbackさせたいのですが、
「create restore point YYYYMMDD」の段階で
「権限が不足しています」とエラーが表示されます。

insertやdeleteもできる権限でsqlplusにログインしているので
権限不足というのは考えづらいのですが、
他に原因となりそうな点はないでしょうか?

server$ sqlplus
(ID/PW入力)

SQL> create restore point YYYYMMDD;

SQL> insert into user_id (id,pw) values('user0001','password');
SQL> insert into user_id (id,pw) values('user0002','password');
SQL> .
SQL> .
SQL> .
SQL> insert into user_id (id,pw) values('user0009','password');

SQL> flashback table user_id to restore point YYYYMMDD;
79NAME IS NULL:2007/01/14(日) 20:28:03 ID:???
>>78

SELECT ANY DISCTIONARY
FLASHBACK ANY TABLE
SELECT CATALOG ROLE

の権限はあるのかな? insert/delete ができるのとは違うよ。

80NAME IS NULL:2007/01/14(日) 21:28:24 ID:+96OC+CX
画像などバイナリファイルを、
BLOB型で登録するのと、
データストレージなどに登録するの、
どちらが良いでしょうか?

レスポンスよりも、
なるべくデータ容量が少なく済むほうがいいです。
81NAME IS NULL:2007/01/14(日) 22:49:05 ID:rvkZDUbj
>>79
ちょっと確認しておきます
自分で立てたDBじゃないもので・・・
82NAME IS NULL:2007/01/14(日) 23:42:58 ID:???
>> 80

管理とかバックアップとかが楽なほうが良ければBLOBという気がする。
実装が楽なのは、データストレージなんじゃないんかな。

ディスクはそれほど変わらないんじゃない?
83NAME IS NULL:2007/01/15(月) 16:37:19 ID:???
Oracleにはテーブル定義をSQLスクリプトとして出力する機能は標準ではついていないのですか?
84デフォルトの名無しさん:2007/01/15(月) 21:10:20 ID:???
標準では無い希ガス。
まぁ、簡単なSQLで取れるから必要ないっちゃ無いけど。
85NAME IS NULL:2007/01/20(土) 22:24:43 ID:???
あのゴミ屑みたいな
エンタープライズマネージャーコンソール
というjavaアプリはなんですか?
86NAME IS NULL:2007/01/21(日) 16:59:47 ID:???
データベースリンクってどういうときに使うの?
87NAME IS NULL:2007/01/21(日) 22:59:22 ID:GASWVjjK
すみません、オラクルへの接続で教えていただきたいのですが。
C#を使って、他の部屋にあるデータベース(Oracle9i)マシンにアクセスする仕組みを作ろうと思ってます。
設定画面で、OracleマシンのIPアドレス,SID,User ID,Passwordを入力してもらって、
その情報を使って接続したいのですが、
ODP.NETを使って接続するときに、対象のマシン名(IPアドレス)を指定したいときには
どのように記述すればいいのでしょうか?
ConnectionStringに書く「Data Source」でうまく指定できないものかと調べたんですが
どうしても見つけられませんでした。。。
8887:2007/01/22(月) 01:28:58 ID:???
自己解決しました。もっといい方法がある気はするんですが、
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
って、ゆーふーに、tnsnames.oraの中身をまるごと書いたらつながりました。なんか、無理やりな感じ。

あ、exp.exeも別マシンから動かしたいんだけど、もしかして
exp.exe username/password@(DESCRIPTION=....略)
って書いたらつながるのかな??
89NAME IS NULL:2007/01/22(月) 10:26:24 ID:???
本末転倒なんだよ。
DataSource(Connection String)につらつらと書かないようにするために、
tnsnames.oraがあるといってもいい。
90NAME IS NULL:2007/01/22(月) 17:20:42 ID:???
Oracleとしてはクライアントのスタックを複数バージョン準備したくないのはわかるけど
JDBCのタイプ4ドライバでやっちゃってるからね。
クライアントのインストールや設定がめんどいというのはあちこちで噴出している。
91NAME IS NULL:2007/01/22(月) 22:37:46 ID:???
すいません。どなたか教えてください。
SQL loaderで空ファイルをよみこんだときに、
エラーにならない指定の仕方がCTLファイルにあったりしますか?
オラクルはバージョン9iです。よろしくお願いします。
92NAME IS NULL:2007/01/24(水) 03:45:52 ID:GuuZrrLS
oracle 11からDB2 V9みたくXMLを使えるようにならないの?
ハイブリットDBにならないかってことなんだけど、どうっすか?
93NAME IS NULL:2007/01/24(水) 08:25:07 ID:???
>>92

Oracle 9i から使えるようになっているけど。

http://otn.oracle.co.jp/tech/xml/xmldb/index.html
94NAME IS NULL:2007/01/24(水) 14:39:07 ID:???
Xqueryが使えるわけではないし。
95NAME IS NULL:2007/01/24(水) 14:59:47 ID:???
「DB2 V9みたく」のみたくの部分を説明してないのが悪いな。
Oracleスレなんだから他のDBのことは知らない前提で質問しなきゃ。
96デフォルトの名無しさん:2007/01/24(水) 15:30:28 ID:???
Xqueryなら10gで使えるみたいだが。
97NAME IS NULL:2007/01/24(水) 18:02:30 ID:???
>>95
すいません、DB2 V9からXQUERY使ってデータを抽出することが
できるようになったけど、Oracle 10gじゃまだのような事を書いてあったので
つい聞いてしまいました。
98NAME IS NULL:2007/01/25(木) 22:12:59 ID:DBDmUo23
ひとつ教えて下さい。

なんでTABLEよりINDEXの方が
EXTENTが発生しやすいんでしょうか?

Oracleの構成か何かに関係するのでしょうか?
99NAME IS NULL:2007/01/25(木) 23:02:34 ID:???
そのINDEXのextentが小さく設定されてんじゃないの?
100NAME IS NULL:2007/01/25(木) 23:07:01 ID:???
RACについて教えてください。
障害が発生したときに引き継げるのは、参照系の処理だけですか?
DML文はコミットされていないと、ロールバックしてしまうという認識でよろしいでしょうか?
101NAME IS NULL:2007/01/25(木) 23:15:56 ID:???
>>100

はい。
102NAME IS NULL:2007/01/25(木) 23:51:10 ID:ofnhzpct
今、alter index hogehoge rebuild中なのですが、3時間経っても終わりません。
ALRT.logを見るとREDOログのスイッチが頻繁みたいですが、今REDOログを追加しても大丈夫でしょうか?

また、alter index をkillすることって、問題でますでしょうか?
103NAME IS NULL:2007/01/26(金) 00:26:12 ID:kZYgLqFu
>>102

はい。
104NAME IS NULL:2007/01/26(金) 00:44:45 ID:f66EjlV5
105NAME IS NULL:2007/01/26(金) 00:52:13 ID:???
>>101
ありがとうございます!
106102:2007/01/26(金) 02:15:54 ID:iorL0FSf
>>103
ありがとうございました。

alter indexをkillするにはどうしたらよいのでしょうか・・・
107NAME IS NULL:2007/01/26(金) 22:51:43 ID:???
>>106
alter indexを実行しているSQL*PlusのPIDを指定してkillしたらいいんでは?
108NAME IS NULL:2007/01/26(金) 23:03:57 ID:???
alter system kill session...
109NAME IS NULL:2007/01/26(金) 23:09:30 ID:???
オブジェクトブラウザでセッションを右クリックして…
110NAME IS NULL:2007/01/27(土) 20:13:54 ID:???
質問です。
登録してあるプロシージャやパッケージの一覧を取得したいのですが、
それを取得できるSQL文はありますでしょうか?
111NAME IS NULL:2007/01/27(土) 20:49:19 ID:???
USER_PROCEDURESとか、そこら辺のテーブルをSELECTすれば一覧が取得できる
112NAME IS NULL:2007/01/27(土) 23:18:40 ID:???
>111
ありがとうございます。
PROCEDURESの部分を変えれば、パッケージとかもできるんですね。
113NAME IS NULL:2007/01/28(日) 00:21:21 ID:???
んなめんどくさいことを・・・
user_objectsからとれば一発だろうに。
114NAME IS NULL:2007/01/28(日) 13:33:42 ID:G2ff/8aP
突然ですまんが知ってたら教えてほし

オラクル7をアンインストしたいのだがいい方法はないかな?
インストしたときのCDはない状態。ちなみにインストーラーでソフトを選んで削除ってやってもエラーではじかれるんだよ………

古い時代の話しですまんがたのむ
115NAME IS NULL:2007/01/28(日) 17:26:50 ID:???
エスパーさ〜〜〜ん出番ですよ〜〜〜
116NAME IS NULL:2007/01/28(日) 17:44:53 ID:???
今日はもうMPを使い果たした
117NAME IS NULL:2007/01/28(日) 18:57:12 ID:???
>>114
ORACLE_HOME配下やデータファイル等をごっそり
rm -rfしたらだめなの?
118NAME IS NULL:2007/01/29(月) 23:19:06 ID:???
ものすごく基本的な質問なんですが、
like 'AAAA%'とlike 'AAAAAA%'で「AAAAAA01」を検索した場合、
どちらのほうが早く検索できるんでしょう?
119NAME IS NULL:2007/01/30(火) 22:27:26 ID:???
>>118
どうだろ?
インデックスが張ってあって、AAAABB01みたいに
AAAAではじまるAAAAAA01以外のレコードがいっぱいあったら、
ike 'AAAAAA%'の方が早いのかな?
120NAME IS NULL:2007/01/31(水) 06:45:12 ID:???
まあ、そうだろうな。
121NAME IS NULL:2007/01/31(水) 13:31:10 ID:???
>>114

プラットフォームぐらい書いたら?
122NAME IS NULL:2007/02/06(火) 23:33:50 ID:???
ちょっと質問です。
10gR2のData GuardでFSFO使用したときの切り替え時間ってどれくらいですか?
環境にもよるだろうけど、参考程度に教えてください。
OSは本当はWindowsがいいけど、なんでもいいです。
123NAME IS NULL:2007/02/06(火) 23:50:05 ID:YVgAO3V9
すいません。お願いします。

Windows環境でインスタンス作成したときに
データファイルとか制御ファイル、REDOとかの物理ファイル名が
すべて大文字になってしまうんだけど
これって仕様?

例)SYSTEM.DBF
124NAME IS NULL:2007/02/06(火) 23:59:26 ID:???
なるね。
仕様じゃね?
125123:2007/02/07(水) 00:09:23 ID:6GMeNunB
>>124
サンクス

普段、UNIXでしかOracleいじってなくって
何故、大文字になるのかわかんなかったんですよ。。
仕様っぽいですよね。。
126NAME IS NULL :2007/02/07(水) 07:40:14 ID:???
>>122

最新のログが当ってるんだったら、そんなに時間はかからなかったと思うぞ。
それこそ1分以内だろ。
127NAME IS NULL:2007/02/07(水) 09:06:02 ID:???
>>114

1. Oracle関連サービス停止
2. Oracle関連のpath削除

プラットホームが
==================================================
3-1 unix系
3-1-1 Oracle関連のフォルダ、ファイル削除
3-1-2 Oracle起動ユーザ用設定ファイルの削除
--------------------------------------------------
3-2 windows系
3-2-1 Oracle関連のレジストリ全削除
3-2-2 Oracle関連のpath削除
3-2-3 再起動
3-2-4 Oracle関連のフォルダ、ファイル削除
==================================================
128NAME IS NULL:2007/02/07(水) 22:06:19 ID:???
oracle 10g に SQL Server 2000等で言う
DBCC shrinkdatabase の様な機能ってあります?
129NAME IS NULL :2007/02/07(水) 23:32:44 ID:???
Reorgしてデータファイルのリサイズかねぇ?
130NAME IS NULL:2007/02/08(木) 21:10:52 ID:6b7QxCkW
初歩的な質問ですいません。
Oracle9iにstandard edition one って適用されるか
分かる方いますか?
131NAME IS NULL:2007/02/08(木) 21:20:36 ID:???
ない。
132NAME IS NULL:2007/02/09(金) 13:44:15 ID:???
Internet経由でOracleを外部に公開しようと思ってますが接続できませんが
何か方法はありますでしょうか?

やったこと。
 ・ルータのポート変換を使ってWANポート(61521)からOracleサーバのポート1521へ変換
 してルーティングを設定。
もしかしてPort1521だけではだめで他のポートも併用とかしてるのでしょうか?

tnspingとかでやっても反応なし・・・・名前が解決できないといわれました・・・
133NAME IS NULL:2007/02/09(金) 23:41:58 ID:???
>>129
さんくる
134NAME IS NULL :2007/02/10(土) 00:05:48 ID:???
>>132

tnsnames.oraの設定は問題ないんだよな?
LAN内部ではちゃんと問題なく繋がるんだよな?
それと外部からはちゃんとそのサーバーの名前も解決できるように
DNSとかに登録されてるんだよな?
例え登録されていないとしても、tnsnames.oraにはちゃんとWAN側の
IPが書かれているんだよな?
135NAME IS NULL:2007/02/10(土) 00:27:41 ID:???
Oracleを外部に公開するんは止めて(><)
136NAME IS NULL:2007/02/10(土) 08:59:16 ID:???
>>134
はい。別のプロトコルでは接続可能です。
137NAME IS NULL:2007/02/10(土) 15:26:42 ID:???
Oracleを外部に公開するんは止めて(><)
138NAME IS NULL:2007/02/11(日) 14:41:22 ID:???
>>136

というか、名前が解決されていないからtnsnames.oraの記述が
問題の様な気がするんだけど?

それとtelnetでport 61521を叩いたらちゃんとlistenerが応答
してくるんだよね?
139NAME IS NULL:2007/02/14(水) 16:44:38 ID:zf43vtTF
助けてください。。。

環境
Windows2000 ServicePack4
Oracle 8.1.6

にて、間違って
Oracle Database Configuration Assistant より
データベースの作成をして、既存のデータベースをマウントしてしまったんです。

どうにか既存のデータベースを復旧する方法はないでしょうか?
新しく作ったデータベースはどうなっても構いません。。。
140NAME IS NULL:2007/02/14(水) 19:46:02 ID:???
バックアップはないの?

141139:2007/02/14(水) 20:10:29 ID:???
バックアップ・・・
取ってません(; ´д`)

既存のデータベースとは別個に新たにデータベースを作成できると思っていたので…
やっぱり無理ですかね・・・

マスタのデータ内容・・・
紙に落ちてるかなorz
142NAME IS NULL:2007/02/14(水) 21:08:51 ID:???
新しく作ったのと既存のとでSIDが違えば大丈夫だろうけど、
>>139 には無理そうだね。
143139:2007/02/14(水) 22:22:37 ID:???
>>142
データベース作成→標準(推奨)→データベース・ファイルの新規作成→汎用→
同時接続ユーザー数 15→オプション 全て→
グローバル・データベース名・SID
ここで設定した内容のことですよね?

ここは既存と新規では変更しております。

ほぼオラクルの知識はないのですが、どうにかして復旧を行いたいです。
復旧の仕方を書いてあるサイトへの誘導、もしくは解説をお願いできませんでしょうか。

ちなみに、ODBAの方には既存のデータベース情報が残っているのですが、
接続しようとしますと、ORA12154:TNSエラーで怒られます。
144NAME IS NULL:2007/02/14(水) 22:47:59 ID:LPNcYjWE
>>143
別のDBが作られてるだけじゃね?
元のDBはそのまま残っていると思うが?

DOS窓から
SET ORACLE_SID=<元のSID>
って環境変数を設定して、そのままSQL*Plusでつなげてみれば?
145139:2007/02/14(水) 22:55:01 ID:MdpzENka
>>144
ありがとうございます。
退社して終電の中なので、明日一番に試させていただきます。
146NAME IS NULL :2007/02/15(木) 00:07:14 ID:???
>>143

DBのデータファイルの作成先も違うディレクトリ(もしくはディスク)上に
したんだよね?
既存のDBが動いているんだったらプロセスつかんでいるはずだから、
上書き出来ないとは思うんだけど、最悪の事態としては現行以外の
Redologが上書きされちまってるかもね。
でもその場合だったらRedo再作成すればいいし、まだ復旧の望みは
残されているな。

でも多分>>144が言っている様に別DBが作られていて、デフォルトで
繋げるSIDが新規DBの方になっているだけと思われ。
147NAME IS NULL:2007/02/15(木) 00:37:00 ID:???
別々のサーバーにある2つのDBのテーブルを結合して結果を抽出、とかってできますか?
148NAME IS NULL:2007/02/15(木) 00:54:30 ID:???
database link
149NAME IS NULL:2007/02/15(木) 00:59:53 ID:???
>>148
ありがとうございます!
150NAME IS NULL:2007/02/15(木) 08:59:08 ID:jN/Y7HIu
oo4o経由でOracle10 XEに接続出来た人いるー?

XEのインストーラーにはoo4oが入っていなかったから
Oracleのサイトで10.2用のoo4oをダウンロードして組み込んでみたけど
OpenDatabaseメソッドが失敗する
データベース名「XE」ってのを認識出来てないみたい

10.2のoo4oはXEに使えないのかな?
151NAME IS NULL:2007/02/15(木) 10:02:33 ID:???
原因はリスナー「XE」を登録してませんでした
スレ汚し真に申し訳ない
152NAME IS NULL:2007/02/15(木) 10:21:12 ID:Tcgt2fEB
>>150-151
ちゃんと事後を報告したから、問題なかんべ。
153NAME IS NULL:2007/02/15(木) 15:07:47 ID:8aFDwjm4
小平市立第十三小学校(小平市小川西町1−22−1) http://www.kodaira.ed.jp/13kodaira/
九条幼稚園(郵便番号: 550-0027 大阪市西区九条2-19-18) http://www.ocec.ne.jp/yochien/kindergarden/kujo/index.html
四番町保育園(〒102−0081 千代田区四番町11番地) http://hothot.city.chiyoda.tokyo.jp/yonbantyou-hoikuen.htm
少友幼稚園(〒310-0024 水戸市備前町5−36) http://www.ii-kids.net/member/mito/member38/
南幼稚園(郵便番号:542-0081 大阪市中央区南船場3-2-19) http://www.ocec.ne.jp/yochien/kindergarden/minami/index.html
M m M m M m ...(Austria) http://www.vs-st-andrae.ksn.at/chronik/2004/buchstaben.htm
南立誠幼稚園のホームページ(〒514−0003  津市桜橋2丁目39) http://www.res-edu.ed.jp/y-minamirissei/
中保育園・はるのさんぽ(〒480-0100 大口町小口字山中28番地) http://www.gojo-sakura.com/gov/hoikuen/naka/hot/h17/sanpo/sanpo.html
中ほいくえん(〒480-0100 おおぐちちょうこぐちあざやま中28ばんち) http://www.gojo-sakura.com/gov/hoikuen/naka/
中保育園・園紹介(〒480-0100 大口町小口字山中28番地) http://www.gojo-sakura.com/gov/hoikuen/naka/en.html
中保育園・春の遠足(〒480-0100 大口町小口字山中28番地) http://www.gojo-sakura.com/gov/hoikuen/naka/hot/h18/harunoennsoku/harunoennsoku.html
小市保育園のホームページ(〒537-0001 大阪市東成区深江北1丁目9番12号) http://koichi.hoikuen.to/
西戸山幼稚園(〒169-0073 新宿区百人町4-7-1) http://www.city.shinjuku.tokyo.jp/division/558400ntoyama-y/
赤川小学校(〒041-0804 函館市赤川町367) http://wwwa.ncv.ne.jp/~akagawes/
黒小っ子花まるっ!(〒013-0826 横手市黒川福島59) http://park1.wakwak.com/~kurosho/kurohana1.htm
154NAME IS NULL:2007/02/15(木) 15:09:05 ID:8aFDwjm4
コテタン処理スレッド
http://music7.2ch.net/test/read.cgi/nika/1171180941/128

(↓1024byteちょうど)
gwisbeugacug.Kc,.V.Tbedlbebeacabdlc,c,acisisbeab.S.Tdlbe.T.Yududabisudgwac.Kac.V.Tgwug.Vis.Sgwugabab
c,gw.Vac.Sc,acud.Suggwugdlugdlududdlac.V.Sugududbedlc,c,udc,beabab.Kisbeac.T.T.Vgw.Yudabis.Kisud.Vud
gw.Tabacug.Vac.Yud.T.Sdl.Vbe.S.Kc,.Tug.Yudud.S.S.Visabudgwdl.Sc,gw.Tudabdlbe.T.Y.Y.Vug.T.Tdl.Ygwc,is
gwud.Kudab.Kis.Kgw.Sgw.Yis.Kud.S.Vabugabbec,ugabuddl.Ybec,.Yabdlacacac.Sac.Ybebe.V.Yc,uduggwuddl.Ydl
abugacdlug.S.Sacudgwacugbeugugdlacbec,.Tug.Yugisc,ud.Tab.Vacug.K.Vugudug.Sab.Tc,abab.S.Sis.Vdldlbe.T
.Yudac.Vab.Tbe.Ydluggwdlc,abdludgw.Tbe.Sac.Sgwdl.K.Tgw.Vc,.Tdlc,is.Tgwud.Kdludbeabgw.Sabud.Tbeud.Yc,
isdl.T.Yis.Yacgwisabgwis.Kabdlac.Ygwacbegw.Sc,.T.S.Tdlgw.Vgw.Sacisabuddlgw.Tc,.Tisac.Yugis.Kacisis.S
ug.S.Kudabc,isudabc,beud.Tbe.Visug.Visud.T.Ygw.Sab.Kis.Tacis.Yc,isc,ududc,is.V.Tc,acgw.Yisuggwdl.S.T
ud.K.Sugc,isac.Tab.Tbec,.Tabc,.Vabacc,.Visbebeac.Vudbe.Yugdlc,beacab.K.Y.Vac.Sgwgw.Tisis.Y.Sdl.Tgw.Y
.Yugabud.Y.Vacabud.Y.K.Tis.Vis.Vabacdl.Sisac.S.Yc,.Yc,abbe.Tgwdlbeab.Tisisugc,beud.Vc,gw.Kc,ac.Kis.V
dludbec,dl.S.Vac.Tgwdlab
155NAME IS NULL:2007/02/15(木) 15:10:00 ID:8aFDwjm4
コテタン処理スレッド
http://music7.2ch.net/test/read.cgi/nika/1171180941/5

(↓1024byteちょうど)
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンンン
ンンンンンンンンンンンン
156NAME IS NULL:2007/02/15(木) 15:12:05 ID:8aFDwjm4
コテタン処理スレッド
http://music7.2ch.net/test/read.cgi/nika/1171180941/129

(↓1024byteちょうど)
Acgwab.Visis.Kab.Y.K.Tdldl.Yab.V.Tdl.S.K.Kbeud.Kab.Tbec,.Tgwdlbeud.Kdlab.Sgw.Yud.Tgwacis.K.S.Tis.Sgw
ac.Vabis.Vud.K.Visdl.T.Kugbe.Vuddlgw.Tc,abudisbebeuddlbe.Kdlbe.T.Y.Vdl.Sis.S.Yisbe.Y.Sisisab.Sugabdl
dlis.V.T.Vab.S.S.V.Sc,c,.V.Vacbegwug.Tdlisc,.Vugab.Tab.T.K.Tacabgwabbeugab.Sac.Sud.Ygwudacgw.T.Vc,is
be.Tis.K.Vdlabgwabisuduggw.S.V.K.Kab.Y.V.Ygw.Yac.V.Kc,.Kc,isabac.Vbeisisuddl.Y.K.Sdl.Ygw.Yabbe.Vacud
.T.Sgwugbe.Vugbegwgw.Sudbe.Tc,.Yac.T.K.Kac.Y.Kbe.Y.Kab.Vabc,ug.Tbewdabacudbec,.Sbeisc,beugis.Tgwudgw
abacug.Kc,c,be.Vdl.Y.V.Y.Sis.Vc,gwbeabgw.S.Sc,.Tc,isdlc,acdlabc,abdlababudacgwdldl.Vud.K.V.Tbedlc,be
.Tbedl.Vc,gwc,.Vug.K.Sududududac.K.Tgw.V.V.Y.Vbedlisbeuggw.Y.Tac.Tab.Y.320140acbeugisac.Yc,ababuggw.
be.Kab.K.Sisac.Y.Kbe.Tudacacbeabdldl.K.S.Y.Kc,.Tabisud.K.Yis.Sisisc,ugud.Yug.Sud.K.K.Yac.Kc,.Sac.Sgw
.T.4766649345233739603236442026619963079677696366622519711776471909111769495819091158193539273873dlu
ac.Sgwabisbe.Kis.Y.Y.Kisdlc,dlis.Sisugbec,.Kabacdlisgwudis.Sgwisisdlc,ab.Ybeis.Y.Tisgwabdlc,.Y.Vc,.Y
.Sc,gwab.V.K.S.Yacugc,i.
157NAME IS NULL:2007/02/15(木) 15:12:53 ID:8aFDwjm4
中■■■(〒480-0100 大口町小口字山中28番地) http://www.gojo-sakura.com/gov/hoikuen/naka/

中■■■(〒480-0100 大口町小口字山中28番地) http://www.gojo-sakura.com/gov/hoikuen/naka/en.html

中■■■(〒480-0100 大口町小口字山中28番地) http://www.gojo-sakura.com/gov/hoikuen/naka/hot/h18/harunoennsoku/harunoennsoku.html

中■■■(〒480-0100 大口町小口字山中28番地)
http://www.gojo-sakura.com/gov/hoikuen/naka/hot/h18/harunosannpo/harunosannpo.html

M m M m M m ...(Austria) http://www.vs-st-andrae.ksn.at/chronik/2004/buchstaben.htm

西■■■■■(〒169-0073 新宿区百人町4-7-1) http://www.city.shinjuku.tokyo.jp/division/558400ntoyama-y/

赤■■■■(〒041-0804 函館市赤川町367) http://wwwa.ncv.ne.jp/~akagawes/

黒■■■■■■■■(〒013-0826 横手市黒川福島59) http://park1.wakwak.com/~kurosho/kurohana1.htm

第十三■■■(〒187-0035 小平市小川西町1-22-1) http://www.kodaira.ed.jp/13kodaira/

四番■■■■(〒102−0081 千代田区四番町11番地) http://hothot.city.chiyoda.tokyo.jp/yonbantyou-hoikuen.htm

南■■■(郵便番号:542-0081 大阪市中央区南船場3-2-19)
http://www.ocec.ne.jp/yochien/kindergarden/minami/index.html

少■■■■(〒310-0024 水戸市備前町5−36) http://www.ii-kids.net/member/mito/member38/

九■■■■(郵便番号: 550-0027 大阪市西区九条2-19-18) http://www.ocec.ne.jp/yochien/kindergarden/kujo/index.html

南■■■■■(〒514−0003 津市桜橋2丁目39) http://www.res-edu.ed.jp/y-minamirissei/

小■■■■(〒537-0001 大阪市東成区深江北1丁目9番12号) http://koichi.hoikuen.to/
158139:2007/02/16(金) 11:28:41 ID:???
遅れましたが解決しました。

S-IDを繋いで、インスタンスをオープンしたら回復しました。

ありがとうございます。
159NAME IS NULL:2007/02/16(金) 20:07:44 ID:3vwFxxfy
Oracle10gEEをWindowsServer2003にのせてます。

expdpコマンドでバックアップを取ろうとしてるんですけど

expdp test/test DIRECTORY=DIR_BKUP DUMPFILE=test.dmp

と実行すると

ORA-31641: ダンプ・ファイル"C:\TMP\test.dmp"を作成できません
ORA-27040: ファイルの作成エラー、ファイルを作成できません
OSD-04002: ファイルをオープンできません
O/S-Error: (OS 3) 指定されたパスが見つかりません。
と言われてしまいます。

おそらくOSレベルでファイルを作成する権限がないと思うのですが
どのユーザーに与えればいいのでしょうか。

このマシンのユーザに対してはフルコントロールを与えています。
160NAME IS NULL :2007/02/16(金) 23:40:37 ID:???
>>159

基本はDBを作ったユーザーだけど、それ以前にc:\TMPというディレクトリは
存在してんだよな?

一連の流れとしては以下のものになるが?

1. c:\backupでも何でもテキトーなディレクトリを作って、DBを作ったユーザーに書き
込み権限与えておく。

2. データパンプで使うディレクトリをDBに登録する。
SQLPLUS> create or replace directory BACKUP_DIR as 'C:\backup';

3. 実際に実行。
   expdp system/hogehoge schemas=boge DIRECTORY=BACKUP_DIR dumpfile=hogeboge.dmp
161NAME IS NULL:2007/02/18(日) 01:20:32 ID:mvn5tp9h
sysなどで接続してuser_tablesからSCOTTの所有テーブルの情報を見たいのですが
user_tablesの中でo.owner# = userenv('SCHEMAID')と指定されているせいかみれません。
user_tablesに代わる表はありますか?
162NAME IS NULL:2007/02/18(日) 01:37:12 ID:???
sysならdba_tablesとか
163161:2007/02/18(日) 01:54:07 ID:???
>>162
助かりました。どうもありがとう。
164NAME IS NULL:2007/02/18(日) 05:13:45 ID:Ksjr1/gE
本当はだめなのでしょうが、オラクルマスターのオンラインバウチャーチケットを人にもらう場合、受験チケットNo.だけをメールで送ってもらえば十分なんですか?
165NAME IS NULL:2007/02/18(日) 10:07:58 ID:VFI71C6w
>>158
ヨカターネ
166NAME IS NULL:2007/02/18(日) 13:25:01 ID:P6/Bmpbd
solarisにoracle9iをインストールするのですが、
telnet(Windows)からリモートで行うことは可能ですか?
可能であれば、方法や参考になるサイト等を教えて頂けると助かります。
167166:2007/02/18(日) 13:26:50 ID:P6/Bmpbd
追加:oracle9iアプリサーバとDBの両方です。
168NAME IS NULL:2007/02/18(日) 14:16:41 ID:???
cygwinでもいれて素直にXでつなぐ。
169NAME IS NULL:2007/02/18(日) 14:50:18 ID:???
>>166

( ・∀・)つVNC
170NAME IS NULL:2007/02/18(日) 15:04:10 ID:???
おまいら、イジワルだなw
171NAME IS NULL:2007/02/18(日) 16:26:41 ID:VFI71C6w
>>166

( ・∀・)つ[インストールガイド]
( ・∀・)つ[cygwin]
172NAME IS NULL:2007/02/18(日) 16:31:32 ID:???
Xだけなら、cygwinよりXmingだな。
設定も簡単だし。
173166:2007/02/19(月) 01:00:45 ID:???
レスありがとう。
んーやっぱりXですか。
自分のマシンにX入れるか、空いてるSolaris探すか
なんとかやりますわ。
174NAME IS NULL:2007/02/19(月) 01:05:23 ID:???
>>173

VNC入れてSolaris側でX立ち上げて、窓側ではVNC Clientもしくは
ブラウザーでいいじゃん?
175NAME IS NULL:2007/02/19(月) 01:19:26 ID:???
VNCとかあほなこという連中が多いなw
consoleは占領するし、フレームバッファがいるし、何もいいことないだろ。
176NAME IS NULL:2007/02/19(月) 12:03:17 ID:???
>>175

インストールだけに使えばいいんだし、今時の鯖でフレームバッファが
どうこうという方がアホなんじゃねぇの?w
それとも金がなくてショボい鯖しか使えないのなら仕方ないけどさ?www
177NAME IS NULL:2007/02/19(月) 12:20:38 ID:???
15Kとかは普通にFB持てないけど。
178NAME IS NULL:2007/02/19(月) 13:25:00 ID:???
インストールの話してんだから、もう少し行間読めよ?
179NAME IS NULL:2007/02/19(月) 13:38:11 ID:???
結論はでてる。
Xでいいってこと。
180NAME IS NULL:2007/02/19(月) 23:33:47 ID:???
なんだかんだ言って、ヒントを与えてるおまえらは優しい。
181NAME IS NULL:2007/02/20(火) 07:23:49 ID:???
>>166

( ・∀・)つサイレント・インストール
182159:2007/02/20(火) 18:37:49 ID:???
>>160
仕事が忙しくてようやく試せました。
どうもカタカナがだめだったようです。

・取りたい場所(カタカナあり)→だめ
・C直下の英字フォルダ→OK
・C直下のカタカナフォルダ→OK
・取りたい場所の一階層上(英字)→OK
・また取りたい場所(カタカナあり)→だめ

 ありがとうございました。
183159:2007/02/20(火) 18:38:32 ID:???
間違えた。
・C直下のカタカナフォルダ→だめ

です。申し訳ない。
184NAME IS NULL:2007/02/21(水) 01:17:59 ID:???
NVARCHARとNVARCHAR2の違いってなんでしょうか?
185NAME IS NULL:2007/02/21(水) 01:56:01 ID:???
現在は違いはない。
186NAME IS NULL:2007/02/21(水) 02:07:48 ID:???
違いがあったのはOracle6の時代だっけか、7では既に違いは無かったと思う。
あまり古い話で、信憑性はないが年寄りから聞いた話では2つぐらい説があったな。
1.varchar(10)とすると、固定10バイト+長さ管理用の領域が取られたという説。
2.varchar同士を比較するとき長いほうに併せて空白をパディングしてから比較していたという説。
真相は知らね。
187NAME IS NULL:2007/02/21(水) 02:12:16 ID:???
VARCHARをANSI互換にして、空文字とNULLを区別するようにしてくれたらOracleを見直すのだが。
188NAME IS NULL:2007/02/21(水) 02:15:58 ID:???
Oracle使いで、NULLを代入するときに""使うやつっているんかな?
189NAME IS NULL:2007/02/21(水) 09:18:28 ID:3HpDMjNa
>>181
9iでサイレント・インストール使えたっけ?
190NAME IS NULL:2007/02/21(水) 11:17:48 ID:???
しかも、サイレントでもXはいるしw
191NAME IS NULL:2007/02/21(水) 11:42:25 ID:egn5/JuB
すいません!!学校の課題でデータベースのプリントを渡されててんやわんやになってるものです!!

Dクエリで文字列の一部を指定しデータを抽出する「*」や「?」がそれに該当する。

ってなんのことをさしているんですか??さっぱりなんです…教えてくださいお願いします
192NAME IS NULL:2007/02/21(水) 11:50:06 ID:egn5/JuB
で、パラメータクエリのことをさしてるのかぁと思ってるんですがいかかですか??
193NAME IS NULL:2007/02/21(水) 19:38:32 ID:???
そして時は動き出す・・・。
194NAME IS NULL:2007/02/21(水) 23:43:29 ID:???
ワイルドカードのことを言ってるんならoracle固有の話でもなければDB固有の話でもない
195NAME IS NULL:2007/02/22(木) 01:25:40 ID:???
複数の選択肢で正しい答えを複数選べとかだったりして
196NAME IS NULL:2007/02/22(木) 09:47:52 ID:???
>>191
今は学校でデータベースを教えるのか
197NAME IS NULL:2007/02/22(木) 17:19:10 ID:???
Oracle10gを使用する事になりましたがGUIでトレースをリアルタイムに
出力するツールってあるのでしょうか?
198NAME IS NULL:2007/02/22(木) 20:29:58 ID:???
>>197

「トレースを出力」とは?
199NAME IS NULL :2007/02/23(金) 01:30:26 ID:???
>>197

何のトレースよ?
SQLのトレース? DBのプロセスのトレース?
200NAME IS NULL:2007/02/23(金) 05:57:34 ID:rCpVmlBI
Q。質問です

Oracle9iより「Real Application Clusters」機能が
実装されたそうですが、SQL Plus等を利用し
今あるDBのRACオプションの状態を
確認することは可能なのでしょうか?

たとえば、V$SESSIONでセッションの状態を知るように、
RACの状態を取得したいのですが…
201NAME IS NULL:2007/02/23(金) 10:00:18 ID:???
>>201

各インスタンスの稼動状態ならv$active_instanceで確認できっけど?
202NAME IS NULL:2007/02/23(金) 11:10:06 ID:???
>>200
gv$ビューのことかな?
203NAME IS NULL:2007/02/23(金) 11:19:49 ID:???
>>199
すみません・・SQLのトレースです
MSのSQLServerをずっと使い続けていたので、あちらのプロファイラに慣れきっていて
実行されているクエリーを見るのにTKPROF実行してファイルに出力して・・
というのが煩わしく感じてます
204NAME IS NULL:2007/02/23(金) 12:09:42 ID:???
>>204

GUIにこだわるのならTOADとか3rd Party製のツールがっけど?
205NAME IS NULL:2007/02/25(日) 06:11:56 ID:???
>>190
サイレントインストールでもXのライブラリが必要ってこと?
206NAME IS NULL:2007/02/25(日) 11:54:41 ID:???
イエス。
207NAME IS NULL:2007/02/26(月) 11:55:58 ID:???
Oracle10g+RHEL AS4

アラートログってリスナーログみたいに手動で出力先を切り替えたり
できないのかな?それともいきなりファイル削除って新しいログファイル
つくっても平気なもん?
208NAME IS NULL:2007/02/26(月) 11:59:08 ID:???
削除-放置でOK
209NAME IS NULL:2007/02/26(月) 12:31:50 ID:???
>>208
さんくす
210NAME IS NULL:2007/02/26(月) 18:25:15 ID:???
oracle 10g の正規表現って
SQL*Plus 上と PL/SQL とで違いがあるのか?

SQL*Plus でさんざん試した後に PL/SQL で実装すると NOTFOUND になっちまう。
211NAME IS NULL:2007/02/26(月) 20:59:12 ID:???
スマソ 初歩的なミスをしていた。

速度を速くするために、

SELECT * FROM AAA
WHERE SHOHIN Like '12345-67890%'   -- ←もちろん変数にしてる
AND REGEXP_LIKE(SHOHIN, '12345-67890(パターン)'))

みたいな事をして、単純 Like の前方一致条件と絡めていたのだが、
Like に掛ける条件を

val_str = '12345-67890%';

として

WHERE SHOHIN Like val_str

としていた為におかしくなっていた。

val_str = '12345-67890';

WHERE SHOHIN Like val_str || '%'

して、上手くいった。

212NAME IS NULL:2007/02/27(火) 12:21:20 ID:???
[サーバ]
Win2000Server
Pen4 3.2
メモリ1024M × 2
Oracle 10g

[クライアント]
WinXP
Pen 3.2
メモリ 1024M
Oracle 10g Client

[ネットワーク]
LAN 100M

中間一致検索について質問です。

対象のテーブルには100000件のレコードが入っています。
それを中間一致で検索すると、1件もヒットしないときだけ検索秒数が大幅に増加すると
いう減少が発生しています。
1000件ヒット、1件ヒットでは0.1秒とかそんなところなんですが、0件のときだけ5秒近く
かかってしまいます。
Oracle 10g Client 、9i Clientの両方を試しました。

色々と本を漁ってみましたが、答えは見つかりませんでした。
誰か教えてください・・・
213NAME IS NULL:2007/02/27(火) 22:01:37 ID:vERdyJqF
Oracle 10gで間違えて作ったテーブルをdrop tableで削除して、
select * from tabでテーブルの一覧を見たら
英数字や=が無造作にならぶ変なテーブル名のテーブルが出てきました。
そのテーブル名をコピーして削除しようとしても削除できず困っています。
何かいい方法はないでしょうか。よろしくお願いします。
214NAME IS NULL:2007/02/27(火) 22:29:03 ID:???
>>213
PURGEコマンドを調べれ。
215NAME IS NULL:2007/02/27(火) 23:19:44 ID:???
>>213

とりあえず実行計画取ってみれ。
216NAME IS NULL:2007/02/27(火) 23:23:59 ID:???
>>214

ヒント: リサイクルビン
217NAME IS NULL:2007/02/27(火) 23:27:34 ID:???
>>212
を見て、うちのデータベースでも試したが同じような現象が起こる。
今まで気づかなかったが、なんでだろ。
218NAME IS NULL :2007/02/28(水) 01:26:47 ID:???
>>212
言われてみればそれって普通に発生しているような・・・
1件だと早いけど該当なしだと考えるよね?
まあ俺のいじっているメイン環境は8.0.5だけどw

多分ね、躊躇するんだよ、「0件なんて返したら怒られないかな〜」って。
219NAME IS NULL:2007/02/28(水) 10:27:21 ID:???
無駄に増えてしまったデータファイルをRAWデバイス移行に伴いすっきりさせたいとおもいます。

/oradata/abcd01.dbf
/oradata/abcd02.dbf
/oradata/abcd03.dbf

=>

/dev/abcd01

例えば abcd というテーブルスペースが3つのデータファイルで構成されています。
なのでいったんテーブルスペースを消して
再度RAWデバイスファイルで作り直そうと画策していいます。
消す前にexpして作り直した後にimpすればいいかなと軽く考えていますが
うまくいくでしょうか?
ちなみにオラクルアプリケーションのテーブルスペースたちです。

exp のパラメータはこんな調子で大丈夫でしょうか?

COMPRESS=N
CONSISTENT=Y
TABLESPACES=(ABCD)
220NAME IS NULL :2007/02/28(水) 10:50:15 ID:???
>>219

新規表領域を作成して、表はalter table moveで、索引はrebuildとかでいいかも?

Oracle AppsだったらOATMの導入もひとつの選択肢です。
Oracleから変換ツールが提供されています。
221NAME IS NULL:2007/02/28(水) 14:10:39 ID:???
>>213

select table_name from tabs で見たらいいよ。

tab じゃなくて tabs ね。
222213:2007/03/01(木) 21:10:28 ID:???
>>214, >>216
解決いたしました。ありがとうございます。

>>221
今後の参考にします。ありがとうございます。
223NAME IS NULL:2007/03/01(木) 21:55:32 ID:vN9pA/9v
こちらのスレに誘導いただき、カキコさせていただきます。

今日初めてSQLでデータ抽出してみました。
DBはオラクルでSQLPlusWを使ったんですが、抽出したデータをCSVやエクセル アクセスなどで書き出すことってできるのでしょうか?

どなたかよろしくお願いいたします。
224NAME IS NULL:2007/03/01(木) 22:06:37 ID:???
>>223
藻前の端末PCにOracleのODBCドライバなんかをインスコしてもらえ。

そうすればAccessにOracleのテーブルをインポートとかリンクとか出来る。

それで不満が出たらSQLを覚えてそれで不満が出たら、
OracleのSQLをいじる事を考えれ。

つか、初心者とかを排斥するワケでもないが、ユーザーのフロントエンドツール
としてExcelとかAccessは優秀だから、まずそっちを先に使いこなせ。
ほとんどはソレで解決できる。
225NAME IS NULL:2007/03/01(木) 22:14:44 ID:vN9pA/9v
>>224アクセスでODBCを使い、DBのインポートやリンクテーブルは使っているんですが、
なにぶんデータが重いのと毎回リレーションくんでクエリを作成するのがめんどくさくなったのでDB直にSQLで抽出できないかと思い使ってみました。
226NAME IS NULL:2007/03/01(木) 22:22:26 ID:???
>>225
ならInternetで検索してOracle用のCSV作成ツールやマクロを利用しろ。
正直、Oracleの純正ツールは初心者には向かん。他の商用DBに比べるとアレだと感じる。

まだ、VBAでADO経由でSQLコマンド投げるとか
Java+JDBCでやったほうがマシだと個人的に感じる。
227NAME IS NULL:2007/03/01(木) 22:35:51 ID:vN9pA/9v
>>226ありがとうございます。
なるほど、ADOプログラム用いてできましたね!!
って、ADO用いてオラクルにコネクションはる方法忘れちゃった・・・。復習しなおします・・・。
228NAME IS NULL :2007/03/01(木) 23:33:17 ID:???
>>223

(o゚ω゚o)つCommon SQL Environment
ttp://www.hi-ho.ne.jp/tsumiki/

自分のPCにOracle Clientが必要だけど、結果をCSVにセーブできる。
229NAME IS NULL:2007/03/03(土) 16:11:54 ID:OlFrbYGL
正月明けから分散サーバにしてAPサーバとDBサーバに分割したんですが、
その途端に、これまで80分で終了していたバッチが5倍かかるようになりました。
APはまったく変えてないし、マシン性能は向上しているので、まったく原因が
わかりません。
分散によってこのような事が発生する事例はありますでしょうか?
月1回の処理ですが、客先からもそろそろ厳しい目で見られそうです。
230NAME IS NULL:2007/03/03(土) 16:16:57 ID:???
>>229
そのバッチというのはどこで動いているのよ?
DBサーバー、APサーバー、その他
231NAME IS NULL:2007/03/03(土) 16:23:43 ID:???
>>229
DBサーバとAPサーバのトラフィック量をちゃんと計算してから
クライアントに提案したんだろうな?
232NAME IS NULL:2007/03/03(土) 17:09:35 ID:???
>>229
そりゃAP鯖とDB鯖が分散するより直結してる方が早いにきまってる。

IBMのAS400(i5)なんかはそういう思想でAP鯖とDB鯖が合体している
と言うかOSにRDBが融合しているしな。

まあ、「まったく原因がわかりません」とか言う厨房は素直に
外部の会社に泣きついた方がいいぞ。
233NAME IS NULL:2007/03/03(土) 17:10:12 ID:???
ネットワーク経由になるのに、まったくSQLやプログラムの変更をまったくしてないってこと?
だとしたら、あまりにも素人過ぎるぞ。
234NAME IS NULL:2007/03/04(日) 11:04:16 ID:???
>>229

分割しようと思った理由はなに?
CPUネックにでもなっていたの?
そうでないのなら、分割すればネットワークトラフィックが増大する分、
遅くなるのも予想できるだろうに?
特にバッチでデータを全てAP鯖側に転送して処理なんてしていた日には
目も当てられないと思うぞ?
235NAME IS NULL:2007/03/06(火) 07:41:31 ID:???
サーバが分かれて性能劣化、ってことはSQLの発行の仕方とかが元々悪かったんだろうね。
ループの中でマスタ検索とか。
ネットワーク越しにSELECT投げるなら回数減らすためにジョインした方が良い。
もちろん実行計画採ってね。
236NAME IS NULL:2007/03/06(火) 18:14:41 ID:???
229
バッチだけDBサーバ上で動かせwww
237NAME IS NULL:2007/03/07(水) 12:22:57 ID:m/eIFB9Y
>>236
それ却下された。
238NAME IS NULL:2007/03/07(水) 13:27:30 ID:???
>>236-237
提案したのかよw
239NAME IS NULL:2007/03/07(水) 23:11:44 ID:???
まあ、よくあると言うかハードjは売りっぱなし会社で、その売りっぱなし会社が
低賃金で雇ったハケンのデタラメSE&PGに組ませたシステムによくある失敗例だよな。

ただ、普通はリプレースの際にマシンスペックの向上に助けられて
問題にならない場合もタマにあったりするが、229の場合は
今まで動いていたソフトウェアが相当にヘボかったんだろう。

いい機会だから金だしてマトモな会社に丸投げしとけ(w
240NAME IS NULL:2007/03/07(水) 23:36:15 ID:???
>>229
そのAPサーバーって言語は何で動いてんの?

ネットワークバッファとかプリフェッチサイズ大きくして改善されるかな。
ループのまわし方にもよるけど。
241NAME IS NULL:2007/03/08(木) 01:39:56 ID:???
>>229
「ネットワークを疑ってみる」がセオリーっぽいけどね。何処がネックか調べようよ
5倍も時間がかかるようになって、2ヶ月以上の放置が信じられん
っていうか、テスト期間中に問題にならないのも信じられ
242NAME IS NULL:2007/03/08(木) 01:43:35 ID:???
APサーバからselect * from〜を多用していたりなw
243229:2007/03/08(木) 09:06:32 ID:46zKKXiM
月次処理で月1回しか流れない上、当該時間帯に競合するバッチもない。
監視はオペレータが常駐しているので長くかかってもシステムには影響がない
のと、他の開発案件との絡みもあるので、とりあえず業務Grpは対応する予定はなく、
インフラチーム預かりで調査中というステータスです。
244NAME IS NULL:2007/03/08(木) 22:26:04 ID:???
年明けにシステム変えて、3月でこのありさまとは、
ずいぶんと無能かつボンクラ揃いのインフラチームですな。

専任のオペレータが監視する様なシステムでお客から
そんなクレームきたら、それこそマッハで対応すべき状況だと
思うけど、そうならないのは天下りでパイプが結ばれている
関連子会社でとかなんだろうか?
245NAME IS NULL :2007/03/09(金) 00:58:29 ID:???
>>243

つ〜かさ、ボトルネックが何処にあるか分からないんだから、とりあえず
DBのステータスだけでも見てみたらどうよ?
バッチ処理時にSTATSPACK流すなり、O/Sのステータス取るなり、やる
事はいくらでもあるだろう?
CPUバウンドなのか、I/Oバウンドなのかで、対応も当然変わる訳だしさ?
ネットワークトラフィックとかも見ているのかよ?
「AP鯖とDB鯖との間が100Base-Tかなんかでつながってました」なんて
オチだって考えられるぞ?
246229:2007/03/09(金) 08:09:30 ID:B5ov/MgP
客先とオペレータの作業場が離れている関係で、
ユーザには見えてません。
といいますか、ウチのPJはこれまで携わったところと毛色が違って、
情シスが絡まずにエンドユーザと直接やり取りしているので、
夜間バッチがどのくらいかかったかの報告もしてません。
システムに影響なければいくらでも隠蔽できます。
夜間バッチがエラーになっても、オペレータから連絡が来たら
その場で対処してユーザには特に報告しませんね。
247NAME IS NULL:2007/03/10(土) 01:43:01 ID:???
その月次バッチ「だけ」重くなったの?
248NAME IS NULL:2007/03/10(土) 08:10:02 ID:???
>>246
客先にバレてないんだったら、問題を隠蔽しまくって
5年か10年後にやってくるリプレースの時に対策汁

まあ、そんな不二家みたいな会社が漏れの周りに
いない事を祈るけどな。
249NAME IS NULL:2007/03/11(日) 21:38:08 ID:908nGcRk
Oracle9iを使ってまして、特定のプロシージャを動かすたびにデッドロックが発生して困っています。
同一のプロシージャを5つほどパラで流しているのですが、デッドロックが発生する理由がよく分かりません。

一つのテーブルにたいしての、updateとinsertを行うプロシージャなのですが、それぞれのセッションで
updateする行が異なっていることは確認してあります。(where句の指定が違う)

ただ、update/insert を行うテーブル自体に、プライマリーキーはおろか、ユニークなキーを張っていません。
そういうテーブルにupdateを行う際に、ロックが掛かる列というのは、updateのwhere句の条件にマッチする
行だけということで良いんでしょうか?? 一意なキーを使用していないため、updateを行うときにロックの
掛かる行が多すぎてデッドロックに成ってるんじゃないのかと素人判断をしてるのですが、どうでしょうか。
250NAME IS NULL:2007/03/11(日) 21:50:55 ID:???
行ロックがかかるのはupdateしてるところだけ。
251NAME IS NULL:2007/03/11(日) 21:55:57 ID:???
分離レベルにもよると思うが、where句にindexのないカラムを指定すると
テーブル全体でロックするんじゃねーの?
と思いつつユニークなKEYを持っていないのにどうやってUPDATEする
レコードを特定できるのか疑問なんだが。

そりゃ、何月何日のあるカラムをまとめて更新するってSQLなら解るけど
それだとロックが掛かるのは当たり前な気がするが・・・。
252NAME IS NULL:2007/03/11(日) 21:59:24 ID:???
別セッションがinsertした行にもupdateかけようとしてるとか??
253NAME IS NULL:2007/03/11(日) 22:02:44 ID:???
「ユニークなキー」っていうことばの意味があいまい。
でもUNIQUE INDEXの有無にかかわらず、updateの行ロックはその行だけ。
254NAME IS NULL:2007/03/11(日) 22:06:12 ID:???
foreign keyとか?
255249:2007/03/11(日) 23:15:35 ID:908nGcRk
249です。
ユニークなキー ⇒ ユニークインデックスでした。

やっぱり、行ロックかかるのはupdateかかってる場合のみっぽいですね。
KROWNによると、テーブルのロックの掛け合い以外でもデッドロック状態に
なるようなので、そちらの可能性のほうを検証してみます。

ども、ありがとうございます。
256NAME IS NULL:2007/03/11(日) 23:23:40 ID:???
漏れはあんましWHEREでUPDATEする時は主キーでやる派の人間だけど、
そこの9iがどんな分離レベルで動いているかしらんけど、分離レベルによっては
他のプロセスでINSERTしようとして、他のプロセスが後からUPDATEしようと
した時に先に走ったトランザクションが終了しない場合はUPDATEは待ち状態に
入り、先のINSERTするトランザクションでWHERE句にINDEX張ってないカラムを
指定してSELECTかましていた時に、後のトランザクションのUPDATEがロックかけてたら
デッドロックになると思うが。

あと、分離レベルによってwhere句にindex作成していない状態で
where hoge >= 0なんて選択カマしているとテーブル全体でロックがかかるとオモ。
257NAME IS NULL:2007/03/12(月) 19:59:38 ID:???
質問です!
Oracle10gのXEClientをインスコしてその中のODBCドライバを使わなきゃいけないんですが、
ODBCの設定のところでORACLEinXEClientを指定してもドライバのセトアッププログラムが読み込めない(システムエラーコード126)
が出て、追加できません。
そのあとにドライバのConfigDSN,ConfigDriver,またはConfigTrancelatorが失敗しました。
って出ます。
何が原因なのかわかりません。
ファイルはレジストリに記述されてる場所にあります。
MSDNに書いてあることは実行しました。それでも改善しません。
環境はXP SP2です。
258NAME IS NULL :2007/03/12(月) 23:59:55 ID:???
>>257

「mfc71.dll」「msvcrt.dll」「msvcr71.dll」の三つのdllをc:\windwows\system32にでもコピっておけば?
259NAME IS NULL:2007/03/13(火) 00:02:22 ID:???
XEって使ったこと無いんだけど、InstantClientじゃだめなのかな?
260NAME IS NULL:2007/03/13(火) 00:14:11 ID:???
>>249
参照制約付いてないですか?
261NAME IS NULL:2007/03/13(火) 01:15:24 ID:???
pl/sqlについて質問させて下さい。

変数の項目定義をDBの項目%type;で行っています。
その項目の項目長を取りたいのですがlengthだと
変数の中身のサイズを取ってしまって取れませんでした。
何か良い手段はないでしょうか。
よろしくお願いします。
262NAME IS NULL:2007/03/13(火) 15:34:18 ID:3um8qxfU
aspからの接続で質問です。

asp(非.net)からOracle10gに接続しようと試みているのだけど、
うまくいかない。
環境は
DBサーバ
Windows Server 2003 R2
Oracle10g

WEBサーバ
Windows XP Pro SP2

接続方法
 set conn = Server.CreateObject("ADODB.Connection")
 conn.Open "dsn=hoge;uid=hoge;pwd=hoge"

エラー
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
指定されたドライバはシステム エラー 5 (Oracle in OraClient10g_home1) のため読み込めませんでした。

色々情報を探してみたのですが、見当たらずここに質問します。
お知恵をお貸しください。よろしくお願い致します。
263NAME IS NULL:2007/03/13(火) 17:44:24 ID:???
ちゃんとODBCドライバはインストールされた上でDSNの設定もした?
ドライバをインストールしただけではDSNの設定はされていないから、以下のようにDataSourceを指定する必要があるけど。
"Driver={Oracle in OraClient10g_home1}; Data Source=fuga; UID=hoge; PWD=hoge;"

DSNを設定した場合は、"dsn=hoge;uid=hoge;pwd=hoge"でいいけど。
264NAME IS NULL:2007/03/13(火) 17:50:14 ID:???
追加。
OracleのOLEDB Providerをインストールした場合は、
"Provider=OraOLEDB.Oracle; Data Source=fuga; CONNECTSTRING=; UID=hoge; PWD=hoge;"
として、Provider経由でも接続が出来る。
Oracleのは、ODBCよりProvider経由の方が推奨されているから、こっちを使うほうがいいかも。
265262:2007/03/13(火) 18:45:43 ID:???
>>263
ODBCドライバインストール&DNS設定もしました。
でもダメ。
OLEDB Providerをインストールして教えていただいたProvider経由の方法で接続したところOKでした。
ありがとうございました。助かりました。
266NAME IS NULL:2007/03/13(火) 19:01:25 ID:LA5xZJ82
質問があります。

oracle10gを使っています。
あるサーバーにhogeというDBがあり、私のクライアント端末から接続しようとして
いるのですが、うまく繋がりません。

Net Configuration Assistant で設定したときの
接続テストは成功します。

Net Manager での接続テストも成功しています。

しかし、SQL Plus のようなアプリケーションから接続しようとすると、
 UserName: foo
 Password: bar
 Host String: hoge
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
というエラーが出て、接続することができません。

色々とググったりして調査しているのですが解決できていません。
どなたか、ご協力願えないでしょうか…。
267262:2007/03/13(火) 19:05:53 ID:???
接続できて喜んでいたら今度は
ORA-12560: プロトコル・アダプタ・エラーが発生しました
とエラーが出るようになりました。
どう対処すれば・・?
268262:2007/03/13(火) 19:16:16 ID:???
事故レス
ODBCを再設定したところ今度はProvider経由でORA-12560エラーが出て、
ODBC経由だとOKになりました。
うーむ、よくわからない。。。
269NAME IS NULL:2007/03/13(火) 19:24:34 ID:???
こんな時間に会社から2chにカキコとか考えるとアレなんだが、
素直にOracleのサポートに電話した方が解決早いだろ。
270NAME IS NULL:2007/03/13(火) 19:33:03 ID:???
このスレの存在意義が (ry
271NAME IS NULL:2007/03/13(火) 21:27:48 ID:???
ORA-12154 は Host String: hoge に対応する接続記述子が見つかんないってこと。
tnsnames.ora 周りがあやしいかな。
272NAME IS NULL:2007/03/13(火) 21:30:08 ID:???
>>266

tnsnames.oraとsqlnet.oraをさらせ。
273NAME IS NULL:2007/03/13(火) 23:34:10 ID:???
oracleに関わらずの話かもしれないんですが、
いわゆる2フェーズコミットっていう、
よく情報処理試験にでてくるんですけど、
あれの、コミット可能かどうかを確認する1フェーズ目って
具体的には何をすることをいうんでしょうか?
274NAME IS NULL :2007/03/14(水) 02:56:45 ID:???
>>273

[準備フェーズ]

準備するように指示されると、開始側データベース(コミットが実行されたデータベース)は
分散トランザクションに関与する他の各データベースに、この後の指示に従って、コミット
またはロールバックする様に支持します。開始側データベースは以下の作業を行います。

・Redoログ・バッファとSCN(System Change Number)をフラッシュします。
・グローバルなSCNを他のDBに渡します。(SCN回復する時に必要な情報)
・表をロックして、コミット・フェーズが完了するまで表の読み書き操作を禁止します。
275266:2007/03/14(水) 09:08:19 ID:???
>>272
tnsnames.ora
HOGE =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = hoge)
  )
 )

sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (EZCONNECT)

このようになっています。
よろしくお願いします。
276NAME IS NULL :2007/03/14(水) 09:41:52 ID:???
>>275

これでどうなるかやってみろ。

TNSNAMES.ora
HOGE =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SID = hoge)
  )
 )


SQLNET.ORA
SQLNET.AUTHENTICATION_SERVICES= (NTS)
277NAME IS NULL:2007/03/14(水) 09:42:11 ID:???
>>275
ORACLE_HOMEが2つあるっていうオチだったりして。
278275:2007/03/14(水) 09:50:10 ID:???
>>276
!!!!!!
いけました!!ありがとうございます!!

でもなぜだろう?
NetManagerなどではカバーできない環境なのか…。
調査してみます。
279NAME IS NULL :2007/03/14(水) 09:56:27 ID:???
>>278

これで繋がったという事はどっちかというとlistener.ora側の設定を疑うべきだな。
280NAME IS NULL:2007/03/14(水) 09:59:34 ID:???
SID=hoge の指定は昔のやりかた。
まず SERVICE_NAME=hoge のままで、NAMES.DIRECTORY_PATH= (NTS) でやってみて。

NAMES.DIRECTORY_PATH は、接続記述子をどこから探すかの指定。
これがEZCONNECTなら、その方法でしていしなくちゃならない。
NTSならtnsnames.oraから探す。
281NAME IS NULL :2007/03/14(水) 10:03:23 ID:???
>>278

names.directory_pathをtnsnamesにしてみろ。

names.directory_path = (TNSNAMES)
282280:2007/03/14(水) 10:14:57 ID:???
NTSは認証のほうだった。
>>281 が正しい。
283275:2007/03/14(水) 10:15:28 ID:???
>>287の自分のレスに補足をします。

Net Manager でサービスネーネングを選択し、サービスの識別枠の中に
「Oracle8リリース8.0互換識別子を使用」
というチェックボックスがありますが、これにチェックを付け、サービス名に
入れていた名称をSIDに入れることで、正しく接続できるようになりました。

最初に提示しておくべきでしたが、環境を記載しておきます。
 サーバー
   Windows2003 Enterprise Edition
   Pen4 3GHz メモリ3GB
   Oracle Database 10g 10.1.0.2.0
 クライアント
   WindowsXP Professional Ver 2002 SP 2
   Pen4 3GHz メモリ1GB
   Oracle Database 10g 10.1.0.2.0

サーバーもクライアントもOracle10gなのに、Oracle8互換(?)で通信しなけれ
ばならなかったようです。サーバー・クライアント間が離れており、VPNを使用
しているから…などの理由が、おそらく存在するのだと思います。

ご協力ありがとうございます。
284275:2007/03/14(水) 10:23:05 ID:???
>>279-282
すいません、先走りました…(汗
(自分のレス書き込んでから>>279-282に気づきました)

「Oracle8リリース8.0互換識別子を使用」
にしたままでは原因解明や対処したことにはならず、追求して本来あるべき
設定にした方がよいのでしょうか?

さんざん悩まされた問題なので、もしも「Oracle8リリース8.0互換識別子を
使用」にチェックを付けて使うことに支障がなければこのままでもいいかな
ー…と思い始めていたりするのですが…。
285275:2007/03/14(水) 10:33:02 ID:???
以下の設定で、問題は発生しませんでした。

tnsnames.ora
HOGE =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = hoge)
  )
 )

sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)

今までをまとめると、変更点は以下の一点のみです。

『sqlnet.ora の
  NAMES.DIRECTORY_PATH= (EZCONNECT)
 を
  NAMES.DIRECTORY_PATH= (TNSNAMES)
 に変えた』
286275:2007/03/14(水) 10:44:44 ID:???
Net Manager を開くとツリーに「プロファイル」というのがあり、
ここの「選択メソッド」が、もともとは「EZCONNECT」だけになって
いました。

tnsping hoge
が ORA-12154 でエラーになっていたことから、私の環境では EZCONNECT
だけでは、何かが引っかかって接続識別子を解決できなかったようです。

Net Manager → プロファイル → 「TNSNAMES」「EZCONNECT」両方選択

これで接続も tnsping も正しくできるようになりました。
287257:2007/03/14(水) 16:19:44 ID:???
>>258
ありがとうございます。MFCランタイム入れたらその問題は解決しました。

>>259
ORACLEのUNIVインストーラーを持ってないので無理でした。
288NAME IS NULL:2007/03/16(金) 23:37:33 ID:O+49JDf9
oracle10g 32bit版をWindowsXP Pro(CoreDuo)にインストールしようとしましたが、
途中で
「ライブラリの読み込み中にエラーが発生しました
generalQueries」
と表示されて、インストールができません。
(その後のすべてのインストールの中止orこのコンポーネントのインストールのみ中止
 のどちらを選択しても終了しません。)
Enterprise、Standard、Personalのどれを選択しても同じ現象がおきてしまいます。

どなたか同じ現象の方や解決方法をご存じの方いらっしゃいますでしょうか?
289NAME IS NULL :2007/03/17(土) 01:08:34 ID:???
>>288

そのインストール用バイナリを保存しているディレクトリにマルチバイトの文字が
使われていたりしないか?
290288:2007/03/17(土) 10:56:14 ID:qcvECAwf
>289

アドバイスありがとうございます。
HDDにコピーしてからインストールをしたのですが、
なぜかgeneralQueriesというファイルが壊れていたみたいでした。

お手数をおかけしました。
291NAME IS NULL:2007/03/17(土) 18:03:55 ID:rpX2rmR1
Oracle10gにおいてundo表領域systemu表領域を他ドライブに変更したいのですが
@sqlplus "sys/psw@oracle as sysdba"
ASHUTDOWN IMMEDIATE;
BSTARTUP MOUNT;
という順におこなった所、Bにてリスナーは接続記述子で要求されたサービスを現在認識していません
と表示されてしまいます。
ご存知の方はよろしくお願いします。
292NAME IS NULL:2007/03/17(土) 22:53:10 ID:???
リスナー経由で接続できるのはOPENしてから。

Oracleサーバーにsshなんかで入って、sqlplus / as sysdba とかで入る。
293107:2007/03/17(土) 23:22:57 ID:rpX2rmR1
>>292
申し訳ありません。
もう少し噛み砕いて説明していただけないでしょうか?
294NAME IS NULL:2007/03/17(土) 23:27:05 ID:HgHJyZfK
質問なのですが、WindowsXPのHomeEditionにOracleのインストールは無理でしょうか?トライアル版をインストールしたのですが、なぜかどうやっても「リスナーがありません」となってしまいます。
295NAME IS NULL:2007/03/17(土) 23:32:36 ID:???
ワロタ
これ以上どうやって噛み砕けとw

Oracle10gのサーバUnix系なら、
サーバにDBAユーザでログインしてから、
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup mount
で、データベースを起動する。
296NAME IS NULL:2007/03/18(日) 00:39:59 ID:???
Windows のOracle 10gです。

テーブルにストアドプロシージャ名(またはストアドファンクション名)を入れておいて、
プロシージャ(またはファンクション)から、その値を取得してそのプロシージャを実行
したいのですが、できますか?

SQL Serverの場合は @procedure_name にプロシージャ名が入っているとして、

EXEC @procedure_name @pram1 pram2

などとして実行できたのですが、Oracleではどうもうまくいきません。
変数の中に入っている名前のプロシージャを呼び出すことはできませんか?
297291:2007/03/18(日) 01:43:52 ID:t/a53Ch2
>>295
申し訳ない。
@コンピュータの管理にてOracleService<SID>を起動させる
Asplplus aaa/bbb@ccc
サービス名を指定しなければプロトコル・アダプトエラーが発生します
B$ sqlplus /nolog
Cconn / as sysdba
を行ったところBでORA-12560:TNS:プロトコルエラーが発生してしまいます
298仕様書無しさん :2007/03/18(日) 11:15:28 ID:vUU4ZdYN
>>297
接続時に"@ccc"を使わない接続をしろってこと。
"@<接続子>"でリスナー経由の接続になるんだお。

コマンドプロンプトで
SET ORACLE_SID=ccc
ってやってから
B、Cを実行。
299291:2007/03/18(日) 12:03:09 ID:t/a53Ch2
>>298
ALTER DATABASE RENAME FILE
'C:\oracle\product\10.1.0\oradata\oracle\UNDOTBS01.DBF' TO
'D:\oracle\product\10.1.0\oradata\oracle\UNDOTBS01.DBF';

ORA-01113: file 2 needs media recovery
ORA-01110: data file 2: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\Oracle\UNDOTBS01.DBF'
UNDO表領域の場合はリカバリが必要なのでしょうか?
度々申し訳ありません。
300仕様書無しさん :2007/03/18(日) 12:23:07 ID:vUU4ZdYN
>>299
手順を晒せよ。
Dドライブにデータファイルはうつしてるよな?
301291:2007/03/18(日) 12:40:30 ID:t/a53Ch2
>>300
OSコマンドで以下を行った後に
copy C:\oracle\product\10.1.0\oradata\Oracle\UNDOTBS01.DBF
D:\oracle\product\10.1.0\oradata\Oracle\UNDOTBS01.DBF

@set oracle_sid=oracle
Asqlplus aaa/bbb
B$ sqlplus /nolog
Cconn / as sysdba
DSHUTDOWN IMMEDIATE;
ESTARTUP MOUNT;
F ALTER DATABASE RENAME FILE
'C:\oracle\product\10.1.0\oradata\Oracle\UNDOTBS01.DBF' TO
'D:\oracle\product\10.1.0\oradata\Oracle\UNDOTBS01.DBF';
Galter database open;
Gを行った際にリカバリが必要と表示されます。
よろしくお願いします。
302NAME IS NULL:2007/03/18(日) 13:10:18 ID:???
>>301
Windowsではどっちでもいいことなんだけど、Oracle使いとしてこの先生きのこりたいなら、
環境変数名はキチンと大文字/小文字を区別するようにしようね。
 × oracle_sid
 × Oracle_Sid
 ○ ORACLE_SID
303NAME IS NULL:2007/03/18(日) 13:18:34 ID:???
>>301
先にOS上でファイルを移動したか?

つまり、その手順で言うと、5と6の間でOSコマンドにてファイルを移動する。
304107:2007/03/18(日) 14:46:14 ID:t/a53Ch2
>>302
ご指摘の点、しっかりと受け止めます
>>303
はい、先にOSコマンドでコピーをしました。
やり直してみます。
305仕様書無しさん :2007/03/18(日) 15:07:47 ID:vUU4ZdYN
>>301
一回、元に戻してから。

D→E↓
ALTER DATABASE RENAME FILE
'D:\oracle\product\10.1.0\oradata\Oracle\UNDOTBS01.DBF' TO
'C:\oracle\product\10.1.0\oradata\Oracle\UNDOTBS01.DBF';

G→D↓
データファイルUNDOTBS01.DBFをCからDへコピー

E→F→G
306NAME IS NULL:2007/03/18(日) 18:13:36 ID:???
>>305

Recoveryが必要だって言われてんだから、renameした後にrecover database文
打ってみたら?
普通は必要ないんだけどね。
307301:2007/03/18(日) 19:11:12 ID:???
>>305
>>306
どうもありがとうございました。
システムディスクの容量が少なかったので
助かりました。
308NAME IS NULL:2007/03/21(水) 05:05:45 ID:Ct0Agd+G
下記@→A→Bの処理を繰り返し、一レコードずつ値を更新する処理を行っています
(表「USER_MASTER」のPKは「USER_ID」)。
ところが同一レコードに対し2回同じ処理を繰り返すことがあり不思議に思っています。
「@→ファイルにUSER_IDをログ出力→A→ファイルにUSER_IDをログ出力→B」
としてみたのですが、COMMIT自体は失敗せず、ログを確認したところやはり2回同じ処理を繰り返すことがあるようです。
頻度としてはきわめて低いのですが。。。

@ SELECT USER_ID FROM USER_MASTER
    WHERE STATUS = '0';
A UPDATE USER_MASTER
    SET STATUS = '1' WHERE USER_ID = '@で取得したUSER_ID';
B COMMIT;

COMMIT命令を発効してからDBのレコードに値が
反映されるまでタイムラグでもあるのでしょうか。。。?
Oracle初心者なのでそんな事例今まで聞いたことがなかったのですが
もし何かご存知の方いらっしゃればアドバイスいただければと思います。
使用しているマシンのOSはWindows 2003、Oracleのバージョンは9i、
使用している言語はC#(.NET Framework 1.1)でODP.NETを使用しています。
309NAME IS NULL:2007/03/21(水) 09:19:35 ID:YYlj3kB8
SELECTでデータを1行だけ抜きたいんですが、そんなコマンドありますか?
教えて下さい
310NAME IS NULL:2007/03/21(水) 09:21:46 ID:???
>>308
> COMMIT命令を発効してからDBのレコードに値が 
> 反映されるまでタイムラグでもあるのでしょうか。。。?

同一セッション内ならあり得ない。

俺ならいちいち無駄なループ回さず、
UPDATE USER_MASTER SET STATUS='1'
 WHERE USER_ID IN (
SELECT USER_ID FROM USER_MASTER WHERE STATUS = '0' 
);
って書くがな。
311NAME IS NULL:2007/03/21(水) 09:22:45 ID:???
>>309
select * from table where rownum = 1;
でとれると思うが。
312NAME IS NULL:2007/03/21(水) 09:40:21 ID:???
>>311
ありがとうございます
313NAME IS NULL:2007/03/21(水) 15:15:24 ID:???
>>308
select ... for update してね。
314313:2007/03/21(水) 15:17:49 ID:???
追加でスマン
ORA-60 が出るかもしれないので、order by USER_ID も追加で。
315NAME IS NULL:2007/03/24(土) 19:21:33 ID:???
以下のようなSQL呼んでるプログラムがあるんだが
> SELECT ename FROM emp WHERE empno BETWEEN 1000 AND 2000;
「empno順にソートされてないから修正しろ」っていわれた
そりゃそうだ、ORDER BYとか使ってないからな・・・と思って
ローカル環境でテストしたんだがこっちだと昇順ソートされてる
データのrowidを入れ替えたりもしたんだがやはり変わらずソートされてる
「ORDER BYをつけないとデータの順序は保障されない」というのは
ソートされる/されないの保障がないという意味なのでしょうが
ソートされないことを確認する、手っ取り早い方法はないでしょうか?
(ヘンな質問ですが・・・)
316NAME IS NULL:2007/03/24(土) 19:36:07 ID:???
>>315
実行計画でもとってみたら?
317NAME IS NULL:2007/03/24(土) 21:10:03 ID:???
>>315
何を確認したいのか分からない
素直におーだばいすれば?

明示的にした方が他の人にも分かり易いし
318315:2007/03/24(土) 22:05:56 ID:???
すいません、簡単に言い直します。

ORDER BYをつけてないが、自分の環境ではソートされてる。
じゃあソートされずにバラバラにデータを出力させるためには
どうすればいいか。ただし、SQLはそのままで。
データを何らかの方法で並びかえればバラバラにでるのであれば
その並び替える方法を教えてほしい。

本来の依頼の解決方法はORDER BYをつけること。それは間違いないです。
でもつけてないのにソートされてるのはなんでだろう?という疑問から
この質問をしました。意図がわかりにくくてすいません。
319NAME IS NULL:2007/03/24(土) 22:31:15 ID:???
たまたまソートされた順序で格納されてたからだろ。
テストデータをつくるとき、
FOR i in 1..100000 LOOP
とかでデータを作ってINSERTすると格納データが昇順ではいってる。
SELECTは読んだ順に出力する。

ただし、それをあてにしてはいけないのでORDER BYが必要。
320NAME IS NULL:2007/03/24(土) 22:32:36 ID:???
一見ばらばらに見せかけたいなら、ハッシュパーティション表に入れて、ORDER BYしないとそうなる。
321NAME IS NULL:2007/03/25(日) 00:52:39 ID:???
>>315

9iまでだと索引スキャンで読み出された場合索引順にソートされて出力される。
10gは何故か索引スキャンによるソートがなくなってたのでorder byで明示的にソート必要。
内部がどう変わったかは知らん。
現象のみ確認した。


322NAME IS NULL:2007/03/25(日) 01:00:11 ID:???
>>321
ソートしてるわけじゃない
323NAME IS NULL:2007/03/25(日) 14:29:29 ID:???
VB2005でASP.NET2.0のプログラムを書いています
ODP.NETを使ってOracle10gにアクセスさせたいと思っています

web.configのconnectionStringsにコネクションプーリングするための文字列を入れたところまではよかったのですが、
どうやってその設定で接続させるかがわかりません
ConfigurationManager.ConnectionStringsのことを調べてみたのですが、ADO.NETでの接続になるみたいです
どうやって接続させるのでしょうか?
324NAME IS NULL:2007/03/25(日) 21:30:49 ID:???
>>318
行移行すれば順番がズレなかったっけ?
大きめのカラムを作ってUPDATEをしておけばいいんじゃねぇ?
そして実行計画取ればソートしているか否かわかるんじゃ
325NAME IS NULL :2007/03/26(月) 21:37:38 ID:???
326NAME IS NULL:2007/03/29(木) 13:05:31 ID:SkrWWvsv
いまどきオラクル8なのですが、left outer joinの代わりに何を使えばいいのでしょうか
327NAME IS NULL:2007/03/29(木) 13:11:16 ID:???
>>326

どういったSQLを投げていて、どういった結果をとりたいのか
もっと具体的に質問したら?
328NAME IS NULL:2007/03/29(木) 13:18:39 ID:???
>>326
(+)
329NAME IS NULL:2007/03/29(木) 13:21:13 ID:SkrWWvsv
10gの場合で
select 表1.商品名,表2.価格 from 表1
left outer join 表2
on 表1.番号 = 表2.番号;
と書くところを、8iではどのように書くんですか
330NAME IS NULL:2007/03/29(木) 14:28:19 ID:???
select 表1.商品名,表2.価格 from 表1,表2
where 表1.番号(+) = 表2.番号;
331NAME IS NULL:2007/03/29(木) 14:35:56 ID:???
8iだとLEFT JOIN〜って書き方出来ないん?
332NAME IS NULL:2007/03/29(木) 14:40:11 ID:???
出来ない。
333NAME IS NULL:2007/03/29(木) 15:04:20 ID:SkrWWvsv
ありがとうございました!
334NAME IS NULL:2007/03/30(金) 00:15:54 ID:???
10gの外部参照って(+)じゃダメなの?
335NAME IS NULL:2007/03/30(金) 01:36:22 ID:???
ダメじゃないけど新規開発するなら OUTER JOIN 使うべき。
慣れればこっちのほうがわかりやすいよ。
336NAME IS NULL:2007/03/30(金) 02:36:48 ID:???
(+)はOracleでしか使えないし、将来的には廃止される可能性もあるしね。
337NAME IS NULL:2007/03/30(金) 07:16:46 ID:???
パフォーマンス的に問題になることが多いのが
外部結合を使用している場合が多いんだよなぁ
338NAME IS NULL:2007/03/30(金) 09:21:55 ID:???
2台のサーバ(しかも8iと9i)にデータベースリンク張って外部結合させたviewを書いたことがあるよ
検索が遅すぎて使い物にならなかった

もともと8iのみだったけど、容量が足りなくなったのでサーバ増設
しかも、まだ8iが手に入ったのに9iを導入なんて馬鹿なことやってた

で、そのデータベースを使用したシステムが軒並みエラーを起こして始末書を何枚も書かされる羽目になったよ
339NAME IS NULL:2007/03/30(金) 19:44:08 ID:???
>>338
自分で導入したんだったら始末書書くのも自業自得だろ.
ついでにその場合に遅くなる問題はデータベースリンクで連携してる部分だろ.
DBリンク使わずに外部結合してのパフォーマンス測定やった?
外部結合する時でも普通はきちんとキーやインデクス使えば十分実用レベルでしょ.
っていうか導入する前にViewとかなら性能試験やっとけよ.
DBの容量が足りなくなったんだったら,HDD増設して普通に表領域増やせよ.

なんか他にも突っ込み所あるような気がするけど後ヨロシコ
340NAME IS NULL:2007/03/30(金) 20:36:45 ID:???
どうしてコストが高い方を選んで、わざわざ遅くするような選択するかな〜
もちろん維持コストも高くなっているんだよな・・・おまえクビw
341338:2007/03/30(金) 20:51:19 ID:???
俺が導入を決めたんじゃなくて、上が導入を決めたんだよ
で、こっちには「新しくDBサーバ買うから」しか言わない
しかも、置き換えるのではなく、よく使うデータを新しい方に移す方針たててた

>っていうか導入する前にViewとかなら性能試験やっとけよ.
1週間前に言われて十分な検証をとれないままやらされたんだよ
しかも、当時社内には9iなかったからデータベースリンクも8i同士でしかやってない
そりゃ、トラブるわなってこと
342NAME IS NULL:2007/03/30(金) 21:07:08 ID:???
営業が売りつける事しか頭になくて、かつ開発が発言力ない組織なんだろ。

その後ユルユルと9に移行したんだろうし。
たぶんw
343NAME IS NULL:2007/03/31(土) 09:55:17 ID:1KZDmp2y
oracle 9i をwindows2000に再インストールして、パッチ9.2.0.4をあてました。
Database configrationからグローバルデータベース作成のための
バッチファイルを作成しました。

そのバッチファイルを起動すると、エラーになってしまいます。
エラー内容は
・CREATE OR REPLACE ?????????
・データベースがオープンしていません。
などです。

オラクルのサービスが起ち上がってるのは確認したんですが、
それ以外で何を確認すればいいのかがわかりません。

オラクルを再インストールしても同じ現象になります。

どなたか教えてください。
344NAME IS NULL:2007/03/31(土) 18:22:12 ID:???
>>343
PSR入手できる環境なら、
OiSCに訊くのが一番早い。
345NAME IS NULL:2007/03/31(土) 23:06:24 ID:???
>>343

バッチを作らずに普通にDBCAからそのまま作成してみたら?
結構DBCAで作成されるバッチにはバグがあったりするよ。
346NAME IS NULL:2007/04/01(日) 09:56:46 ID:???
>>344-345
ありがとうございます。
DBCAから作ってみて、だめだったら問い合わせてみます。
347NAME IS NULL:2007/04/02(月) 17:32:09 ID:???
単純だけど、以前から疑問に思ってたので教えてください。

shellから発行したSQLを中断したいんだけど、killしたらロールバック
されてしまうんだけど、その時間が勿体無いので、ロールバックせず
に中断したいんだけど、無理?
348NAME IS NULL:2007/04/02(月) 20:28:17 ID:???
電源落とせば?
349NAME IS NULL:2007/04/02(月) 20:50:33 ID:???
>>348
電源落とす方が時間かかるでしゅ
350NAME IS NULL:2007/04/02(月) 21:08:40 ID:???
>>347
smonをkillしたらabortと一緒の動きしたと思ったけど
351NAME IS NULL :2007/04/02(月) 22:50:56 ID:???
>>347

またRDBMSの基本を無視するような動きだな。
352NAME IS NULL:2007/04/03(火) 10:45:27 ID:???
レスどうもです。

確かにOracleの基本を無視してるんですが、
実運用では、単にワークを作る処理とか、そのSQLは
捨てても他のプロセスを生かしたいという状況があるもので・・
353NAME IS NULL:2007/04/03(火) 11:06:24 ID:???
>>352
どっちにしろ再度実行する前に
「これまでの処理をロールバックする」とか
「実行前に初期化する」って処理が必要なんじゃね〜の?
だったらロールバックした方がいいだろ。

次に実行云々の前に、別のShell立ち上げて
接続すれば、既存トランザクションの影響は受けないしなwww
354NAME IS NULL:2007/04/03(火) 12:16:51 ID:???
>>353

んだな。
どうせトランザクションの排他レベルはシリアライザブルなんだから、何で
Killった後にいちいち待っているのか分からんな。
355NAME IS NULL:2007/04/04(水) 21:39:04 ID:???
あるマシン上のOracle10g上のDBを
別のマシンのOracle8iにエキスポート
するには8iのクライアントで10gでつないで
EXPしてからそのファイルを8iのクライアント
でIMPすればいいようなのですが他にいい方法
はないでしょうか?
356NAME IS NULL:2007/04/04(水) 22:01:16 ID:???
10g→8iなんてできるんか?
357NAME IS NULL:2007/04/04(水) 22:56:06 ID:???
サポートマトリックスを確認したが、10g => 8iはサポート外だな。

DB Linkがサポートされているかどうか知らんが、そっちの方が
まだ可能性がありそうだな。
358NAME IS NULL:2007/04/05(木) 00:48:19 ID:???
>>357
サポートマトリックスってどれ?
自分の見る公式の奴にはEXP/IMPは書かれていない
マニュアルだと7.xでもインポートできるような書き方されてる
359NAME IS NULL :2007/04/05(木) 04:35:37 ID:???
U.S. Metalink Note:132904.1 Compatibility Matrix for Export & Import Between Different Oracle Versions
によると、10gからだと8.1.7のexp使ってexpしたファイルのimpはサポートされているな。
8.1.5や8.1.6だったら、まずは8.1.7.4のパッチをあてる必要があるな。
360NAME IS NULL:2007/04/05(木) 07:52:44 ID:???
>>355
8.1.7のexpで取得したダンプなら
10gのimpでインポート可能。

361NAME IS NULL:2007/04/05(木) 08:23:20 ID:???
362NAME IS NULL:2007/04/05(木) 10:48:29 ID:???
Oracle10gをテスト用に自分のPCを入れています
他の人のPCにクライアントを入れて自分のPC内のDBに接続しようとしたらタイムアウトして接続できませんでした
そのPCからサーバにある本番環境にはアクセスできました

Net Configuration Managerを使用して設定しました
設定内容は確認しましたが、おかしいところはなかったです

どうすれば接続できるようになりますか?
OSはWindowsXP SP2です

自分のPC内のDBの設定、もしくは共有設定あたりがおかしいのかなと思うのですが・・・
363NAME IS NULL:2007/04/05(木) 11:10:16 ID:???
エスパーさんお呼びですよー

っていうのはおいといて、WindowsFirewallとかが弾いてるとかかな?
364NAME IS NULL:2007/04/05(木) 16:42:45 ID:???
>>361
残念ながら8.1.7→10.xは
8.1.7のサポート終了時に
マトリックスから外されただけで、
正式サポートされていた
バージョンの組み合わせだよ。
365362:2007/04/05(木) 19:47:17 ID:???
>>363
そのまさかでした
あほらしい質問して申し訳ない

でも、WindowsファイアウォールにSQL Plusの追加をしても1521空けてもアクセスできませんでした
これ以上はスレ違いになりますか
366NAME IS NULL:2007/04/05(木) 21:14:53 ID:???
>>364

疲れるな。。

8.1.7→10.x じゃなくて、>>355 がやりたいと言ってるのは
10g→8i のことでしょ?

ちゃんと読めないの?

367NAME IS NULL:2007/04/06(金) 07:37:10 ID:???
>>366
だから8iのexpツールでダンプとれば
8iにimpできるんだよ。
ちゃんと読めよwww
368NAME IS NULL:2007/04/06(金) 08:21:52 ID:???
>>367

へぇ。じゃあ例えば新しいデータ型とかもちゃんと入るのかね。

もちろんやってみてから言ってるんだろうね?
369NAME IS NULL:2007/04/06(金) 08:27:03 ID:???
>>367

ああなるほどね。やっと >>367 の言ってることがわかったよ。
ちゃんと書かないお前が悪いな。
370NAME IS NULL:2007/04/06(金) 22:21:59 ID:???
DB板ってなんでこんな人間しかいないんだ?w
みんなコミュニケーション下手すぎwww
371NAME IS NULL:2007/04/07(土) 21:04:10 ID:???
しかしあら不思議!SQLでしゃべるとみんな饒舌になるのでした
372NAME IS NULL:2007/04/07(土) 21:33:26 ID:???
>>370

ここの人達、バッファが足りなくてちょっとディスクリード起こしてしまっているんです。
373NAME IS NULL:2007/04/08(日) 13:47:14 ID:???
>>355
sql*loader使わないと無理
374NAME IS NULL:2007/04/09(月) 21:20:27 ID:dgbyTs5E
windows版oracle10G パッチの適用方法を教えて頂けないでしょうか?
readmeにはUNIX版しかないので困っております。どこかに説明してあるサイトやどなたか教えて頂けないでしょうか?
375NAME IS NULL:2007/04/09(月) 21:31:30 ID:???
ouiを起動して、パッチのjarを指定するだけ。
376NAME IS NULL:2007/04/09(月) 21:45:39 ID:dgbyTs5E
>>375
CDから解凍する必要はないですか?
377NAME IS NULL:2007/04/09(月) 22:16:59 ID:???
あったっけ?
っていうか、やってみればいいじゃん。
パッチのリストが読み込まれればそれで成功でしょ。
甘利にも簡単なことなんで、いちいち細かいことを覚えてないって人が俺も含めてほとんどだと思うよ。
378NAME IS NULL:2007/04/10(火) 21:56:22 ID:D+v1PS8Y
sqlplusでデータベースに接続出来ない。
ORA-12154: TNS: 指定された接続識別子を解決できませんでした
↑これ。
tnsnames.oraとか知らんから馬鹿でもわかるように解決する手順教えてくれ。
379NAME IS NULL:2007/04/10(火) 22:20:12 ID:???
>>378
サポート契約しているベンダーへレッツゴー。
380NAME IS NULL:2007/04/11(水) 07:51:05 ID:???
>>378
Oracle Netの勉強汁www
じゃなきゃサポート契約汁www
381NAME IS NULL:2007/04/17(火) 02:33:01 ID:VDbMfobx
接続に関して躓いているので、アドバイスをください。

環境はlinux に10g を入れてサービスとして起動しようとしています。

一台のマシンにインストールしたオラクルに対して
リスナーを設定し、複数のDB (=インスタンス)を作成したわけですが、
片方のDB に対してアクセスができませんでした。

tnsname の設定は問題ないと思っています。
listener の設定が不安です。
調べていると、listener のファイル内に作成した各DB のSIDを書くような記述が見受けられるのですが、
netca で行うリスナーの設定では、そのような入力は求められませんでした。

複数のDB へのアクセスを一つのリスナーで受けることは可能なのでしょうか?
また、その場合のlistener.ora の記述方法はどういったものになるのでしょうか?
382NAME IS NULL:2007/04/17(火) 07:36:18 ID:???
>>381
できる。

listener.oraの記述については、マニュアル
「Oracle Database Net Services リファレンス」の
「リスナー・パラメータ(listener.ora)」あたりを
参照してもらえば分かると思うけど、
SID_LIST_listener_name=
  (SID_LIST=
   (SID_DESC=
    (GLOBAL_DBNAME=global_database_name)
    (SID_NAME=sid)
    (ORACLE_HOME=oracle_home))
   (SID_DESC=...))
のように書く。

要はSID_DESCのセクションを複数記述する。
383381:2007/04/17(火) 08:43:50 ID:VDbMfobx
>>382
ご回答ありがとうございます。やってみます。
ちなみに、リスナーを複数用意するのはどういった場合なのでしょうか?
一つでも使えるのに、複数作成することもあるのですか?
384NAME IS NULL:2007/04/17(火) 09:01:39 ID:???
>>383
複数NICで負荷分散させたいときとかに、
複数リスナー立ち上げる。
385NAME IS NULL :2007/04/18(水) 02:10:18 ID:???
>>384

複数NICの場合はにはO/S側でチーミングなりボンディングすればいいんでないの?
386NAME IS NULL:2007/04/18(水) 02:24:47 ID:???
レイヤーが違うから、どっちがいいかは設計方針によるんじゃないの?
listenerでやる方が高度なことができるけど、反面Oracleのバグや仕様に悩まされることもあるかもしれない。
とかね。
387NAME IS NULL:2007/04/18(水) 09:47:54 ID:???
アプリケーションプログラムの接続のためにlistener.oraにSIDやGLOBAL_DBNAME
を設定するのは邪道。これはOracle8のころのやりかた。

Oracleインスタンスの初期化パラメータLOCAL_LISTENERを設定し、Oracleインスタンス
からOracleリスナーに自分を登録させるのが今の方法。
388NAME IS NULL:2007/04/18(水) 13:43:26 ID:???
なるほど。
389NAME IS NULL:2007/04/20(金) 16:49:47 ID:W5Lcj5GJ
オラクルとアクセスとSQLの違いを教えてください。
何を導入したらよいのか解らず困っています。
よろしく御願い致します。
390NAME IS NULL:2007/04/20(金) 17:23:40 ID:???
違いが多くて同じ箇所をあげたほうが早い。全く別物だと思ってOracleの入門書からはじめよう。
391NAME IS NULL:2007/04/20(金) 19:07:33 ID:v3OhOLUY
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
392NAME IS NULL:2007/04/20(金) 21:17:46 ID:???
>>389
そんなこと聞いてるようなレベルならアクセスにしとけ
つかSQLてMYSQLのことか?
393NAME IS NULL:2007/04/21(土) 02:31:48 ID:Vxfi8HR4
ここで言っているインスタンスってDB のことでいいですか?
DBCA とかで, DB 作成というのがありますが、それはインスタンスの作成である。と。
394NAME IS NULL:2007/04/21(土) 09:50:03 ID:???
DBとインスタンスは1対1に対応するからね。

DBCAで作るのはDBだな。
インスタンスはSGAとプロセスの集合を指す。
395NAME IS NULL:2007/04/21(土) 11:46:51 ID:???
>>394

必ずしも1対1とは限らない。
RACの様に複数インスタンス対1DBという対応だってありうる。
396NAME IS NULL:2007/04/21(土) 17:47:21 ID:iUeSgJd/
低レベルな問い合わせですみません。
教えて下さい。
バージョンは9iです。

・SQL1文で
・SELECTの結果を見て、動的にFROM句/where句を変えたい。
・正確にはプロCOBOLん中で使います。
・PL/SQLは使用できません。

↓実イメージ
SELECT
名簿.生徒名,
名簿.理系文系区分
理系費用.学費,
文系費用.学費
from
名簿, 理系学費, 文系学費

(このままだと、学費テーブルとのジョインが上手くいかないのはわかっています。)
名簿テーブルの理系文系区分が、理系だったら、理系費用テーブルをジョインしたい。
文系だったら、文系費用テーブルをジョインしたい、みたいな。。。

一応、解決策は一つ思い付いています。
理系と文系のそれぞれ費用テーブルにジョインした問い合わせを、
UNIONすればイイってな感じは思いついてます。
ただ、SQLん中でIF文とか書けるのかなぁ、というのがわからなくて。
397NAME IS NULL:2007/04/21(土) 18:51:54 ID:???
>>396
IF文は要らない。
名簿テーブルの理系/文系の部分集合と結合できれば良い。

select a.生徒名,a.理系文系区分,b.学費
from 名簿 a,理系学費 b
where a.理系文系区分=理系
union
select a.生徒名,a.理系文系区分,b.学費
from 名簿 a,理系学費 b
where a.理系文系区分=理系
398NAME IS NULL:2007/04/21(土) 19:15:08 ID:???
文系は廃止です!
399NAME IS NULL:2007/04/21(土) 19:24:34 ID:???
やさしいな
漏れなら参考書で調べたのか?と聞いてやりたいが
400396:2007/04/21(土) 20:44:57 ID:iUeSgJd/


>>397
ありがとうございます。
しかし、私の書き方が悪かったようです。すみません。
397様の書いてくださった問い合わせ文はイメージできていたんです。

ただ、別の解決策がないのかを模索していました。
(PL/SQL以外で)SQL文の中にIF文が書けるのか、
動的に構文を書き換える事が出来るのかが知りたかったのです。

>>399
調べてみました。
IF文で逆引きを行うとCASE文しか見つけれませんでした。。。
401NAME IS NULL:2007/04/22(日) 00:11:59 ID:???
>>396
個人的には学費テーブルを文系用、理系用に分割していることが
設計ミスのようにも感じますが、

>IF文で逆引きを行うとCASE文しか見つけれませんでした。。。
そのCASE文&スカラー副問合せを使用して、

SELECT 生徒名,理系文系区分
,CASE 理系文系区分
 WHEN '文系' THEN (SELECT 学費 FROM 文系学費)
 WHEN '理系' THEN (SELECT 学費 FROM 理系学費)
END 学費
FROM 名簿
402396:2007/04/22(日) 00:49:45 ID:4IKXQWUf
>>401
ありがとうございます。
月曜になれば、実際に端末叩いて確認できるのですが、
今現在、確認手段がないので、よろしければ、も一つご教授下さい。

下記のような問い合わせは成立するでしょうか?

SELECT a.生徒名, a.理系文系区分, a.授業科目コード
,CASE a.理系文系区分
 WHEN '文系' THEN (SELECT b.学費 FROM 文系学費 b WHERE a.授業科目コード = b.授業科目コード)
 WHEN '理系' THEN (SELECT c.学費 FROM 理系学費 c WHERE a.授業科目コード = c.授業科目コード)
END 学費
FROM 名簿 a


> 個人的には学費テーブルを文系用、理系用に分割していることが
> 設計ミスのようにも感じますが

本来的には2つの問い合わせを作成するハズで、
それが正統のハズが大人の事情で orz
403NAME IS NULL:2007/04/22(日) 01:43:37 ID:???
>>396
>下記のような問い合わせは成立するでしょうか?
構文的、SQLなどから推測できるテーブル構成的には
問題ないかと思います。
404396:2007/04/22(日) 02:01:01 ID:???
>>403
ありがとうございました!
助かりました!
405NAME IS NULL:2007/04/22(日) 11:59:16 ID:???
>>402
授業科目コードが文系学費テーブル|理系学費テーブルの一意キーであれば。

406NAME IS NULL:2007/04/22(日) 14:42:56 ID:RabniuWG
テーブル作成シェルを流して、その後、
もう一度、テーブル作成シェルを実行すると、エラーとなりますよね?
(drop tableで一旦、テーブル削除をしないと。)
でも、1回目に流したテーブル作成シェルのテーブル名が大文字で、
2回目に流したテーブル作成シェルのテーブル名が小文字の場合って
正常にテーブルが作成されてしまいませんか?
407NAME IS NULL:2007/04/22(日) 14:50:33 ID:???
>>406
Oracleの場合、オブジェクト名は大文字・小文字区別されないよ。
どうなるか分かるよな?
408NAME IS NULL:2007/04/22(日) 15:43:14 ID:???
>>407
テーブル作成時にダブルクォーテーションで囲むと
明示的に大文字・小文字が区別されるよ!

そんなことするやつ少ないとおもうけど
409NAME IS NULL:2007/04/22(日) 15:53:16 ID:???
>>406
大文字と小文字のテーブルができただけ
何が問題なんだ?
410396:2007/04/22(日) 20:13:05 ID:???
>>405
ありがとうございます。
認識いたしました。
411NAME IS NULL:2007/04/24(火) 14:58:39 ID:Fp+zC6oF
あるテーブルの主キーでの削除に非常に時間が掛かるのですが、
どういったことが原因として考えられるでしょうか?

外部キーで沢山参照されているテーブルだったので、それらの
cascade削除をしないようにしてみたのですが、処理時間に大きな
改善は見られませんでした。
412NAME IS NULL:2007/04/24(火) 15:37:26 ID:???
>>411
トレース取ってみて、
SELECTでのレコード取得時と、
DELETE時のCOST比較してみたら?
413NAME IS NULL:2007/04/24(火) 16:07:30 ID:???
>>411
何件中何件削除してる?
414NAME IS NULL:2007/04/24(火) 23:01:59 ID:???
>>411
検索性能重視のテーブルでインデックスいっぱいあったりする?
415NAME IS NULL:2007/04/25(水) 01:03:22 ID:???
リリースノートによると、oo4o 9.2.4.4はWin2003に対応していないと
なっていますが、問題なく動作しています。
オラクルがいう「システム要件」というのは、絶対なんでしょうか?
416NAME IS NULL:2007/04/25(水) 01:10:56 ID:???
サポートの問題とかいろいろある。
417NAME IS NULL:2007/04/25(水) 09:40:07 ID:???
>>415
日本オラクルが「問題有りませんよ」と
公式発表しているのがシステム要件だろ。

それ以外の組み合わせで何か起きてもサポート対象外だし、
何か起きるかどうかも日本オラクルでは把握すらしてないだろwww
418NAME IS NULL:2007/04/25(水) 22:02:39 ID:???
>>415
動作保証されていない組み合わせだと
表面上うまく動いているように見えるかもしれないし、
間違った操作でもそのまま何も言わずに動いてくれるかもしれないし、
バックアップをリカバリしたときに元通りにならないかもしれないし、
って感じなのかもね。
419NAME IS NULL:2007/04/25(水) 23:53:04 ID:idDHPFKk
オラクルサーバーの物理的な入れ替えというのを行うために
今あるデータベースを一時的に外部にまるまる保存したいんですが、
現実的な方法ってどういうものがありますか?

データベースはテーブル数などは多いけど容量的には小さいものです。
ユーザー名なども保存して再び同じ設定で使いたいのですが、
なにぶんこういう経験がゼロなもので何から調べて良いのかもわかりません。

丸投げに近い形で済みませんが、どうか宜しくお願い致します。
420NAME IS NULL:2007/04/26(木) 00:41:34 ID:???
inportとexport
421NAME IS NULL:2007/04/26(木) 00:51:12 ID:???
>>420
お前、微妙に意地悪だな。
422NAME IS NULL:2007/04/26(木) 19:03:57 ID:???
>>420
ありがとうございます。
オラクルのメニューの中にあるエクスポートを実行しようとしたら
ユーザー名とパスワードが通りませんでしたが、
なんとか頑張ってみます。
423NAME IS NULL:2007/04/26(木) 20:17:29 ID:???
>>422
新しいサーバに同じバージョンで移行するなら
コールドバックアップしてリカバリでも良いんだけどな。

まぁ、どっちも手間的にはたいして変わらんと思うけど。
424NAME IS NULL:2007/04/26(木) 20:37:32 ID:???
>>423
コールドバックアップですか?
またググってみます。

どうもありがとうございます。
425NAME IS NULL:2007/04/27(金) 00:30:36 ID:???
ストアドプロシージャに登録してバッチ処理を行うのですが
処理中の件数をリアルタイムに表示する方法はありますでしょうか?
通常はできなさそうなのですが何とか表示したいのです。。。
426NAME IS NULL:2007/04/27(金) 01:06:45 ID:HdP4V3Wp
ソートを2重にしたいんだけどオラクルではどうすればいいのでしょうか?
例えば「値段」を降順に並べたあと、もし値段の値が一緒だった場合「商品名」が昇順に並ぶようにしたいのですが
427NAME IS NULL:2007/04/27(金) 01:10:05 ID:???
>>426
order by 値段 desc, 商品名 asc
428NAME IS NULL:2007/04/27(金) 01:10:52 ID:???
>>425
処理度合いテーブルを作って,自律型トランザクションで進行状況を出力する.
別アプリでそのテーブルを照会する.

>>426
Order by 値段,商品名
429NAME IS NULL:2007/04/27(金) 02:07:59 ID:???
>>428
ふむ〜やっぱりそれしかないですかね〜
telnetから処理を行っているので実行したら処理終了まで
無通信の状態になってしまい切断されてしまうのです。
そもそもtelnetを使うのが間違いですかね・・・orz
430NAME IS NULL:2007/04/27(金) 03:03:14 ID:???
>>429
ストアドでUTL_FILEつかってログ出力させ、それをtailするのが一番簡単だとはおもう。
どっちにしろ、何かしらバッチのログを採るのが普通でしょ?
431NAME IS NULL :2007/04/27(金) 05:36:02 ID:???
>>419

鯖の種類何よ?
ちなみに移行元の鯖と移行先との鯖は同時に立ち上げ可能なのか?
それで大分手間も代わってくるけどな。
432NAME IS NULL :2007/04/27(金) 05:38:13 ID:???
>>429

Telnet側でKeep Aliveパケット送ればいいじゃん?
433NAME IS NULL:2007/04/28(土) 01:28:32 ID:???
ログは撮りますけどUTL_FILE使用しなければ処理終了後に一括出力ですよね・・・
telnet切断は無通信時間を延ばしてもらうことで対応することにしました^^;
434NAME IS NULL:2007/04/28(土) 02:12:56 ID:???
telnetってフォアグランドで何か実行していても切れたっけ?
って思ったけど、
OSが切断しなくても途中のNW機器が切ってしまうことがあるな。
435NAME IS NULL :2007/04/28(土) 06:35:40 ID:???
>>433

screenなりいれて、鯖側でやればいいじゃん?

ttp://q-eng.imat.eng.osaka-cu.ac.jp/~ippei/unix/?UNIX%BA%A3%C6%FC%A4%CE%B5%BB%2Fscreen
436NAME IS NULL:2007/04/28(土) 23:23:42 ID:???
質問です。
C言語でOracle10gを利用することになったのですが、
接続の方法にはPro*CとOCIの2つしかないのでしょうか?
また、OCIの場合、connectやselect,insert等をC言語の関数化することは可能でしょうか?
437NAME IS NULL:2007/04/28(土) 23:33:25 ID:???
>>436
どうとでも出来る。
まずはやってみろ。
438308:2007/04/29(日) 13:33:30 ID:???
>>310-314

ありがとうございます。
早速やってみたところ、極めて稀にはなったのですが、やはり発生します。
そもそも一セッションしかDBに接続していないのに、
なぜだろうと。。。勢い余ってOracleのサポートにTELしてしまったところ

@ SQL traceを取りたまえ。アプリ自体のバグかもしれないし、これで切り分けができるだろう。
A Oracleのバグとは思えない。もし、万が一、バグがあるとするなら、.NET Framework自体のバグかもね。

とのアドバイスをいただきました。
@は確かにそのとおりで納得しました。
が、Aの意見は…もし.NET自体のバグだとすると… (((( ;゚Д゚))))ガクガクブルブル!
439NAME IS NULL:2007/04/29(日) 15:37:10 ID:???
>>438
バグはどこにでもある。
440NAME IS NULL:2007/04/29(日) 15:43:49 ID:???
.NET Framework本体より、ODP.NETの方が潜在的にバグが多そうだしなw
441NAME IS NULL:2007/04/29(日) 20:44:57 ID:???
Oracleの資格取ったけど、会社ではDB2なんだよね。
家ではOracleDBを入れてみたいんだけど、もっとも安いOracle製品ってどれ?
値段も教えてほしい。
442NAME IS NULL:2007/04/29(日) 20:50:14 ID:???
大型連休上げ
443NAME IS NULL:2007/04/29(日) 20:57:17 ID:???
444NAME IS NULL:2007/04/29(日) 21:31:04 ID:???
>>441
Express Editionがタダ。
一番安いのはPersonal Edition。

Enterprise Editionでしか使えない
いろんなオプションとかも
(ライセンス違反なしで)試したいなら
Personalを買うのが良い。
445NAME IS NULL:2007/04/29(日) 21:57:11 ID:???
試すだけならEEもダウンロードできるだろ
446NAME IS NULL:2007/04/30(月) 00:12:47 ID:???
>>443,>>444
ありがとうございます
ぐぐったんですが、DL出来るURL教えてもらえますか?
ORACLEのサイト苦手orz
447NAME IS NULL:2007/04/30(月) 01:05:10 ID:???
448NAME IS NULL:2007/04/30(月) 01:13:00 ID:???
日本のサイトならこれ
http://otn.oracle.co.jp/software/products/oracle10g/index.html
プラットフォームはUSより少ないみたいだけど。
449NAME IS NULL:2007/04/30(月) 02:13:10 ID:???
>>447,>>448
度々すみません。助かりました。
まだDLしてませんが、>>447さんが教えてくださった方は期間は無期限なのでしょうか?

450NAME IS NULL:2007/04/30(月) 06:11:50 ID:???
開発用だから無期限
日本サイトにある体験版も中身は全く一緒。
そもそもいまのOracleには日本語版というものがないしね。
451NAME IS NULL:2007/04/30(月) 08:25:43 ID:???
>>449

ボラクルの体験版、もくしは開発者用ライセンスは紳士協定という
ことになっております。
まあ、端的に言うならテクニカルには無期限という事です。
452NAME IS NULL:2007/04/30(月) 12:00:53 ID:???
>>450,>>451
わかりました。ありがとうございます。
日本語版のをインスコしてみようと思います。
わかり易く説明してくださって本当にありがとうございました。

DB板は本当に紳士な方ばかりで癒されます。
453NAME IS NULL:2007/04/30(月) 13:46:52 ID:???
>>452

日本語版はないと >>450 で教えてもらったのに、その態度はなんだ。
454NAME IS NULL:2007/04/30(月) 13:55:41 ID:???
>>453
日本語サイトの・・・ね。行間察して♪
455NAME IS NULL:2007/04/30(月) 17:55:20 ID:???
行間? どの行とどの行?

アホが沸いてくるのは春だからか。
456NAME IS NULL:2007/04/30(月) 20:35:34 ID:???
ここからも製品何でも落とせるよ。
http://edelivery.oracle.com
457NAME IS NULL:2007/04/30(月) 23:16:41 ID:???
>>431
レス遅くなってすみません。
元のサーバーの起動終了から次のサーバーの起動開始まで大体3日ぐらいあります。
サーバーはウインドウズサーバーかなんかです。

パソコン詳しくなくてすみません。
458NAME IS NULL :2007/05/01(火) 00:06:50 ID:???
>>457

鯖がウィンドウズか・・・。
まあ、移行手順としてはこんな感じ?

1. DBをシャットダウンしてコントロールファイル、データファイル、リドログファイル、
init.ora、tnsnames.ora、listener.oraのバックアップをテープやネットワークバック
アップなどの外部メディアに保存

2. 新規鯖の準備が完了後、ボラクルのソフトウェアのインスコ

3. oradim使ってインスタンス(サービス)の作成

4. 外部メディアからバックアップを戻す
459NAME IS NULL:2007/05/01(火) 00:49:55 ID:???
>>458
おしい。80点。PWD***.oraとか忘れてる。
460NAME IS NULL:2007/05/01(火) 01:41:12 ID:???
その手順は、ファイルのパスとかが変わらなければという条件付きだな。
461NAME IS NULL :2007/05/01(火) 02:30:04 ID:???
鯖そのもののウプグレードだし、窓鯖だし、そんなにファイルパスとか
変わらんでないの?
まあ、例え変わったとしてもalter database rename file文打てばいい
だけだし。
462NAME IS NULL:2007/05/01(火) 14:29:27 ID:???
モノホンDB(HP-UXのOracle 10G オプションは謎)でexpしたdumpファイルを
テスト用DB(WindowsNTのOracle 10G ただのXE)でimpしてます

大半のテーブルはなぜか問題なくimpできましたが
10G XEはパーティション表は対応してませんのでパーティション表だけはimpできません

仕方なくバイナリエディタでパーティション定義の部分を半角空白で潰してからimpしてますが
もっとましなインポート方法はOracle 10Gとパーティション表のオプションを買う以外ないのでしょうか

ちなみにエクスポート側は人様のブツなのでいぢれません
463462:2007/05/01(火) 14:49:52 ID:???
失礼
WindowsNT→WindowsXP
464NAME IS NULL:2007/05/01(火) 14:53:09 ID:???
>>462
Personal Edition買え。
XEじゃオプション使えないけど、
PersonalならEnterprise Editionで使えるオプションは
スタンドアロンで使う分においては
ライセンス上すべて使うことが可能。
465NAME IS NULL:2007/05/01(火) 22:35:38 ID:???
>>458-459
とりあえずテストはうまくいきました。
ありがとうございます。

あとは本番が来るのを待つのみです。
466NAME IS NULL:2007/05/04(金) 21:42:41 ID:???
10gでデータベースのdropをするとselect * from tabをするとゴミみたいな物ができるのだが、どうやって消せばいいのでしょうか?
467NAME IS NULL :2007/05/04(金) 22:18:08 ID:???
>>466

purge recyclebin;
468NAME IS NULL:2007/05/05(土) 00:56:48 ID:???
>>467
サンクス
試してみるよ
469NAME IS NULL:2007/05/07(月) 07:05:40 ID:V4L2+2IZ
初期ぱらに
10.1 なら _recyclebin=FALSE
10.2 なら recyclebin=OFF
470NAME IS NULL:2007/05/10(木) 14:29:13 ID:???
Pro*Cで質問です。
NUMBER(10)を受け取れるホスト変数は何型で定義すればよいでしょうか?
intでは足りないようです。
471NAME IS NULL:2007/05/10(木) 16:29:03 ID:???
>>470
int に (多分 long でも同じだろうが) 入りきれないような値はどう頑張っても無理。
数桁ずつ2つに分割して受け取るか、諦めて char [] で受け取るしかない。
472NAME IS NULL:2007/05/11(金) 01:32:29 ID:???
>>470
プリコンパイルで エラーとか警告とかが出てるとか ?
473428:2007/05/11(金) 04:45:58 ID:EOvcBfqi
oracle10g でNVL関数で不具合らしきものは
聞いた事ありますか?

sqlplusで
aaa:number型
NVL(aaa,999)
aaaがNULLの場合、""の場合、0の場合で
取得結果が一致してしまうことはありますか?
474NAME IS NULL:2007/05/11(金) 06:28:25 ID:???
Oracleにおいては、空文字列はNULLとして保存される(文字型であっても!)。
475NAME IS NULL:2007/05/11(金) 07:12:48 ID:???
>>473
Number型に""(空文字列)は入れられないだろwww

aaa=0とaaa=NULLの場合は
明らかにNVLの戻り値は異なると思うが。
476NAME IS NULL:2007/05/11(金) 15:48:27 ID:???
>>475
入るよNULLとしてw
>空文字列はNULLとして保存される
477NAME IS NULL:2007/05/11(金) 22:14:56 ID:???
練習目的で
oracle database10g Express edition10.2.0.1.0 を
fedora6にインストールしたのですが、
GNOME端末からsqlplusにログイン?(おかしな表現でしたらすいません)
したところ、方向キーを押すと ^[[D ^[[A ^[[C ^[[B (←↑→↓)
と入力されてしまいます。
検索エンジンで調べてみたのですが、^[[の文字を検索できなくて
解決出来ません。
知恵を貸していただけないでしょうか?
478NAME IS NULL:2007/05/11(金) 22:25:29 ID:???
479477です:2007/05/11(金) 22:53:17 ID:???
478さんありがとうございます!
linux も oracle も初めてでうまく出来るか不安でしたが
tar zxvf と make install だけで
SQLPLUS上で方向キーが使えるようになりました。

どうもありがとうございます。
480NAME IS NULL:2007/05/12(土) 14:02:08 ID:???
Pro*CでBLOB型のカラムのデータを更新するサンプルプログラムは
ないでしょうか?
481NAME IS NULL:2007/05/13(日) 22:03:28 ID:???
482NAME IS NULL:2007/05/14(月) 13:01:34 ID:???
>>457とは別人なんだけど、>>458-461参考にしてデータの移動をやってみたのだが今度はoracleの起動法がわかりません
やったのは
sysdbaでshutdown
バックアップしておいたファイルをコピー
Windowsの再起動

コピー元はEドライブで下が、コピー先はDドライブです

これから先がよくわかりません
サービスネームなしでsysdbaに入れるようなので入ってstartup;をやると
ORA-02778: Name given for the log directory is invalid
が帰ってきます

この先どうすればいいのでしょうか?
483NAME IS NULL:2007/05/14(月) 13:35:36 ID:???
>>482
ドライブレターが変わった時点で
その方法ではリカバリできん。

MOUNTしてALTER SYSTEM文発行して、
制御ファイル上のREDOログファイルの場所と、
データベースファイルの場所を書き換えろ。
484482:2007/05/14(月) 15:00:44 ID:???
>>483
何をやっても起動できません
oracleを削除して再インストールした方が早いのでしょうか?
485NAME IS NULL:2007/05/14(月) 15:03:42 ID:???
>>484
なにをやっても、って何やったんだよ。


とりあえずコマンドプロンプトで下記のコマンド打って

sqlplus /nolog
conn / as sysdba
startup nomount
alter database mount;
alter database open;

どこまでエラーが出ずに進捗したかまず教えろ。
必ず標準出力をコピペしろよ。
486NAME IS NULL :2007/05/14(月) 22:57:06 ID:???
>>484

つーか、喪前、ドライブレターが変わったんだから、当然alert.logとかの
出力先の指定をinit.oraの中でもちゃんと変えたんだよな?
ORA-02778: Name given for the log directory is invalidって言われて
んだから、init.oraの中のbdump、cdump、udumpの出力先を良く見て
みろや。
487482:2007/05/15(火) 10:33:39 ID:???
>>485
以下、ログです
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\xxxxxxx>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 火 5月 15 10:21:01 2007

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file 'D:\ORACLE\PRODUCT\10.1.0\DB_1\DATABASE
\INITORCL.ORA'
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01034: ORACLE not available


SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01034: ORACLE not available


SQL>

上書きした*.oraの中身はすべてDドライブに書き換えました
INITORCL.ORAはありませんでした
バックアップをとったときもEドライブの*.oraはすべてバックアップをとりましたが、ありませんでした

init.oraとはinit.ora.4142007111722のことでしょうか?
そのデータならDドライブに書き換えました
488NAME IS NULL:2007/05/15(火) 10:56:42 ID:???
>>487
init.oraってここではたぶんspfileを指してる。
で、Oracleが必要としてるspfileなりpfilなりを探して、
見つけられなかったもんだから怒られてる。

startup nomount pfile=init.ora.4142007111722
みたいにして指定するか、
レジストリのORA_<SID>_PFILE確認して
正しい場所に書き換えてからstartup nomountしてみろ。

489482:2007/05/15(火) 19:50:30 ID:???
>>488
レジストリの中にORA_<SID>_PFILEの項目を見つけることができなかったのでファイルを直接指定して実行しました

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\FSystem>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 火 5月 15 19:37:51 2007

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup nomount pfile=D:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.41
42007111722
ORACLE instance started.

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
SQL> alter database mount;

Database altered.

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: 'E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF'


SQL>

ORA-1157の解説を読んで
alter system check datafiles;
を実行しましたが、
System altered.
と、でるだけでこの後alter database openを実行してもエラーが帰ってきました。
これはどこを変更するといいのでしょうか?
490NAME IS NULL:2007/05/15(火) 20:06:08 ID:???
>>489

alter database rename file 
'E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF' TO
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF'
;

ってのを必要なファイル分、順次実行して、
すべてのデータベースファイルやREDOログファイルのエントリを書き換え汁。

491482:2007/05/16(水) 07:53:27 ID:???
>>490
ファイルの書き換えを行いました
次に以下のエラーが帰ってきました

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01172: recovery of thread 1 stuck at block 41 of file 2
ORA-01151: use media recovery to recover block, restore backup if needed

調べてみたところ、メディアリカバリが必要とのことだったのでリカバリコマンドを実行したところ、以下のメッセージが帰ってきました

SQL> startup open recover pfile=D:\oracle\product\10.1.0\admin\orcl\pfile\init.o
ra.4142007111722
ORACLE instance started.

Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
Database mounted.
ORA-01172: recovery of thread 1 stuck at block 41 of file 2
ORA-01151: use media recovery to recover block, restore backup if needed

リカバリコマンドを実行しても同じエラーが帰ってきます
申し訳ありません
これから先をご教示ください

また、startupでpfileを指定しないとstartupを実行できませんが、どのようにしてoracleにpfileの場所を登録するのでしょうか?
これも併せてご教示ください。

お願いします
492NAME IS NULL:2007/05/16(水) 09:05:49 ID:???
>>491
それ、ファイル番号2番のファイルがブロック破損してる。

正常と思われるバックアップから上書きコピーして書き戻しても同様のエラーが発生するなら、
Oracleのサポートに連絡して、復旧手順アナウンスしてもらえ。
493NAME IS NULL:2007/05/16(水) 09:08:10 ID:???
>>491
リカバリしてもダメ、ってのは、
RECOVER DATAFILEを実行したんだよな?
それで>>492試してダメならバックアップしたファイルが壊れてる。
494NAME IS NULL:2007/05/16(水) 12:18:40 ID:???
>>491

EEでかつRMAN使ってバックアップとか取っていたらMBRという
きのうがるんだが、おそらくそんなことやっていないよな?
既出だが、ブロックが壊れているから、バックアップから戻すしかない。

ちなみにそのファイル2は何だった?
もしラッキーな事に、それがTempファイルだったらDropしても問題無いけどね。
もしくはデータ的にそんなに重要でないのなら、mount状態でデータファイルを
Dropして、無理やりDB上げることも不可能ではないが・・・。

それとspfileを使用してるみたいだから、取り合えず以下のコマンド使えば
いちいちpfileを指定しなくても起動できるようになるよ。

create spfile from pfile='D:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.4142007111722';




495482:2007/05/16(水) 14:58:42 ID:???
>>493
recover datafileをoradataの中の*.DBFファイルに対して実行しました
その後、alter database openを実行すると、REDO0*.LOGがEドライブにないと警告されました
そこでalter database rename fileを実行後、alter database openを実行したところ、動作しました
データの中身も確認できるようになりました

>>494
create spfileを実行しました

皆様、ありがとうございました
496482:2007/05/16(水) 16:47:13 ID:???
482です。
データをみれるようになったのですが、データを直接さわろうとすると内部エラーが発生してデータの操作ができませんでした
truncate tableやpurge recyclebinやdrop tableを実行すると
ORA-00604: error occurred at recursive SQL level 1
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4193], [1899], [284], [], [], [], [], []
と、いったメッセージが出てきてtruncateができなかったり、purgeができなかったりします

また、PCの起動時にサービスかドライバが起動できないというエラーメッセージが出てきます
そこでイベントビューアをみてみるとOracle,orclに

イベント ID (16) (ソース Oracle.orcl 内) に関する説明が見つかりませんでした。
リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。
この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。
詳細については、ヘルプとサポートを参照してください。次の情報はイベントの一部です: orcl.

と、いう内容の情報メッセージ、警告メッセージが記録されています。

これはoracleのデータのバックアップをとって再インストールした方がいいのでしょうか?
497NAME IS NULL :2007/05/16(水) 22:17:25 ID:???
>>496
>>496

ブロックがいかれてしまってんだから、そうなっても仕方ないと思われ。
もし出きるのならRMAN使って、Verifyかけてみてみ?

1. RMANベリフィケーションのやり方

DOS> rman target / nocatalog
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP OFF;
RMAN> run {
allocate channel d1 type disk;
allocate channel d2 type disk;
backup check logical validate database;
release channel d1;
release channel d2;
}
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

2. 壊れたブロック情報を以下のSQLで検索
select * from v$database_block_corruption;
498NAME IS NULL:2007/05/17(木) 18:08:22 ID:???
この頃ハマったこと。(これ、SQL文を作る上での常識なんだろうか?)

select での検索で、条件が多くなればなるほど嘘のように遅くなることが分かった。
こんなやつ。

select * from hoge where fuga in (1, 2, 3, ...(100個ぐらい値が並ぶ)...);

この in での項目が増えれば増えるほど遅くなる。ところがこの in で指定している
値を create temporary table tmp (no number(10) not null primary key); で
作った表に全部 insert してこうすると速かった。とても速かった。値が多いと
雲泥の差があった。

select * from hoge where fuga in (select no from tmp);

DBサーバ内部での最適化の問題だとは思うが、あまりにも差がありすぎて
びっくりした。(Oracle 9 だったからか?)
499482:2007/05/17(木) 18:45:15 ID:???
>>497
直らないみたいな感じです
以下、ログです

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\xxxxxxx>rman target / nocatalog

Recovery Manager: Release 10.1.0.2.0 - Production

Copyright (c) 1995, 2004, Oracle. All rights reserved.

connected to target database: ORCL (DBID=1140153217)
using target database controlfile instead of recovery catalog

RMAN> run {
2> allocate channel d1 type disk;
3> allocate channel d2 type disk;
4> backup check logical validate database;
5> release channel d1;
6> release channel d2;
7> }

allocated channel: d1
channel d1: sid=154 devtype=DISK

allocated channel: d2
channel d2: sid=143 devtype=DISK

Starting backup at 07-05-17
channel d1: starting full datafile backupset
channel d1: specifying datafile(s) in backupset
RMAN-03009: failure of backup command on d1 channel at 05/17/2007 11:58:07
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
continuing other job steps, job failed will not be re-run
channel d1: starting full datafile backupset
channel d1: specifying datafile(s) in backupset
including current controlfile in backupset
channel d2: starting full datafile backupset
channel d2: specifying datafile(s) in backupset
RMAN-03009: failure of backup command on d2 channel at 05/17/2007 11:58:08
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
continuing other job steps, job failed will not be re-run
channel d2: starting full datafile backupset
channel d2: specifying datafile(s) in backupset
including current SPFILE in backupset
channel d2: backup set complete, elapsed time: 00:00:02
channel d1: backup set complete, elapsed time: 00:00:03
released channel: d1
released channel: d2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================

RMAN-03009: failure of backup command on d2 channel at 05/17/2007 11:58:08
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
500482:2007/05/17(木) 18:49:56 ID:???
その2

RMAN> configure controlfile autobackup off;

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters are successfully stored

RMAN> run {
2> allocate channel d1 type disk;
3> allocate channel d2 type disk;
4> backup check logical validate database;
5> release channel d1;
6> release channel d2;
7> }

allocated channel: d1
channel d1: sid=154 devtype=DISK

allocated channel: d2
channel d2: sid=143 devtype=DISK

Starting backup at 07-05-17
channel d1: starting full datafile backupset
channel d1: specifying datafile(s) in backupset
RMAN-03009: failure of backup command on d1 channel at 05/17/2007 12:00:37
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
continuing other job steps, job failed will not be re-run
channel d1: starting full datafile backupset
channel d1: specifying datafile(s) in backupset
including current controlfile in backupset
channel d2: starting full datafile backupset
channel d2: specifying datafile(s) in backupset
RMAN-03009: failure of backup command on d2 channel at 05/17/2007 12:00:37
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
continuing other job steps, job failed will not be re-run
channel d2: starting full datafile backupset
channel d2: specifying datafile(s) in backupset
channel d1: backup set complete, elapsed time: 00:00:00
including current SPFILE in backupset
channel d2: backup set complete, elapsed time: 00:00:02
released channel: d1
released channel: d2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================

RMAN-03009: failure of backup command on d2 channel at 05/17/2007 12:00:37
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

RMAN> configure controlfile autobackup on;

old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

RMAN>
501NAME IS NULL:2007/05/17(木) 19:46:23 ID:???
> ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

読める?
502NAME IS NULL :2007/05/17(木) 22:23:20 ID:???
>>499

そこまでOracle対して素人だとは思わなかった。
noarchivelogモードで動いているのなら、mount modeで実行しろ。

SQLPLUS> shutdown immediate;
SQLPLUS> startup mount;

もしくはarchivelog modeにしてからでもいいぞ。

SQLPLUS> shutdown immediate;
SQLPLUS> startup mount;
SQLPLUS> alter database archivelog;
SQLPLUS> alter database open;
SQLPLUS> archive log list;
503NAME IS NULL :2007/05/17(木) 23:40:04 ID:???
それとRMANベリフィケーションは直すためのものではなく、あくまでベリファイを
かけるものだから。
ここから壊れたブロック先を特定して、そいつに「Unreadable」のマーカーをつける。
そうしたらそのブロックに入っているデータは読めないものの、無事な部分は
読める様になる。
そうなれば後はcreate table as selectなり、export/importなりで無事な部分だけを
救い出せばいい。
壊れたブロックに入っていたデータはバックアップが無い以上、復旧の手立ては無いよ。
これでバックアップの重要性を認識しろ。
504NAME IS NULL:2007/05/18(金) 16:19:11 ID:BLRq5Xmu
初歩的な事なのですが質問させてください。
クライアント(私)は10gなのですがサーバー側は9iです
exp user/pass@servername file=c:\test.dmp
でエクスポートしようとしたのですが

EXP-00056: Oracleエラー942が発生しました。
ORA-00942: 表またはビューが存在しません。
EXP-00000: エラーが発生したためエクスポートを終了します。

このようなエラーが出るのですがどなたかわかりますか?
自分なりに調べたのですがわからないままです^^;
もちろんテーブルなどの中身はしっかりあります。
ちなみに10gのサーバーからのエクスポートは普通にこのコマンドで出来ました。
クライアントとサーバー側のバージョンが違うとエクスポートが出来ないという
事はありますか?初歩的な事ですいません。お願いします。
505NAME IS NULL:2007/05/18(金) 16:34:04 ID:???
なにをエクスポートしたいのですか?
506NAME IS NULL:2007/05/18(金) 16:35:05 ID:???
DB全体のです。
507NAME IS NULL:2007/05/18(金) 17:56:38 ID:???
>クライアントとサーバー側のバージョンが違うとエクスポートが出来ないという事はありますか

ある。
508NAME IS NULL:2007/05/18(金) 18:01:16 ID:???
>>504
サーバにある9iのexpでダンプとれ。
509NAME IS NULL :2007/05/18(金) 23:17:48 ID:???
>>504

基本的に異なるバージョン間でのexpは、低いバージョンのものを使って
行うことになっている。
つまりあなたの場合には9i側のexpを使わないとならない。
impは10g側のを使えばok。
510NAME IS NULL:2007/05/19(土) 09:13:12 ID:???
いつの間にかクライアントPC自らが質問を書き込むことが出来るようになったとは驚き。
511NAME IS NULL:2007/05/20(日) 01:05:37 ID:???
鯖側がSolaris/Linuxで、クライアントがウィンドウズって場合、sql発行するのもSQL*Plusのウィンドウズ版が必要?
512NAME IS NULL:2007/05/20(日) 01:27:54 ID:???
>>511

Telnetで鯖にログインすればいいんでないの?
どうしてもクライアント側でSQL*PLUS立ち上げたかったら、確かにSQL*PLUSの窓版が
必要だけど、EEのCDとか買えば窓のクライアントとかは同梱されていたりするけどね。
513NAME IS NULL:2007/05/20(日) 03:01:45 ID:???
インスタントクライアント(windows&linux)がある。
開発用途に限定するならば、モノホンもDLできるし。
514482:2007/05/21(月) 09:11:18 ID:???
>>502
shutdownができませんでした

データの復旧をあきらめましたので、現在、エラーがでたり、OSのスタート時にサービスの起動でエラーがでる状況をなおしたいのですが、何か方法はありませんか?
515NAME IS NULL:2007/05/21(月) 09:16:57 ID:???
>>514

shutdown abort使え。
O/S関係のエラーだが、サービスはoradim使って作成したんだろうな?
516482:2007/05/22(火) 08:15:48 ID:???
>>515
shutdown normal/immediateからでしかarchivelogにできないのですが

サービスはインストールした状態のままです
517NAME IS NULL:2007/05/22(火) 11:17:45 ID:???
>>523

だったらshutdown abortしてから、startupして、それからshutdown immediateすれば良かろう。

窓は専門じゃないで、なんとも言えんが必要だったらoradim使ってサービス再作成してみれ。

%ORACLE_HOME%\bin\oradim.exe -delete -sid <SID>
%ORACLE_HOME%\bin\oradim.exe -new -sid <SID> -startmode m
%ORACLE_HOME%\bin\oradim.exe -edit -sid <SID> -startmode a


518482:2007/05/22(火) 11:21:26 ID:???
>>517
そうやってもimmediateで処理がずっとストップするのですが
519NAME IS NULL:2007/05/22(火) 12:08:09 ID:???
「ですが」ばっかりだけど少しは自分で考えたのか?

荒らしにしか見えんぞ。
520NAME IS NULL:2007/05/22(火) 16:03:37 ID:???
>>518
修復するには今までの作業と同じ位の作業量は残っているな
今は序盤もいいとこだし、素直に再構築しろ
521NAME IS NULL:2007/05/22(火) 21:23:27 ID:???
>>518

バックアップ無くてぶっ壊れてるんだから仕方ないだろうな。
まあ、出来るとしたらshutdown abortして、startup mount、recover database、shutdown、startup mount
だったらいくんじゃねぇか?

いずれにせよあなたの技術レベルではこの先のことも理解できるとはとても思えないが・・・。
522NAME IS NULL:2007/05/22(火) 23:57:37 ID:fABphS2n
新社会人なのですが、来月から配属されるプロジェクトを選択しなければいけません。(初配属です)
プロジェクトの一つにPL/SQLを使用したOracleのERPパッケージの開発プロジェクトがあるのですが
正直悩んでいます。
研修中にSQLをほんの少しと、Javaを習っていました。ちなみに中小独立ITです。

EBSが何か、どんなパッケージ開発なのかなどの知識は全くないのでとても幼稚な質問になってしまうのですが

・PL/SQL言語を学んで、この先役に立つのか(Oracleプロジェクトを抜けた後にも活かせるのか)
・PL/SQL言語の大変な所
・ERPパッケージ開発のメリット・デメリットは

などが気になる点です。非常に抽象的な質問で、一概には言えないことばかりだと思いますが
個人的な意見で良いので是非お願いします。
サイトや本などで調べてはみたのですが、現場の技術者からの意見が気になるので、ここで質問させて頂きました。
523NAME IS NULL:2007/05/23(水) 00:31:43 ID:???
>>522
中間管理職辺りで誰が仕切っているかが重要
COBOLerの下に配属されなければどこでも同じ

ただ優秀なリーダーの下にしか、全ての意味で
おいしいプロジェクトは来ないから
バカマネ/リーダーにつくと、もれなく辞めたくなるだろう
524NAME IS NULL:2007/05/23(水) 00:34:32 ID:???
他の案件に何があるか判らないから一概に比較は出来ないけど,
PL/SQLの長所は互換性,Oracleが動く環境なら大概動く.
P○PみたいにマイナーVerUpしただけで動かなくなるなんてことは無い.

PL/SQL言語の大変なところは,互換性の裏返しで構文が古臭い.
業務ロジックを実装するには十分だと思うけど,
それ以外のことをやろうと思うと途端に敷居が高くなる.

ERPパッケージ開発は基本的に有り物ベースで作るだろうから,
仕事としては退屈.多分仕様通りにパッケージの部品をくっつけて終わり.

>>ちなみに中小独立IT
 ここが一番不安なポインヨ.
 さっさと覚えること覚えて,ジョブチェンジ考えとけ.
525NAME IS NULL:2007/05/23(水) 00:51:47 ID:???
>>523
うちの会社のリーダーはコボラーではなかったとおもいますが、
発注先の会社の管理職まではわかりません。

>>524
丁寧に答えて頂いてありがとうございます。

>仕事としては退屈.多分仕様通りにパッケージの部品をくっつけて終わり.
そうなんですか。ベースがあって、それを相手に合わせてカスタマイズっていうのがメインだというのは
知っていたのですが、やっぱり有り物をくっつけたりするだけなんですね。
面白そう!っていうイメージはあんまり沸かないですね・・・

中小独立ITなので、3〜5年後くらいで転職するとつもりでいるんですが、
その時に転職の武器になる言語なのかなーという不安があります。
526NAME IS NULL:2007/05/23(水) 02:41:12 ID:???
>>524
>>ちなみに中小独立IT
> ここが一番不安なポインヨ.

大手ほどなんじゃこれ?っていう若手が多いし&辞めない
傘下のグループ企業の若手の方は優秀だけど良く転職してるな
大手は情報だけは集まるから全社レベルの知識データベースで
仕事できてるのを自分の能力と勘違いしてるんだよね
527NAME IS NULL :2007/05/23(水) 07:35:06 ID:???
>>522

PL/SQLはOracle関連の製品ではそれなりに重宝されるが、それ以外では
全く潰しが効かないという諸刃の剣。

でもOracle EBSの案件って最近の日本だとそれなりにあるものなのか?
4年ぐらい前の情報だが、俺が知っている大手でOracle EBS使っていたのって
日本だとCanonとRICHOとかぐらいだった気がしたが・・・?

まあ、その反面、欧州および北米では値段の安さも手伝ってか、Oracle EBSが
結構使われていたりするよ。
俺は日本にいた時には純粋にOracle DBだけで生きていたんだが、海外に出て
否応無くEBSを覚えざるを得ない状況になった('A`)

最もOracle EBSは腐ったアプリという意見は今でも変わらないカーッ(゚Д゚)≡゚д゚)、ペッ
528NAME IS NULL:2007/05/23(水) 13:33:10 ID:8Pm4t5N2
質問です。
ORA12154とかORA00065とか、
番号を入力するだけで検索できるサイトがあれば教えてください。
529NAME IS NULL:2007/05/23(水) 14:50:02 ID:???
OTNくらい知っとけ。
  ttp://otn.oracle.co.jp/document/msg/

尤も、エラーメッセージのPDF検索した方が早いかもな。
530NAME IS NULL:2007/05/23(水) 21:07:32 ID:???
>>528

oerr コマンドも覚えておくといいかもね。
531NAME IS NULL:2007/05/23(水) 23:02:31 ID:???
まぁ、マルチなんだどな。
532NAME IS NULL:2007/05/24(木) 00:04:02 ID:sIsyqRlw
ありがとうございました。
533NAME IS NULL:2007/05/24(木) 18:25:12 ID:???
ネタじゃなくてマジでわからんので教えてください。
STATSPACKってなんて読むの?すたっつぱっく?
534NAME IS NULL:2007/05/24(木) 18:38:55 ID:???
しゅたっつぱっく
535NAME IS NULL:2007/05/24(木) 19:20:17 ID:???
>>533
スタットスパック
スタットスパンキングするともいう
536NAME IS NULL :2007/05/24(木) 22:20:03 ID:???
>>533

マジレスしてやるが、スタッツパックだ。
少なくとも日・欧・北米ではそう読んでいる。
537533:2007/05/25(金) 14:41:21 ID:???
ありがとうございます。すたっつぱっくでいいみたいですね。
538NAME IS NULL:2007/05/26(土) 01:33:30 ID:???
OTNの有償プログラムって契約してる人居る?
あの開発ライセンス使ってモノ作っても運用に回したかったら
開発した環境用の正規ライセンス購入しろ、みたいになってて
存在意義がわからなかったんだけど、何が目的で加入してるの?
539NAME IS NULL:2007/05/26(土) 01:39:51 ID:???
メディアがもらえるってことじゃね?
OTNを使わずに正規ライセンスを買ってもメディア代は別だし。
540NAME IS NULL:2007/05/26(土) 01:53:37 ID:???
>>538
フリーランサーがサポート情報にアクセスできるからとかじゃないか?
541NAME IS NULL:2007/05/26(土) 01:59:35 ID:???
仕事でやってるんなら、アカウント借りりゃ済むやん。
542NAME IS NULL:2007/05/26(土) 03:03:05 ID:???
>>541
派遣ならいいだろうけど
客のすべてが保守契約してないわな
543NAME IS NULL:2007/05/26(土) 04:44:55 ID:???
そもそも保守契約無しの客って地雷だと思うが。問題が起きたときノンサポートじゃん。
OTNの開発ライセンスで運用しちゃってる割れ廚?
544NAME IS NULL:2007/05/26(土) 15:31:32 ID:???
>>543
よく考えろよ、縁故なら別枠だろうが
保守契約できる位に金がだせるところはフリーなどが入る余地はない
個人で受注請負で入り込めるところといえば
オラクルをビックカメラとかで買ってるようなところだろ
545544:2007/05/26(土) 15:45:58 ID:???
あ、ちなみにフリーでもないしOTNの開発者ライセンスも持ってないぞ
買うとしたら、「それくらいしか」使い道がないだろw
546NAME IS NULL:2007/05/26(土) 19:32:21 ID:???
Oracleを一から勉強したいんですけど、
基礎的なことが載っているサイトを知りませんか?
ググってもそれらしきサイトが見つからなくて困ってます。
547NAME IS NULL:2007/05/26(土) 20:17:48 ID:???
548NAME IS NULL:2007/05/27(日) 16:26:41 ID:???
オラクル廚がフリーになっても食えないってことだな。
549NAME IS NULL:2007/05/27(日) 21:15:48 ID:???
>>548
オラクルだけじゃ食っていけないだろうな。
550NAME IS NULL:2007/05/27(日) 23:35:40 ID:???
オラクルに入社すればいいじゃん
551NAME IS NULL:2007/05/29(火) 14:26:22 ID:UJceAzrI
SELECT QQQ.CURRVAL FROM DUAL;

ORA-08002: QQQ.CURRVALはこのセッションではまだ定義されていません

なぜこんなエラーが出ますか
552NAME IS NULL:2007/05/29(火) 14:39:46 ID:???
>>551
日本語でOK

つかQQQってどう定義されてるわけ?
553NAME IS NULL:2007/05/29(火) 15:00:49 ID:???
>>551
あなた、なぜ、ググル、しませんか?
554NAME IS NULL:2007/05/29(火) 15:04:19 ID:???
>>551
QQQがSEQUENCEと仮定すると、
作ったばっかりの時には
NEXTVALしないとCURRVALは取れないよ。
つ〜か、まずググれよwww
555NAME IS NULL:2007/05/29(火) 17:50:02 ID:???
select months_between(sysdate,'07-9-27') from dual;

指定した付きが向こうですとか出ましたけど、どういうことなんでしょうか。
556NAME IS NULL:2007/05/29(火) 18:50:07 ID:???
>>555
TO_DATEで日付型にしてやれよwww
557NAME IS NULL:2007/05/29(火) 20:25:40 ID:???
CREATE OR REPLACE FUNCTION PREV_DAY( P_DATE IN DATE, P_DAY IN CHAR )
RETURN DATE
IS
BEGIN
RETURN NEXT_DAY(P_DATE - INTERVAL '7' DAY, P_DAY);
END;

というPREV_DAY.sqlをつくってsqlplusで
get PREV_DAY.sql
/
とやると、
PLS-00103: 記号""が見つかりました。 次のうちの1つが入るとき:
return
とコンパイルエラーが出ます。
なのに、このsqlの平文をsqlplusへコピペするとプロシージャ作成できてしまいます。
何故エラーが出るのか解りません。
558557:2007/05/29(火) 20:28:49 ID:???
>>557
文章が途中になってしまいました。
get PREV_DAY.sql
/

と書いたファイル createProc.sqlを使って
sqlplus scott/tiger @createProc.sql
とやるのが理想なんですができないでしょうか。
まずは何故エラーなのかを知りたいのですが解りますでしょうか。
559NAME IS NULL :2007/05/29(火) 23:24:22 ID:???
>>557

バージョンぐらい書け。
9i R1だったらバグにヒットしている可能性が大。
560557:2007/05/30(水) 16:25:45 ID:???
>>559
すみません。10gのXEです。
561NAME IS NULL:2007/06/01(金) 01:58:41 ID:???
うちの10gXE win32 じゃ、問題なく実行できるぞ。
562NAME IS NULL:2007/06/05(火) 07:14:04 ID:S2M66NQt
Oracle8iのデッドロックについて教えて下さい。

(1)複数レコードのテーブルAを、複数並列するdelete テーブルA;した場合、デッドロックが発生する可能性はあるのでしょうか?
(2)同じくテーブルAにdelete テーブルA;と、並列して、例えばdelete テーブルA where rownum = 3;->rownum = 1->rownum = 2の計 3 SQLを順番に実行するトランザクションがあった場合、デッドロックが発生する可能性はあるのでしょうか?

よろくしお願い致します。
563NAME IS NULL:2007/06/05(火) 07:23:53 ID:???
>>562
デッドロックは一車線通行の出会い頭で絶対にバックしない後続車が
双方にきているような状況で譲り合いができないときに発生する。
つまり、その例では発生しない。
564NAME IS NULL:2007/06/05(火) 07:48:39 ID:S2M66NQt
>>563
ありがとうございました。
どこまでがデッドロックするのか、非常に気になっていました。助かりました!

>>562の(1)と(2)がデッドロックする可能性が無いのであれば、注意すべきは、順番を固定したSQLが2つ以上のトランザクションだけになるのですね。

(トランザクション例1)
select * from テーブルA where rowid = '1' for update;
select * from テーブルA where rowid = '2' for update;
(トランザクション例2)
select * from テーブルA where rowid = '2' for update;
select * from テーブルA where rowid = '1' for update;
(トランザクション例3)
select * from テーブルA for update;

これだと、例1と例2が並列する場合だけデッドロックの可能が有って、例3と例1、または例3と例2、ましてや例3と例3は気にしないで良かったのですね。
ほっとしました。ありがとうございます。
565NAME IS NULL:2007/06/05(火) 12:17:17 ID:???
create user test
identified by test
default tablespace user_data
temporary tablespace temporary_data
quota unlimited on user_data;

表領域user_dataは存在しません
ってどういうこと?
566NAME IS NULL:2007/06/05(火) 16:25:29 ID:???
>>565
そのままだと思うが?
user_dataって票領域、作成したか?
567NAME IS NULL:2007/06/05(火) 17:44:28 ID:???
デフォルトで存在しているものと思ってましたが
568NAME IS NULL:2007/06/05(火) 17:58:07 ID:???
>>567
デフォルトで存在するのはUSER表領域だろ。
569NAME IS NULL:2007/06/05(火) 17:58:40 ID:???
>>567
ちがった。
USERS表領域だ。
570NAME IS NULL:2007/06/05(火) 22:09:17 ID:???
USERS 表領域はデフォルトでも存在しないが。

CREATE DATABASE 文を見直してみよう。


571NAME IS NULL:2007/06/06(水) 19:38:02 ID:OUHu+6Q0
COL_A,COL_B,COL_Cの列がある表のCOL_Aにインデックスが貼ってあって、select文のwhere句でCOL_A='hoge' AND COL_B='foo'と記述した場合に、インデックスは効きますか?型はあっている前提です。
572NAME IS NULL:2007/06/06(水) 19:53:06 ID:???
>>571
RBO? CBO?
いずれにせよ、実行計画とって
確認してみた方が早いよ。
573NAME IS NULL :2007/06/06(水) 20:31:36 ID:???
>>571

基本的に言ってCOL_AのIndexのRange Scanで絞られるはず。
まあ、>>572が言っているみたいに実効計画取ったら一発だけどね。
574571:2007/06/06(水) 20:46:52 ID:hrrOQWwo
>>572,573
レスありがとうございます。
10gなんで、CBOだと思うのですが…。
実際やってみないと判らない…ということですね。

最大○億件と見積もられているテーブルに対して、
検索画面をつくれ…つう、要件で、けんさく条件が多いんです。
そこで、必須条件を設けて、ソコにINDEX貼ってほかの任意条件は
どうするよ?ということで、、。
必須項目のカラムにだけはればINDEX効くだろう派と、いや、効かねぇんじゃない
派で意見がまとまらず…。
効く確証はないっつうことですね。
ん〜〜困った。
575NAME IS NULL :2007/06/07(木) 00:37:41 ID:???
>>574

何億件というからには当然パーティショニングしているんだよな?
576NAME IS NULL:2007/06/07(木) 02:39:57 ID:???
>>574
必須条件を1つ入れても
5つに分類しかされていないとか
偏りが大きいとかだとすげー意味ない
577NAME IS NULL:2007/06/07(木) 05:21:22 ID:???
>>574
CBOならコストに依存して、
INDEXの利用に関しては固定的ではないから、
オプティマイザの判断次第。

・・・にしたって、>>576の言うようにINDEX項目にするデータ自体に
カーディナリティが低いなどの問題が有れば、意味無いし。
578571:2007/06/07(木) 08:46:04 ID:FbZnvSWG
当初、この表に対して検索するという要件はなかったので、費用面からパーティショニングオプションをつけてなかったんです。
どうしても、オプション無しではダメそうであれば、オプション導入も考慮するって方向で、まず、色々調査してます。
索引貼る対象の必須項目はバラツキが大きく、かなり絞られるかと思います。
579NAME IS NULL:2007/06/07(木) 09:13:19 ID:???
>>578
> 索引貼る対象の必須項目はバラツキが大きく、かなり絞られるかと思います。

だったらINDEX作るだけでいけるように思うがな。
10gなら定期的に統計情報とるようになってるはずだし。

580NAME IS NULL:2007/06/07(木) 11:04:19 ID:???
億もある表に対する検索は正直言ってパーティション無しでは辛いと思うぞ。
場合によってはIOT表の導入とかも考えておいたほうがいいだろうな。
581NAME IS NULL:2007/06/07(木) 11:23:53 ID:???
>>580
そうかね?
意外と何十億件くらいなら捌けるもんだが。
582NAME IS NULL:2007/06/07(木) 12:16:35 ID:???
>>581 同じ土俵にいて良いものと悪いものがあるぞw

参照しない約束、約束〜って、レコード数だけでなくカラム数もレコード長も遠慮なしに
情報てんこもりで非正規化状態の過去ログテーブルかなんかだろな。
…どう見てもヒアリング不足です。本当にありがとうございました。
583NAME IS NULL:2007/06/07(木) 12:23:51 ID:???
>>582
> 情報てんこもりで非正規化状態の過去ログテーブル

俺が扱ってるのは似たようなもんだがwww
3局からの計測データを数秒周期で取り込んで、
かたや2台の表示用PC上で
10秒周期で最新データの表示してるだけだがな。
584NAME IS NULL:2007/06/07(木) 12:30:11 ID:???
>>583
そんな数値データだらけのテーブルならオンメモリでもいけそうだ
585NAME IS NULL:2007/06/07(木) 18:26:12 ID:???
社内の顧客管理用のマシンが最近以上に重いのだけど、Oracleのせいなのか
どうか切り分けたいんだけど、言いベンチマークソフトってないっすかね?
586NAME IS NULL:2007/06/07(木) 18:45:18 ID:???
>>585
GASAIREでモニタリングしてみることをお勧めする。
587571:2007/06/07(木) 20:03:48 ID:eZC/8BeQ
諸氏
レスありがとうございました。
とりあえず、
一番入力されるであろう項目にインデックスを張る。
SQL記述に関する規約を作成し、ベンダーに渡す。
開発環境構築名目でサーバを用意し、サンプルデータで実行計画をとる。
チューニングしつつ、画面設計し、顧客の説得をはかる。

で落ち着きそうです。
御世話になりました。
588NAME IS NULL :2007/06/07(木) 20:27:58 ID:???
>>585

マシンのタイプぐらい書いたらどうだ?
589585:2007/06/08(金) 09:37:56 ID:???
>585
失礼しました。
使用しているマシンは最近刷新しまして、DELL PowerEdge 2950で、OSはRH ES4で運用しています。
情報自体は2万件程度で、個人の情報としてはそれほど大きいモノではないはずなのですが、考えていたほど
レスポンスが上がってきません。
無論、ネットワーク関係も調べてみたのですが、問題はありませんでした。
まだ検証しないといけない部分は多いのですが、Oracle自体も疑っていこうとベンチマークソフトを探して
ました。
590NAME IS NULL:2007/06/08(金) 10:20:45 ID:???
>>589

マシン自体のスペックを測りたいのか?
それともDBベンチマーク取りたいのか?
DBベンチマークソフトならTPC-Cとかあるけどな。
CPUを計りたいのならSPECJBBなんかが使える。
レスポンスが悪いとかって言ってるけど、ディスクI/Oとか見てみたのか?
STATSPACKはどうだった?
タコなSQLが流れていて、全豹走査が置きまくりでレスポンス悪いなんて
こともあるぞ?
591NAME IS NULL:2007/06/08(金) 10:39:35 ID:???
ベンチマークってのは、障害原因を探るためのものじゃないし。
まずは、topとかsarとかパフォーマンスモニタでほんとにOracleのプロセスが原因かどうか見極める。
592585:2007/06/08(金) 11:11:00 ID:???
>590-591
確かにそうですね。(汗)
もうちょっと障害発生を切り分けてみようと思います。
ありがとうございました。
593NAME IS NULL :2007/06/09(土) 04:31:22 ID:???
Oracle DB 11g R1が6月11日にリリースされるそうな。
取りあえずRACでも組んで遊んでみっかな。
594NAME IS NULL:2007/06/10(日) 22:21:48 ID:???
SQL始めて2日か3日程の者です。分からないことがあったので、アドバイスを頂けないでしょうか?
使っているのはOracle10gにあるSQL*PLUSというものです。
表A;codeと会社名が書いてる表(001 A社 002 B社といった感じの表)
表B;codeと設立日が書いてる表(001 1950/6/4 といった感じの表)
表C;code(表AやBのcodeの数字の後ろに期数が書かれ、目標達成ならP,未達成ならMとその後ろに書かれた数字)のある表{00157P 00153P 00212M等の書かれた表)
このデータがあるとき
@現在月(今なら6月)が設立月になっている会社を出し、設立何年目かを出すSQL分(A社 57期といった出力)
A各会社の期(設立から1年目で1期・・・と計算する)を算出(A社 57期といった出力)
Bこの結果を、会社名と期を列に持つ表にINSERTする
C表Cから、達成している会社名と期を出す(A社 57期 A社 53期といった出力)
調べても、例を使ったサイトとかが中々見つからず、困り果ててます。明日中に解かないといけないので、どうか助言をお願いします。
595NAME IS NULL:2007/06/10(日) 22:53:17 ID:???
作業 お見積り票
 ニコニコ・インテグレーター

今回の作業の
> PG 1名: 8h 拘束
> \350 x 8h : \2,800

プロジェクトマネージメント料
> \70,000 : \70,000

特別 お値引き
> \2,800

税込み計: \73,500-
596594:2007/06/10(日) 23:00:59 ID:???
@とAは自己解決なんとかできました。
BとCが未だ謎ですので、アドバイス等ありましたらお願いします
m(_ _)m
597594:2007/06/10(日) 23:02:49 ID:???
書き忘れです。Bの「この結果」っていうのは、Aの出力結果のことです。
連続投稿失礼しました。
598NAME IS NULL:2007/06/10(日) 23:14:53 ID:???
>>597

ヒント

insert into c select a.col2, b.col2 from a,b where a.col1=b.col1 and .....;

まあ、ようはinsert into c [2で使ったSQL]でいける。
599NAME IS NULL:2007/06/11(月) 22:44:26 ID:???
現在、汎用系SE(?)PGやってます。(基本的にはコボラーです)
将来の不安解消のための手段のひとつとしてOracleの勉強をしようかと思っています。
そこで質問があるのですが、現在、システム導入に当たって使用されるOracle
って10gがほとんどでしょうか?
私が関わったことある平成15〜19年導入システム(汎用機→オープン系・1プロジェクトです。)
ではOracle8iが使われていました。
現在も8iや9iの需要はあるのでしょうか?保守はあると思うのですが…
新規導入は基本的に10gになるのでしょうか?
わかる方、申し訳ありませんが、教えて下さい。
よろしくお願いします。
600NAME IS NULL:2007/06/11(月) 22:49:23 ID:???
>>599
今なら新規導入は9iか10gになると思うよ。
そのうち11が出るから、9iも近々消えるだろうけどな。
601NAME IS NULL:2007/06/11(月) 22:54:37 ID:???
Windows版ならわざわざ9iにするメリットもないし。
Unix版でもやはり11が出ようかという時期に9iってのもなんだし。
602NAME IS NULL:2007/06/11(月) 23:04:20 ID:???
>>599
Oracle8iのサポート期間って終了しませんでしたっけ?
今からの新規案件は10gRelease2でしょうね、やっと安定した感があるので暫くは続くと思われです
(先のことなので予想半分ですが、11のRelease2が安定するまで)
603599:2007/06/11(月) 23:57:22 ID:???
>>600-602
アドバイスありがとうございます。
10gを勉強することにしました。
604NAME IS NULL:2007/06/12(火) 11:26:49 ID:oQuF+3Qh
保守なのでoracle8iを使ってます。
新しい登録するべきデータがテーブルの項目の桁数より大きくて困っています。
主キーに登録するデータではないのですが、
char型の項目の桁数を変更する方法はありますでしょうか?

方法がありましたら、検索のヒント又は関数名を教えてください。
605NAME IS NULL:2007/06/12(火) 12:00:43 ID:Y5HKReaS
くだらない質問なんですが
NVLって何かの略称ですか?
NVLだと言葉から意味がいまいちつかめなくてイメージがわかないんです
606NAME IS NULL:2007/06/12(火) 12:58:59 ID:???
>>605

Null VaLueの略だろ。
つまりNull値を指定した値で置き換えるという意味だ。
607NAME IS NULL:2007/06/12(火) 13:07:40 ID:Y5HKReaS
>>606
お陰で疑問が解けました
ありがとうございます
608604:2007/06/12(火) 13:17:37 ID:???
結局、別の項目を追加して放り込んでおくことにしました。
すみませんでした。
609NAME IS NULL:2007/06/12(火) 14:01:43 ID:???
>>605
Null-Value-Logic だよん
610594:2007/06/12(火) 22:40:59 ID:???
ヒント有難う御座いました。無事に解けました。
今現在は、VisualStudioで造ったプログラムにSQL文を書いて、Oracleに接続させてテーブルをselectしたりという、ODBC接続というものをやってます。
・VSでwin32コンソールアプリケーション(設定にMFC付与)でプロジェクトを作成
・最初から書かれてあるメインソースの「//アプリケーションの動作を記述するコードをここに挿入」の箇所から下に、ネットにあったサンプルを貼り付け
・Oracle接続するIDやPASSを書く箇所を、strCON = "DSN=dsn;UID=いつも使うID;PWD=いつも使うPASS"と書き換え
・strSql=""の箇所には、select * from 造ったテーブル、とSQL文を書いた。
以上の作業を行ったあとに、実行したのですが、実行する行「CRecordset rs (&db)〜」でデバッグエラーが出ました。
このエラーの原因が分からないので、何かアドバイス頂けたらと思います。よろしくお願いします。
(貼っていいか分かりませんが、サンプルソースのURL「http://homepage1.nifty.com/kojama/works/rdbms/conn/vc.html」ここの、MFCでSELECTのソースです。貼ったのは。)
使用ソフト(VisualStudio2005、Oracle10g(ver.10,1,0,2,0))
611NAME IS NULL :2007/06/13(水) 03:00:54 ID:???
>>610

つ〜かさ、ODBCでDB繋げにいくんだったらDSNの設定したのかい?
スタート→設定→管理ツール→データソース(ODBC)でまずは繋がる様にしないと
ならんだろ。
そのためにはtnsnames.oraの設定もしないとならないと思ったぞ。
そこで初めて設定してたDSN名をstrCON = "DSN=dsn;"の所で指定できる。
612NAME IS NULL:2007/06/20(水) 22:58:28 ID:???
オラクルマスターシルバーを取得したいと考えているのですが
特にお勧めの予備校?ってありますか?
埼玉浦和所沢 東京池袋新宿辺りでいいのがあったらいいなと思っています
どうかご教示くだsだい。お願いいたします。
613NAME IS NULL:2007/06/20(水) 23:11:52 ID:???
10gです。
sqlplusにて検索すると、データの後ろにやたらと空白が出力されます。
回避する方法はありますでしょうか?

例えば、

ID CHAR(5)
NAME CHAR(10)

のようなテーブルがあるとして、sqlplusでの出力結果が

ID          NAME
--------------- ------------------------------
XXXXX       NNNNNNNN
ZZZZZ       YYYYYYYYY
YYYYY<- 空白 -> UUUUUUUU

のようになります。本来であれば、

ID    NAME
------ ----------
XXXXX NNNNNNNN
ZZZZZ YYYYYYYYY
YYYYY UUUUUUUU

のように出力されるものだと思うのですが・・
614NAME IS NULL:2007/06/20(水) 23:22:15 ID:???
column format ID a5
615NAME IS NULL:2007/06/20(水) 23:24:12 ID:???
まちがえた
column ID format a5
だな。
616NAME IS NULL:2007/06/20(水) 23:43:27 ID:???
9iの頃は空白は出力されなかったのですが、
10gではcolumnコマンドを使って、カラム毎に設定が必要ということですか?
617NAME IS NULL:2007/06/20(水) 23:45:24 ID:???
>>616
UNICODE使ってないか?
618NAME IS NULL:2007/06/21(木) 00:09:14 ID:???
文字コードはOS、oracle共にEUCです。
619NAME IS NULL:2007/06/21(木) 00:14:20 ID:???
>>618
端末の文字コードじゃなくて、DBの方ね。
620NAME IS NULL:2007/06/21(木) 00:22:35 ID:???
EUCです。
621NAME IS NULL :2007/06/21(木) 02:27:18 ID:???
>>612

シルバーぐらいだったらオラクルマスターの参考書買って勉強した方がいい。
622NAME IS NULL :2007/06/21(木) 02:42:24 ID:???
>>613

俺の環境では9iも10gも同じように表示されたぞ?
ちなみにクライアントも10gだったけど。
623NAME IS NULL:2007/06/21(木) 09:14:26 ID:???
昨日から oracle.co.jp に繋がらないけどメンテ中?
624NAME IS NULL:2007/06/21(木) 11:03:19 ID:???
>>623

普通に繋がるけど?
625NAME IS NULL:2007/06/21(木) 11:29:35 ID:???
パブリックシノニムの一覧を表示する方法を教えてください
626NAME IS NULL:2007/06/21(木) 13:34:23 ID:???
>>624
こっちもルーティングが変わって繋がるようになった。
tracertを比較するとプロバイダの出口付近で詰まってたみたいでした。
627NAME IS NULL:2007/06/21(木) 18:25:56 ID:p/jATL4d
Oracle SQLDeveloperを落としてきて
check for updateをかけると
途中でWeb Account user name and passwordを聞いて来るのですが
普段Oracleの掲示板などにログインしているusernameとpasswordを入れても
違うと怒られます。
これ以外にWeb Account user name and passwordなんてものがあるのでしょうか??
628NAME IS NULL:2007/06/21(木) 18:36:10 ID:p/jATL4d
JapanのIDしか持ってない、とか。


ていうかUSの新規登録サイト、動かないっぽいんだけど。
629NAME IS NULL :2007/06/21(木) 23:22:26 ID:???
>>625

select * from dba_synonyms where owner='PUBLIC';
で、いいじゃね?
630NAME IS NULL:2007/06/23(土) 01:20:19 ID:???
かなり初歩的な質問と思うのですが、Oracleでエスケープすべき文字は「'」
(シングルクォート)だけでしょうか?
Oracleのバージョンは10.1.0.2です。
631630:2007/06/23(土) 01:25:22 ID:???
付け足します。
insertやupdateで文字列を追加、更新したりする時です。
632デフォルトの名無しさん:2007/06/24(日) 23:57:45 ID:???
>611さん
お礼遅れましたが、出来ました。アドバイス感謝です。

もう一つ分からない点が出てきてます。
存在しない行をDML文で操作した時に、エラーメッセージを出す方法が思いつきません。
例えば表を作って、列名「CODE」を作成してそこに「001,002,003」と3つ行をインサートし、
その後UPDATEやDELETE文で、「UPDATE 〜 CODE='005';」としたとき、SQLPLUSでは、「0行が更新されました」
と出て、正常に処理が終わっています。
私が造りたいのは、この時にプログラムで
「存在しない行をDML文で操作したらエラーメッセージをcoutする」という処理にしたいんです。
SELECT文で存在しないデータを取り出す時のエラーメッセージは造れましたが、
DML文は、0行更新や0行削除のときも、正常に1行更新や1行削除の時も、プログラム上の動きが全く一緒なので
場合分けができないなぁと思ったんですが。
(DML文発行の時のロジックは、以下を外部関数Transにして{変数strSQLにSQL文を格納させてます}
{
CDatabase db.BeginingTrans();
try{
db.ExecuteSQL((LPCTSTR)strSQL); }
chatch (...){
&Database::RollBack; }
db.CommitTrans();
}
これを、UPDATEやDELETEしたい時に呼び出して使ってます。)

何かしらアドバイスありましたら、宜しくお願いします。
633611:2007/06/25(月) 23:59:43 ID:???
>>632

俺、VBから離れてもう7年以上経っちまってんだけど・・・?
とりあえずinsert、update、delete処理を打った時に、更新行が0という戻り値だったら
Counterを増やすという処理でいいんじゃないのか?
634NAME IS NULL:2007/06/28(木) 11:15:49 ID:???
VISTAからオラクルDBにODBC接続するとき、Microsoft ODBC for Oracle でないと
対応していないソフトがあって、XPの端末なら問題なく接続できるんだけれど
VISTAで同じ設定で接続するとエラーになって接続できないんだけれど
これは、ODBCドライバーのバージョンかなにかに問題があるのでしょうか?
接続先のOracleのバージョンは8,9の二つを試したけれど両方ともだめでした。
ちなみにOracle ODBC Driverなら接続できました。
635NAME IS NULL:2007/06/28(木) 12:39:09 ID:???
エラーの内容は?それを見ないと判断できんぞ。
636NAME IS NULL:2007/06/28(木) 12:48:35 ID:???
'Microsoft ODBC for Oracle' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
637NAME IS NULL:2007/06/28(木) 13:17:13 ID:???
エクセルからODBC接続しようとした場合、データソース名やユーザ名、パスワードを入力後
接続のテストボタンをクリックすると”プロバイダの初期化中にエラーが発生したため、
接続のテストに失敗しました。Oracleエラーが発生しましたが、エラーメッセージは
Oracleから取得できませんでした。”というメッセージが出ます。
まったく同じ条件でXPでやると問題なくいきます。
条件的に違うのは、ODBCドライバーのバージョンくらいです。
638NAME IS NULL:2007/06/28(木) 14:16:45 ID:???
ODBCといっても、ADO-ODBC経由もあるよね?
大して違わないかもしれないけど、やってみたら?
639611:2007/06/29(金) 03:26:19 ID:???
>>634

( ´ー`)つPatch 5337014: 10.2.0.3 PATCH SET FOR ORACLE DATABASE SERVER
640NAME IS NULL:2007/07/02(月) 12:26:34 ID:EJs3Qu6o
javaからoracle-xe 10iに接続しようとして
「ORA-12705: Cannot access NLS data files or invalid environment specified

というエラーメッセージがでます。
環境変数は確認して問題ないと思うんですが、
データベースのキャラクタセット、各国語キャラクタセットを確認すると
AL32UTF8、AL16UTF16と一致していませんでした。
これが原因なんでしょうか?
641NAME IS NULL :2007/07/03(火) 05:25:55 ID:???
>>640

鯖のタイプぐらい書け。
稀にだが、NLS関係の環境変数の設定で$ORACLE_HOMEとかが含まれていると
駄目だったりすることがある。
絶対パスで環境変数を指定すれば大丈夫だったりするが・・・。
642NAME IS NULL:2007/07/04(水) 00:41:06 ID:???
そのジャバで環境変数だけ出力するプログラム書いて実行した結果を貼れ。
643NAME IS NULL:2007/07/08(日) 06:47:23 ID:GkdOGLBy
質問です
DB:oracleXE 10g
使用ツール:common SQL Environment (ver.1.59)

上記の環境で、select lengthb('ああ') from dual
を実行すると、結果が4になると思いきや、6になります。
これは何が原因なのでしょうか?
644NAME IS NULL:2007/07/08(日) 07:05:50 ID:???
>>643
文字コードがutf-8何じゃないの?
utf-8なら「あ」は3バイトだったはず。
645643:2007/07/08(日) 08:25:10 ID:???
>>644
レスありがとうございました。当方vista使用のため、デフォルトがutf-8なのかもしれません。
文字コードの変換についてもうちょい調べてみます。
646643:2007/07/08(日) 22:35:14 ID:???
OS:Windows Vista
DB:oracleXE 10g
使用ツール:common SQL Environment (ver.1.59)

上記環境にて、
SELECT VALUE FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER='NLS_CHARACTERSET'
を実行したところ、AL32UTF8 の値を取得しました。

GRANT ALL PRIVILEGES TO USERNAMEで権限を与えた(つもり)の後、
UPDATE NLS_DATABASE_PARAMETERS SET VALUE = 'JA16SJISTILDE'
WHERE PARAMETER='NLS_CHARACTERSET'
を実行しようとしましたが、
ORA-01031: 権限が不足しています。
のメッセージが出力されました。

Internet ExplorerのエンコードがSJISだと文字化けが起こるので、oracleの文字コードのみ
変更したいのですが、この場合はどのようにしたらよいのでしょうか?
647NAME IS NULL:2007/07/08(日) 22:56:33 ID:???
>>646

DBの文字コードは CREATE DATABASE 文でしか指定できなくて、
後からは変えられないんじゃないのかな。
648NAME IS NULL:2007/07/08(日) 23:06:48 ID:???
>>646

DBのキャラクターセットを変更したい場合には、既存のキャラクターセットの
スーパーセットにしか変更する事ができない。
つまりUTF8はUS7ASCIIの完全なスーパーセットであるから変更は可能だが、
JA16SJISからJA16EUCはスーパーセットではないため変更は出来ない。
この場合にはDBのFull Exp/Impで対応する。
649643:2007/07/08(日) 23:30:54 ID:???
>>647
なるほど。それでは
select lengthb('ああ') from dual
などの場合はあきらめるしかなさそうですね。
oracle全体の文字コードを設定するファイルがあると思ってました。

>>648
ありがとうございました。
650NAME IS NULL:2007/07/09(月) 00:18:38 ID:???
SQL☆PLUSでINSERT文を繰り返したいのですが
なにかループさせる方法はないでしょうか?
651NAME IS NULL:2007/07/09(月) 05:31:43 ID:???
>>650

PL/SQL使えばいいじゃん。
652NAME IS NULL :2007/07/09(月) 22:45:19 ID:???
>>650

PL/SQL使えばいいだろ?
こんな感じに?

begin
for i IN 1..5000 LOOP /* 5,000 rows insert */
insert into hoge values ('boge','boe');
commit;
end loop;
end;
/
653NAME IS NULL:2007/07/13(金) 00:10:20 ID:???
教えてください。
SELECTの監査証跡を取る設定にしてるとき、
サブクエリを1つ使ったSELECT文を発行した場合、
監査レコードは2件作られるんでしょうか?
654NAME IS NULL:2007/07/20(金) 01:35:19 ID:???
スレ違いでしたらすいません。
今、OCIを使ってOracle10gのテーブルにデータを挿入するプログラムを作っている
のですが、OCIExecute()関数実行中にネットワークに障害がおきてしまうと、復旧
するまでずーっとその関数内でで止まったままになってしまうかと思います、
こういう場合、皆さんはどのようにしていますか?
655NAME IS NULL :2007/07/20(金) 04:17:56 ID:???
>>654

N/W障害なら普通はTCP/IPのタイムアウトでORA-3113/3115が返されるだろ。
まあ、TCP/IPのタイムアウトは鯖や設定によっても違うけど、大抵は10分とか
そんなんだろ。
656NAME IS NULL:2007/07/23(月) 19:28:04 ID:tP2GglY4
Oracle10gって
DOS窓でoracle実行でアラートログにORA-600って吐かれない風に変わったの?
検証したいんだが。。
657NAME IS NULL:2007/07/24(火) 09:25:36 ID:???
不吉な番号を書くな。出るだろ。季節だし。
658NAME IS NULL:2007/07/24(火) 13:23:47 ID:???
言霊の信者か。
659NAME IS NULL:2007/07/24(火) 17:45:58 ID:BbH3ih3M
Windows のバッチファイルから、PL/SQLをキックしたいのですが
やり方がわかりません。
D:\oracle\product\10.2.0\client_1\BIN\sqlplus.exe XXX/XXX@ORA92
 ここまではOKなんですが、パッケージがキックできません。
660NAME IS NULL:2007/07/24(火) 18:23:42 ID:???
>>659
sqlplus.exe XXX/XXX@ORA92  @hoge.sql
SQLを書いたファイルが必要

hoge.sql
---
execute xxx;
exit
---
661NAME IS NULL:2007/07/25(水) 09:55:36 ID:b2CcIo5r
ありがとうございます、packageの場合がわかりません。
662NAME IS NULL:2007/07/25(水) 10:22:37 ID:???
execute パッケージ名.xxx
ではだめ?
663NAME IS NULL:2007/07/25(水) 16:32:53 ID:b2CcIo5r
BEGIN XX_XXXXXX; END;
*
行1でエラーが発生しました。:
ORA-06550: 行1、列7:
PLS-00221: 'XX_XXXXXX'がプロシージャではないか、または未定義です。
ORA-06550: 行1、列7:
PL/SQL: Statement ignored

このエラーが出まして動きません。
パッケージ名の後ろは何を書けばよいのですか?

初心者ですみません。
664NAME IS NULL:2007/07/25(水) 17:05:06 ID:vso8Zt4w
パッケージの実行は開始してると思うが
パッケージそのもの記述がよろしくないのでは?
普通にSQL*Plusを開いてhoge.sqlをコピペして実行してみると
同じエラーが出ると思ふ。
つまりキックはできたがsqlの実行がNG。
エラーメッセージを頼りに他のパッケージとの依存関係はないか
文法的に間違いはないのかよく見てみー。

665NAME IS NULL:2007/07/25(水) 20:44:17 ID:AW0ipeA1
初心者ですみません。

もらったパッケージなんでごめんなさい。
文法を確認してみます。
666NAME IS NULL:2007/07/26(木) 10:01:11 ID:vEHhwLTe
>>664
execute xxx.xxx;
で動きました。素人でご迷惑をおかけしました。
667NAME IS NULL:2007/07/30(月) 21:10:01 ID:2PDkD7wn
素人です。

windows vistaにオラクル10gのトライアル版(Release2)をインストールしようとすると、「OSに互換性がない」と怒られます。
システム要件を見るとvistaでも良いはずなのですが・・・

vistaにトライアル版入れる方法教えて下さい。
668NAME IS NULL :2007/07/30(月) 22:46:49 ID:???
>>667

どうやらPatch 5860454をインスコする必要があるみたいだな。
パッチの入手方法はMetalinkとかのアカウント持っていない人のやり方は知らん。

面倒だからU.S. OTNからVista版ダウソしろ。
そっちの方が早いだろ。

ttp://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10203vista.html
669667:2007/07/31(火) 19:33:52 ID:upH6NrcM
>>668
そうか、U.S.という手があったか!
dクス

670NAME IS NULL:2007/08/01(水) 10:14:13 ID:+sJRPFfW
Oracle で ociを使ってプログラムを作るときに、
コネクションプーリングとか自前で実装するのが定石なんでしょうか。
それとも、そういった機能がすでにあるのでしょうか?
671NAME IS NULL:2007/08/01(水) 16:14:15 ID:O24DaM8E
初歩的な質問ですけど、失礼します。

VisualStudioでOracleに接続しようとすると
「ora-12154 サービス名を解決できませんでした」

と出てしまい、接続できません。

SQL+などでは、問題なく接続できます。

VisualStdioのほうで何か設定などが必要なのでしょうか?
板違いだったらすいません。
672NAME IS NULL:2007/08/01(水) 17:49:56 ID:???
>>671
ODBC
673NAME IS NULL :2007/08/01(水) 23:20:16 ID:???
>>671

>>263ぐらいヒントがあるな。
674NAME IS NULL:2007/08/02(木) 08:56:14 ID:???
最近、DBを勉強し始めたものです。

テーブルロックについてつまずいてます。

oracleにはテーブルロックのモードが5パターンあります。
・行共有テーブルロック
・行排他テーブルロック
・共有テーブルロック
・共有行排他ロック
・排他ロック

共有という言葉が引っかかるのですが、ロックを共有して
行うことができるという意味合いなのでしょうか?
だとすると、行排他テーブルロックと行排他テーブルロックは
同時に取得可能なので、上記のような意味合いとは違うのかなぁ
と思ってます。

共有という言葉の意味合いについて教えてもらえないでしょうか?
675NAME IS NULL:2007/08/02(木) 10:00:10 ID:???
676674:2007/08/03(金) 09:29:51 ID:???
>>675
理解できなかったです。orz。
677NAME IS NULL:2007/08/03(金) 11:40:15 ID:???
>>676
自分も共有に違和感はあったが慣れるまでshare lockと読んでおけばいいじゃん
share:分けること。分配。分担。
独占使用していないロックってこと
678NAME IS NULL:2007/08/03(金) 13:04:49 ID:???
Oracle のユーザ sysやsystemのパスワードが最後に変更された
日付を確認するにはどうすればいいのでしょうか?
内部統制でパスワード変更日を表示しろと言われて困っています。
679NAME IS NULL:2007/08/03(金) 16:20:15 ID:???
DEFAULTプロファイルでPASSWORD_VERIFY_FUNCTION有効にして、
ファンクションの中身を適当にカスタマイズすればいいんじゃね?
680NAME IS NULL:2007/08/03(金) 18:23:43 ID:???
>>677
違和感感じてるのは私だけかと思ってましたが、
いい意味で違ったみたいですね。

ありがとうございました。
681NAME IS NULL :2007/08/04(土) 02:19:39 ID:???
>>678

after alterトリガー使えばいいべ。

1. sysスキーマに監査用の表を作成

create table audit_password_change
(
username varchar2(10),
changed_by varchar2(10),
timestamp date
);

2. after alterトリガーをsysスキーマ内に作成

CREATE or REPLACE TRIGGER captuer_alter_user AFTER ALTER on database
BEGIN
IF (ora_dict_obj_type='USER' and (ora_dict_obj_name='SYSTEM' or ora_dict_obj_name='SYS') and ora_des_encrypted_password is not null) THEN
insert into audit_password_change
values (ora_dict_obj_name,
ora_login_user,
sysdate);
END IF;
END;
/

3. 実際にsysのパスワードを変更してみる。

SQL> show user
USER is "SYS"
SQL> alter user system identified by hogeboge;

4. 監査表をセレクト

SQL> select username, changed_by, to_char(timestamp,'YY/MM/DD HH24:MI:SS') changed_date from audit_password_change;

USERNAME CHANGED_BY CHANGED_DATE
---------- ---------- -----------------
SYSTEM SYS 07/08/03 13:13:51

682NAME IS NULL:2007/08/05(日) 15:32:53 ID:658vIUe0
OTNでOracle Database 10g Release 2(10.2.0)for Microsoft Windows 32bit
のトライアル版をダウンロードしましたがsetup.exeを起動すると
「内部エラーが発生しました。」とでてしまいます。
OSはWindows vista home basic です。
vista では動かないんですかね?
683NAME IS NULL:2007/08/05(日) 16:32:48 ID:???
684NAME IS NULL :2007/08/05(日) 20:37:09 ID:???
>>682

全部とは言わないが、前後30ぐらいのスレぐらい嫁や。
Vistaで検索ぐらいしろや。
>>668ぐらい見てみろや。
685NAME IS NULL:2007/08/05(日) 20:55:06 ID:???
素朴な疑問ですが、oracleで数十テラバイトのデータを運用しても、
特別パフォーマンスが落ちるようなことはないですか?
インデックス等のチューニングをしていれば、データサイズによるボトルネックは
ある程度無視できるのかな。
oracleはデータサイズ無制限って聞いたことがあるので。
686683:2007/08/05(日) 20:56:48 ID:???
>>684

前後30ぐらいって、後30はどうやって見るの?
687NAME IS NULL:2007/08/05(日) 20:59:28 ID:???
>oracleはデータサイズ無制限って聞いたことがあるので。

誰から聞いたんだ。
そんなデマ。
688NAME IS NULL:2007/08/05(日) 21:41:04 ID:???
100TBのデータベースもある。
689NAME IS NULL:2007/08/05(日) 23:26:52 ID:???
で、685はどうなの?
690NAME IS NULL:2007/08/06(月) 00:20:17 ID:???
質問があいまい過ぎる。
基本的にはデータサイズというかレコード件数によってパフォーマンスが変わってくるのは当たり前。
あとはレコードサイズに対してブロックサイズが適切かどうか、など物理設計レベルでも影響受けるけど。
691NAME IS NULL:2007/08/06(月) 06:27:38 ID:???
oracle 10gですが、どうしてこんなにメモリ食うんですか?
692NAME IS NULL:2007/08/06(月) 08:17:05 ID:???
>>691
仕様。

つかOracle7のころのサクサク感をもう一度、
と思ってるのは、俺だけじゃないと思うんだが、
バージョンが上がるごとにどんどん重くなるよ。orz
693678:2007/08/06(月) 10:02:54 ID:???
>>679,681
ありがとうございます。やってみます。
694NAME IS NULL:2007/08/06(月) 18:01:40 ID:???
yyyy m str
---------
2007 4 aaa
2007 5 bbb
2007 6 ccc
こんなテーブルがあったとして、selectの結果を
1レコードに収めるいい方法ありますか?

yyyy str4 str5 str6
----------------
2007 aaa bbb ccc
こんなイメージです。月別で行になっているのを列で表示したいのです。

一応これで出来るみたいなんですが、もしや
もっとスマートな書き方があるのかなと思いまして。
select str,(select str from tbl where yyyy=2007 and m=5),
(select str from tbl where yyyy=2007 and m=6)
from tbl where yyyy=2007 and m=4

宜しくお願いします。
695NAME IS NULL :2007/08/06(月) 20:32:57 ID:???
>>694

コンカチネーションの||を使えば出来そうなきもするけどな。

696NAME IS NULL:2007/08/06(月) 21:12:46 ID:???
>>694
クロス集計
697NAME IS NULL:2007/08/06(月) 23:40:22 ID:???
Oracleデータベースサーバではなく、Oracle ClientのインストールでもOEMは使用出来ますか?
698NAME IS NULL :2007/08/07(火) 00:08:30 ID:???
>>697

昔ながらのJavaベースのクライアント型OEMなら。
699694:2007/08/07(火) 10:25:47 ID:???
>695-696
回答ありがとうございます。

クロス集計を調べてみたら下記のやり方で
期待通りの出力になりました!感謝!

select
sum(decode(m,4,str,0)) "str4",
sum(decode(m,5,str,0)) "str5",
sum(decode(m,6,str,0)) "str6"
from tbl
group by yyyy;
700NAME IS NULL:2007/08/07(火) 19:16:42 ID:???
初心者です。質問させてください。

時間を扱うのはどの型で決めればいいと思いますか?

時間といいますと、一時間や二時間の時間の単位で、日付などの時刻ではない場合です。
DateTimeやTime型が一般的なのでしょうか?
701NAME IS NULL :2007/08/07(火) 22:56:06 ID:???
>>700

で、あなた自身はどう思うの?
まずどういった検索条件で使われるかが分かると、どのデータ型がいいかも
分かってくると思うけど?
702NAME IS NULL:2007/08/08(水) 11:44:52 ID:???
>>700
SQLリファレンス「Oracle SQL の基本要素」の「データ型」参照。
時刻ではない、ってのは、リファレンスでいうところの「期間」?
であれば INTERVAL DAY TO SECOND か、または簡単に整数型。
703NAME IS NULL:2007/08/08(水) 13:27:28 ID:???
>>700
時間計算(23:00+5時間=4:00みたいな)をするなら時間型で、
そうでないなら整数型でいいんちゃう?
704NAME IS NULL:2007/08/09(木) 18:20:22 ID:mHbLHx11
ユーザAで作成したシーケンスをユーザBにコピーすることってできる?
705NAME IS NULL :2007/08/09(木) 20:36:03 ID:???
>>704

以下のSQL使ってcreate文を作成して、それをユーザーBで流せ。。

select
'create sequence '||sequence_name||' start with '||to_char(last_number+1)||
' increment by '||increment_by||' maxvalue '||max_value||decode(nvl(cache_size,0),0,';',' cache '||cache_size||';') "Create Sequecne SQL"
from dba_sequences
where upper(sequence_owner) = upper('&Owner')
order by 1
706NAME IS NULL:2007/08/11(土) 20:24:37 ID:MhUPY4BW
Oracle 8.1.6 とWindows2000Server SP4で

サービスが起動中で起動されませんがSP4はだめなんでしょうか?
707NAME IS NULL:2007/08/11(土) 22:46:05 ID:MhUPY4BW
706です。
SPなしリモート デスクトップ接続でインストールすると・・・途中で進まない。
SPなしCRTを接続してインストールすると・・・最後までいった。

ナンなんでしょう?
708NAME IS NULL:2007/08/12(日) 03:23:34 ID:wbpD55zr
カラム定義の際に半角英数文字(日本語不可)のみに
データ入力制限をかけたりすることって可能ですか?

カラムの入力制限を取得して、
フロントエンドのカラムに対応するテキストボックスがアクティブになったときに
IMEを半角英数字に自動的に設定とかして、
いちいちプログラムで指定しなくていいようになればいいのにと思っているのですが。

トリガーとかなしで何かいい方法があったら教えてくださいm(__)m
709NAME IS NULL:2007/08/12(日) 04:47:07 ID:???
>>708
10gなら正規表現が使用できるので、それを CHECK に書く。
710NAME IS NULL:2007/08/12(日) 07:12:52 ID:???
みなさん、BLOB型なんて使ってますでしょうか?使ってるとしたらどんなデータを入れてます?
711NAME IS NULL:2007/08/12(日) 14:00:28 ID:I8cYToGJ
済みません。Linux環境でHTTP経由でのオラクルアクセスに付いて教えて下さい。
APACHE(RHEL) + Oracle10g で接続を試みていたのですが、perl 〜 では動作するのですが、
HTTP経由では以下のエラーが出て接続出来ませんでした。

install_driver(Oracle) failed:
Can't load '/usr/local/lib/perl5/site_perl/5.8.6/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so'
for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory
at /usr/local/lib/perl5/5.8.6/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at (eval 300) line 3\nCompilation failed in require at (eval 300) line 3.
Perhaps a required shared library or dll isn't installed where expected\n at /apache/cgi-bin/cron/db_test.cgi line 41

あるサイトで面倒なら chmod -R 755 oracle との記述を見て /usr/lib/oracel 配下を 755 で
設定した所、oracle の動作がおかしくなり、sqlplus の接続で [ORA-01031: insufficient privileges]
とエラーが表示され接続すら出来なくなりました。
まずは環境の復旧が第一なのですが、途方に暮れて焦っている状況です。
どの様にすれば環境の復旧が出来るのでしょうか?
宜しくお願い致します。
712NAME IS NULL:2007/08/12(日) 15:46:00 ID:I8cYToGJ
自己レスです。

oracle モジュールは "-rwsr-s--x" で動作するとの事で
chmod ug+s oracle で、パーミッションを変更する事で無事起動出来ました。
取り合えず oracle モジュールだけの対応なのですが、他にも同様に動作に対して
アクセス権を限定する様なモジュールはありますでしょうか?

また、現状以下の設定になっているのですが、リスナーがありませんと怒られます。
何処が悪いのか教えて頂けますでしょうか。
宜しくお願い致します。


リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.3)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=8080))(Presentation=HTTP)(Session=RAW))

lisner.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
(PROGRAM = extproc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
)
)


DBI connect('host=127.0.0.1;SERVICE_NAME=XE','testuser',...) failed: ORA-12541: TNS: リスナーがありません。
(DBD ERROR: OCIServerAttach) at (eval 8) line 14
713NAME IS NULL:2007/08/12(日) 17:38:42 ID:???
新米DBAです

CPUを適用したいのですが
RACじゃない場合どちらをやればいいんですか?
ポストインストールってのが関係あるのかないのか分からなくて

Section 3.3.1, "Patch Installation Instructions for a Non-RAC Environment"
Section 3.3.2, "Post Installation Instructions for a Non-RAC Environment"

あとCPUは個別パッチではないのでOPatch は関係ありませんよね?
714NAME IS NULL:2007/08/12(日) 17:52:40 ID:???
Post というのは〜の後という意味だよ。
715NAME IS NULL:2007/08/12(日) 17:53:30 ID:???
質問が2個あったのか。

CPUでもOPatchは使うけど、関係ないというのは何を聞きたいの?
716NAME IS NULL:2007/08/12(日) 18:39:30 ID:???
>>706
8.1.7に汁。
8.1.6は自動起動できないバグがある。
717NAME IS NULL:2007/08/13(月) 02:35:23 ID:???
>Can't load '/usr/local/lib/perl5/site_perl/5.8.6/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so'
>for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory

エラーに出てる内容は調べたの?
おまいさんのHTTP鯖にはORACLEはインストールされてるのかい?
「libclntsh.so.10.1がねーよ」って言ってるよ?

インストールされてるなら、HTTPDを起動しているユーザーの環境変数とかdb_test.cgi に、
ORACLE_HOMEとか環境変数はちゃんと設定されているかい?
パスが通ってなくて見つからないんじゃないの?

アクセス権が気になるなら、上書きで再インストールすれば?
(DB作ってあるなら、データファイルとか上書きしないように注意すればOK)

リスナーが無い件は、アドレスとポート番号を見直せ。
DBIの接続文字列で指定したアドレスとポート番号で、リスナー設定していることを
確認してみよ
718NAME IS NULL:2007/08/13(月) 10:19:48 ID:???
>>706-707
リモートデスクトップ接続だとORACLE_HOME環境変数(Winの場合はレジストリだっけ?)が正しく反映されないことがある.
以前にリモートデスクトップ接続で色々操作しようとして嵌った.
719NAME IS NULL:2007/08/13(月) 10:42:40 ID:tIOKnV2+
今日から盆休み上げ。
頼むから休み中に更新バッチがこけるのだけはやめてー
720NAME IS NULL:2007/08/13(月) 12:07:01 ID:???
俺,今日の更新バッチが正常に終わったら,
明日から一週間夏休みが取れるんだ.
実家の婆ちゃん,元気にしてるかな...?
高校の同級生のK子とも会う約束してるし楽しみだなぁ...
721NAME IS NULL:2007/08/13(月) 12:41:00 ID:???

.          ,'  ..::| .::;',' :;:','フ'7フ''7/   ',.ト',_|, , ',.',
       ,'   .::::::!'''l/!:;'/ /'゙  /     '! ゙;:|:、.|、| 'l
.         ,'.  .:::::::{ l'.l/  、_  _,.      'l/',|.';|
       l  :::::::::::';、ヾ      ̄     `‐-‐'/! ';. '
.         ! :::::::::::/ `‐、        ゝ   |'゙ |
       | ::::::::/   \    、_, _.,.,_ ノ::: !
       |::::/.     _rl`': 、_     ///;ト,゙;:::::./   >>720の更新バッチが
..      `´      /\\  `i;┬:////゙l゙l ヾ/         アベンドしますように・・・
                ,.:く::::::::`:、\ 〉l゙:l  / !.|
.            /:.:.:.:\:.:.:.:.`:、ソ/:.:|    | |
           /.:.:.:.:.:.:.:.:.:\:.:.:.:У:.:;l   /./
.          /:.:.:.:.:.:.:.r'´`‐,`、:/.,.:‐{   | !`:、
           ,'.:.:.:.:.:.:.:.:.';_,゚.,ノ.:./,:':.:.:.:',  | |`、:|


722NAME IS NULL:2007/08/13(月) 13:59:18 ID:???
>>720
それ、死亡フラグ立ってるよwww
723NAME IS NULL :2007/08/13(月) 21:35:55 ID:???
>>720

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ...   --─-  :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡::::   //[||    」  ||]  ::::::::::゜:::::::::: ...:: :::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..::::
:.... .... .. .     く  /     三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ無茶しやがって… ..........
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ................... .. . ...
..   三  |   三  |   三  |   三 |  ... ............. ........... . .....
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪ ............. ............. .. ........ ...
  三三  三三  三三   三三
 三三  三三  三三   三三
724NAME IS NULL:2007/08/14(火) 10:46:39 ID:9jW3G2t9
>>716
>>718
8.1.6はお客さんの環境なんで、これ以外使いたくないんですが・・・年前の開発を評価始めました。
リモートデスクトップですが、SPを当てないと状態だとうまく動いています。
(お客さんはSP4なんですが・・・SP2から最近上げた)

怖いんで当面これで行きます、ありがとうございます。
725NAME IS NULL :2007/08/14(火) 20:22:58 ID:???
>>724

VNCかPC Anywhere入れておけ。
726NAME IS NULL:2007/08/16(木) 09:55:47 ID:2Dc73I9n
>>725
Win2kServerのセットアップは、CRTをつなげてOracleのサービスまではOK。
リモートデスクトップで設定作業をやっていますので、SPさえ当てなければ
サービスも起動していますのでOKです。

SPを当ててみると振舞い(サービスが起動中になる)がわかるんですがやっていません。
727NAME IS NULL:2007/08/16(木) 21:15:08 ID:qcjMdZxT
今概要設計をしていますが、
バックアップ等をメニューからうやりたいとの要望があります。
exportはバッチファイルをキックすれば簡単なんですが
戻すときは、どうしたら良いでしょう?
テーブル、パッケージ等をドロップしてimportでしょうか?
728NAME IS NULL:2007/08/16(木) 23:56:12 ID:???
DESTROYちゃうの?
729NAME IS NULL:2007/08/17(金) 10:32:27 ID:RzF+IMsI
>>728
destroy=yですね、ありがとうございます。
いまやってみましたが、結構メッセージがでるんでビビッテいます。
730NAME IS NULL:2007/08/17(金) 13:14:24 ID:???
   あ
aaa
aaaaaaaa
731NAME IS NULL:2007/08/17(金) 16:58:56 ID:???
Oracle 10g(30日トライアル版)をインストールしようとしているんですが、
外付けUSBハードディスクでは、問題あるでしょうか?
732NAME IS NULL:2007/08/17(金) 19:09:21 ID:???
データファイルの置き場所としてなら全く問題ない。
ORACLE_HOMEとしては、なにか問題がでるかもしれない。
733NAME IS NULL:2007/08/17(金) 19:15:39 ID:???
>>732
ORACLE_HOMEのインスト先では駄目っぽいですね・・・
素直に内蔵HD増設なりで対応してみます。どうもありがとうございます。
734NAME IS NULL:2007/08/18(土) 01:27:29 ID:???
Unix系なら大丈夫だけど、
Windowsの場合は、どうせシステムドライブに何かしらインストールすることになるからね。
735NAME IS NULL:2007/08/19(日) 20:43:53 ID:???
>>731
自宅勉強用とかなら全然問題無いと思う。
もちろん本番システムではお勧めしない。
736NAME IS NULL:2007/08/20(月) 18:29:49 ID:???
外付けの eSATA の実績ありませんか?
737NAME IS NULL :2007/08/23(木) 00:16:27 ID:???
>>736

本番環境でってことか?
どんなシステムか知らんが、本番環境だったらそれなりにHA考えるのが普通だと思うぞ。
738NAME IS NULL:2007/08/23(木) 09:08:58 ID:???
>>737
主には開発環境。
結構安価なので本番環境でも使えるなら・・・ と思ったが
規格上無理そうですね。
739NAME IS NULL:2007/08/23(木) 11:58:38 ID:???
まったく規格上の問題ではない。
そういうのはOSの仕事であり、OSできちんと認識されておれば、
Oracleに限らず、一般的なアプリケーションがディスクの物理的な接続方式を気にすることはない。
740NAME IS NULL:2007/08/23(木) 14:17:09 ID:???
Oracle10gです。Windowsです。

データベースも文字セットをJA16SJISTILDEで作成し、
WebLogic10もWindowsで環境変数のNLS_LANGを
JA16SJISTILDEと設定したのですが
"〜"が?になってしまいます。なぜでしょうか?
741NAME IS NULL:2007/08/23(木) 14:20:26 ID:???
>>739
ごめんなさい。
規格上無理と言ったのは、まぁ耐久性というか そういった事での発言でした。
742NAME IS NULL:2007/08/23(木) 17:42:49 ID:???
>>740
WebLogicがあるサーバのコマンドプロンプトで
SQL PLUSから"〜"登録して正常に処理されるなら、
WebLogicあるいはアプリケーションの内部処理のせいだろ。
743NAME IS NULL:2007/08/29(水) 10:55:23 ID:???
初歩的な質問で済みません。
オラクル(8i)で、表の create 文を得るにはどうすればいいですか?

インターネットですぐに見つかるかと思ったんですが、どうにも・・。
744NAME IS NULL:2007/08/29(水) 11:17:17 ID:???
>>743
Oracle SQL Developerでも使ってみれば?
745NAME IS NULL:2007/08/29(水) 11:24:14 ID:???
>>743
Object Browser買えば?
746NAME IS NULL:2007/08/29(水) 11:25:27 ID:???
>>743
一応、IMP SHOW=Y ROWS=Nで見るだけなら何とかなると思うがな。
747NAME IS NULL:2007/08/29(水) 11:54:19 ID:???
それほど簡単じゃないんですね・・・
Oracle逆引き大全 550の極意
という本にやり方が書いてるようなので、
今度立ち読み(もしくは購入)します。
748NAME IS NULL :2007/08/29(水) 22:32:34 ID:???
>>747

OEMの類似作成で見れるだろ。
749NAME IS NULL:2007/08/29(水) 22:56:28 ID:???
select dbms_metadata.get_ddl('TABLE',table_name,owner) from dba_tables where owner = 'SCOTT';
750NAME IS NULL:2007/08/29(水) 23:51:42 ID:???
DBMS_METADATA.GET_DDLは9iからの新機能だったと思われ。
751NAME IS NULL:2007/08/30(木) 05:46:53 ID:???
>>750
その通り! じゃ出来ないな(w
かなり昔はPL/SQLで作ったりしたですね

そしたらツールとか使用するしかないですな
Common SQL Environment とかも出せたと思う
752NAME IS NULL:2007/08/31(金) 10:57:03 ID:???
Oracle10g Clientのインストールが完了しても
スタートメニューの[Oracle - OraClient10g_home1]→
[アプリケーション開発]の中にSQL Plusのショートカットが
ないんですが、何か設定があるのでしょうか?
環境は Windows XPと 2003 Serverでやってもありませんでした。
753NAME IS NULL:2007/08/31(金) 18:18:52 ID:???
>>752
そもそもSQLPLUSW.EXEがインストールされるようにしたのか?

つかSQLPLUS.EXEのほうが使い勝手良いだろうにwww
754NAME IS NULL:2007/09/01(土) 11:44:34 ID:???
DMPファイルのインポートについて質問させてください。
バージョンは8iです。

AというDBからエクスポートしたdmpファイルを
BというDBへインポートしました。(AとBは同じOSで、oracleのバージョンも一緒)

BのDBには、十分な表領域を確保しました。テーブルは未作成です。
実際にダンプをインポートしたところ、BのDBにテーブルが作成され
「正常にインポートが終了しました。」
とメッセージが出ました。
しかし、テーブルの中にデータが1レコードも入っていません。
何か原因がわかるかたは、いらっしゃいませんか?
755NAME IS NULL:2007/09/01(土) 13:21:42 ID:???
>>754
インポートのコマンドを詳しく
756NAME IS NULL:2007/09/01(土) 15:54:42 ID:???
>>754
とにかくimpのコマンド晒せ。
757NAME IS NULL:2007/09/01(土) 18:54:28 ID:???
早く!impコマンドを実行したときのオプションを晒すんだ!
あとexpのときのオプションもあるとなお良い。
758NAME IS NULL:2007/09/01(土) 20:29:26 ID:???
ROW=Nだったいうオチとかw
759NAME IS NULL:2007/09/02(日) 10:53:33 ID:TlkCDSr+
a
760NAME IS NULL:2007/09/02(日) 10:54:41 ID:TlkCDSr+
Oracle 9iで Oracle Inproc Server 3.0って
使える?
761NAME IS NULL:2007/09/07(金) 02:27:23 ID:???
Oracle10.2.0で以下の様な全角括弧が入ったSQLを実行すると「無効な文字」が入っているため、エラーになります。
select name (名前) from master
全角括弧を含めるにはどうすれば良いでしょうか?
762NAME IS NULL :2007/09/07(金) 02:38:00 ID:???
>>761

set escape off
763NAME IS NULL:2007/09/07(金) 03:16:23 ID:???
>>761
引用識別子
764NAME IS NULL:2007/09/08(土) 23:45:45 ID:???
>>761
select name "(名前)" from master
765NAME IS NULL:2007/09/11(火) 14:27:26 ID:???
PL/SQLでpkg内にストアドを書いているんですが、そのストアドの中で
create temp tableを実行して一時テーブルを作成したあと、そのテーブルに
insertを行おうとすると "表またはビューが存在しません" と怒られます。

DDL文 を execute immediate で実行してテーブルを作っているのでやむを得
ない?気もするのですが、ストアド内で一時テーブルを作っていろいろ処理
したい時は、全てのSQLを動的生成してexecute immediateするしかないんで
しょうか?

766NAME IS NULL:2007/09/11(火) 23:14:27 ID:???
>>765
別にそんな事しなくてもいいだろ。
ふつーにTYPE使えばいいのではないのか?

767NAME IS NULL:2007/09/13(木) 10:47:59 ID:???
Oracle 10.2 をダウンロードして試用してるんですが、何かいちいちひっかかるような
挙動を示します。

SQL*Plus で接続した直後、select * from tab を実行しても select 結果が表示される
まで数秒かかったりします。

これが毎回ではなくて、最初はほぼ確実に遅く、以後は軽快に表示されます。
と、思ったら数十秒後はまた遅くなったり・・・いったい何が問題なんでしょう?

Windows 2000 server 、CPUはPen4、メモリは1GB積んでるマシンです。結構前の
マシンなんでスペック的にはしょぼいですが、この程度のSQLで問題が出るとも思え
ません。事実、Oracle 10.1 はサクサク動いてたんですが・・・謎です。

各種掲示板とかも見たんですが、似たような現象の報告がないんで、ウチだけの
問題なのかなぁ、とも思ってます。こんな現象に遭遇した方いらっしゃいますか?
768NAME IS NULL:2007/09/13(木) 11:19:45 ID:???
>>767
NTS認証になってるからだろ。

sqlnet.oraが
SQLNET.AUTHENTICATION_SERVICES = (NTS)
になってるんじゃね?

SQLNET.AUTHENTICATION_SERVICES = (NONE)
にしてみろ。

769NAME IS NULL:2007/09/13(木) 12:38:06 ID:qXsJMfc2
>>768
SQLNET.AUTHENTICATION_SERVICES は、別の人間が NONE ではなく
行そのものを注釈にしてた。

#SQLNET.AUTHENTICATION_SERVICES = (NTS)

こんな感じ。NONEとしないとダメなんでしょうか?
770NAME IS NULL:2007/09/13(木) 13:07:09 ID:???
>>769
コメントアウトされてるなら問題ないはずだが。
明示的にNONE指定したときと変わるか確認汁。
771767:2007/09/13(木) 13:23:43 ID:???
>>770
わかりました。
とりあえず、今は再起動できない状況だから、人が減ってから再起動してみます。

でも解決しなさそうな悪寒・・・
772NAME IS NULL:2007/09/13(木) 13:36:38 ID:???
>>771
再起動不要。
書き換えたらすぐ反映される。
773NAME IS NULL:2007/09/13(木) 15:00:07 ID:jNCkxHwW
エクスポート⇒インポートした時に、row_idが変わると思うんですが、
row_idも全く同じにエクスポート⇒インポートってできますか?
774NAME IS NULL:2007/09/13(木) 16:29:10 ID:???
>>773
できないので、コールドバックアップに汁。

775NAME IS NULL:2007/09/13(木) 16:40:23 ID:jNCkxHwW
>>774 それってインポートみたいに本番環境からテスト環境には
移せないですかね?
困っているのは、本番環境だけ変な結果になって、同じストアドを使っている
テスト環境はうまくいくのです。
ソースにところどころに、row_number = 1とかいうコーディングしているので、
おそらく、row_idが絡んでいると思うのですが、
テスト環境で再現しないので、困っています。
776NAME IS NULL:2007/09/13(木) 16:44:41 ID:???
>>775
というかコールドバックアップからならクローンDBを作成できる。

マニュアルのバックアップ&リカバリガイドでも見て、
コールドバックアップからのリカバリを実行すればいい。
777NAME IS NULL:2007/09/13(木) 16:57:06 ID:jNCkxHwW
>>776
ありがとうございます。
やったことないですけど、調べてがんばってみます。
778NAME IS NULL:2007/09/13(木) 17:10:24 ID:???
>>776
同じマシン上につくる場合には問題あるかもしれない。
779NAME IS NULL:2007/09/13(木) 17:21:43 ID:jNCkxHwW
>>778
マシンは本番機とテスト機で物理的に違います。
本番機でおかしな結果になったので、本番機からエクスポートして
dmpファイルを作り、それをテスト機にインポートして、
プログラムを実行したのですが、再現しなかったということです。
780NAME IS NULL:2007/09/13(木) 17:40:08 ID:???
>>772
>再起動不要。
>書き換えたらすぐ反映される。

・・・ってことはNTS認証は関係ないってことですか。
むぅ、いったい何なんだ・・・
781NAME IS NULL:2007/09/13(木) 17:53:26 ID:???
>>780
リスナーのトレースを取ってみれば?
ログファイルを読めば、それなりに原因が分かるかも。
782NAME IS NULL:2007/09/13(木) 21:07:07 ID:3dlTtWXp
ORACLEの掲示板で出すのは申し訳ありませんが、
ORACLE上のデータをODBC接続しACCESSで帳票を出すようなものを作った場合、
データ取得(サイズも含め)に制限はありますか?
実データはORACLE上にあるので、サイズというより、
ACCESSの取得可能件数かもしれませんが。
783NAME IS NULL :2007/09/13(木) 22:40:45 ID:???
>>767

10g R2はメモリーを2GBぐらいは最低積まないと駄目かもね。
DB_CACHE_SIZEとかどれぐらい割り当てている?
784NAME IS NULL :2007/09/13(木) 22:50:37 ID:???
>> 779

コールドバックアップのDBFファイルだけテスト環境にコピってコントロールファイル
だけ再作成してopen resetlogsでDB上げれば早い。
コントーロールファイルは本番環境で「alter database backup control file trace;」
やればudumpにテキスト形式で出力されるから、必要な所いじくってDBをRename
してあげればいい。

CREATE CONTROLFILE SET DATABASE "HOGEDB" RESETLOGS NOARCHIVELOG ...

RMANが使いこなせるのなら、RMAN Duplicationと言って本番環境を止めずに
クローニングを作成出来る方法もあるんだけどね。
785767:2007/09/14(金) 17:23:13 ID:???
>>781
リスナーのログに異変はありませんでした。
ただ、ログのファイルサイズが27MBもあったのが気になりますが。

>>783
DB_CACHE_SIZE はいじってません。っていうか、インストールしてからいじったのは
SGAサイズぐらいです。
案の定、SPFILEには DB_CACHE_SIZE の設定はありませんでした。

で、SGAサイズは450MB ほどなんですけど、これって少ないんでしょうか?
タスクマネージャーで見ると使用メモリが810MBぐらいまで行ってるんでこれ以上
Oracleに割り当てるのは怖いんですが。

メモリ1GのWin2000Server ではどれぐらい割り当てるのが妥当なんでしょう?
ちなみにメモリはこれ以上は積めません。機械の上限が最大1GBまでなので。
786NAME IS NULL:2007/09/14(金) 19:13:23 ID:???
多いか少ないかはv$sgastatに訊け。
787NAME IS NULL :2007/09/15(土) 02:25:17 ID:???
>>785

10g R2でSGA_TARGETが450MBは少ないな。
最低でも800MBぐらいは無いと。
788NAME IS NULL:2007/09/15(土) 22:29:49 ID:nIelV1v9
.NETからoracleに接続をする、つまりDB接続文字列が分かりません。

String sConnectionString = "Provider=MSDAORA;User ID=sys;password=test_pass ; Data Source =ORCL10GR2;Persist Security Info=False";

恐らく
1)Provide
2)Data Source
の部分が怪しいと思うのですが、この部分はどうすれば適切なDB接続
文字列を見つける事が出来るでしょうか?

以上 どなたかoracleに詳しい方お教え願います。
789788:2007/09/16(日) 01:02:37 ID:nQn44/My
解決しました。
790NAME IS NULL:2007/09/17(月) 02:42:51 ID:E4m9PXTR
Oracle10g Express Editionの制約について質問があります。

あるサイトに次の様な制約に関する記述があったのですが、
【4Gバイトのディスクメモリ】というのは、例えば1テーブルに
保存可能な最大容量が4Gバイトという事でしょうか?
(1テーブルで4Gバイトを消費した場合には、他テーブルには
一切レコードが作成出来ないという意味合いでしょうか?)



********************************
同製品は、1プロセッサ、4Gバイトのディスクメモリ、1Gバイト
のメモリというスペックのサーバ上でしか稼働させられないのだ。
********************************
791NAME IS NULL:2007/09/17(月) 03:41:45 ID:???
>>790

表領域の合計が4GBということ。
792ORACLE初心者:2007/09/17(月) 03:48:42 ID:E4m9PXTR
>>791
今、10gで色々見ているのですが(試している)【USERS】の部分が実際に
作成したテーブルの容量になるのでしょうか?

例)TEST_USERスキーマにTEST_TABLEを作成したとして、このテーブルに
対してレコードを追加する度に、表領域の【USERS】の部分がカウント
されて(増えて)行くのでしょうか?

ORACLE Database Express Edition
ホーム>管理>記憶域>表領域

SYSAUX 434.19
SYSTEM 340.00
UNDO 11.19
USERS 2.38
レポートの合計 779.06
793791:2007/09/17(月) 12:47:13 ID:???
>>792

いちいち人に聞くな。
Silver 程度の勉強をしてから出直してこい。

794わからねーくせに:2007/09/17(月) 18:14:14 ID:E4m9PXTR
>>793
Gold程度の勉強をしてから出直してこい。
795791:2007/09/17(月) 18:33:29 ID:???
>>794

俺は Platinum ホルダーなんだが。

表領域が増加するタイミングはレコードを追加したタイミングとは異なる。
DBA_TABLESPACES ビューを見て、エクステントがどれくらいの大きさで増えるのかを
把握すれば回答になるのかな。

逆ギレはみっともないのでやめようね。
バカなんだから身分をわきまえて発言しよう。

796792:2007/09/17(月) 18:43:42 ID:E4m9PXTR
>>795
むかつくけど教えてくれてありがとーなw
俺ももうちょっと勉強するわw
797NAME IS NULL:2007/09/17(月) 18:46:23 ID:???
>>796
素直でワロタ
798792:2007/09/17(月) 18:50:14 ID:E4m9PXTR
因みにスレ違いかもしれないけど、ちょっと聞きたいんだけど
前の現場でOracleプラチナ持ってるフリーが日立情報経由で働いて
たんだけど(29歳)、そいつが報酬(売上)がリアルに月100万だった
らしーんだけど、>>795=797は月幾ら稼いでるの?

プラチナ持ってるとやっぱり稼げる?
(社員じゃなければ)
799NAME IS NULL:2007/09/17(月) 19:13:06 ID:???
そんなの客の立ち居地次第じゃね?
Platinumに人月50万位しか払わない客も普通に居る
800791=793=795:2007/09/17(月) 19:14:43 ID:???
ん〜
俺はフリーじゃないからなぁ。>>797 でもない。

Oracle だけやってるわけでもないし、月給は80万くらいだよ。
お客さんからはその1.5倍くらいもらってるけど、まだまだ大したことはないな。

Platinum かどうかはあまり関係ないような。
資格だけで収入になるほど世の中甘くないよ。
801792:2007/09/17(月) 20:02:04 ID:???
>>799
そんな現場あるんだWWW
死んでもそんな現場で働かないけど。

>>800
社員で80万?手取りだと60万位かな?
って事はやっぱりフリーでプラチナ持ってると100万は十分に
ありうるわけだ。

某サイトによるとプラチナ持ってる派遣は1日で5万だってよ。

はぁー、月70万以上稼ぎてぇーなー。残業しないと70万は稼げない。
802NAME IS NULL:2007/09/17(月) 22:55:06 ID:???
俺もPlatinumホルダーじゃが
一次請けなら結構つくけど末端になると...(w
単価なんて会社間のチカラ関係によるし
給与も上げてくれないし抜けさせてもくれない
まぁ常に工数の付く作業ばかりじゃなく
検証作業なんかを入れて適度に遊ばせてくれるから
それはそれで良いと思ってるのだけど稼ぎたいよな
803NAME IS NULL:2007/09/18(火) 00:10:35 ID:y+xoOcy+

年いくつよ?
804NAME IS NULL:2007/09/18(火) 01:44:15 ID:qDdBEHRb
つかプラチナつってけど9iまでの古い奴でしょ?
って事は10gでいうところのゴールドレベルだよねw

受験料30万ってなんじゃそりゃ!!!
805NAME IS NULL:2007/09/18(火) 09:09:38 ID:???
>>804

いまどきプラチナと言うと新しいほうに決まっている。
受験料は 231,000円 だ。大したことはない。

806NAME IS NULL:2007/09/18(火) 10:39:08 ID:???
それとは別に糞高い講義を二つうける必要があるわけだが。
807NAME IS NULL:2007/09/18(火) 12:12:33 ID:???
>>806

だからそれが何?
要らなかったら受けなければいいだけのことだろ?

俺は必要だと思ったから自費で取ったよ。
808NAME IS NULL:2007/09/18(火) 14:25:28 ID:???
あっそう、それはよかったですねー。
809NAME IS NULL:2007/09/18(火) 21:45:09 ID:???
もちろん新しい方に決まってるっす
たとえ合格出来なかったとしても、Platinumに挑戦して良かったと思ってるよ
挑戦することによりレベルアップを実感できたしね
810NAME IS NULL:2007/09/18(火) 22:36:32 ID:???
>>809

そうそう。そうなんだよね。
あんな楽しい試験は他には滅多にないと思う。
811NAME IS NULL:2007/09/19(水) 10:03:31 ID:???
カーソルについての質問です。

CURSOR カーソル名(変数A VARCHAR2) IS

SELECT ~
FROM ~
WHERE A = 変数A

変数名 カーソル名%ROWTYPE;


ここでいう変数Aはどういった目的と役割があるんでしょうか?

よろしくおねがいします。
812たろー:2007/09/20(木) 00:41:23 ID:1TmqL/dE
現在、C#/VB.net開発をメインに行っているSE(PG)ですが
先日勉強用に、Oracle10g Express Edtionをインストールしてみました。

どうせ勉強するなら(金がかなり掛かりますが)プラチナまで頑張って
取得しようと思ったのですが、Oracle10g Express Editioと開発
現場で使用するネイティブOracle10gとには機能面で差異がある気がします。

やはりプラチナレベルまで極めようとした場合には、SE(PG)
として勤務するようりデータベースエンジニアとして業務でも
働いた方が良いのでしょうか?
(そうでもしないと10gプラチナ取得は難しいでしょうか?受験料その他
が異常に高いので1回で合格したいと思っています。)

もしくはSE(PG)をしながら自宅でのOracle10 Express Editionの
擬似データベース環境でも勉強すればプラチナ取得は可能でしょうか?
813NAME IS NULL:2007/09/20(木) 05:11:32 ID:???
1問目が手でCREATE DATABASE書かされるって時点で
Express Editionじゃ勉強にならないと思うよ。
他にもRAC、Data Guardなど試験に出る機能が入ってないし。

OTNでEnterprise Editionの評価版拾ってきてください。
あと試験環境はLinuxなのでそれも用意してください。
814812:2007/09/21(金) 01:04:56 ID:jqOwCtjo
>>813
ゴールドまでなら10g Express Editionでも可能でしょうか?
いずれにしてもプラチナ取得となるとやはり厳しそうですね。
Soralisは触った事はありますがLinuxは触った事が無いので
Linuxも勉強しようと思います。
815NAME IS NULL:2007/09/21(金) 03:58:45 ID:???
Goldまでは参考書だけで受かるよ。
実機いらない。
816NAME IS NULL:2007/09/23(日) 01:02:39 ID:qOJIqEh+
>>815
頑張ります。
817NAME IS NULL:2007/09/23(日) 23:58:28 ID:uXCoci90
11gってフリーのexpressエディションとかって出されるかな?
818NAME IS NULL:2007/09/24(月) 17:43:34 ID:???
Oracle 10g XEと
ODP.NETを使用して、商用アプリケーションを作成し販売した場合
ODP.NETの商用ライセンスか何かを買わなければいけないのでしょうか?
819NAME IS NULL:2007/09/25(火) 20:24:12 ID:???
>>818
Oracle Directか代理店に訊け。
820NAME IS NULL:2007/09/26(水) 00:37:29 ID:???
>>819
Oracle Directの存在を思いつきませんでした
そもそも調べていくとライセンス関連の事を
聞くのはあまりよろしくないみたいですね
失礼しました
821NAME IS NULL:2007/09/26(水) 17:37:24 ID:???
ORA-00001:一意制約について質問です

インサート文を使い、主キーの重複は無しです。


PL/SQLで流そうとしたら上のエラーがでてしまします。
一意制約になる理由が全くわかりません

よろしければ教えてください(´Д`)人
822NAME IS NULL:2007/09/26(水) 20:15:31 ID:QI3QiCbV
ぐぐれ。木瓜。
823NAME IS NULL:2007/09/26(水) 22:33:11 ID:???
>>821
エスパー募集?
>>819
米国オラクルにもあるのか
知らなかった
824NAME IS NULL :2007/09/26(水) 23:36:17 ID:???
>>821

主キー以外で一意制約つけてるカラムがあるなんてオチじゃないのか?
825NAME IS NULL:2007/09/27(木) 02:28:58 ID:nUufIwgb
低レベルな釣り質問にいちいち答えるんじゃねーよw
どーせ釣りだろw

ましてや、
ORA-00001:一意制約について質問です
なんて原因は一発で特定出来るだろ。

826NAME IS NULL:2007/09/29(土) 11:48:35 ID:???
>>823
日本法人としての見解は間違いなく教えてくれる。
ライセンス必要ならちゃんと公式に回答してくれるさ。
お前、馬鹿だろwww
827NAME IS NULL:2007/10/02(火) 23:47:01 ID:???
データベースを2個作成して、個々にリスナーを設定する方法がわからん。
特にlistener.oraの記述方法。
828NAME IS NULL:2007/10/03(水) 00:05:48 ID:1h9wRUhb

ググレカス
829NAME IS NULL:2007/10/04(木) 23:34:10 ID:???
華麗に?亀レス
>>767
データファイルの配置先やオブジェクトの物理属性とかも10.1の時と同じ?
CPUは1つで他にプログラムいっぱい動いてたりしない?

>>775
その書き方だとrow_numberは分析関数のではなくて変数なのかな?
ソース中にROWIDがでてこなければ、row_id関係ないのでは?
結果が違うのは別の原因とかではない?
たまにあるoracleのバグで実行計画によって結果が不正になるとか

>>782
MS-ACCESSの制限事項:mdbファイルのサイズ上限が2GB

>>827
データベースは普通に2つ分のファイルを作って、create databaseすればok
(DB名とかデータファイルとか全部別々に)
listener.oraに2つ分書くだけ(ポート番号は重ならないように)
830NAME IS NULL:2007/10/08(月) 19:40:14 ID:eMnCO+aD
運用中にinsert,delete,update系の処理が著しく遅くなったのだが、どこから疑えば良い?

遅くなる直前にレコード3,000件の一括削除をした。ちなみに、3,000件の削除は普通やらない。今回はマスターの入れ替えのための削除。
831NAME IS NULL:2007/10/08(月) 20:26:18 ID:???
・とりあえずSTATSPACKとって平常時と比較
・削除後に統計情報が更新されてるかどうか確認

あとバージョンによっては
自動セグメント領域管理の環境で大量削除後のINSERTが遅いっていうバグがある。
3,000件ぽっちででるとは思えないけど。
832NAME IS NULL:2007/10/08(月) 22:24:02 ID:???
>>830

バックグラウンドで変な統計処理が動いてないかの確認かな。
設定してなくても勝手に動いたり、設定時間が勝手にアメリカ時間に
なったりするバグもあったような、、

あとはぐっと確率下がってディスクトラブル。
833833:2007/10/09(火) 01:29:52 ID:A3PMOQUR
現在ストアドファンクションを作成し.NET(C#)からストアドをキックする
コードを試しているのですがうまく行きません。一体何処に問題があるの
でしょうか?


【ストアドファンクションコード】
create or replace FUNCTION FunctionTest(param_number IN number)
RETURN varchar IS

n_total_count number := 0;

BEGIN
SELECT COUNT(*) INTO n_total_count FROM TEST_TBL;
INSERT INTO TB_TRIGGERS_TEST(TOTAL_COUNT,UPDATE_DATE) VALUES(n_total_count,SYSDATE);
COMMIT;

return 'N';

END;
834833:2007/10/09(火) 01:31:22 ID:A3PMOQUR
【.NET(C#)側ソース】
//DB接続
OleDbConnection con_ora = new OleDbConnection(test_home_vs2005.Common.str_const_ora_db_connection);

//ストアドファンクションの設定
OleDbCommand testCMD = new OleDbCommand("FunctionTest", con_ora);
testCMD.CommandType = CommandType.StoredProcedure;
con_ora.Open();

//OutPut
DbParameter param2 = testCMD.CreateParameter();
param2.Direction = ParameterDirection.ReturnValue;
param2.DbType = DbType.String;
testCMD.Parameters.Add(param2);

//Input
DbParameter param1 = testCMD.CreateParameter();
param1.Direction = ParameterDirection.Input;
param1.DbType = DbType.Int32;
testCMD.Parameters.Add(param1);

//ストアドファンクションの実行
testCMD.ExecuteNonQuery();

con_ora.Close();
return true;

【エラー内容】
InvalidOperationException was caught
String[0]: the Size property has an invalid size of 0.

【環境】
Visual Studo2005


835833:2007/10/09(火) 01:35:43 ID:A3PMOQUR
次の様にコードを修正した上で実行してみたのですが結局同様の
エラーが表示されてしまいます。


//Input
DbParameter param1 = testCMD.CreateParameter();
param1.Direction = ParameterDirection.Input;
param1.DbType = DbType.Int32;
param1.Value = 2; //←値を設定する。
testCMD.Parameters.Add(param1);
836NAME IS NULL:2007/10/09(火) 02:03:12 ID:???
>>834
//OutPut 
param2.Size= 80
837833:2007/10/09(火) 02:16:52 ID:A3PMOQUR
>>836さん
ありがとうございます。解決しました。
(良く分からないですが戻り値にサイズを指定する必要がある様ですね。)

838NAME IS NULL:2007/10/12(金) 03:53:37 ID:AXC6pGeC
インストーラーが起動しないです。助けて下さい。
RedHat Linux ES 3.3
Oracle 10.1.0.2

$ /mnt/cdrom/db/runinstaller
を実行すると、正常にコマンドが終了。
エラーは出力されず、インストーラは起動されません。

調べようがないです。
よろしくお願いいたします。
839NAME IS NULL:2007/10/12(金) 06:28:40 ID:???
Unix系は一旦ディスクにコピーしてから、それを実行する。
なにしろOracleのインストーラがたこ過ぎるのでw
840NAME IS NULL:2007/10/12(金) 08:31:45 ID:???
Xがちがうとこに飛んでるとか。
841仕様書無しさん:2007/10/14(日) 17:34:29 ID:???
>>838
環境変数DISPLAYが正しく設定されているか?
xhostを実行したか?

つーか、何をやったのか書けハゲ
842NAME IS NULL:2007/10/14(日) 17:45:40 ID:???
>>838
事前準備はきちんと済ませろよ。
843NAME IS NULL:2007/10/17(水) 21:50:27 ID:3bk/hGZ2
UNIXにてSQL Plusを使用し検索したところ
異なるOSユーザ、同一DBユーザで検索結果の表示が
変わってしまいました。
その2のユーザでログインした場合も、その1の表示結果を取得したいのですが
どうすればよいでしょうか。

(HOGEID 、HOGEID2 はCHAR(13)です)

■ その1(桁数分のみ表示され、項目の区切りは半角スペース)
HOGEID HOGEID2
------------- ------------
1111111111111 222222222222
3333333333333 444444444444

■その2(桁数分「1111111111111」が表示されているが、末尾にTabが2つ入っている)
HOGEID(tab)(tab) HOGEID2
-------------------------- ------------------------
1111111111111(tab)(tab) 222222222222
3333333333333(tab)(tab) 444444444444

@ まず、SQL Plus上でshow all、colを確認すると、下記部分のみ違いがありました。
■その1
lno 14
pno 0
sqlcode 0
■その2
lno 3
pno 1
sqlcode 942

なお、その2のみlogin.sqlが存在しますが、その1には存在しません。
同一筐体なので、glogin.sqlはどちらも同じものを使用しています。
844843:2007/10/17(水) 22:03:25 ID:3bk/hGZ2
●追記
colsepはどちらも半角1文字「colsep " "」です。
「その2は」「13桁(tab)(tab)(半角空白)13桁」になってるみたいです。。。
845NAME IS NULL:2007/10/17(水) 22:50:42 ID:???
$NLS_LANGが揃ってないんじゃない?
846NAME IS NULL:2007/10/18(木) 18:14:35 ID:???
タギングを実装しようと考えているのですがDB構成がどうもしっくりきません。
皆さんならどんな風に実装しますか?

僕が考えたものだと汎用性が皆無です。。。

■案1
CREATE TABLE t_bookmark (
seq NUMBER,
name VARCHAR2(128),
tag1 VARCHAR2(32),
tag2 VARCHAR2(32),
tag3 VARCHAR2(32)


■案2
CREATE TABLE t_bookmark (
seq NUMBER,
name VARCHAR2(128),

CREATE TABLE t_bookmark_tagging (
bookmark_seq NUMBER, -- t_bookmark.seq
tag VARCHAR2(32)


案1だと3つまでと最大数が決まっているが管理が簡単
案2だと汎用性は1以上だが膨大なデータ量になるかも

できればタグ同士をフォルダーのように関連付けたりもしたいのですが皆さんならどんなテーブルにしますか?
847NAME IS NULL:2007/10/19(金) 06:31:39 ID:???
おまえら、とりあえず、TIMESTAMP型の列使うなら、WITH TIMEZONE付けろボケ
848NAME IS NULL:2007/10/19(金) 12:35:08 ID:???
型がNUMBER(5,2)の項目があるのですが、0が格納されている時は000.00の
文字列で取得したいのですがうまくいきません。

TO_CHAR(col,'999.99')、TO_CHAR(col,'999D99')だと「.00」が返ってきて
TO_NUMBER()だと0が返ってくるのですが、この場合プログラム側で対応するしか
ないのでしょうか?
849NAME IS NULL:2007/10/19(金) 12:48:12 ID:???
>>848
to_char(col, '099.99')
850848:2007/10/19(金) 13:42:35 ID:???
>>849
ありがとうございます!足元見えてませんでした
851NAME IS NULL:2007/10/22(月) 16:32:02 ID:???
Oracleがインストールされたディレクトリのパーミッションについて教えてください。

LinuxにOralce10gをインストールするときに、グループoinstall、dbaを作成し、
ユーザoracleを追加しました。
そのユーザでOracleをインストールすると、ディレクトリやファイルのオーナーは
oracle.oinstallとなりますが、ディレクトリのパーミッションは750となります。

この場合、ユーザoracleはOracleのディレクトリ内には問題なくアクセスできますが、
他の一般ユーザはディレクトリのパーミッションにより、アクセスできません。
よって、Oracleのディレクトリ内にあるlibclntsh.soも、lib/へアクセスできないため、
読み込めません。

この状態で、一般ユーザが起動するアプリケーションで、libclntsh.soが必要な場合、
どういった対処をしたほうがよいのでしょうか。

その一般ユーザをoinstallグループに加える、Oracleのディレクトリのオーナーを
oracleとその一般ユーザが所属するものに変更する、ディレクトリのパーミッションを
755に変更する、あたりを思いついてますが、どれもセキュリティ的にイマイチだと
思っているのですが…
852NAME IS NULL:2007/10/22(月) 17:55:13 ID:???
10.2.0.1からそういうパーミッションに変更された。
10.2.0.2以降なら$ORACLE_HOME/install/changePerm.shで
10g以前のパーミッション構成に戻せるよ。
853NAME IS NULL:2007/10/22(月) 20:05:03 ID:???
>>852
なるほど。そういえばメディアは10.2.0.1でした。
10.2.0.2のメディアかパッチセットか探してみることにします。

Oracleも変なことをするなぁ…
854NAME IS NULL:2007/10/22(月) 20:52:54 ID:???
これは結構な落とし穴だなw
855NAME IS NULL:2007/10/22(月) 21:32:15 ID:???
セキュリティーポリシーの変更ってことだから
Oracle10gR2〜は、これがデフォルトなんですよね
番号は忘れてしまいましたがKROWNにも載ってます
856843:2007/10/22(月) 22:59:34 ID:???
>>845さん、ありがとうございます。

慌ててAIXに接続して確認したところ、$NLS_LANGが。。。
その1の値に環境変数きりなおしたところ、うまくいきました。
ありがとうございます。

■その1
Japanese_Japan.JA16SJISTILDE
■その2
Japanese_Japan.JA16SJIS
857NAME IS NULL:2007/10/24(水) 13:22:20 ID:v7F+u8Hj
WinNT4 + Oracle8i (8.1.6)のサーバに
WinXP + PHP5.1.6 のPDOで接続しようと試みたのですが、

ORA-03134:このバージョンのサーバーへの接続は、サポートされていません

になってしまいます。
これは、古いociモジュールを入れれば接続できるのでしょうか?
もしご存知でしたら、ある場所を含めて教えていただきたいです。
858NAME IS NULL:2007/10/24(水) 13:51:13 ID:???
Oracle Instant ClientでGo
859NAME IS NULL:2007/10/24(水) 14:03:38 ID:???
>>857
8.1.7あたりのOracle Client入れれば解決。
860NAME IS NULL:2007/10/24(水) 16:18:36 ID:v7F+u8Hj
>>858
>>859
レスありがとうございます。
クライアントは8iが入っていて、SQLPlusでは接続が出来ています。
接続時のメッセージは
==
SQL*Plus: Release 8.1.6.0.0 - Production on 水 Oct 24 16:14:15 2007

(c) Copyright 1999 Oracle Corporation. All rights reserved.

Oracle8i Release 8.1.6.0.0 - Production
JServer Release 8.1.6.0.0 - Production
==
です。

PDOを使用した接続記述は
$db = new PDO('oci:host=localhost;dbname=test','user','passwd');
です。

同じバージョンのサーバとクライアントが入っておりますので、
PHPの持っているOCIモジュールの問題だと思ったのですが…。
8.1.7あたりのOracle Clientってどちらで手に入りますか?
861NAME IS NULL:2007/10/24(水) 16:32:14 ID:???
oracleのサイトで手にはいる。
862NAME IS NULL:2007/10/24(水) 16:36:50 ID:???
サポートの終わった817を手に入れるのは難しい。

Oracle Instant ClientのOCIはOracle7以降対応かつライセンス的に全く問題ないから、こっち使え。
863857:2007/10/24(水) 16:40:31 ID:v7F+u8Hj
すいません、書き方がまずかったですね。
PHPも

WinNT4 + Oracle8i (8.1.6)

のサーバで動いています。Apache2.0.59です。

このサーバ上のSQLPlusでは問題なく接続できるのですが、
>>860のPHPでつなげようとすると、ApacheのエラーログにORA-03134が出ます。

SQLPlusとPHPでは、接続に使用するAPIが違うのでしょうか?
864857:2007/10/24(水) 19:19:29 ID:v7F+u8Hj
追記です。
Oracle Instant Client 10.2.0.3 をNT4に入れて
パスを通して試しましたが、ORA-03134でダメでした…。
PHP5はOracle8.1.7以前に接続できないのでしょうか。
865NAME IS NULL :2007/10/25(木) 01:00:32 ID:???
>>864

10gクライアントには8iDBには接続できないというバグがある。
866NAME IS NULL:2007/10/25(木) 10:33:51 ID:???
カーソルの問い合わせ文にfor update句を書いたときなんですが、
「FOR recTest IN curTest LOOP」としたときは、カーソルオープンと同時に
フェッチしてる感じなのでロックされてると思うんですが、
「OPEN curTest;」とした場合は、カーソルオープンしたときにロックされるのか
それとも以降「FETCH curTest INTO recTest LOOP」としたタイミングでロックされるんでしょうか?
867857:2007/10/25(木) 13:01:34 ID:QEUuPiBb
>>865
ということは、Oracle Instant Client 10.2.0.3を抜いて
PHP5でアクセスしてダメって事は、PHP5の持ってるOCIが
10g相当のものだって事ですよね。
どこかにPHP用の古いOCIはないでしょうか?
868NAME IS NULL:2007/10/25(木) 13:16:49 ID:???
>>867
PHP4.4.2で繋がるか試してみたら?
869NAME IS NULL:2007/10/26(金) 13:43:11 ID:???
>>862
は?Instant ClientってOracle7は接続出来ないんでない?
9-10gは実際に接続テストで接続可能な事は確認したけど、Oracle7.3は接続
出来なかった(8iは試してない)
俺の設定がまずかっただけかな?
870NAME IS NULL:2007/10/26(金) 14:59:44 ID:???
PHPのPDOかなんかに含まれているやつは、OCIライブラリをスタティックリンクしてるってことなのか?
871NAME IS NULL:2007/10/26(金) 22:22:19 ID:???
>>869
たぶん、その認識で良いと思うが。
instant Clientのバージョン番号で、
対応しているDBのバージョンを確認できるのは
普通のOracle Clientと同じ。

セットアップガイドに記載がある。
http://otndnld.oracle.co.jp/software/tech/oci/instantclient/pdf/Instant_Client_SetUp.pdf

「接続可能RDBMSバージョン.
 同バージョンのOracle Clientソフトウェアと同様.
 システム要件(http://www.oracle.co.jp/products/system/index.html)を参照のこと」


872869:2007/10/27(土) 21:25:04 ID:???
>>871
設定がまずかった訳じゃなかったか
サンクス
873NAME IS NULL:2007/10/29(月) 18:47:12 ID:???
Red Hat Enterprise LinuxVer4でOracle10gを使用しています。
rcスクリプトでサーバ停止時にsqlplusを実行したいのですが、
ORA-12157:TNS:internal network communication error
が出力されsqlplusが失敗します。

リスナーかなんかが先に落ちてしまっているようなのですが
どのようにしたら停止時にsqlplusを実行できますでしょうか。

よろしくお願いします。
874NAME IS NULL:2007/10/29(月) 19:16:12 ID:???
リスナー経由じゃなくて、DBAユーザで直につなげばいい。

connect system/manager as sysdba
shutdown immediate
exit

875NAME IS NULL:2007/10/29(月) 19:30:00 ID:???
oracle10とPHP5の接続に関する質問です。
192.168.0.2:1521宛てにdbserver/hogehogeで接続してみてといわれたのですが具体的にはどのような書き方になるでしょうか?

試した書き方は以下です。
$conn = oci_connect('dbserver', 'hogehoge' 'dbserver:192.168.0.2:1521/orcl');
そいつに聞けといわれそうですが、外部のもので受けた手前、分かりませんというような行為はできません。
お願い致します
876NAME IS NULL:2007/10/30(火) 00:38:52 ID:???
わからないことをわからないと聞けないことのほうが恥ずかしいだろう。
877NAME IS NULL:2007/10/30(火) 02:05:46 ID:???
PHPのことよくわからんけど、
>'dbserver:192.168.0.2:1521/orcl'
簡易接続じゃなくて、tnsnames.oraをキチンと書いて、
そのネットサービス名を指定してもだめなのか?
878NAME IS NULL:2007/10/30(火) 10:33:08 ID:???
今度、システムの英語版を作ることになって、今まで
T_USER.NAMEなどのフィールドを取ってきていたところを英語版ではすべて
T_USER.NAME_Eのように英語名のカラムから取るように変更しなければなりません。
全てのSQLを2バージョンずつ作ってifで使い分けるというのはあまりに
泥臭い気がするのですが、こんなときに何かいい方法はないでしょうか?
879NAME IS NULL:2007/10/30(火) 10:40:11 ID:???
>>878
つ「VIEW」
fromのテーブル名変えるだけならまだ楽だろ?
880NAME IS NULL:2007/10/30(火) 10:50:18 ID:???
>>878
日英変更フラグみたいな情報を
適当なテーブルに値入れておいて、
データの格納されたテーブルと
JOINする+CASE式でも何とかなるような。

CASE式で日英変更フラグの条件が
英語の時にNAME_EをNAMEとして、
日本語の時にはNAMEをそのまま返せば、
充分対応可能じゃね?
881NAME IS NULL:2007/10/30(火) 11:13:52 ID:???
>>880
それをやったら既存システムのテストもやり直さないといけないだろ
そんな事するならマルチリンガル対応で作り直したほうがいい

テーブル名だけなら別スキーマにしてシノニムでラップする
カラム名もE付になるならビュー
882NAME IS NULL:2007/10/30(火) 22:48:03 ID:cmAjSoqS
Gold
883NAME IS NULL:2007/10/30(火) 22:51:22 ID:???
>>878
単純な日本語化だけで済むならVIEWやシノニムもアリだけど、
多分それだけでなんとかしようと思うと破綻するよ。

あきらめて、泥臭くやれ。
884NAME IS NULL:2007/10/31(水) 06:24:14 ID:???
でも、英語化ってそれだけで済まないかな。というか、本来はユーザーに見える部分だけ
英語化すればいいと思うが。
885878:2007/10/31(水) 09:08:29 ID:???
いろいろアドバイスありがとうございます。
VIEWも検討してみます。
886NAME IS NULL:2007/10/31(水) 10:00:56 ID:???
>>884
まったくもってその通りだな。
今後中国語版などと増えていっても同じことをするのか、とか考えないのだろうか。
887NAME IS NULL:2007/10/31(水) 12:00:15 ID:OhkaN8Cy
新しい鯖にDB移すことになったんですが
特定のviewをselectしようとするとora-00918列の定義が未確定ですというエラーになります
旧鯖やテスト用鯖でやってもエラーにならなくて新鯖だけなぜかどうやってもだめで
旧鯖をexpしてimpしてもエラーになりました
なにかほかに設定とかあるんでしょうか
バージョンは全部10gです
888NAME IS NULL:2007/10/31(水) 12:08:06 ID:???
>>887
VIEWでテーブル結合とかインラインビュー使ってるなら
構文見直して別なスタイルで書き直してみろ。
889NAME IS NULL :2007/10/31(水) 12:30:18 ID:???
>>887

ANSI JoinのBugにヒットしちまってる可能性があるかも?
Patch 5368296を充ててみたら?
890NAME IS NULL:2007/10/31(水) 13:05:26 ID:???
>>888-889
確かにouter joinやcase等使っててごちゃごちゃしてるんでエラーにならないほうが不思議なくらいです
新鯖になってからの運用では使わないテーブルも絡めてるんで簡素なselect文にすればエラーにならないしとりあえずごまかせます
パッチのことも調べてみますありがとうございます
891NAME IS NULL:2007/11/01(木) 16:37:59 ID:HLM3YmO/
RACについての質問ですが、RACで十分に更新でパフォーマンスを
出さなければならない場合、
アプリケーションで実際のデータが格納されている場所
を意識して実装しなければならないという恐ろしいことを
基盤にいわれているのですが、真実なのでしょうか?

やらなくても、動くとはいわれているのですが、
遅くなるから考えろといわれて困ってます。

例:
PKが偶数ならデータの実体はAサーバにあるので、
Aサーバに直接つないでいるコネクションを使う。
PKが奇数ならデータの実体はBサーバにあるので、
Bサーバに直接つないでいるコネクションを使う。



892NAME IS NULL:2007/11/01(木) 17:25:02 ID:???
>>891
RACを分散DBと勘違いしてない?
RACはDISK SHARE型でどのサーバーからでも格納場所は等位置。
893NAME IS NULL :2007/11/01(木) 21:13:51 ID:???
>>891

本当に最高のパフォーマンスを出したかったら、アプリケーション
パーティションニングする必要があるかも知れないけど、でも
10gになって大分キャッシュフュージョンのパフォーマンスは
改善されたよ。

894NAME IS NULL:2007/11/01(木) 21:44:59 ID:HLM3YmO/
基盤は、実際にオラクルの設定、インストールを
しているのでそんなことはないと思いたいのですが、、、、

一応、99.999%の稼動率の基盤を作るチームからの情報です。

とりあえず、情報のでもとが不確実なんで、
ちっと基盤捕まえて、聞いてみます。

ありがとうございました。
895NAME IS NULL:2007/11/01(木) 22:40:26 ID:???
>>894
恐らくRAC+分散DBの構成なんだろね。
広い意味でのクラスタ(oracle的にはグリッドかな)構成をRACと呼んでしまってるんだろ。
例えばサーバーを合計8台、4台構成のRACを2セットで分散DBにするとかそんな感じだ。
896NAME IS NULL:2007/11/01(木) 23:53:33 ID:???
>>891

その「パフォーマンス」とやらが何なのかによって対処方法が異なる。

実際のデータが格納されている場所というのは
表領域の使い方やその物理的な配置のことを言ってるんだろうと思うが、
ASM に任せるのが不安ならばストレージ層でもうまく分散する必要がある。
表領域の分散方法についてはパーティショニングのマニュアルを参照のこと。

それと、99.999%の稼働率ということとパフォーマンスはあまり関係がない。
年間6分ほどの停止時間ということだが、
RAC+DataGuardの構成を組んでちゃんと監視体制が取れていれば十分に可能だろう。
897NAME IS NULL:2007/11/02(金) 09:43:02 ID:???
そういえば、RACの仮想IPってなんで各マシンにあるんだろうね?
そのせいか、クライアント側できちんと設定しないと、負荷分散がちゃんとされてるかどうか心配になるな。
それとも、サーバ側(リスナ)できちんと設定されていれば、クライアント側はどうでもいいのかな?
898NAME IS NULL:2007/11/02(金) 20:50:28 ID:???
すいません。みなさんのお知恵をお貸しください。

現在、下記の内容で本番サーバーを運用しております。
■OS    Windows 2003server
■Oracle version   9.2.0.5 EE
■領域サイズ   100G
■ダンプサイズ   20G
■更新テーブル数    150前後
■日次データ増加量   200M程度
■仕様ネットワーク速度 100G (ただし占有はできません)

上記について、遠隔地バックアップを考えております。
いろいろ調べたところ、
@Data Guard
Aスタンバイ・データベース
Bマテリアライズドビュー(スナップショット)
という方法があると思っております。

そこで、教えていただきたいのですが、
@の場合ですが、EEの基本機能のため、設定さえすれば
問題なくプライマリ・セカンダリの切替がうまくいくように
思われます。
しかし、Aの場合は@と同じ方式ではあるけれども、
REDOログの更新等の設定を手動で行う必要があることが
大きな違いであるように思われます。
それ以外の違いとしましては、他に何かありますでしょうか?
Aとして作成した場合、プライマリDBに何らかの障害がおきても、
セカンダリDBをプライマリDBとして立ち上げ直せば、
更新可能なDBとなるのでしょうか?読み取り専用のままでしょうか?

ちなみに、推奨される方法どれになりますでしょうか?
もし他にもあるようでしたらご教示ください。
(なお、RACやHaでの対応は、予算的な問題で無理です)

長々とかいてしまって申し訳ありません。
899NAME IS NULL :2007/11/02(金) 21:04:07 ID:???
>>898

俺の勘違いでなけば、スタンバイデータベースは7までの名称で8iから
データガードに変更された名称だと思ったけど?
つまりスタンバイデータベース=データガードね。

で、このデータガードには二つの運用形態がある。
ひとつはロジカル・スタンバイと言って、RedologをいっかいLogMinorを
使ってSQLレベルに落として、それをスタンバイ側で適用していくという
方法。
これはスタンバイ側を読み込み専用データベースとしてオープンして
検索とかできる。
制限としてはいくつかのデータタイプに適応していないというものがある。

もう一つはフィジカル・スタンバイと言ってこれは全く7の時と同じで
Redologをそのまんまスタンバイ側で適用していくというもの。
これだとスタンバイ側では検索とか出来ないが、ロジカルスタンバイ程の
縛りはない。

いずれの場合にせよログの適用は自動で出来るし、プライマリが死んだ
場合にはスィッチも、また復活した時にスイッチオーバーも出来る。

900NAME IS NULL:2007/11/02(金) 22:07:08 ID:???
>>897

それぞれに振ってあるIPアドレスが固定になっていると、
落ちたときに TCP timeout まで待たされることになる。

それよりは使えないノードからIPアドレスを移して RST を返すほうが
他のノードに再接続しに行けるので応答性は良い。

負荷分散がちゃんとされているかどうかはクライアント側の設定がもちろん必要。
きっちりやろうとすると FAN の理解も要るだろう。

RAC は構築するのは簡単だけど目的に合わせた仕様通りに運用するのは
なかなか難しい。
901NAME IS NULL:2007/11/02(金) 22:58:46 ID:???
よっぽどクリティカルなシステムでなければフリーのPostgreで
十分と思うのは甘いかな?

パーティショニングとかOracleじゃなきゃできない用途は除いて、
世の中の業務系システムの大部分はPostgreSQLでも
十分耐えれるんじゃないかと。
なんか、オーバースペックなシステムが多いような気がする。

政治的な話はおいといて、DBMSの性能という意味でね。
902NAME IS NULL:2007/11/03(土) 00:25:25 ID:+Ss7dOWU
oracle Databse 10g をインストールしました。
SQLPLUS で起動させようとすると、
ユーザ名、パスワードがわかりません。
どこで設定したかわからないのですが、
どこでかくにんしたらよろしいですか?
903NAME IS NULL:2007/11/03(土) 00:59:45 ID:???
>>901
じゃあそのオーバースペックだと思ったシステムでDBがボトルネックになったら,
誰が責任取ってくれるのかと.
特にクラスタ化して冗長構成取ってないと,オンラインのWebシステムなんかだと,
1時間停止したらxxx万円の損失だ,と営業とかから脅されてるし.

性能的な面で言えば禿同.
それよりもテーブル設計見直した方がPostgres/MySQL/Oracleのパフォーマンス比より,
費用対効果が高いと思う.
904NAME IS NULL:2007/11/03(土) 01:06:27 ID:???
>>903

Oracle は責任取ってくれないよ。残念。

そういうところに価値があるわけじゃないでしょ。
金出して買えば何でも人のせいにできると勘違いしてる奴多いんだよね。
905NAME IS NULL:2007/11/03(土) 09:26:46 ID:???
今じゃそれほど高価とも思えん1人月以下で買えるんじゃね?
お偉いさんにMSOffice製品をOpenOfficeにするようなリスクと心の準備が必要だろうし
旗を振っても、心労のわりに見返りが少ないと思うよ
906NAME IS NULL:2007/11/03(土) 09:45:28 ID:???
純粋なDBMSのスペックとしては
ホスグレは既に十分にヘビーな商用ベースのサービスに使われてるでしょ。

ただオラクルのコミュニティ(US含め)は良くも悪くもキワモノが多いのが結構ポイントで
継続的して簡単にノウハウが収集できるかという点も重要

シェフとソムリエのお勧め(有料)を選ぶか、コースメニューを1から自分で決めるみたいなもんかね
907906:2007/11/03(土) 10:08:29 ID:???
ホスグレ→ポスグレ
908NAME IS NULL:2007/11/03(土) 11:20:30 ID:???
DBMSの性能差よりも、テーブル設計やSQLの性能差が大きいには一票!
DBがボトルネックになったとしても、結局はアプリで工数かけて
直そうとしているケースが多いと思う。

なかなか、Oracleに問題があるなんて指摘するのは難しい…(俺には)

信頼性については、Oracleと同じようなの冗長構成も
Postgreでできるんじゃないの?
909NAME IS NULL:2007/11/03(土) 11:50:33 ID:???
ほとんどの意見が出てる感があります
ノウハウがあるとか資料が豊富とか...
大規模となると技術者を集められるとか
やはり政治的な面かな
910NAME IS NULL:2007/11/03(土) 11:55:33 ID:???
>>908

> DBMSの性能差よりも、テーブル設計やSQLの性能差が大きいには一票!

それは賛成。


> 信頼性については、Oracleと同じようなの冗長構成も
> Postgreでできるんじゃないの?

へぇ。DataGuard もどきができるくらいだと俺は認識しているが、
サービスによる動的な負荷分散とか、TAF とかもできるのかね。
flashback も使いたいときがあるよね。

911NAME IS NULL:2007/11/03(土) 21:39:01 ID:v+Xs2MGY
オラクルに接続するときにきかれる
ユーザ名ってどこで設定した値ですか?
分からなくて、困ってます。
912NAME IS NULL:2007/11/03(土) 23:02:44 ID:???
system/managerでつないでみやがれ
913NAME IS NULL:2007/11/03(土) 23:18:34 ID:v+Xs2MGY
ログです
C:\Documents and Settings\User>sqlplus system/manager;

SQL*Plus: Release 10.2.0.1.0 - Production on 土 11月 3 23:18:02 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied
914NAME IS NULL:2007/11/04(日) 00:32:36 ID:xDZ8dxIQ
FreeBSD4.9にInstantClientを入れました。Linux互換機能で問題なく起動します。
PHPでOCIを使いたいのですがconfigureで--with-oci8-instant-clientをつけてもsuport=noになってしまいます。
FreeBSDのPHPでInstantClientを利用するにはどうすればよいのでしょうか。
915NAME IS NULL:2007/11/04(日) 01:50:38 ID:???
>>914
板違いだろw。

4.9なら即6系に上げるべし。で、ports使え。それで解決だ。
916NAME IS NULL:2007/11/04(日) 08:30:56 ID:???
>>913
DBCAで作成したときに指定したんじゃねぇ?

sqlplus /nolog
conn / as sysdba
917NAME IS NULL:2007/11/04(日) 13:17:52 ID:???
コマンドラインからサービスの開始/停止をしたいのですが
NET STARTでiSQL*Plusのサービスが起動できないです
何か方法はないでしょうか?



(失敗した実行結果)

C:\>NET STOP "OracleOraDb10g_home1iSQL*Plus"
OracleOraDb10g_home1iSQL*Plus サービスは開始されていません。

NET HELPMSG 3521 と入力すると、より詳しい説明が得られます。
918NAME IS NULL:2007/11/04(日) 16:22:35 ID:???
オラクルにデータを入れたり参照したりするツールってなにが一番人気ありますか?
919NAME IS NULL:2007/11/04(日) 17:34:27 ID:???
Excel
920NAME IS NULL:2007/11/04(日) 17:47:55 ID:???
>>918
・Object Browser
・MS Access
・Oracle Enterprise Manager
・CSE
とかでいいんじゃね?
921NAME IS NULL :2007/11/04(日) 18:44:53 ID:???
>>917

isqlplusctl start/stop
922NAME IS NULL:2007/11/05(月) 19:40:07 ID:???
OracleにテキストファイルにかかれたCREATE文を流し込みたいのですがどんな方法が出来ますでしょうか?
923NAME IS NULL:2007/11/05(月) 19:48:52 ID:???
>>922
素直にSQL*PLUS使えよ。

924NAME IS NULL:2007/11/05(月) 19:57:45 ID:???
>>923さん
レスありがとうございます。
SQL*PLUSで です(^^;
一応、 「Oracle SQL文 ファイル」
とかで検索したんですが意図した結果がでなくて…

ちなみにOracleは外部にあります。
(Oracle 192.168.0.1 アクセス元 192.168.0.4)
925NAME IS NULL:2007/11/05(月) 20:12:11 ID:???
>>924

SQL*Plusのマニュアルは見たか?

SQL> @foo.sql

926NAME IS NULL:2007/11/05(月) 20:13:16 ID:???
sqlplus scott/tiger @foobar.sql
927NAME IS NULL:2007/11/06(火) 13:57:25 ID:???
下記のような構造のテーブルがあります。

項目コード(PK)、業種(PK)  、値
数値、    、数値    、数値

いわゆる縦長のDBというんでしょうか。
データ格納例は下記のようになります。

'売上'のID、'IT'のID、9,000
'費用'のID、'IT'のID、2,000
'人件費'のID、'IT'のID、5,000
.
.
.

このDBから業種が「IT」の「売上」の値と「費用」を取得しようとした場合、
現状は2回SQLを投げないといけないんですけど、
もう少し頭の良いやりかたがあるような気がしてなりません。

ビューを噛ませる等、何かいい方法はありませんでしょうか。
(「業種」によって、「項目」の内訳が違うため、このような形のDBになっています。)
928NAME IS NULL:2007/11/06(火) 17:07:57 ID:b7fqmEuG
テーブルにinsertされたデータを、条件によってすぐに削除する
トリガーを作ったのですがうまくいきません。

CREATE OR REPLACE TRIGGER トリガー名 AFTER INSERT
ON テーブル1
FOR EACH ROW
BEGIN
IF :NEW.項目A = 1 THEN
NULL;
ELSE
DELETE FROM テーブル1
WHERE キー項目 = :NEW.キー項目;
END IF;
END;

これを実行すると、
ora-04091:表[テーブル名]は変更中の為、
トリガー昨日はこの表を読み込み/修正することができません。

となります。
トリガーを使うのは無理でしょうか?
929NAME IS NULL:2007/11/06(火) 17:09:40 ID:b7fqmEuG
ソース見づらいので再度貼ります。

CREATE OR REPLACE TRIGGER トリガー名 AFTER INSERT
ON テーブル1
FOR EACH ROW

 BEGIN
  IF :NEW.項目A = 1 THEN
   NULL;
  ELSE
   DELETE FROM テーブル1
    WHERE キー項目 = :NEW.キー項目;
  END IF;
 END;
930NAME IS NULL :2007/11/07(水) 06:33:49 ID:???
>>928

FOR EACH ROWと組み合わせて2段階でやらんと駄目だな。
ttp://asktom.oracle.com/tkyte/Mutate/index.html
931NAME IS NULL :2007/11/07(水) 06:35:00 ID:???
>>927

ごめん、全然表の構造が見えてこない。
Descの結果貼って、ついでにどんなSQL投げているか見せてくれ。
932NAME IS NULL:2007/11/07(水) 06:37:44 ID:???
>>927

select t1.業種, t1.値 "売上", t2.値 "費用"
from 縦長のテーブル t1, 縦長のテーブル t2
where t1.業種 = 'IT'のID
and t1.業種 = t2.業種
and t1.項目コード = '売上'のID
and t2.項目コード = '費用'のID
/

いい方法かどうかは知らんけど
933NAME IS NULL:2007/11/07(水) 11:51:50 ID:???
Oracle 10g sqlplusで
SELECT BITAND(15,4) FROM DUAL;
とやってみたら「ORA-00932: データ型が一致しません。」と出てしまいました。
いろんなページを見るとこれでできると書いてあるのですが、
仕様が変わったのでしょうか?
934NAME IS NULL:2007/11/07(水) 12:17:13 ID:???
>>933
10.2.0.3.0

SQL> SELECT BITAND(15,4) FROM DUAL;

BITAND(15,4)
------------
4
935928:2007/11/07(水) 16:50:54 ID:BpbzLw8P
>>930
うおっ、英語だー
でもありがとう。大変参考になりました。
文トリガーなら自テーブルの参照/更新ができるのを利用するんですね。
936NAME IS NULL:2007/11/08(木) 01:38:52 ID:???
oracle学んで2週間のど素人です。
insertやupdate,deleteするとき、パフォーマンスを全く気にしなくてもよいのであれば
その直前でかならず、
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
を毎回やっておけば何があってもでいいのでしょうか?
937NAME IS NULL:2007/11/08(木) 01:58:21 ID:???
HDDに拳銃撃ちこまれるとダメかもしれんな
938NAME IS NULL :2007/11/08(木) 07:37:45 ID:???
>>936

何故そこまでIsolation Levelにこだわってんだ?
939NAME IS NULL:2007/11/08(木) 10:41:48 ID:???
以下のテーブルから例のように最大値を持つ会社と最小値を持つ会社を出したいんですが
上手い方法が思いつきません。どなたかご教授お願いします。


result
name  estimate
----------------
A社   100
B社   200
C社   300
D社   400
E社   500


例)
A社   100
E社   500
940NAME IS NULL:2007/11/08(木) 10:51:26 ID:???
>>939
MAX取り出すSQLと
MIN取り出すSQLをUNIONすればいいよ。

SELECT name,max(estimate) from result
union all
SELECT name,min(estimate) from result
;
941NAME IS NULL:2007/11/08(木) 10:56:24 ID:???
トリガーを採用しては見たものの
たかが伝票発行済みフラグを書き換えるだけでトリガっちゃうので遅い遅い。

思慮が足りんかった・・・
942NAME IS NULL:2007/11/08(木) 11:40:00 ID:???
>>941
列の変更内容を確認して、処理をバイパスするようにすればよくね?
943NAME IS NULL:2007/11/08(木) 12:44:23 ID:???
>>942
まだ試してはいないのですが、
普段から全列の比較を行なうと、必要なトリガ処理も遅くなりやしないかと・・・
944NAME IS NULL:2007/11/08(木) 13:19:38 ID:???
>>940
ありがとうございます。UNIONは頭にありませんでした・・・
しかし実行すると not a single-group group functionが発生します。
group byでnameとestimateを指定しても同じでした。この場合どこをgroup指定すればよいのでしょうか?
945NAME IS NULL:2007/11/08(木) 15:25:02 ID:???
連投すいません。自己解決いたしました。
946NAME IS NULL:2007/11/08(木) 21:20:55 ID:E3dPED87
オラクル、PC初心者です。

oracle database 10gをインストールしました。

Enterprise Managerに繋ぎたいのですが
つながりません。
http://ホスト名:ポート番号/em/
なのは分かるのですが、
ポート番号はportlist.iniを参照すればわかります。
ホスト名を確認するにはどうすればいいのでしょうか?
947NAME IS NULL:2007/11/08(木) 21:24:08 ID:???
>>946
IPアドレスで繋がるだろ。
948NAME IS NULL:2007/11/08(木) 21:27:12 ID:E3dPED87
どうすればわかりますか?
PCも初心者なので。。。
949NAME IS NULL:2007/11/08(木) 21:29:37 ID:E3dPED87
今、IPアドレス分かったので、
http://ipaddress:1158/em/
でアクセスしましたが、
つながりません。

何が悪いかわかりません。
どうしたらいいでしょうか?
950NAME IS NULL:2007/11/08(木) 21:56:01 ID:???
インストールしたマシンだったら
http://localhost:1158/em/
でいいんじゃね?
951NAME IS NULL:2007/11/08(木) 22:03:00 ID:E3dPED87
>950
おっしゃるとおりにしましたが、
だめでした。
http://localhost:1158/em/
どうしたらいいでしょうか?
952NAME IS NULL:2007/11/08(木) 22:15:40 ID:???
emctl status dbconsole で確認すれ
953NAME IS NULL:2007/11/08(木) 22:23:25 ID:E3dPED87
>>952
C:\Documents and Settings\User>emctl status dbconsole
Environment variable ORACLE_SID not defined. Please define it.

このようなログです。
どうすればいいですか?
954NAME IS NULL:2007/11/08(木) 22:32:25 ID:???
環境変数「ORACLE_SID」が定義されてないよ。ということ。
とりあえず、インストール時に設定したSID(orclとか)を環境変数にセットして再度emctl〜

set ORACLE_SID=orcl
emctl 〜
955NAME IS NULL:2007/11/08(木) 22:46:48 ID:E3dPED87
インストール時に設定したSIDはmydynabookにしました。

C:\Documents and Settings\User>set ORACLE_SID=mydynabook

C:\Documents and Settings\User>emctl status dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://MYDYNABOOK:1158/em/console/aboutApplication
Oracle Enterprise Manager 10g is not running.

となりました。
どうすればいいですか?
956NAME IS NULL:2007/11/08(木) 22:49:15 ID:???
Oracle Enterprise Manager 10g is not running.

サービスが起動していないようですので、
以下のコマンドでサービスを起動させてから、上のようにブラウザでアクセスしてみてください。
そのときに、アクセスすべきURL等も表示されたと思います。

emctl start dbconsole
957NAME IS NULL:2007/11/08(木) 22:56:06 ID:E3dPED87
C:\Documents and Settings\User>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://MYDYNABOOK:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...要求したサービスは既に開始されています。

NET HELPMSG 2182 と入力すると、より詳しい説明が得られます。


C:\Documents and Settings\User>NET HELPMSG 2182

要求したサービスは既に開始されています。


説明

既に動作中のサービスを開始しようとしました。

対処

動作中のサービスを一覧表示するには、次のように入力してください:

        NET START
958NAME IS NULL:2007/11/08(木) 22:56:39 ID:E3dPED87


この後に
ブラウザにアクセスしましたがだめでした。。。
959NAME IS NULL:2007/11/08(木) 23:17:46 ID:???
う〜ん、http://localhost:1158/em/でも駄目なんだよね
コンパネのサービスの「OracleDBConsole」は開始状態になってる?
なっていれば、そのPCからのアクセスはできると思うんですがねぇ。
960NAME IS NULL:2007/11/08(木) 23:37:58 ID:E3dPED87
http://localhost:1158/em/
でもだめです。。。
OracleDBConsoleは確認したところ起動してます。

他に考えられる原因はありますでしょうか?
961NAME IS NULL:2007/11/08(木) 23:45:01 ID:???
パーソナルファイアーウォール
962NAME IS NULL:2007/11/08(木) 23:58:31 ID:E3dPED87
え?
963936:2007/11/09(金) 00:05:54 ID:???
>>937,938
レスありがとう
ttp://www.techscore.com/tech/sql/11_03.html
を見た感じだと、SERIALIZABLEしておけば無敵のような気がして。
それだけなんです。意味不明な勘違い野郎でしょうか?
964NAME IS NULL:2007/11/09(金) 00:10:32 ID:???
>>962

>>961ではないけど、外部からのアクセスに対してポート1158が閉じているんじゃないか?ということ。

明日早くもう寝ますので最後になりますが、サービスの「OracleServicemydynabook」がある筈なので
それも起動されているか確認してください。

あと、OSの種類やブラウザでアクセスするととどの様になるか(Not Foundになるとか)を提示すれば、
他の方からもヒントを得られるかもしれません。また、ネットでも検索してみてはいかがでしょうか。
965NAME IS NULL:2007/11/09(金) 00:22:54 ID:VyNt3dee
>>964
とりあえず報告まで。

OracleServicemydynabookがあり、状態は『起動』となっています。

ブラウザでアクセスしたときの状況ですが、
OSはWindowsXP
http://localhost:1158/em/でアクセスすると
------------------------------------
 ページを表示できません。
検索中のページは現在、利用できません。Web サイトに技術的な問題が発生しているか、ブラウザの設定を調整する必要があります。
ネットワーク接続の問題の修正を試みるには、 [ツール]、[接続の問題の診断...]"をクリックしてください。
-------------------------

とこんな感じで表示されます。

遅くまで申し訳ないです。。。

966NAME IS NULL:2007/11/09(金) 00:24:22 ID:???
>>960
%ORACLE_HOME%\install の下の portlist.ini ファイルでポートを調べて
http://localhost:ポート/em/
967NAME IS NULL:2007/11/09(金) 00:28:27 ID:VyNt3dee
iSQL*Plus HTTPポート番号 =5560
Enterprise ManagerコンソールのHTTPポート(mydynabook) = 1158
Enterprise Managerエージェントのポート(mydynabook) = 3938

この場合1158でいいんですよね?
でもだめです。
なにがいけないのでしょうか?
968NAME IS NULL :2007/11/09(金) 03:36:12 ID:???
>>963

普通はデフォルトのREAD COMMITTEDでそんなに不都合は発生しないと思うけど?
銀行系のトランザクションでガチになんかしないとならんのか?
969NAME IS NULL :2007/11/09(金) 03:38:34 ID:???
>>967

まずはTelnet使うなり、なんなりしてPortに繋がるか試してみたら?
Loopbackアドレスは試してみたか?
http://127.0.0.1:1158/em
とかみたいにさ?

あとはブラウザーで串通していたりとかしていないか?
ブラウザーのインターネットオプション関係でプロクシー関係の所全部
外してアクセスしてみろ。
970NAME IS NULL:2007/11/09(金) 09:43:42 ID:???
Windows XPのSP2ならコンパネの下にWindows ファイアウォールがあるが、それが遮断している可能性は?
とりあえず、このファイアウォールをオフしてから試してみるとか。
971NAME IS NULL:2007/11/09(金) 12:00:31 ID:VyNt3dee
>>969
初心者なので解読が難しいです。ごめんなさい。
普通はそのへんの設定をしなくてもアクセスできるものなのですよね?

>>970
やってみましたが、無理でした。

そもそもお聞きしたいのですが、
今回Oracleの勉強をするために
Oracle Database 10g を
自宅PCに取り込んでとのことだったのですが、
インストールするのは
DVD内の『Database』フォルダ内のインストーラー
だけでいいんですよね?
『client』フォルダや他のフォルダ内ののインストーラーは
必要ないんですよね?
その辺があやふやなもので。
ご回答お願いします。
972NAME IS NULL:2007/11/09(金) 14:06:04 ID:???
>>971
http://localhost:1158/
だけで、
Oracle Application Server Containers for J2EE 10g (9.0.4.1.0)
なタイトルの画面が表示されない?
もし駄目なら ブラウザを変えてアクセスしてみるとか
Firefox や Opera を一時的にインスコしてみて アクセスできないかためしてみたら?
973NAME IS NULL:2007/11/09(金) 14:11:21 ID:???
そもそも SQL*PLUS で ORACLE に接続できますか?

コマンドプロンプトから
> sqlplus scott/tiger

接続されました
SQL>

まで行く?
974NAME IS NULL:2007/11/09(金) 16:09:44 ID:v3ZhBncP
C:\Documents and Settings\User>sqlplus scott/tiger

SQL*Plus: Release 10.2.0.1.0 - Production on 金 11月 9 16:09:29 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

ERROR:
ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました


ユーザー名を入力してください:
ERROR:
ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました
975NAME IS NULL:2007/11/09(金) 16:30:01 ID:???
>>974
Oracleサーバを別のPCにインストールしてるなら、

> sqlplus scott/tiger@<接続文字列>

となる <接続文字列> は設定してますか?
976NAME IS NULL:2007/11/09(金) 21:10:34 ID:???
すみません質問です。
PLSQLでパイプライン関数に配列(PLSQL表)を引数で渡したいのですが、コンパイルエラーになってしまいます。
ちなみに、開発者ガイドでは通常のファンクションで渡せるものは使えると記述されていました。
引数をVARCHAR2にするとコンパイルが通ることは確認しています。よろしくお願いします。
977NAME IS NULL:2007/11/09(金) 21:14:26 ID:???
書き忘れました。
環境は10gリリース2です。
978NAME IS NULL:2007/11/09(金) 21:18:39 ID:???
>>977
表関数は関係なく配列のタイプがまずい
979936:2007/11/10(土) 01:10:08 ID:???
>>968
レスありがとうございます。
銀行系ではないです。
いや、なんか、石橋な安全策をとるのであれば、
ノンリピータブルリードとファントムインサートとか
も気にしたほうがいいのかと思ってしまいまして。
えーと、銀行系でもないのであれば、トランザクション
の設定を変更せずに他の処理で排他制御を行うということで
いいのでしょうか?
980NAME IS NULL :2007/11/10(土) 03:30:02 ID:???
>>979

RDBMSでアプリ開発した事があるのなら、このあたりの処理とかも
分かってデザインとかしていると思うけどねぇ。
そこまでガチにファントムインサートやらノンリピータブルリードとかを
気にしないとならないアプリとかは、まだお目にかかった事ないな。
981NAME IS NULL :2007/11/10(土) 03:31:12 ID:???
>>974

DBが起動すらしていない可能性が高いな。
それとリスナーも落ちてんじゃないのか?
いずれにせよ初心者がいきなりDB入れてどうこうできるものではないよ。
ちゃんと勉強してからインストールもした方がいい。
982NAME IS NULL:2007/11/10(土) 06:31:18 ID:???
オブジェクトブラウザで更新するにはどこか設定が必要ですか?
983NAME IS NULL:2007/11/10(土) 07:56:36 ID:???
>>982
接続スキーマの対象オブジェクトへの更新権限かな。
984NAME IS NULL:2007/11/10(土) 08:59:24 ID:Hk8Ewm0v
974ですが、
色々ご意見ありがとうございます。
そもそも自分のPCのメモリは256MBでして
これって少ないですか?
実質は240MBくらいです。
さくさく動かすにはどのくらいのメモリが
必要でしょうか?
また一から出直して
やってみたいと思います。
そのときはみなさま
ご協力お願い致します。
985NAME IS NULL :2007/11/10(土) 11:05:39 ID:???
>>984

10gなら2GB。
986oraora:2007/11/10(土) 14:14:14 ID:WHCji1vp
質問です、つい先日ORACLEを導入した超初心者です。
ORACLE 10Gを使用しています。
統計情報を取得するとパフォーマンスがUPする(何かのサイトでそんな事が書いてました。)との事で、
optimaizerはchooseで設定し、一部のテーブルのみ統計情報を取得しております。
皆さん統計情報の取得はどうされていますか?
どのような条件のテーブルの場合統計情報を取得しているかお聞かせ下さい。
(例えばレコード数が多い又は全テーブルなど。。)
すみません、統計情報がどのように役にたつか、いまいちその良さが
理解できていません。。
987NAME IS NULL:2007/11/10(土) 20:29:46 ID:???
>>986
10gはデフォルトで定期的に統計情報取得するようになっているだろ?
988oraora:2007/11/10(土) 20:58:28 ID:WHCji1vp
>987さん
そうなのですが、自動取得する統計情報は一旦統計情報を手動で取得
してからではないと、自動取得する対象にならないみたいなのですが。。
optimizer_mode=chooseだからですかね
989NAME IS NULL:2007/11/10(土) 22:14:47 ID:???
そんなはずはないぞー
990NAME IS NULL:2007/11/10(土) 23:59:30 ID:???
991NAME IS NULL
>>986

統計情報は馬鹿なOracleのコストベースオプティマイザーが狂った
実行計画で全件検索かけたり、内部ビューを作ったりして検索の
パフォーマンスが極端に遅くなったりしない様に、データの分布や
索引の構成情報を最新のものに保つために取ります。
ただし、コストベースオプティマイザーが常に最速の実行計画で
検索してくれるとは限りません。
そんな時にはヒント文などを用いて、強制的に自分で実行計画を
良いものに変更する等の対応が求められます。

統計情報の取得のタイミングとしては、データ量や分布がそんなに
変化しない表なら頻度は高くなくていいだろうし、逆に挿入・削除などが
頻繁に行なわれるようなら、大規模挿入・削除が行なわれた直後には
必ず行なうなどの対応をする必要があるでしょう。