セックスに翻弄される女性、男性の生きていく姿を描いた映画3選

Oracle使用の参考書を買ったんですが、データベースにはMysqlを使おうと思っていろいろとやっている最中です。XMLファイルの設定で『データベースのホスト、ポート番号、SID等は環境に合わせて変更する必要があります』と書かれてあるのですが、SIDとはなんなんでしょうか?
また私がしようとしている、Oracle用に書かれてあるプログラムをMysqlに書きかえるってことは困難なのでしょうか?お願いします。

このQ&Aに関連する最新のQ&A

MySQL とは」に関するQ&A: MySQLとは何ですか?

oracleとは」に関するQ&A: Oracleとは?

A 回答 (3件)

いきなり XML ファイルの一部を取り出されても、わかりません、て。



Servlet か何かですか?

少なくとも、Oracle では SID と呼んでいるものに相当するものが Mysql のデータベース名ですから
どこかに記述する必要があります。

また、それを読み込んで connect する部分も手を入れる必要があるかもしれません。
    • good
    • 0
この回答へのお礼

焦ったあまりのぶしつけな補足を許して下さい。
Mysql、Oracleともあまりわからないのでもう少しデータベースのことを
自分で勉強してみたいと思います。ちなみにこれはiアプリと連携するServlet
作りの最中でした。また機会がありましたらよろしくお願いします。

お礼日時:2002/12/12 11:02

> SIDとはなんなんでしょうか?



Oracle で SID (システム識別子、とか、データベース識別子と言われる) に相当するものは
Mysql では、データベース名と書かれているはずです。

> Oracle用に書かれてあるプログラムをMysqlに書きかえるってことは困難なのでしょうか?

それは、元のプログラムによります。
単純に、connect して select , update なんていうのだったらたいして大変じゃありませんけど、
Oracle と Mysql は、機能の違いも結構ありますから。

この回答への補足

早速のご返信ありがとうございます。XMLファイルには
<param-name>database-sid</param-name>
<param-value>orcl</param-value>
とSIDの設定がされているのですけど、Mysqlの場合には記述しなくて良いということなんですか?お願いします。

補足日時:2002/12/11 17:22
    • good
    • 0

オラクルのシステムID、システム識別子です。


UNIXならば SET で、出てきます。

Oracle用のプログラムって PL/SQLのことかな?
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSIDとSERVICE_NAMEの違いとは?

tnsnames.oraの中の(CONNECT_DATA=に SIDだったりSERVICE_NAMEだったりしますが、どのような違いがあるのでしょうか?
どちらでもつながるのでいいかとは思いますが、何かメリット・デメリットでもあるのでしょうか?
それとも過去の遺物が未だ共存しているだけでしょうか?
SIDはインスタンスにつけられた名前だと知っていますが、SERVICE_NAMEってなんですか?

Aベストアンサー

SIDはインスタンスの識別子、service_nameはサービス名。
インスタンスとサービスの違いはRAC を勉強されるとよくわかると思います。

サービス名は初期化パラメータのservice_namesで設定します。
設定されていない場合は先述のとおりdb_unuque_name.db_domainになります。
(これが同義と誤解されやすい原因となっているわけですが)

ところで、service_namesパラメータですが、複数形になっていることからもわかるように、複数のサービス名をコンマ区切りで指定できるようになっています。

これをこのように使います。

2ノードRAC環境で、インスタンス1(SID=hoge1)、インスタンス2(SID=hoge2)があったとします。
ノードを意識することなく接続できるようにするためにクライアント側のtnsnames.oraにはこんな設定を追加します。

HOGE.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = hoge.example.com))
)

インスタンス1とインスタンス2のservice_namesパラメータにhoge.example.comを追加します。すると、インスタンス1とインスタンス2にラウンドロビンで接続できるようになります。

ここで、もしtnsnames.oraのservice_name=...がSID=hoge1だったらどうなるでしょう?
インスタンス2のSIDはhoge2ですから一致せず、インスタンス2には接続できず、いつもインスタンス1に繋がってしまいます。

次に、一時的にメンテナンスのためにインスタンス2にアクセスしてほしくないケースを考えます。service_nameであれば、インスタンス2のservice_namesパラメータからhoge.example.comを削除することで(動的に変更できます)直ちにインスタンス1にのみ接続されるようにできます。

