激what are you talking about状態

バーニングめいぽおじさん

ORACLE12g 環境構築

勉強用のデータベース構築のために前日ダウンロードまでは済ませたので、今日はインストールとユーザーの作成

 

勉強用の教材には

ORACLE MASTER Bronze完全詳解+精選問題集を使用。

こちらでデータベースとユーザー作成のsqlが配布されているので、そちらを利用。

 

<インストール>

詳細は割愛、躓いた部分として、2個目のファイル(winx64_12102_database_2of2)のComponents下のフォルダ類を1個目のファイルのComponents下(winx64_12102_database_1of2)に移してからsetupをしなければならないのに、忘れて実行していたこと。

 

<データベース接続、ユーザー・テーブル作成>

ORACLE MASTER Bronze完全詳解+精選問題集で配布されているsqlを実行したところ

ORA-65096 エラーが発生。

詳細を見てみるとユーザー作成段階で怒られている

原因としては12cからは親DB(CDB)に繋がってしまうようになっていて、実際に操作するPDBに操作しないといけないことが原因らしかった。

f:id:matayoro:20170918202706p:plain

 

対応として接続を

alter session set container = PDB

で変更してからユーザーを作成する必要らしい。

またログインの際にはPDBに変更していても

 

sqlplus ユーザー名/パスワード@pdb

conn ユーザー名/パスワード@pdb

のように@を使ってリスナーを経由して接続することを名義しないと接続が失われてしまった。

 

上記でやっとログインができるかと思いきや

お次はORA12154 エラー

原因を調べてみるとtnsnames.oraにPDB名が追加されていないのが問題だった。

ORACLEインストール先\product\12.1.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

 

PDB名=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)

を追記

 

これでやっとログイン。

 

配布sqlのCREATETABLE以下をコピペしてテーブルも無事作成(先頭にSPOOL)だけつけました。

 

select * from tabでちゃんと実行できたか確認

f:id:matayoro:20170918211634p:plain

大丈夫っぽい

 

<メモ>

Col 列名 format a(byte数)

set linesize (byte数)