oracle DB 19cの環境構築で詰みまくったので手順をまとめた。

oracleDBのインストール～PDBを作成までの手順です。
Web接続の記載もしていますが現在接続できず困って一旦停止中です。誰か助けて。

なお、本記事は設定しやすいサイトの紹介＋私がつまづいた部分の解説を記載しております。

インストールでもつまづいたし、PDB作成後に追加したユーザーでログインできずに２回ほど再インストール、色々大変でした（調査とか）。
いつか、oracleを使うようなことがあったら生かしていきたいです。

導入端末のスペック
Win10-pro、ストレージは256GB（ほぼ空き）、メモリは16GBの
中古3万円相当の端末スペックにwindows10-proを入れました。

## １，インストール～ユーザー設定まで
インストール手順（PDB同時作成）

まず、oracleからDBクライアントをダウンロードしたら、回答ファイルを以下のフォルダに配置してください。
無い場合は作成してください。
『C:\app\Oracle』
続いて、インストールに入ります。

http://www.ac.cyberhome.ne.jp/~coloration-style/Oracle/Oracle19c_Install.html

最初は個別で作成する方法で進めましたが、こちらで行ったほうが入りやすいです。
念のためステップ4/8の入力後、スクリーンショットを残しましておきましょう。


## ２，インストール後の確認
まず、listener.oraとtnsnames.oraはコピーファイル作ります。
4/8のスクリーンショットと見比べて違いがある場合は書き換えを行いましょう。

リスナーの再起動からコマンドプロンプトで作業を進めてください。

https://qiita.com/AkihikoOgata/items/f17f118b2605f0b90892

最後の接続確認まで進めば、導入完了です。
ここからはテーブル作成になります。


### 思ったようにいかないとき。
接続できない、作成したユーザーでログインできないときはこちらです。
黒背景の見方は、ページ内に別途記載しています。
また、これ以外につまづいた箇所があったらコメントに記載していただけると助かります。

```思ったようにいかないとき.確認変更１
///tnsnames.oraを変更した場合は変更前に戻す。
///tnsnames.oraを変更していない場合は4/8のスクリーンショットと比較し間違い探しを行う。
ORCL =　　　///4/8の一番下「プラガブルブルデータベース名」、SIDとも言う
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.cp.jp)  ///サービスネームは「グローバルデータベース名」を入れる。
    )
  )

```

```思ったようにいかないとき.確認変更２
///SIDとサービスネームをコピーできるようにしておく。
///コマンドプロンプトを管理者権限で起動"

///１，SQLplusログインし接続確認。
sqlplus sys/[パスワード] as sysdba
SHOW CON_NAME
"CON_NAME"
"------------------------------"
"CDB$ROOT"

///２，SQLplusでPDBオープン～切り替え
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL SAVE STATE;
ALTER SESSION SET CONTAINER=[SID名またはサービスネーム];

///３，PDBが切り替わったかチェック。
SHOW CON_NAME;
select name, open_mode from v$pdbs;

"CON_NAME"
"------------------------------"
"ORACLE"　　　///ここに表示されるのがPDB名

///ここまでできていれば２のリンクの〇３から再度、ユーザー設定とログイン試す。
///それでもだめなら質問する。以下のコメント欄でもいいし。別なコメント欄でもいいし。
///迷惑かもと思わずに聞くと、案外答えてくれる。それがインターネッツ。
```


## 3、SQLDeveloperとかのインストール
コマンドプロンプトを利用したSQLPulsだとインポートが面倒に感じるため入れました。
#### SQLDeveloperをインストールする。
https://www.oracle.com/jp/tools/downloads/sqldev-downloads.html

解凍したファイルを任意のフォルダに移動し。「sqldeveloper.exe」から起動する。
※解凍したファイルはOracleHomeと同じ場所に配置するのをおすすめ。

リスナー再起動とか面倒なときは、こちらからログインを試してみるのもあり。


#### 使い方
https://itsakura.com/sqldeveloper-use

公式

https://www.oracle.com/jp/techincal-resource/article/jissenn12c/jissen12c.html

分からない場合は下のURLから見ましょう。
後からポップアップする広告にイライラしますが、内容は易しいです。
https://style.potepan.com/articles/24899.html



###### 実使用での設定変更
導入時は不要なので飛ばしてよい。

https://mat0401.info/blog/oracle-sql-developer-configure-example/


## 4、ODBCの設定
ODBCはクライアントインストール時に完了しているはずなのでここでは設定していく。

#### ODBC設定
https://www.microlab.jp/xcutedoc/documents/sup_db/Oracle.htm