ここで、もしORACLE_SIDだったら・・・変更のためにインスタンスの再起動が必要になってしまいますね?

最後にservice_namesは複数登録できます。3ノードRAC環境において、オンライン処理(service_name=ONLINE)、バッチ処理(service_name=BATCH)があったとします。
バッチ処理は1つのノード(インスタンス1)でのみ処理したいとします。オンライン処理は3つのノードでしたいとします。

そんなとき、service_nameであれば、

<<サーバ側の初期化パラメータ>>
1:service_names = online, batch
2:service_names = online
3.service_names = online

<<クライアント側のtnsnames.ora>>

オンライン処理
ONLINE.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = online.example.com))
)

BATCH.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = batch.example.com))
)

と、クライアント側では接続先サーバを気にすることなく構成できますね?
BATCHのノードを1から2にしたい場合の変更はサーバ側のみでできますよね?
serivce_namesの"batch"設定をノード2に移すだけです。

SIDはインスタンスの識別子、service_nameはサービス名。
インスタンスとサービスの違いはRAC を勉強されるとよくわかると思います。

サービス名は初期化パラメータのservice_namesで設定します。
設定されていない場合は先述のとおりdb_unuque_name.db_domainになります。
(これが同義と誤解されやすい原因となっているわけですが)

ところで、service_namesパラメータですが、複数形になっていることからもわかるように、複数のサービス名をコンマ区切りで指定できるようになっています。

これをこのように...続きを読む

Q接続ができません

MySQLに接続するため、コマンドラインで
>mysql -u root
と入力したのですが
ERROR 2003:Can't connect to MySQL server on 'localhost'(10061)
とエラーが出て接続できません。

また、
>mysqladmin -u root password '********'
>mysql -u root -p
もやってみたのですが、
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
とエラーが出てしまいます。

前に同じ質問があったのですが解決されていなかったので、
再度質問させていただきました。
よろしくお願いしますm(_ _)m

OSはWindowsXPです

MySQLに接続するため、コマンドラインで
>mysql -u root
と入力したのですが
ERROR 2003:Can't connect to MySQL server on 'localhost'(10061)
とエラーが出て接続できません。

また、
>mysqladmin -u root password '********'
>mysql -u root -p
もやってみたのですが、
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doin...続きを読む

Aベストアンサー

MySQLのバージョンとか、もし本を見ているなら何の本なのかとか、設定はどのようにしているとか、そういう除法がないと回答できません。

接続できない原因については、エラーメッセージからして、そもそもMySQLが起動していないものと思われます。
起動しないと(起動できるようにしない)とダメです。
恐らく、設定ファイルに間違いがあってMySQLが起動してないんでしょう。
設定ファイルを見直してみましょう。

※インストール先がC:\mysql以外の場合、後で設定ファイルの basedir でパスを指定する必要があるはずなので、そこら辺も。

もし起動しているなら、ポートがLISTENになっているか確認してみましょう。
コマンドプロンプトで
netstat -an
して、エラーメッセージに出ているポート番号10061,3306がLISTENになっているかどうか確認してみましょう。

パーソナルファイアウォールなどの設定で、ポートがふさがれている可能性もあるのかもしれませんが、色々試してみてください。

以上、随分前にMySQLを触っただけなので、最近の動向はあまり押さえてませんが、参考になれば幸いです。

MySQLのバージョンとか、もし本を見ているなら何の本なのかとか、設定はどのようにしているとか、そういう除法がないと回答できません。

接続できない原因については、エラーメッセージからして、そもそもMySQLが起動していないものと思われます。
起動しないと(起動できるようにしない)とダメです。
恐らく、設定ファイルに間違いがあってMySQLが起動してないんでしょう。
設定ファイルを見直してみましょう。

※インストール先がC:\mysql以外の場合、後で設定ファイルの basedir でパスを指定する必要...続きを読む

Qsqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

QOracleで流したSQLのログを取得できますか?

ASP+Oracle9iで作られたシステムがあります。
Oracleの設定などは前任者がしており、まともな引継ぎを受けないまま私が維持運用員となりました。
現在DBからあるレコードが消えてしまい(最初から作られてない可能性もあり)、顧客からクレームがついています。
状況から考えて怪しいプログラムを調査したのですが、原因不明でした。
そこで、Oracleの方で今まで流れたSQLをログとして保存していれば手がかりがつかめるのではないかと思い、情報を探しているのですが見つからないので教えて頂きたいのです。
私はOracleの知識(管理面について)が殆どなく、Oracleを使うことはできるが、Oracleの設定がどういう状況になっているか調べることもできず、資料もありません。

