Oracle 質問総合スレ
..
237:NAME IS NULL
07/03/07 12:22:57 m/eIFB9Y
>>236
それ却下された。
238:NAME IS NULL
07/03/07 13:27:30
>>236-237
提案したのかよw
239:NAME IS NULL
07/03/07 23:11:44
まあ、よくあると言うかハードjは売りっぱなし会社で、その売りっぱなし会社が
低賃金で雇ったハケンのデタラメSE&PGに組ませたシステムによくある失敗例だよな。
ただ、普通はリプレースの際にマシンスペックの向上に助けられて
問題にならない場合もタマにあったりするが、229の場合は
今まで動いていたソフトウェアが相当にヘボかったんだろう。
いい機会だから金だしてマトモな会社に丸投げしとけ(w
240:NAME IS NULL
07/03/07 23:36:15
>>229
そのAPサーバーって言語は何で動いてんの?
ネットワークバッファとかプリフェッチサイズ大きくして改善されるかな。
ループのまわし方にもよるけど。
241:NAME IS NULL
07/03/08 01:39:56
>>229
「ネットワークを疑ってみる」がセオリーっぽいけどね。何処がネックか調べようよ
5倍も時間がかかるようになって、2ヶ月以上の放置が信じられん
っていうか、テスト期間中に問題にならないのも信じられ
242:NAME IS NULL
07/03/08 01:43:35
APサーバからselect * from〜を多用していたりなw
243:229
07/03/08 09:06:32 46zKKXiM
月次処理で月1回しか流れない上、当該時間帯に競合するバッチもない。
監視はオペレータが常駐しているので長くかかってもシステムには影響がない
のと、他の開発案件との絡みもあるので、とりあえず業務Grpは対応する予定はなく、
インフラチーム預かりで調査中というステータスです。
244:NAME IS NULL
07/03/08 22:26:04
年明けにシステム変えて、3月でこのありさまとは、
ずいぶんと無能かつボンクラ揃いのインフラチームですな。
専任のオペレータが監視する様なシステムでお客から
そんなクレームきたら、それこそマッハで対応すべき状況だと
思うけど、そうならないのは天下りでパイプが結ばれている
関連子会社でとかなんだろうか?
245:NAME IS NULL
07/03/09 00:58:29
>>243
つ〜かさ、ボトルネックが何処にあるか分からないんだから、とりあえず
DBのステータスだけでも見てみたらどうよ?
バッチ処理時にSTATSPACK流すなり、O/Sのステータス取るなり、やる
事はいくらでもあるだろう?
CPUバウンドなのか、I/Oバウンドなのかで、対応も当然変わる訳だしさ?
ネットワークトラフィックとかも見ているのかよ?
「AP鯖とDB鯖との間が100Base-Tかなんかでつながってました」なんて
オチだって考えられるぞ?
246:229
07/03/09 08:09:30 B5ov/MgP
客先とオペレータの作業場が離れている関係で、
ユーザには見えてません。
といいますか、ウチのPJはこれまで携わったところと毛色が違って、
情シスが絡まずにエンドユーザと直接やり取りしているので、
夜間バッチがどのくらいかかったかの報告もしてません。
システムに影響なければいくらでも隠蔽できます。
夜間バッチがエラーになっても、オペレータから連絡が来たら
その場で対処してユーザには特に報告しませんね。
247:NAME IS NULL
07/03/10 01:43:01
その月次バッチ「だけ」重くなったの?
248:NAME IS NULL
07/03/10 08:10:02
>>246
客先にバレてないんだったら、問題を隠蔽しまくって
5年か10年後にやってくるリプレースの時に対策汁
まあ、そんな不二家みたいな会社が漏れの周りに
いない事を祈るけどな。
249:NAME IS NULL
07/03/11 21:38:08 908nGcRk
Oracle9iを使ってまして、特定のプロシージャを動かすたびにデッドロックが発生して困っています。
同一のプロシージャを5つほどパラで流しているのですが、デッドロックが発生する理由がよく分かりません。
一つのテーブルにたいしての、updateとinsertを行うプロシージャなのですが、それぞれのセッションで
updateする行が異なっていることは確認してあります。(where句の指定が違う)
ただ、update/insert を行うテーブル自体に、プライマリーキーはおろか、ユニークなキーを張っていません。
そういうテーブルにupdateを行う際に、ロックが掛かる列というのは、updateのwhere句の条件にマッチする
行だけということで良いんでしょうか?? 一意なキーを使用していないため、updateを行うときにロックの
掛かる行が多すぎてデッドロックに成ってるんじゃないのかと素人判断をしてるのですが、どうでしょうか。
250:NAME IS NULL
07/03/11 21:50:55
行ロックがかかるのはupdateしてるところだけ。
251:NAME IS NULL
07/03/11 21:55:57
分離レベルにもよると思うが、where句にindexのないカラムを指定すると
テーブル全体でロックするんじゃねーの?
と思いつつユニークなKEYを持っていないのにどうやってUPDATEする
レコードを特定できるのか疑問なんだが。
そりゃ、何月何日のあるカラムをまとめて更新するってSQLなら解るけど
それだとロックが掛かるのは当たり前な気がするが・・・。
252:NAME IS NULL
07/03/11 21:59:24
別セッションがinsertした行にもupdateかけようとしてるとか??
253:NAME IS NULL
07/03/11 22:02:44
「ユニークなキー」っていうことばの意味があいまい。
でもUNIQUE INDEXの有無にかかわらず、updateの行ロックはその行だけ。
254:NAME IS NULL
07/03/11 22:06:12
foreign keyとか?
255:249
07/03/11 23:15:35 908nGcRk
249です。
ユニークなキー ⇒ ユニークインデックスでした。
やっぱり、行ロックかかるのはupdateかかってる場合のみっぽいですね。
KROWNによると、テーブルのロックの掛け合い以外でもデッドロック状態に
なるようなので、そちらの可能性のほうを検証してみます。
ども、ありがとうございます。
256:NAME IS NULL
07/03/11 23:23:40
漏れはあんましWHEREでUPDATEする時は主キーでやる派の人間だけど、
そこの9iがどんな分離レベルで動いているかしらんけど、分離レベルによっては
他のプロセスでINSERTしようとして、他のプロセスが後からUPDATEしようと
した時に先に走ったトランザクションが終了しない場合はUPDATEは待ち状態に
入り、先のINSERTするトランザクションでWHERE句にINDEX張ってないカラムを
指定してSELECTかましていた時に、後のトランザクションのUPDATEがロックかけてたら
デッドロックになると思うが。
あと、分離レベルによってwhere句にindex作成していない状態で
where hoge >= 0なんて選択カマしているとテーブル全体でロックがかかるとオモ。
257:NAME IS NULL
07/03/12 19:59:38
質問です!
Oracle10gのXEClientをインスコしてその中のODBCドライバを使わなきゃいけないんですが、
ODBCの設定のところでORACLEinXEClientを指定してもドライバのセトアッププログラムが読み込めない(システムエラーコード126)
が出て、追加できません。
そのあとにドライバのConfigDSN,ConfigDriver,またはConfigTrancelatorが失敗しました。
って出ます。
何が原因なのかわかりません。
ファイルはレジストリに記述されてる場所にあります。
MSDNに書いてあることは実行しました。それでも改善しません。
環境はXP SP2です。
258:NAME IS NULL
07/03/12 23:59:55
>>257
「mfc71.dll」「msvcrt.dll」「msvcr71.dll」の三つのdllをc:\windwows\system32にでもコピっておけば?
259:NAME IS NULL
07/03/13 00:02:22
XEって使ったこと無いんだけど、InstantClientじゃだめなのかな?
260:NAME IS NULL
07/03/13 00:14:11
>>249
参照制約付いてないですか?
261:NAME IS NULL
07/03/13 01:15:24
pl/sqlについて質問させて下さい。
変数の項目定義をDBの項目%type;で行っています。
その項目の項目長を取りたいのですがlengthだと
変数の中身のサイズを取ってしまって取れませんでした。
何か良い手段はないでしょうか。
よろしくお願いします。
262:NAME IS NULL
07/03/13 15:34:18 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) のため読み込めませんでした。
色々情報を探してみたのですが、見当たらずここに質問します。
お知恵をお貸しください。よろしくお願い致します。
263:NAME IS NULL
07/03/13 17:44:24
ちゃんとODBCドライバはインストールされた上でDSNの設定もした?
ドライバをインストールしただけではDSNの設定はされていないから、以下のようにDataSourceを指定する必要があるけど。
"Driver={Oracle in OraClient10g_home1}; Data Source=fuga; UID=hoge; PWD=hoge;"
DSNを設定した場合は、"dsn=hoge;uid=hoge;pwd=hoge"でいいけど。
264:NAME IS NULL
07/03/13 17:50:14
追加。
OracleのOLEDB Providerをインストールした場合は、
"Provider=OraOLEDB.Oracle; Data Source=fuga; CONNECTSTRING=; UID=hoge; PWD=hoge;"
として、Provider経由でも接続が出来る。
Oracleのは、ODBCよりProvider経由の方が推奨されているから、こっちを使うほうがいいかも。
265:262
07/03/13 18:45:43
>>263
ODBCドライバインストール&DNS設定もしました。
でもダメ。
OLEDB Providerをインストールして教えていただいたProvider経由の方法で接続したところOKでした。
ありがとうございました。助かりました。
266:NAME IS NULL
07/03/13 19:01:25 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
というエラーが出て、接続することができません。
色々とググったりして調査しているのですが解決できていません。
どなたか、ご協力願えないでしょうか…。
267:262
07/03/13 19:05:53
接続できて喜んでいたら今度は
ORA-12560: プロトコル・アダプタ・エラーが発生しました
とエラーが出るようになりました。
どう対処すれば・・?
268:262
07/03/13 19:16:16
事故レス
ODBCを再設定したところ今度はProvider経由でORA-12560エラーが出て、
ODBC経由だとOKになりました。
うーむ、よくわからない。。。
269:NAME IS NULL
07/03/13 19:24:34
こんな時間に会社から2chにカキコとか考えるとアレなんだが、
素直にOracleのサポートに電話した方が解決早いだろ。
270:NAME IS NULL
07/03/13 19:33:03
このスレの存在意義が (ry
271:NAME IS NULL
07/03/13 21:27:48
ORA-12154 は Host String: hoge に対応する接続記述子が見つかんないってこと。
tnsnames.ora 周りがあやしいかな。
272:NAME IS NULL
07/03/13 21:30:08
>>266
tnsnames.oraとsqlnet.oraをさらせ。
273:NAME IS NULL
07/03/13 23:34:10
oracleに関わらずの話かもしれないんですが、
いわゆる2フェーズコミットっていう、
よく情報処理試験にでてくるんですけど、
あれの、コミット可能かどうかを確認する1フェーズ目って
具体的には何をすることをいうんでしょうか?
274:NAME IS NULL
07/03/14 02:56:45
>>273
[準備フェーズ]
準備するように指示されると、開始側データベース(コミットが実行されたデータベース)は
分散トランザクションに関与する他の各データベースに、この後の指示に従って、コミット
またはロールバックする様に支持します。開始側データベースは以下の作業を行います。
・Redoログ・バッファとSCN(System Change Number)をフラッシュします。
・グローバルなSCNを他のDBに渡します。(SCN回復する時に必要な情報)
・表をロックして、コミット・フェーズが完了するまで表の読み書き操作を禁止します。
275:266
07/03/14 09:08:19
>>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)
このようになっています。
よろしくお願いします。
276:NAME IS NULL
07/03/14 09:41:52
>>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)
277:NAME IS NULL
07/03/14 09:42:11
>>275
ORACLE_HOMEが2つあるっていうオチだったりして。
278:275
07/03/14 09:50:10
>>276
!!!!!!
いけました!!ありがとうございます!!
でもなぜだろう?
NetManagerなどではカバーできない環境なのか…。
調査してみます。
279:NAME IS NULL
07/03/14 09:56:27
>>278
これで繋がったという事はどっちかというとlistener.ora側の設定を疑うべきだな。
280:NAME IS NULL
07/03/14 09:59:34
SID=hoge の指定は昔のやりかた。
まず SERVICE_NAME=hoge のままで、NAMES.DIRECTORY_PATH= (NTS) でやってみて。
NAMES.DIRECTORY_PATH は、接続記述子をどこから探すかの指定。
これがEZCONNECTなら、その方法でしていしなくちゃならない。
NTSならtnsnames.oraから探す。
281:NAME IS NULL
07/03/14 10:03:23
>>278
names.directory_pathをtnsnamesにしてみろ。
names.directory_path = (TNSNAMES)
282:280
07/03/14 10:14:57
NTSは認証のほうだった。
>>281 が正しい。
283:275
07/03/14 10:15:28
>>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を使用
しているから…などの理由が、おそらく存在するのだと思います。
ご協力ありがとうございます。
284:275
07/03/14 10:23:05
>>279-282
すいません、先走りました…(汗
(自分のレス書き込んでから>>279-282に気づきました)
「Oracle8リリース8.0互換識別子を使用」
にしたままでは原因解明や対処したことにはならず、追求して本来あるべき
設定にした方がよいのでしょうか?
さんざん悩まされた問題なので、もしも「Oracle8リリース8.0互換識別子を
使用」にチェックを付けて使うことに支障がなければこのままでもいいかな
ー…と思い始めていたりするのですが…。
285:275
07/03/14 10:33:02
以下の設定で、問題は発生しませんでした。
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)
に変えた』
286:275
07/03/14 10:44:44
Net Manager を開くとツリーに「プロファイル」というのがあり、
ここの「選択メソッド」が、もともとは「EZCONNECT」だけになって
いました。
tnsping hoge
が ORA-12154 でエラーになっていたことから、私の環境では EZCONNECT
だけでは、何かが引っかかって接続識別子を解決できなかったようです。
Net Manager → プロファイル → 「TNSNAMES」「EZCONNECT」両方選択
これで接続も tnsping も正しくできるようになりました。
287:257
07/03/14 16:19:44
>>258
ありがとうございます。MFCランタイム入れたらその問題は解決しました。
>>259
ORACLEのUNIVインストーラーを持ってないので無理でした。
288:NAME IS NULL
07/03/16 23:37:33 O+49JDf9
oracle10g 32bit版をWindowsXP Pro(CoreDuo)にインストールしようとしましたが、
途中で
「ライブラリの読み込み中にエラーが発生しました
generalQueries」
と表示されて、インストールができません。
(その後のすべてのインストールの中止orこのコンポーネントのインストールのみ中止
のどちらを選択しても終了しません。)
Enterprise、Standard、Personalのどれを選択しても同じ現象がおきてしまいます。
どなたか同じ現象の方や解決方法をご存じの方いらっしゃいますでしょうか?
289:NAME IS NULL
07/03/17 01:08:34
>>288
そのインストール用バイナリを保存しているディレクトリにマルチバイトの文字が
使われていたりしないか?
290:288
07/03/17 10:56:14 qcvECAwf
>289
アドバイスありがとうございます。
HDDにコピーしてからインストールをしたのですが、
なぜかgeneralQueriesというファイルが壊れていたみたいでした。
お手数をおかけしました。
291:NAME IS NULL
07/03/17 18:03:55 rpX2rmR1
Oracle10gにおいてundo表領域systemu表領域を他ドライブに変更したいのですが
@sqlplus "sys/psw@oracle as sysdba"
ASHUTDOWN IMMEDIATE;
BSTARTUP MOUNT;
という順におこなった所、Bにてリスナーは接続記述子で要求されたサービスを現在認識していません
と表示されてしまいます。
ご存知の方はよろしくお願いします。
292:NAME IS NULL
07/03/17 22:53:10
リスナー経由で接続できるのはOPENしてから。
Oracleサーバーにsshなんかで入って、sqlplus / as sysdba とかで入る。
293:107
07/03/17 23:22:57 rpX2rmR1
>>292
申し訳ありません。
もう少し噛み砕いて説明していただけないでしょうか?
294:NAME IS NULL
07/03/17 23:27:05 HgHJyZfK
質問なのですが、WindowsXPのHomeEditionにOracleのインストールは無理でしょうか?トライアル版をインストールしたのですが、なぜかどうやっても「リスナーがありません」となってしまいます。
295:NAME IS NULL
07/03/17 23:32:36
ワロタ
これ以上どうやって噛み砕けとw
Oracle10gのサーバUnix系なら、
サーバにDBAユーザでログインしてから、
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup mount
で、データベースを起動する。
296:NAME IS NULL
07/03/18 00:39:59
Windows のOracle 10gです。
テーブルにストアドプロシージャ名(またはストアドファンクション名)を入れておいて、
プロシージャ(またはファンクション)から、その値を取得してそのプロシージャを実行
したいのですが、できますか?
SQL Serverの場合は @procedure_name にプロシージャ名が入っているとして、
EXEC @procedure_name @pram1 pram2
などとして実行できたのですが、Oracleではどうもうまくいきません。
変数の中に入っている名前のプロシージャを呼び出すことはできませんか?
297:291
07/03/18 01:43:52 t/a53Ch2
>>295
申し訳ない。
@コンピュータの管理にてOracleService<SID>を起動させる
Asplplus aaa/bbb@ccc
サービス名を指定しなければプロトコル・アダプトエラーが発生します
B$ sqlplus /nolog
Cconn / as sysdba
を行ったところBでORA-12560:TNS:プロトコルエラーが発生してしまいます
298:仕様書無しさん
07/03/18 11:15:28 vUU4ZdYN
>>297
接続時に"@ccc"を使わない接続をしろってこと。
"@<接続子>"でリスナー経由の接続になるんだお。
コマンドプロンプトで
SET ORACLE_SID=ccc
ってやってから
B、Cを実行。
299:291
07/03/18 12:03:09 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:仕様書無しさん
07/03/18 12:23:07 vUU4ZdYN
>>299
手順を晒せよ。
Dドライブにデータファイルはうつしてるよな?
301:291
07/03/18 12:40:30 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を行った際にリカバリが必要と表示されます。
よろしくお願いします。
302:NAME IS NULL
07/03/18 13:10:18
>>301
Windowsではどっちでもいいことなんだけど、Oracle使いとしてこの先生きのこりたいなら、
環境変数名はキチンと大文字/小文字を区別するようにしようね。
× oracle_sid
× Oracle_Sid
○ ORACLE_SID
303:NAME IS NULL
07/03/18 13:18:34
>>301
先にOS上でファイルを移動したか?
つまり、その手順で言うと、5と6の間でOSコマンドにてファイルを移動する。
304:107
07/03/18 14:46:14 t/a53Ch2
>>302
ご指摘の点、しっかりと受け止めます
>>303
はい、先にOSコマンドでコピーをしました。
やり直してみます。
305:仕様書無しさん
07/03/18 15:07:47 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
306:NAME IS NULL
07/03/18 18:13:36
>>305
Recoveryが必要だって言われてんだから、renameした後にrecover database文
打ってみたら?
普通は必要ないんだけどね。
307:301
07/03/18 19:11:12
>>305
>>306
どうもありがとうございました。
システムディスクの容量が少なかったので
助かりました。
308:NAME IS NULL
07/03/21 05:05:45 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を使用しています。
309:NAME IS NULL
07/03/21 09:19:35 YYlj3kB8
SELECTでデータを1行だけ抜きたいんですが、そんなコマンドありますか?
教えて下さい
310:NAME IS NULL
07/03/21 09:21:46
>>308
> COMMIT命令を発効してからDBのレコードに値が
> 反映されるまでタイムラグでもあるのでしょうか。。。?
同一セッション内ならあり得ない。
俺ならいちいち無駄なループ回さず、
UPDATE USER_MASTER SET STATUS='1'
WHERE USER_ID IN (
SELECT USER_ID FROM USER_MASTER WHERE STATUS = '0'
);
って書くがな。
311:NAME IS NULL
07/03/21 09:22:45
>>309
select * from table where rownum = 1;
でとれると思うが。
312:NAME IS NULL
07/03/21 09:40:21
>>311
ありがとうございます
313:NAME IS NULL
07/03/21 15:15:24
>>308
select ... for update してね。
314:313
07/03/21 15:17:49
追加でスマン
ORA-60 が出るかもしれないので、order by USER_ID も追加で。
315:NAME IS NULL
07/03/24 19:21:33
以下のようなSQL呼んでるプログラムがあるんだが
> SELECT ename FROM emp WHERE empno BETWEEN 1000 AND 2000;
「empno順にソートされてないから修正しろ」っていわれた
そりゃそうだ、ORDER BYとか使ってないからな・・・と思って
ローカル環境でテストしたんだがこっちだと昇順ソートされてる
データのrowidを入れ替えたりもしたんだがやはり変わらずソートされてる
「ORDER BYをつけないとデータの順序は保障されない」というのは
ソートされる/されないの保障がないという意味なのでしょうが
ソートされないことを確認する、手っ取り早い方法はないでしょうか?
(ヘンな質問ですが・・・)
316:NAME IS NULL
07/03/24 19:36:07
>>315
実行計画でもとってみたら?
317:NAME IS NULL
07/03/24 21:10:03
>>315
何を確認したいのか分からない
素直におーだばいすれば?
明示的にした方が他の人にも分かり易いし
318:315
07/03/24 22:05:56
すいません、簡単に言い直します。
ORDER BYをつけてないが、自分の環境ではソートされてる。
じゃあソートされずにバラバラにデータを出力させるためには
どうすればいいか。ただし、SQLはそのままで。
データを何らかの方法で並びかえればバラバラにでるのであれば
その並び替える方法を教えてほしい。
本来の依頼の解決方法はORDER BYをつけること。それは間違いないです。
でもつけてないのにソートされてるのはなんでだろう?という疑問から
この質問をしました。意図がわかりにくくてすいません。
319:NAME IS NULL
07/03/24 22:31:15
たまたまソートされた順序で格納されてたからだろ。
テストデータをつくるとき、
FOR i in 1..100000 LOOP
とかでデータを作ってINSERTすると格納データが昇順ではいってる。
SELECTは読んだ順に出力する。
ただし、それをあてにしてはいけないのでORDER BYが必要。
320:NAME IS NULL
07/03/24 22:32:36
一見ばらばらに見せかけたいなら、ハッシュパーティション表に入れて、ORDER BYしないとそうなる。
321:NAME IS NULL
07/03/25 00:52:39
>>315
9iまでだと索引スキャンで読み出された場合索引順にソートされて出力される。
10gは何故か索引スキャンによるソートがなくなってたのでorder byで明示的にソート必要。
内部がどう変わったかは知らん。
現象のみ確認した。
322:NAME IS NULL
07/03/25 01:00:11
>>321
ソートしてるわけじゃない
323:NAME IS NULL
07/03/25 14:29:29
VB2005でASP.NET2.0のプログラムを書いています
ODP.NETを使ってOracle10gにアクセスさせたいと思っています
web.configのconnectionStringsにコネクションプーリングするための文字列を入れたところまではよかったのですが、
どうやってその設定で接続させるかがわかりません
ConfigurationManager.ConnectionStringsのことを調べてみたのですが、ADO.NETでの接続になるみたいです
どうやって接続させるのでしょうか?
324:NAME IS NULL
07/03/25 21:30:49
>>318
行移行すれば順番がズレなかったっけ?
大きめのカラムを作ってUPDATEをしておけばいいんじゃねぇ?
そして実行計画取ればソートしているか否かわかるんじゃ
325:NAME IS NULL
07/03/26 21:37:38
>>323
URLリンク(otndnld.oracle.co.jp)
326:NAME IS NULL
07/03/29 13:05:31 SkrWWvsv
いまどきオラクル8なのですが、left outer joinの代わりに何を使えばいいのでしょうか
327:NAME IS NULL
07/03/29 13:11:16
>>326
どういったSQLを投げていて、どういった結果をとりたいのか
もっと具体的に質問したら?
328:NAME IS NULL
07/03/29 13:18:39
>>326
(+)
329:NAME IS NULL
07/03/29 13:21:13 SkrWWvsv
10gの場合で
select 表1.商品名,表2.価格 from 表1
left outer join 表2
on 表1.番号 = 表2.番号;
と書くところを、8iではどのように書くんですか
330:NAME IS NULL
07/03/29 14:28:19
select 表1.商品名,表2.価格 from 表1,表2
where 表1.番号(+) = 表2.番号;
331:NAME IS NULL
07/03/29 14:35:56
8iだとLEFT JOIN〜って書き方出来ないん?
332:NAME IS NULL
07/03/29 14:40:11
出来ない。
333:NAME IS NULL
07/03/29 15:04:20 SkrWWvsv
ありがとうございました!
334:NAME IS NULL
07/03/30 00:15:54
10gの外部参照って(+)じゃダメなの?
335:NAME IS NULL
07/03/30 01:36:22
ダメじゃないけど新規開発するなら OUTER JOIN 使うべき。
慣れればこっちのほうがわかりやすいよ。
336:NAME IS NULL
07/03/30 02:36:48
(+)はOracleでしか使えないし、将来的には廃止される可能性もあるしね。
337:NAME IS NULL
07/03/30 07:16:46
パフォーマンス的に問題になることが多いのが
外部結合を使用している場合が多いんだよなぁ
338:NAME IS NULL
07/03/30 09:21:55
2台のサーバ(しかも8iと9i)にデータベースリンク張って外部結合させたviewを書いたことがあるよ
検索が遅すぎて使い物にならなかった
もともと8iのみだったけど、容量が足りなくなったのでサーバ増設
しかも、まだ8iが手に入ったのに9iを導入なんて馬鹿なことやってた
で、そのデータベースを使用したシステムが軒並みエラーを起こして始末書を何枚も書かされる羽目になったよ
339:NAME IS NULL
07/03/30 19:44:08
>>338
自分で導入したんだったら始末書書くのも自業自得だろ.
ついでにその場合に遅くなる問題はデータベースリンクで連携してる部分だろ.
DBリンク使わずに外部結合してのパフォーマンス測定やった?
外部結合する時でも普通はきちんとキーやインデクス使えば十分実用レベルでしょ.
っていうか導入する前にViewとかなら性能試験やっとけよ.
DBの容量が足りなくなったんだったら,HDD増設して普通に表領域増やせよ.
なんか他にも突っ込み所あるような気がするけど後ヨロシコ
340:NAME IS NULL
07/03/30 20:36:45
どうしてコストが高い方を選んで、わざわざ遅くするような選択するかな〜
もちろん維持コストも高くなっているんだよな・・・おまえクビw
341:338
07/03/30 20:51:19
俺が導入を決めたんじゃなくて、上が導入を決めたんだよ
で、こっちには「新しくDBサーバ買うから」しか言わない
しかも、置き換えるのではなく、よく使うデータを新しい方に移す方針たててた
>っていうか導入する前にViewとかなら性能試験やっとけよ.
1週間前に言われて十分な検証をとれないままやらされたんだよ
しかも、当時社内には9iなかったからデータベースリンクも8i同士でしかやってない
そりゃ、トラブるわなってこと
342:NAME IS NULL
07/03/30 21:07:08
営業が売りつける事しか頭になくて、かつ開発が発言力ない組織なんだろ。
その後ユルユルと9に移行したんだろうし。
たぶんw
343:NAME IS NULL
07/03/31 09:55:17 1KZDmp2y
oracle 9i をwindows2000に再インストールして、パッチ9.2.0.4をあてました。
Database configrationからグローバルデータベース作成のための
バッチファイルを作成しました。
そのバッチファイルを起動すると、エラーになってしまいます。
エラー内容は
・CREATE OR REPLACE ?????????
・データベースがオープンしていません。
などです。
オラクルのサービスが起ち上がってるのは確認したんですが、
それ以外で何を確認すればいいのかがわかりません。
オラクルを再インストールしても同じ現象になります。
どなたか教えてください。
344:NAME IS NULL
07/03/31 18:22:12
>>343
PSR入手できる環境なら、
OiSCに訊くのが一番早い。
345:NAME IS NULL
07/03/31 23:06:24
>>343
バッチを作らずに普通にDBCAからそのまま作成してみたら?
結構DBCAで作成されるバッチにはバグがあったりするよ。
346:NAME IS NULL
07/04/01 09:56:46
>>344-345
ありがとうございます。
DBCAから作ってみて、だめだったら問い合わせてみます。
347:NAME IS NULL
07/04/02 17:32:09
単純だけど、以前から疑問に思ってたので教えてください。
shellから発行したSQLを中断したいんだけど、killしたらロールバック
されてしまうんだけど、その時間が勿体無いので、ロールバックせず
に中断したいんだけど、無理?
348:NAME IS NULL
07/04/02 20:28:17
電源落とせば?
349:NAME IS NULL
07/04/02 20:50:33
>>348
電源落とす方が時間かかるでしゅ
350:NAME IS NULL
07/04/02 21:08:40
>>347
smonをkillしたらabortと一緒の動きしたと思ったけど
351:NAME IS NULL
07/04/02 22:50:56
>>347
またRDBMSの基本を無視するような動きだな。
352:NAME IS NULL
07/04/03 10:45:27
レスどうもです。
確かにOracleの基本を無視してるんですが、
実運用では、単にワークを作る処理とか、そのSQLは
捨てても他のプロセスを生かしたいという状況があるもので・・
353:NAME IS NULL
07/04/03 11:06:24
>>352
どっちにしろ再度実行する前に
「これまでの処理をロールバックする」とか
「実行前に初期化する」って処理が必要なんじゃね〜の?
だったらロールバックした方がいいだろ。
次に実行云々の前に、別のShell立ち上げて
接続すれば、既存トランザクションの影響は受けないしなwww
354:NAME IS NULL
07/04/03 12:16:51
>>353
んだな。
どうせトランザクションの排他レベルはシリアライザブルなんだから、何で
Killった後にいちいち待っているのか分からんな。
355:NAME IS NULL
07/04/04 21:39:04
あるマシン上のOracle10g上のDBを
別のマシンのOracle8iにエキスポート
するには8iのクライアントで10gでつないで
EXPしてからそのファイルを8iのクライアント
でIMPすればいいようなのですが他にいい方法
はないでしょうか?
356:NAME IS NULL
07/04/04 22:01:16
10g→8iなんてできるんか?
357:NAME IS NULL
07/04/04 22:56:06
サポートマトリックスを確認したが、10g => 8iはサポート外だな。
DB Linkがサポートされているかどうか知らんが、そっちの方が
まだ可能性がありそうだな。
358:NAME IS NULL
07/04/05 00:48:19
>>357
サポートマトリックスってどれ?
自分の見る公式の奴にはEXP/IMPは書かれていない
マニュアルだと7.xでもインポートできるような書き方されてる
359:NAME IS NULL
07/04/05 04:35:37
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のパッチをあてる必要があるな。
360:NAME IS NULL
07/04/05 07:52:44
>>355
8.1.7のexpで取得したダンプなら
10gのimpでインポート可能。
361:NAME IS NULL
07/04/05 08:23:20
>>359-360
>>356-357
362:NAME IS NULL
07/04/05 10:48:29
Oracle10gをテスト用に自分のPCを入れています
他の人のPCにクライアントを入れて自分のPC内のDBに接続しようとしたらタイムアウトして接続できませんでした
そのPCからサーバにある本番環境にはアクセスできました
Net Configuration Managerを使用して設定しました
設定内容は確認しましたが、おかしいところはなかったです
どうすれば接続できるようになりますか?
OSはWindowsXP SP2です
自分のPC内のDBの設定、もしくは共有設定あたりがおかしいのかなと思うのですが・・・
363:NAME IS NULL
07/04/05 11:10:16
エスパーさんお呼びですよー
っていうのはおいといて、WindowsFirewallとかが弾いてるとかかな?
364:NAME IS NULL
07/04/05 16:42:45
>>361
残念ながら8.1.7→10.xは
8.1.7のサポート終了時に
マトリックスから外されただけで、
正式サポートされていた
バージョンの組み合わせだよ。
365:362
07/04/05 19:47:17
>>363
そのまさかでした
あほらしい質問して申し訳ない
でも、WindowsファイアウォールにSQL Plusの追加をしても1521空けてもアクセスできませんでした
これ以上はスレ違いになりますか
366:NAME IS NULL
07/04/05 21:14:53
>>364
疲れるな。。
8.1.7→10.x じゃなくて、>>355 がやりたいと言ってるのは
10g→8i のことでしょ?
ちゃんと読めないの?
367:NAME IS NULL
07/04/06 07:37:10
>>366
だから8iのexpツールでダンプとれば
8iにimpできるんだよ。
ちゃんと読めよwww
368:NAME IS NULL
07/04/06 08:21:52
>>367
へぇ。じゃあ例えば新しいデータ型とかもちゃんと入るのかね。
もちろんやってみてから言ってるんだろうね?
369:NAME IS NULL
07/04/06 08:27:03
>>367
ああなるほどね。やっと >>367 の言ってることがわかったよ。
ちゃんと書かないお前が悪いな。
370:NAME IS NULL
07/04/06 22:21:59
DB板ってなんでこんな人間しかいないんだ?w
みんなコミュニケーション下手すぎwww
371:NAME IS NULL
07/04/07 21:04:10
しかしあら不思議!SQLでしゃべるとみんな饒舌になるのでした
372:NAME IS NULL
07/04/07 21:33:26
>>370
ここの人達、バッファが足りなくてちょっとディスクリード起こしてしまっているんです。
373:NAME IS NULL
07/04/08 13:47:14
>>355
sql*loader使わないと無理
374:NAME IS NULL
07/04/09 21:20:27 dgbyTs5E
windows版oracle10G パッチの適用方法を教えて頂けないでしょうか?
readmeにはUNIX版しかないので困っております。どこかに説明してあるサイトやどなたか教えて頂けないでしょうか?
375:NAME IS NULL
07/04/09 21:31:30
ouiを起動して、パッチのjarを指定するだけ。
376:NAME IS NULL
07/04/09 21:45:39 dgbyTs5E
>>375
CDから解凍する必要はないですか?
377:NAME IS NULL
07/04/09 22:16:59
あったっけ?
っていうか、やってみればいいじゃん。
パッチのリストが読み込まれればそれで成功でしょ。
甘利にも簡単なことなんで、いちいち細かいことを覚えてないって人が俺も含めてほとんどだと思うよ。
378:NAME IS NULL
07/04/10 21:56:22 D+v1PS8Y
sqlplusでデータベースに接続出来ない。
ORA-12154: TNS: 指定された接続識別子を解決できませんでした
↑これ。
tnsnames.oraとか知らんから馬鹿でもわかるように解決する手順教えてくれ。
379:NAME IS NULL
07/04/10 22:20:12
>>378
サポート契約しているベンダーへレッツゴー。
380:NAME IS NULL
07/04/11 07:51:05
>>378
Oracle Netの勉強汁www
じゃなきゃサポート契約汁www
381:NAME IS NULL
07/04/17 02:33:01 VDbMfobx
接続に関して躓いているので、アドバイスをください。
環境はlinux に10g を入れてサービスとして起動しようとしています。
一台のマシンにインストールしたオラクルに対して
リスナーを設定し、複数のDB (=インスタンス)を作成したわけですが、
片方のDB に対してアクセスができませんでした。
tnsname の設定は問題ないと思っています。
listener の設定が不安です。
調べていると、listener のファイル内に作成した各DB のSIDを書くような記述が見受けられるのですが、
netca で行うリスナーの設定では、そのような入力は求められませんでした。
複数のDB へのアクセスを一つのリスナーで受けることは可能なのでしょうか?
また、その場合のlistener.ora の記述方法はどういったものになるのでしょうか?
382:NAME IS NULL
07/04/17 07:36:18
>>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のセクションを複数記述する。
383:381
07/04/17 08:43:50 VDbMfobx
>>382
ご回答ありがとうございます。やってみます。
ちなみに、リスナーを複数用意するのはどういった場合なのでしょうか?
一つでも使えるのに、複数作成することもあるのですか?
384:NAME IS NULL
07/04/17 09:01:39
>>383
複数NICで負荷分散させたいときとかに、
複数リスナー立ち上げる。
385:NAME IS NULL
07/04/18 02:10:18
>>384
複数NICの場合はにはO/S側でチーミングなりボンディングすればいいんでないの?
386:NAME IS NULL
07/04/18 02:24:47
レイヤーが違うから、どっちがいいかは設計方針によるんじゃないの?
listenerでやる方が高度なことができるけど、反面Oracleのバグや仕様に悩まされることもあるかもしれない。
とかね。
387:NAME IS NULL
07/04/18 09:47:54
アプリケーションプログラムの接続のためにlistener.oraにSIDやGLOBAL_DBNAME
を設定するのは邪道。これはOracle8のころのやりかた。
Oracleインスタンスの初期化パラメータLOCAL_LISTENERを設定し、Oracleインスタンス
からOracleリスナーに自分を登録させるのが今の方法。
388:NAME IS NULL
07/04/18 13:43:26
なるほど。
389:NAME IS NULL
07/04/20 16:49:47 W5Lcj5GJ
オラクルとアクセスとSQLの違いを教えてください。
何を導入したらよいのか解らず困っています。
よろしく御願い致します。
390:NAME IS NULL
07/04/20 17:23:40
違いが多くて同じ箇所をあげたほうが早い。全く別物だと思ってOracleの入門書からはじめよう。
391:NAME IS NULL
07/04/20 19:07:33 v3OhOLUY
沖縄県の方へ(命に関わる注意事項です)
沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
392:NAME IS NULL
07/04/20 21:17:46
>>389
そんなこと聞いてるようなレベルならアクセスにしとけ
つかSQLてMYSQLのことか?
393:NAME IS NULL
07/04/21 02:31:48 Vxfi8HR4
ここで言っているインスタンスってDB のことでいいですか?
DBCA とかで, DB 作成というのがありますが、それはインスタンスの作成である。と。
394:NAME IS NULL
07/04/21 09:50:03
DBとインスタンスは1対1に対応するからね。
DBCAで作るのはDBだな。
インスタンスはSGAとプロセスの集合を指す。
395:NAME IS NULL
07/04/21 11:46:51
>>394
必ずしも1対1とは限らない。
RACの様に複数インスタンス対1DBという対応だってありうる。
396:NAME IS NULL
07/04/21 17:47:21 iUeSgJd/
低レベルな問い合わせですみません。
教えて下さい。
バージョンは9iです。
・SQL1文で
・SELECTの結果を見て、動的にFROM句/where句を変えたい。
・正確にはプロCOBOLん中で使います。
・PL/SQLは使用できません。
↓実イメージ
SELECT
名簿.生徒名,
名簿.理系文系区分
理系費用.学費,
文系費用.学費
from
名簿, 理系学費, 文系学費
(このままだと、学費テーブルとのジョインが上手くいかないのはわかっています。)
名簿テーブルの理系文系区分が、理系だったら、理系費用テーブルをジョインしたい。
文系だったら、文系費用テーブルをジョインしたい、みたいな。。。
一応、解決策は一つ思い付いています。
理系と文系のそれぞれ費用テーブルにジョインした問い合わせを、
UNIONすればイイってな感じは思いついてます。
ただ、SQLん中でIF文とか書けるのかなぁ、というのがわからなくて。
397:NAME IS NULL
07/04/21 18:51:54
>>396
IF文は要らない。
名簿テーブルの理系/文系の部分集合と結合できれば良い。
select a.生徒名,a.理系文系区分,b.学費
from 名簿 a,理系学費 b
where a.理系文系区分=理系
union
select a.生徒名,a.理系文系区分,b.学費
from 名簿 a,理系学費 b
where a.理系文系区分=理系
398:NAME IS NULL
07/04/21 19:15:08
文系は廃止です!
399:NAME IS NULL
07/04/21 19:24:34
やさしいな
漏れなら参考書で調べたのか?と聞いてやりたいが
400:396
07/04/21 20:44:57 iUeSgJd/
>>397
ありがとうございます。
しかし、私の書き方が悪かったようです。すみません。
397様の書いてくださった問い合わせ文はイメージできていたんです。
ただ、別の解決策がないのかを模索していました。
(PL/SQL以外で)SQL文の中にIF文が書けるのか、
動的に構文を書き換える事が出来るのかが知りたかったのです。
>>399
調べてみました。
IF文で逆引きを行うとCASE文しか見つけれませんでした。。。
401:NAME IS NULL
07/04/22 00:11:59
>>396
個人的には学費テーブルを文系用、理系用に分割していることが
設計ミスのようにも感じますが、
>IF文で逆引きを行うとCASE文しか見つけれませんでした。。。
そのCASE文&スカラー副問合せを使用して、
SELECT 生徒名,理系文系区分
,CASE 理系文系区分
WHEN '文系' THEN (SELECT 学費 FROM 文系学費)
WHEN '理系' THEN (SELECT 学費 FROM 理系学費)
END 学費
FROM 名簿
402:396
07/04/22 00:49:45 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
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4327日前に更新/231 KB
担当:undef