5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Oracle 質問総合スレ

1 :NAME IS NULL:2006/11/19(日) 12:37:35 ID:2/D9x78l
このような質問は、今後このスレでしていきましょう↓↓

質問例
DB板自治・質問・雑談スレ(432)
http://pc8.2ch.net/test/read.cgi/db/1056957157/432

2 :NAME IS NULL:2006/11/19(日) 15:35:26 ID:???
    |┃三           `、 - 、_                 _,.  マ
    |┃三             `ヽ、~` - 、_  , -──、._,. - '  /
    |┃三               \    i' l´l l⌒l l`i   /
    |┃三                  \  |⊂⊃~⊂⊃|_ /    いやだ
    |┃三                  ⊂) ). ロ l⌒l ロ|)⊃
    |┃三                    ヽ.iコ `-´ ri/|  
    |┃三             , '⌒ ヽ_,. -/ヽ._,.旦,_ン. .|  , - 、
    |┃三          ,. - '~`ヽ      `ヽ、     :|, -~──'── 、_
    |┃三         >-─-、 |   , -─-、. `──── `       ヽ
    |┃三      ,  '    |::| |   |     |   ,───、 / ̄ ̄ヽ    i_.

3 :NAME IS NULL:2006/11/19(日) 16:10:11 ID:???
来週、職場にSANが導入されるのですが、新米DBAの自分に扱えるのかどうか?
そのSANってのは、8本HDDで構成されるRAIDなんだそうです。

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

テーブルスペースも、テーブルと索引で分けたりする必要ないような
気がしてます。

4 :NAME 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脚キレイー


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

ちょっと試着(笑)してくるノシ 

5 :NAME 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出力です。


6 :NAME IS NULL:2006/11/21(火) 13:52:21 ID:???
あ、FOR の辺りちょっと間違えた。
すいません。FOR r IN c LOOP 〜 END LOOP; ですね。

7 :NAME IS NULL:2006/11/21(火) 20:23:50 ID:???
>カラムの名前が事前に分からない場合

多分、無理なんじゃないかな。
EXCEL/VBAで、ADOとかoo4oを使えばできるけどね。
カラムを番号で取れるから。


8 :NAME IS NULL:2006/11/22(水) 00:50:48 ID:???
>>5
そのケースで言う
x表の定義が確定してないってこと?
それとも表は決まってて、使う列が不明ってこと?
前者だったら結構苦しい方法を取ることになるのかのう

9 :5:2006/11/22(水) 21:38:29 ID:7Hi0ms3O
>>7
本とかも立ち読みして色々調べてみましたが、段々と無理っぽいことが分かってきました。

>>8
表の定義が変更された時に一々書き換えるのが面倒だなと思ったんです。


10 :NAME IS NULL:2006/11/25(土) 20:39:16 ID:fB7Zbtis
すみません、お尋ねしたいことがありますが
OracleのiSQL*Plusの起動はできたのですが、ログイン時のユーザ名はどこから参照すれば見つかりますか?
パスワードはわかるのですが、ユーザ名が・・・
なので、アドバイスお願いします。

11 :NAME IS NULL:2006/11/26(日) 15:34:54 ID:???
そのユーザーは自分で作ったの?
デフォルトで作成されるユーザーならSYSかSYSTEMで試してみなさい
(SYSDBA,SYSOPER接続で)。
デフォルト以外のユーザーならとりあえず、接続できないと、
参照できん。


12 :NAME IS NULL:2006/11/27(月) 09:51:34 ID:3lLbgr1L
Oracle10gで
データベースAをexpするとログは日本語ででてくるのですが
データベースBをexpするとログは英語で吐き出されます

コレを英語で統一したいのですがどのようにすればいいか教えていただけ無いでしょうか?


13 :NAME IS NULL:2006/11/27(月) 11:44:47 ID:3lLbgr1L
まじであんなしょぼ更新2回かよ
11時と11時30

14 :NAME IS NULL:2006/11/27(月) 21:39:12 ID:???
Linuxに入れたOracleをtarで固めて別のLinuxに移行する時って、
どのディレクトリとファイルを移動したらいいの?

とりあえずoracleが入ってるディレクトリと、/etcだけ移動してみようかと思ってるんだけど

15 :NAME IS NULL:2006/11/27(月) 22:22:16 ID:???
>>12

NLS_LANG


16 :NAME IS NULL:2006/11/27(月) 23:24:18 ID:???
14の方は釣りですか?


17 :NAME IS NULL:2006/11/27(月) 23:25:03 ID:???
動くことは動くだろ

18 :NAME IS NULL:2006/11/28(火) 07:12:54 ID:???
どうだろ?

19 :NAME IS NULL:2006/11/30(木) 20:38:04 ID:???
windowsで2ノードRACを組もうと思ったら、最安の構成はなんでしょうか?
できるだけ今ある機器を生かしたいです。検証用なので可用性は二の次でいいです。
現在ある機器はWIN2Kサーバが入っているPC2台/NIC6枚/玄箱1個です。
2万以内なら機材購入可能です。
Linuxなら玄箱が使えるようなんですが。

20 :NAME IS NULL:2006/12/01(金) 09:58:40 ID:???
なんの検証なのかわからないけど、組んで動かすだけならW2K Serverにメモリを
2G以上にして仮想PC突っ込めば1台で済むんじゃね?


21 :NAME 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  成功を祈る。

22 :NAME IS NULL:2006/12/02(土) 01:05:23 ID:???
なんでVMを‥‥って、お前は最初に「2万以内なら機材購入可能」と
条件ついていたのが読めんかったのか?


23 :NAME IS NULL:2006/12/02(土) 02:42:36 ID:???
検証用ならVMでいんじゃねぇ?
もしくは、マニアックに実際にRAC組んで満足したいならそれでもいいが、
どうせすぐあきると思う。

24 :NAME IS NULL:2006/12/02(土) 10:11:50 ID:???
VMWareをVMというのはやめないか。


25 :NAME IS NULL:2006/12/02(土) 12:32:48 ID:???
>>22

21は楽勝で2万以内なんじゃね?unipackの中古なんて安いしいけると思う。
Unipack2個買ってASMで冗長化までいけるかも。
FC考えてたから敷居が高かったけど、SCSIなら安く組めるんだねぇ。
NIC余ってるからのチーミングでインターコネクトも冗長化できるかも。
俺もSCSI押したいね。ぜひ報告よろ>>19


26 :NAME IS NULL:2006/12/02(土) 21:05:00 ID:???
誰かVMwareのつもりで使っている人がいたのか?
>24 以外の人で。


27 :NAME IS NULL:2006/12/03(日) 19:08:37 ID:???
なるほど、SCSIでいけるんですね。
PCIが64bitじゃないですけど、大丈夫でしょうか。
まあ、やってみます。tarも使いたいですし、推奨構成なのは大きいです。
自分では考え付きませんでした。相談させていただいて良かったです。
本当にありがとうございました。
仮想PCを薦めてくれた方もありがとうございました。

結果は報告させていただきます。


28 :NAME IS NULL:2006/12/06(水) 21:40:19 ID:n5iQdNX2
質問です。
PL/SQLで、CURSORのSELECT分に
IN句をつかっているんですが
そこの値に配列を渡して処理することは可能でしょうか?

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

30 :NAME IS NULL:2006/12/09(土) 13:37:22 ID:???
>>29
procedure の実行権限が付与されていない可能性があります。

31 :27: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組めました。
アドバイスいただいたとおり、ケーブルが厳しかったです。
中古を探している余裕がなかったので、安い新品探して購入しました。

インストールも全く問題なく、無事に検証環境ができました。
アドバイス、本当にありがとうございました。


32 :NAME IS NULL:2006/12/11(月) 10:23:20 ID:E6HiKDK4
>>31

あ、行けたんだ。おめでとう。
新品にしてはケーブル安いな〜。ottoの中古より安いよ。
VHDCIと68ピンか。ジャンクを探すのは確かにしんどい。
その値段なら買って正解だと思うよ。
2万で出来るのか〜。

33 :NAME IS NULL:2006/12/11(月) 17:37:22 ID:Jr+OMzZp
Named User Plusライセンスについてなのですが
例えばwebアプリを通してDBにアクセスするシステムを、使う可能性がある人が50人居たとすれば
50人分のライセンスが必要なんでしょうか?それともwebサーバーを一人と見なしてライセンス1個でいいんでしょうか?

34 :NAME IS NULL:2006/12/11(月) 19:40:29 ID:???
>>33

50人分になる。


35 :NAME IS NULL:2006/12/11(月) 22:01:27 ID:???
テーブルを作成する時、別テーブルと同じ索引名を指定してしまった
のですが、この場合どうなるんでしょうか?
索引を再作成しないといけないのでしょうか?

36 :29:2006/12/11(月) 23:45:14 ID:???
>>30
できました!お返事遅くてごめんなさい。
どうもありがとうございます!!

37 :NAME 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らしく悩んでます。

38 :NAME 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環境が無いので動かしていないから、正常動作するかは分からないよ。多分大丈夫。

39 :NAME 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;
/

40 :NAME IS NULL:2006/12/15(金) 00:26:23 ID:AN/K2Elz
くだらない質問かもしれませんが、、、
UPDATE文でWHERE句で条件絞って、NULLで
更新をかける、sql文があります。
対象レコード数に大きな変動が無いにも関わらず
sqlの処理時間にバラつきが・・・
テーブルはバッファキープ有効に設定しています。
原因を思い当たる方がいらっしゃいましたら
ご指導くださいませ;

41 :NAME 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に更新する列の長さが、レコード毎に大きく異なることはないよね?


42 :NAME IS NULL:2006/12/16(土) 12:46:47 ID:???
>>37
>PL/SQLでは BEGIN内で更新関係のSQL文はNGらしく悩んでます。
動的なら可能

43 :NAME IS NULL:2006/12/16(土) 12:56:21 ID:???
インストール時に選択しなかったんだと思いますが、
exp/impのexeファイルがbin下にいない端末があります。

これはexp.exeとimp.exeだけを他端末からコピーしてくれば動きますか?
それともoracleのインストールからやり直さないとダメですか?

44 :NAME IS NULL:2006/12/16(土) 17:32:14 ID:4ZspRBrb
>>43
exp/impをインストール時に選択できないんじゃぁ・・・。
誰かがexeファイルを消してしまった可能性があるなら
単純にコピーでおk

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

46 :NAME IS NULL:2006/12/21(木) 18:59:47 ID:R8+8OtYh
10gで文字化けを起こしてしまう一覧を紹介してくれているところはない
でしょうか?
今までは化けてしまうものは外字登録でごまかしていたのですが、最近
は遠隔地のお客さんや数十台使用のおきゃくさんが増えてきたので、し
っかりと対策を練りたいと考えています。

47 :NAME IS NULL:2006/12/21(木) 23:55:08 ID:???
文字化けは10gだからとか関係ない。
データベース、アプリケーションサーバー、クライアントがどの文字コードを使うかによって
変わる。


48 :NAME 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とすると全件操作よりは効率いいもんなんでしょうか?

49 :NAME IS NULL:2006/12/23(土) 18:50:57 ID:fExmKA+s
Java+Oracleのシステムでの話です。
データを絞り込んで取得する場合、SQLで複問い合わせを駆使して取得するのと、
Java側で全件取得後絞り込むのでは、ネットワーク転送負荷を考慮しない場合、やはりSQLでやらせたほうが高速なのでしょうか?


50 :NAME IS NULL:2006/12/23(土) 19:29:38 ID:???
>>48
PKがa,b,cの複合インデックスになってるはずだから、
a,bなら前方一致でインデックスが効くはず。

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



51 :NAME IS NULL:2006/12/23(土) 19:51:48 ID:???
>> 49
件数がおおいなら、Oracleで絞り込んだほうが速いと思うけど。

52 :NAME IS NULL:2006/12/23(土) 20:10:17 ID:???
>>50
ありがとう。
PKの定義順で変わるということですか。
例えばb、c、aと定義すると
where b=1、c=2は前方一致というやつで全件検索しない
where c=1、a=2とすると全件検索。
正しい?


53 :NAME IS NULL:2006/12/23(土) 21:22:25 ID:???
> >>49
> プログラム側で全件取り込む発想をするやつは癌あつかいされるから気をつける!

そうだね。
Javaに展開されるコストをかんがえれば、全件取り込みのデメリットはわかるとは思うけど。


54 :NAME IS NULL:2006/12/24(日) 00:39:59 ID:???
>>52
OK


55 :NAME IS NULL:2006/12/24(日) 03:47:21 ID:???
>>54
どうもありがとう

56 :NAME IS NULL:2006/12/24(日) 19:01:48 ID:???
>>54
おま。OKってよりYESって言うべきだろ。そこ。

57 :NAME IS NULL:2006/12/26(火) 22:34:18 ID:???
Oracleの一時テーブルって同じテーブルでもセッション毎に違うデータを持てるるんですよね?
今、Oracle10gとAccess2003でCS型のシステムを作ってるんですけど
Access側からストアドを起動してOracleの一時テーブルにデータを書き込んで
そのデータは取っておきたいからローカルテーブルにコピーしておこうと思ったら
なんとセッションが違うのでリンクテーブルやパススルークエリではデータをもってこれませんでした。
なにかいい方法ありませんかね?
今は、レコードセットを取得してループさせて1レコードずつローカルテーブルにコピーしてるんですけど
どうにも遅くて困ってます。

58 :NAME IS NULL:2006/12/26(火) 23:12:41 ID:???
だから一時テーブルだと思うんだが。

59 :NAME IS NULL:2006/12/26(火) 23:38:15 ID:???
なんですってー!
ありがとう>>58

60 :NAME IS NULL:2006/12/27(水) 14:01:16 ID:ZriWyeGJ
RACについて教えてください。

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

別にスタンバイDBでレプリカ作ったり
データガードを導入しないといけないのかしら?


61 :NAME IS NULL:2006/12/27(水) 17:59:37 ID:ZnqaKKoc
>>60
共有ディスクが故障したらオシマイ。

要件にもよるが・・・。
外部記憶媒体からのバックアップがNGなら
データガードを使うしかなかんべ。


62 :60:2006/12/27(水) 18:35:01 ID:???
やっぱRACだけじゃダメなのね。
ありがとう!

63 :NAME IS NULL:2006/12/29(金) 09:46:59 ID:KzbHeGcY
9i以降ってローカル管理表領域を使うのが一般的だと
思うのですが、テーブルのエクステント数って気にするべきですか?
オラクルが自動管理しているみたいなので不要?

20 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)