1.そもそもOracleにSQLをログとして保存する機能があるのか?
2.あるとすれば、保存機能が有効になっているか、保存したファイルがどこにあるかをどこで確認できるか?

以上の点についてご存知の方、どうぞ回答よろしくお願いします。

Aベストアンサー

OracleのSQL実行痕跡は以下に示すものの中にあります。
ただし、それぞれの設定レベル、保存方法によって、参照できる範囲は変わります。

1.オンラインREDOログとアーカイブログ
  オンラインREDOログはすべてのOracleデータベースに存在します。
  ですが、そのREDOログのサイズとシステムのアクセス量によって保存期間は変化します。アーカイブログ設定しておけば、古いREDOログはアーカイブとして吐き出されます。
  これらは#1の方がおっしゃったLOGMINERで実行済みSQLを調査することができます。
  アーカイブログモードになっているかどうかは、下記で確認できます。
   SQL> select log_mode from v$database;

  また、どのアーカイブログファイルを調査するかは下記を参照すれば良いと思います。
   SQL> select name,to_char(completion_time, 'yyyy/mm/dd hh24:mi') adate from v$archived_log;

2.フラッシュバック問い合わせ
  これは初期化パラメータUNDO_MANAGEMENTがAUTOに設定されており、かつUNDO_RETENTIONが保存期間として適切に設定されている場合のみ使用できます。
  やっていることは、UNDO表領域(旧RBS用表領域)の中に残っている実行履歴を参照しています。したがって、データベース設計時にフラッシュバック問い合わせを前提としていない限り、使える可能性は低いです。

3.その他
  監査を実行していれば、実行SQLを取得できる可能性があります。
  ただし、監査レベルなどを理解しておかないと、すべてのSQLが取得されていない可能性がありますので、難しいかもしれません。

OracleのSQL実行痕跡は以下に示すものの中にあります。
ただし、それぞれの設定レベル、保存方法によって、参照できる範囲は変わります。

1.オンラインREDOログとアーカイブログ
  オンラインREDOログはすべてのOracleデータベースに存在します。
  ですが、そのREDOログのサイズとシステムのアクセス量によって保存期間は変化します。アーカイブログ設定しておけば、古いREDOログはアーカイブとして吐き出されます。
  これらは#1の方がおっしゃったLOGMINERで実行済みSQLを調査することができま...続きを読む

Qコマンドライン引数の例外処理について

整数a、bをコマンドライン引数として受け取るプログラムを作成するとします。この時、入力するコマンドライン引数を整数であるa、b2つのみとします。

次の事柄について教えて下さい。

(1)コマンドライン引数を2個入力しなかった時の例外処理の仕方
(例えば、コマンドライン引数を入力しなかったり3個入力した時)

(2)整数のコマンドライン引数を入力しなかった時の例外処理の仕方
(例えば、「abc」などと入力した場合)

(3)コマンドライン引数を数の小さいものから入力しなかった時の処理の仕方
(例えば、「3 5」ではなく「5 3」と入力した場合)

初心者なもので…。どなたかお教え下さい。宜しくお願いします。

Aベストアンサー

public static void main(String[] args) {
//引数の範囲チェック
int nLen = args.length;
if(nLen != 3){
System.out.prinln("引数の個数が違います");
return;
}
int nCheck = 0;
for(int nRpCnt=0;nRpCnt<nLen;nRpCnt+){
int nNum = 0;
try{
nNum = Integer.parseInt(args[nRpCnt],10);
}catch(NumberFormatException nfe){
System.out.prinln(
     "引数["+nRpCnt+"]が数字ではありません");
    return;
}
//昇順チェック

}

}

以上。。。。。

QOracle(オラクル)で、日付時刻型の検索方法について

質問させていただきます。
データベースはオラクルを使っていて、
SQL文で、抽出するときにエラーが出て困っています。

日付時刻型が「2005/05/26 19:13:00」という感じで入ってます。
2005/05/26 を抽出したいのですが、
BETWEEN '2005/05/26 00:00:00' AND '2005/05/26 23:59:59'

だと、エラーでできません。
どなた様か、ご教授よろしくお願いしますm(_ _)m

