イントロダクション
OracleDBが無料でインストールしました。次は、ユーザーなどを作成し、そこからSQLを使って色々とやりたいので、データをインポートしたいと思います。今回は、その手順を書くことにしました。
Sql*Plusを使用する
現状としては、OracleDBをインストールして、SqlDeveloperをインストールして操作を行おうと思ったのですが、結局はSqlPlusを使うのが一番手っ取り早いということになりました。
SQL*Plusの使い方
オラクルのDBをインストールしたら、付随してくるのがこの*SqlPlus**です。コマンドで実行できるので、GUIでの操作よりも簡単に操作できます。
どのように簡単化というと、権限(ロール)による操作の可能不可能で惑わされないということです。
では早速学習を始めましょう。
まずは、ログイン
「DBサーバーにアクセスして操作する」というのが基本的なスタンスになります。なので、前提としてアクセスするサーバーの情報を以下のように設定します。
ユーザー名:takunoji
パスワード:passwd
次のコマンドが使えるようです。しかし、パスワードが丸見えなので。。。
sqlplus ユーザー名/パスワード
次のコマンドを使用します。
sqlplus ユーザー名
ログイン後のコマンド
これを実行したらパスワードの入力を促されるのでそこで入力
そして、現在の使用しているDBを確認するのに「show con_name」で表示されるのがDB名で、「CDB or PDB」を見分けられる。
SQL> show con_name
そして、ログアウト
SQL> exit
環境変数について
Linuxの場合は下のような環境変数が必要になりますが、Windowsの場合は、レジストリにある値が使用されます。レジストリの値はインストール時にセットされます。
- ORACLE_BASE: OracleDBのインストールした場所
- ORACLE_HOME: セットアップファイル(setup.exe)を展開したディレクトリ(フォルダ)
- ORACLE_SID: データベースの名前(orclなど)
※Linuxの場合は、PATHに「${ORACLE_HOME}/bin」を追加しましょう。
ユーザー、サーバー、DBを指定するログイン
ログインするときのコマンド
sqlplus ユーザー名@サーバーURL:ポート番号/対象のデータベース
これを実行するときは下のような感じです。
sqplus system@localhost:1521/xepdb1
プラガブルデータベースの「XEPDB1」は自動で作成されるPDB(プラガブルデータベース)です。
動画を作成しました。こんな感じです。
プラガブルデータベースにアクセス
一度DBを切断して、再度アクセスします。
sqlplus system@localhost:1521/xepdb1
ユーザーの確認
下のSQLで一覧できます。
select username from all_users;
上のSQLでユーザーを確認したところ、作成したテストユーザーがいないので改めて作成します。
ユーザーの作成
ユーザー作成のSQL構文は以下の通りです。
CREATE USER ユーザー名 IDENTIFIED パスワード
それでは、実際に作成してみます。
ユーザ―に権限を付与します
各種権限がないと何も操作ができません。。。
-
SESSION権限
CREATE SESSION権限は、データベースに接続を許可するシステム権限です。grant create session to test;
-
RESOURCE権限
そのユーザーに関連付けられたスキーマで特定タイプのスキーマ・オブジェクトの作成、変更および削除を可能にします。このロールは開発者やスキーマ・オブジェクトの作成が必要なその他のユーザーにのみ付与されます。このロールにより、オブジェクト・システムの作成権限のサブセットが付与されます。たとえば、CREATE TABLEシステム権限は付与されますが、CREATE VIEW権限は付与されません。付与できる権限は、CREATE CLUSTER、CREATE INDEXTYPE、CREATE OPERATOR、CREATE PROCEDURE、CREATE SEQUENCE、CREATE TABLE、CREATE TRIGGER、CREATE TYPEのみです。
grant resource to test;
-
UNLIMITED TABLESPACE権限
全ての表領域に対するサイズ無制限の表領域割当制限を付与するgrant unlimited tablespace to test;
Sql*Plus起動後にDB接続
connect ユーザー名/パスワード as ロール
これを実行すると下のようになります。
connect sys/パスワード as sysdba
動画では下のようになります。
OracleDBの起動とシャットダウン
シャットダウンするコマンド
shutdown immediate
起動するコマンド
startup
動画では下のようになります。
プラガブルデータベースのみを停止
プラガブルデータベース(PDB)のみを停止する方法です。次のようなコマンドで実行します。
alter pluggable database <PDB名> close immediate
パスワードを忘れたとき
まずは、管理者権限でログインします。管理者のパスワードを忘れているとできません。。。
- sqlplusを起動する
sqlplux /nolog
- SYSDBAでDBにアクセス
connect sys as sysdba
- ユーザー一覧を確認する
<全ユーザー>select username from all_users;
select username from dba_users;
ALTER USER account IDENTIFIED BY password ACCOUNT UNLOCK;
SQL*Loaderを使う
この部分は、まだ作成中です。
コマンドの実行
それで、CSVデータをインポートするのに、SQLLoderが使える事を知りました。SqlPlusと一緒にインストールされているようです。
次のコマンドが使用できます。
sqlldr control=ファイル名(パス)
インポート用のコマンド
そして、DBにデータをインポートするのには、下のようなコマンドを使用します。
sqlldr (ユーザー名)/(パスワード)@(接続識別子) CONTROL=(制御ファイルへのパス) LOG=(ログファイルへのパス) BAD=(エラーファイルへのパス) skip=(読み飛ばすヘッダー行数)」
CSVファイルを作る
詳細に関しては、こちらの記事を参照ください。OpenOfficeを使用して、マクロを作成しました。作成方法に関しても記述しています。
OracleDBにインポート
使用するクライアント・アプリケーションは「Sqpl*Plus」です。コマンドで実行するので、GUIみたいな煩わしさがなく、シンプルに実行できます。
この部分は、現在作成中ですので少々お待ちください。
でわでわ。。。