読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

【プログラミング 67.5時間】Oracleのクライアントとサーバーの接続など。tnsnames.oraとか色々。

Oracle
<スポンサーリンク>

Aであり、かつBである→AND

Aであるか、またはBである→OR

()で囲った条件→AND→OR。の順番で論理演算が行われる。

・条件によって値を変えて表示したい場合の構文

CASE
	WHEN 条件1 THEN 表示する値
	WHEN 条件2 THEN 表示する値
	
	ELSE すべての条件に当てはまらないときの値
END
SELECT col1,col_D,col_M,
	CASE
		WHEN col_D >= 70 THEN '70以上'
		WHEN col_D >= 60 THEN '60代'
		WHEN col_D >= 50 THEN '50代'
		ELSE '50未満'
	END
FROM tb2;

データディクショナリとはOracleデータベースに関するあらゆる情報を保管している表のこと。

表の情報に関するデータディクショナリビュー
USER_TABLES:現在のユーザが所有している表を参照できる。
ALL_TABLES:現在のユーザがアクセス可能な、すべての表を参照できる。

Oracleの「接続識別子」とは「クライアントからサーバに接続するときに必要な情報」につけた名前のこと。

OracleクライアントがOracleサーバに接続する仕組み
クライアントからネットワーク経由でOracleにアクセスする場合は、Oracleのインストール時に「サーバークラス」を選択しておく必要がある。
クライアントからOracleデータベースに接続するには、クライアントとなるマシンにOracle Clientをインストールし、接続のための設定を剃る必要がある。

サーバー側にはリスナーを設定し動作させる必要がある。

リスナーとは、クライアントからの接続要求を監視し、接続を確立させる役割を果たすプロセスのこと。

クライアントからの接続で重要なのは「listener.ora」である。
「(Oracleホーム)\product\(version)\dbhome_1\NETWORK\ADMIN」にある。
「lisner.ora」には「リスナーの名前」「プロトコル」「サーバーの名前(IPアドレス)」「ポート」などの情報が記載される。
listener.oraの記述例

LISTENER =
(DESCRIPTION_LIST =
	(DESCRIPTION =
		(ADDRESS = (PROTOCOL = TCP)(HOST = サーバの名前)(PORT = 1521))
	)
)

クライアントからOracleサーバに接続する場合、最初にクライアントからの接続要求をリスナーに発信する必要がある。
最も一般的な方法はtnsnames.oraのファイルを使った方法である。

クライアントからOracleデータベースに接続するには、クライアントとなるマシンにOracle Clientをインストールする必要がある。
tnsnames.oraの記載例

ネットサービス名 =
	(DESCRIPTION =
		(ADDRESS = (PROTOCOL = TCP)
			(HOST = hoge-PC)
			(PORT =  1521)
		)
	)
		(CONNECT_DATA =
			(SERVICE_NAME = サービス名(グローバルサービス名))
	)
)

tnsnames.oraはNet Configuration Assistantを利用して作成可能。

クライアントからOracleサーバにに接続するときは、
SQLPLUS ユーザ/パス@接続識別子
と、接続識別子を付ける必要がある。接続識別子とは、「ネットサービス名」である(上のtnsnames.ora参照)

クライアント側では、この接続識別子から「プロトコル・ホスト名・ポート番号・グローバルデータベース名」を調べる。
それにユーザー、パスワードを加えて、リスナーに向かって接続の要求を送信する。

環境変数LOCALに接続識別子を設定しておけば、@接続識別子の部分を省略できる。

windows→SET LOCAL=ネットサービス名
linuxならTWO_TASK

tnsnames.oraを使わずに直接接続のための情報を記述する方法のことを、「簡易接続ネーミング」という。
間に接続ネーミングは
「SQLPLUS ユーザ名/パスワード@ホスト名:1521/サーバー側のサービス名」のように記述する。
@ホスト名で接続できない場合は、代わりにIPアドレスを指定する。

<参考>

基礎からのOracle (DVD付) (プログラマの種シリーズ)

基礎からのOracle (DVD付) (プログラマの種シリーズ)


この本にすごく詳しく書いてあります。