Aベストアンサー

日付検索を行う場合は、以下のように書式を含める必要があります。

col BETWEEN TO_DATE('2005/05/26 00:00:00','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('2005/05/26 23:59:59','YYYY/MM/DD HH24:MI:SS')

ただ、厳密には

col >= TO_DATE('2005/05/26', 'YYYY/MM/DD')
AND
col < TO_DATE('2005/05/27', 'YYYY/MM/DD')

と書くべきでしょうね。

Qデータベース内のテーブル名の取得

お世話になります。
初心者的な質問でしたらすいません。
SQL文にてデータベース内のテーブル名を
調べることができると聞いたことがあるのですが、
可能でしょうか。

もし、可能であれば、SQLの記述を教えてください。
お願いします。

Aベストアンサー

select * from tab;

私の場合、テーブル名だけ手っ取り早く知りたいとき、↑を打ちます。その他の情報も知りたいときは#2さんの仰るとおり、user_tablesで取得します。

QSQL*PLUSにてデータベース名表示

SQL*PLUSにて、起動時ホスト文字列(データベース)を入力しますが、
そのデータベースをSQL*PLUS上、表示する方法を知りたいです。
どこかテーブルに持っているのか、もしくは、表示コマンドがあるのか、ぜひ教えてください。
以上、よろしくお願いします。

Aベストアンサー

インスタンス名でよいのですか?一応、インスタンス名とホスト名を表示するSQLを書きます。

select INSTANCE_NAME, HOST_NAME from v$instance;

回答が的を射ていない場合は補足をお願いいたします。

QSQL実行結果の出力を見やすくしたい

Oracle 10gを使用して勉強をしています。
SQL実行結果の出力が見にくくて困っています。
以下、(1)は自分が実行したSQL文ですが、(2)のように見やすく出力したいです。

どのようにすればよいのでしょうか?
また参考となるWEB URLがある場合、頂けたら嬉です。

(1)自分が実行したSQL文
SQL> select
2 sid,serial#,username,osuser,program,machine,terminal
3 from v$session
4 where type = 'USER';

SID SERIAL# USERNAME
---------- ---------- ------------------------------
OSUSER PROGRAM
------------------------------ ------------------------------------------------
MACHINE
----------------------------------------------------------------
TERMINAL
------------------------------
543 39 SYS
oracleuser sqlplus@HOGE-net (TNS V1-V3)
HOGE-net
pts/1


SID SERIAL# USERNAME
---------- ---------- ------------------------------
OSUSER PROGRAM
------------------------------ ------------------------------------------------
MACHINE
----------------------------------------------------------------
TERMINAL
------------------------------
544 5 SYS
oracleuser sqlplus@HOGE-net (TNS V1-V3)
HOGE-net
pts/0


(2)こんな感じで出力させたいです。
select
sid,serial#,username,osuser,program,machine,terminal
from v$session
where type = 'USER';

SID SERIAL# USERNAME OSUSER PROGRAM  MACHINE   TERMINAL
---- ------- --------- ------ ---------- ---------  --------
139     2      TEST Owner sqlplus.exe   HOGE_XP HOGE_XP
144     20    SYSTEM      ORACLE.EXE HOGE_XP  HOGE_XP

Oracle 10gを使用して勉強をしています。
SQL実行結果の出力が見にくくて困っています。
以下、(1)は自分が実行したSQL文ですが、(2)のように見やすく出力したいです。

どのようにすればよいのでしょうか?
また参考となるWEB URLがある場合、頂けたら嬉です。

(1)自分が実行したSQL文
SQL> select
2 sid,serial#,username,osuser,program,machine,terminal
3 from v$session
4 where type = 'USER';

SID SERIAL# USERNAME
---------- ---------- ---------------------------...続きを読む

Aベストアンサー

set pages 10000 lines 10000 trims on
col username for a30
col osuser for a30
col program for a30
col machine for a30
col terminal for a30

select
sid,serial#,username,osuser,program,machine,terminal
from v$session
where type = 'USER';

こんな感じでどうですか?
ちなみに、a30は30文字分の幅という意味です。
number 型のデータの場合には指定方法がかわりますが、
number 型はそのままでも表示が乱れることはあまりないので、
それほど気にしなくてもよいでしょう。

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404


人気Q&Aランキング

おすすめ情報