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に操作しないといけないことが原因らしかった。
対応として接続を
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でちゃんと実行できたか確認
大丈夫っぽい
<メモ>
Col 列名 format a(byte数)
set linesize (byte数)