12cだが、手順は同じ、OracleHomeを選択して設定していく。

#### ODBCインストール（多分不要）
https://www.oracle.com/jp/database/technologies/instant-client/downloads.html

上記URLから
Instant Client for Microsoft Windows の64bitをインストールする。
でも念のため32-bitも入れた。
何かしら環境設定が必要だった気がする。


## 5、web接続とか

今後試していきたいです。
接続方法の情報が結構ばらけているのでドキュメントから読み進めていったほうがいいかも。

https://kiyokura.hateblo.jp/entry/20110704/p1

これはWebMatrixというアプリ上でのやり方だけど、書き方を変えるとvisualstudioでも再現できるし、つなげ方がよくまとまっているので参考にしたい、
```WebMatrix.Data.Databaseを使うパターン.メモ
[1] System.Data.OracleClientを使う
[2] System.Data.OleDb経由でOracle製のOLE DBドライバを使う
[3] System.Data.Odbc経由でOracle製のODBCドライバを使う
WebMatrix.Data.Databaseを使わないパターン
[4] OPD.NETを使う
'''

```メモ.URL
・oracle用のVisualStudioツール
https://www.oracle.com/jp/database/technologies/dotnet-odtvsix-vs2019-downloads.html
無くていい気がする。

・Nuget追加
Oracle Managed Driver
https://j-levia.hatenablog.jp/entry/2017/04/16/163841
参照の追加でも十分な気がするが環境設定とか勝手にしてくれるので楽かも？


```



## help

自分で書いてる資料の見方。

``` 黒背景の見方.
『///』は解説
『"coment"』は出力結果
『[日本語]』は『日本語』の内容に差し替える。
何もないときはコード、入力内容

例
ORCL =　　　//SIDのことPDBアクセスするときに使う
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.cp.jp)  ///サービスネーム
    )
  )
```


```フォルダについて.
インストール完了後は新たに一つのフォルダが作成され、2つのフォルダがある。
という認識が必要になります。

「oracle_HOME」
C:\app\Oracle\WINDOWS.X64_193000_db_home
「oracle_DB」
C:\app\Oracle\app\User（任意、別途指定できる。）

そして「<Oracle_HOME>\bin」みたいな記載、「意味不明」「どこ？」と思いますが
<oracle_HOME>\bin　＝　C:\app\Oracle\WINDOWS.X64_193000_db_home\bin
となります。

```


# メモ・その他参考URL

oracleDBカスタム導入、参考にはなるがわかっている人用
https://ai-can-fly.hateblo.jp/entry/oracle-database-create

データベースの利用前設定
https://qiita.com/AkihikoOgata/items/f17f118b2605f0b90892
表領域の編集など
https://ts0818.hatenablog.com/entry/2019/09/25/232607

接続設定
インストールファイル
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
接続手順
https://exploratory.io/note/BWz1Bar4JF/Oracle-Instance-Client-Windows-ODBC-Oracle-Database-AGi5wIz7QG

つまづき例
ユーザーが作成できない
https://qiita.com/tokio_k_/items/ed82bf8944f0a9f840f2
次に私が躓いたポイントです。


・その他ノウハウブック
Oracle Developer Tools for VS Codeの基本操作チュートリアル
https://qiita.com/nakaie/items/670388a4a2e0b05a07cf

公式19c

https://docs.oracle.com/en/database/oracle/oracle-database/index.html

https://docs.oracle.com/en/database/oracle/oracle-database/19/odpnt/index.html


## あとがき
こんな微妙な、見づらいまとめ記事、基本的に需要ないと思うが。
非IT人材協会の一員（実在しないので自称）として非IT人材の助けになりたい。
・PDB設定までの苦難
　・oracleDBインストール⇒なんだかよくわからない？？？
　・アンインストール⇒すげー時間かかったけどできた！　
　・再インストール⇒できねぇ！（デスクトップで解凍したフォルダから実行してた）
　・再インストールできた、PDB固有ユーザーでアクセスできない！！
　sysアカウントでユーザー調査
　・SQLPlusの出力結果がわからん。ユーザー作成できている。
　・PDB接続状況調査、Readyが未設定になったりする。PDBが勝手にクローズする。
　・四日悩んで再インストールを決行
　・ついでに公式の実践講座を参考にSQL Developerを導入
　・SQL DeveloperでPDB接続・・・できるわけない⇒できない⇒できた。
　・テーブル作成余裕。
　・asp.netでうまく接続できない。（now）

@AkihikoOgata大先生、記事100万回くらい見させていただきました。本当にありがとうございます。色々な調査のベースにもなりました。