2020-12-09に更新

PL/SQL学習のメモ

概要

忘れずに、随時追記
2020/12/09 - 1.0 作成

PL/SQL

SQLをプログラムのように実行できるOracle社が提供している独自のプログラミング言語
一度の呼び出しで複数のSQL実行や、loopやif等の操作も可能
PL/SQLのプログラムはデータベースに保存が可能、「ストアドプログラム」と呼ぶ

データベースの実装形態

・スタンドアロン型
1台のマシンにデータ/ファイル、アプリケーション、データベース管理システムを持つ。小規模開発向け
 
・ファイル共有型
1台のサーバマシンにデータ/ファイルを持つ。複数のクライアントマシンが操作
クライアントマシンがデータ全体に対してロックをかけて操作するため、同じデータを同時に操作できる利用者は一人
 
・クライアント/サーバ型
1台のサーバマシンにデータ/ファイル、データベース管理システムを持つ。複数のクライアントマシンが操作
サーバマシンのデータベース管理システムがレコード単位でロックをかけれため、同じデータでも異なるレコードなら同時に操作できる利用者は複数

Oracle Database 12c 以降の変更

Oracle Database 12c r1から "マルチテナント・アーキテクチャ" が導入
単一のデータベース内に複数のデータベースを配置して管理する構成

Oracle Database 18c インストール時の接続情報を例にすると

マルチテナント・コンテナ・データベース「 localhost:1521 」
プラガブル・データベース「 localhost:XEPDB1 」
EM Express URL「 https://localhost:5500/em 」

マルチテナントコンテナデータベース(CDB)が単一のデータベース、
プラガブルデータベース(PDB)が複数のデータベースにあたる
PDBはスキーマや表領域やデータのセットになるので、実質従来のDB。

SQL*Plusでユーザ作成時の注意点

CDBはルートコンテナとも呼ばれており、ログイン時最初に接続される
接続直後に通常のユーザ作成を実行すると、以下のようなエラーが出る

行1でエラーが発生しました。:
ORA-65096: 共通ユーザーまたはロール名が無効です

CDBでは共有ユーザ(common user)と呼ばれる特殊なユーザしか作成できない。通常のユーザ作成を行いたい場合は、 CDB の下に当たる個々の PDB へ接続を切り替えた後に実施する。
PDBについては Oracle Database 18c Express Edition インストールなら
デフォルトで XEPDB1 という PDB が作成されているので以下のように入力

alter session set container = XEPDB1;

SQL*Plus 管理ユーザでのログイン

sqlplus {username} / (password) as sysdba

usernameには、SYSまたはSYSTEM管理ユーザーを使用できます。プロンプトで、インストール時に設定したパスワードを入力します。SYSユーザーを使用した場合は、ユーザー名の後にAS SYSDBAを含める必要があります。
引用元:SQL*Plusの起動およびデータベースへの接続

最後に

仕事くれ

ツイッターでシェア
みんなに共有、忘れないようにメモ

shima

エンジニアに似た何か

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント