独習Oracle PL/SQL(株式会社 システム・テクノロジー・アイ 林 優子)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 独習Oracle PL/SQL

独習Oracle PL/SQL



形式:
書籍
発売日:
ISBN:
9784798116167
定価:
3,080(本体2,800円+税10%)
仕様:
B5変・360ページ
分類:
データベース
シリーズ:
独習
  • このエントリーをはてなブックマークに追加

疑問を残さないやさしい解説

Oracleデータベースを自在に操作するための「PL/SQL」言語を、サンプルコードや実行結果を示しながら丁寧にわかりやすく解説した入門書です。PL/SQLの構文からプログラムの書き方、パッケージの使い方、パフォーマンス向上まで、実機を前に講義を受けているような感覚でしっかり学習できます。また、各章には「前章の理解度チェック」「練習問題」「この章の理解度チェック」のコーナーがあり、より理解を深めることができるように工夫されています。


第1章 学習の準備

1.1 演習環境の作成
1.2 SQLの復習
1.3 SQL*Plusの機能
第1章の理解度チェック

第2章 PL/SQLの概要

前章の理解度チェック
2.1 PL/SQLとは
2.2 PL/SQLの基本構造
2.3 セミコロン/スラッシュとコメント
2.4 実行部の役割
2.5 例外処理部の役割
2.6 宣言部の役割
2.7 PL/SQLブロックのネスト
第2章の理解度チェック

第3章 変数と定数の定義

前章の理解度チェック
3.1 PL/SQLプログラミングにおける注意事項
3.2 変数の宣言
3.3 変数の命名規則
3.4 変数への代入と初期値の定義
3.5 NOT NULL制約の定義
3.6 定数の宣言
3.7 初期値に変数や定数を使用する
第3章の理解度チェック

第4章 PL/SQLで扱うデータ型

前章の理解度チェック
4.1 データ型の種類
4.2 スカラー型とLOB型
4.3 コンポジット型
4.4 属性
第4章の理解度チェック

第5章 制御構造(1)~反復

前章の理解度チェック
5.1 FORループ
5.2 WHILEループ
5.3 基本ループ
第5章の理解度チェック

第6章 制御構造(2)~分岐

前章の理解度チェック
6.1 IF文
6.2 論理演算と複数条件の指定
6.3 NULL文
6.4 CASE文
第6章の理解度チェック

第7章 PL/SQLにおけるSQL文

前章の理解度チェック
7.1 PL/SQLで使用できるSQL文
7.2 SELECT INTO文
7.3 暗黙の型変換とデータ型
7.4 ループとSELECT INTO文の組み合わせ
第7章の理解度チェック

第8章 カーソルの基本

前章の理解度チェック
8.1 カーソルとは
8.2 明示カーソル
8.3 カーソル属性
8.4 カーソルの再オープン
8.5 明示カーソルから定義したRECORD型
8.6 カーソル宣言で変数を使う
第8章の理解度チェック

第9章 明示カーソルの応用と暗黙カーソル

前章の理解度チェック
9.1 パラメータを使うカーソル
9.2 カーソルのロック制御
9.3 カーソルFORループ
9.4 暗黙カーソル
第9章の理解度チェック

第10章 例外処理

前章の理解度チェック
10.1 例外とは
10.2 事前定義例外
10.3 非事前定義例外
10.4 ユーザー定義例外
10.5 ユーザー定義のエラー
10.6 ユーザー定義例外の使い分け
第10章の理解度チェック

第11章 ネスト処理

前章の理解度チェック
11.1 ローカル変数とグローバル変数
11.2 実行部でのネスト
11.3 例外処理部でのネスト
11.4 ラベルによる制御
第11章の理解度チェック

第12章 ストアドサブプログラム

前章の理解度チェック
12.1 ストアドサブプログラムとは
12.2 プロシージャ
12.3 プロシージャの例外処理
12.4 ファンクション
12.5 SQL文からのファンクション呼び出し
第12章の理解度チェック

第13章 ストアドサブプログラムの管理

前章の理解度チェック
13.1 コンパイルエラーの確認
13.2 ストアドサブプログラムの手動コンパイル
第13章の理解度チェック

第14章 パッケージ

前章の理解度チェック
14.1 パッケージとは
14.2 パッケージ仕様部
14.3 パッケージ本体
14.4 サブプログラムの確認
14.5 オーバーロード
14.6 依存性
第14章の理解度チェック

第15章 パフォーマンスのよいPL/SQL

前章の理解度チェック
15.1 RETURNING句
15.2 TABLE型(索引付き表)
15.3 バルク処理とは
15.4 FORALL文
15.5 BULK COLLECT句
第15章の理解度チェック

第16章 動的SQL

前章の理解度チェック
16.1 動的SQLとは
16.2 DBMS_SQLパッケージ
16.3 EXECUTE IMMEDIATE文
16.4 動的SQLで複数行問い合わせ
16.5 動的SQLのカーソル
第16章の理解度チェック

第17章 PL/SQLのデバッグ

前章の理解度チェック
17.1 PLSQL_WARNINGS初期化パラメータ
17.2 ALTER~COMPILE文
17.3 条件付きコンパイル
17.4 条件付きコンパイルフラグ
第17章の理解度チェック

付録 練習問題と理解度チェックの解答

付属データはこちら

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2009年11月25日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 010
1行目
SELECT empno, ename, 'あなたの月給は' ||sal + NVL(comm, 0)
SELECT empno, ename, 'あなたの月給は' ||(sal + NVL(comm, 0))
2009.07.08
1刷 021
ページ下段のINSERT文2つ
SQL> INSERT INTO dept (deptno, deptname, loc) VALUES (50, '人材開発', '東京'); SQL> INSERT INTO dept (deptno, deptname, loc) VALUES (60, '製品開発', '東京');
SQL> INSERT INTO dept (deptno, dname, loc) VALUES (50, '人材開発', '東京'); SQL> INSERT INTO dept (deptno, dname, loc) VALUES (60, '製品開発', '東京');
2009.11.11
1刷 022
ページ中段のINSERT文2つ
BEGIN   INSERT INTO dept (deptno, deptname, loc) VALUES (50, '人材開発', '東京');   INSERT INTO dept (deptno, deptname, loc) VALUES (60, '製品開発', '東京'); END; /
BEGIN   INSERT INTO dept (deptno, dname, loc) VALUES (50, '人材開発', '東京');   INSERT INTO dept (deptno, dname, loc) VALUES (60, '製品開発', '東京'); END; /
2009.11.11
1刷 027、030
コード
END LOOP
END LOOP;

「;」を追加します。
2008.11.07
1刷 057
実行例
2   v_today DATE := TO_DATE('2008/4/1','YYYY/MM/DD'); 3  BEGIN 4   INSERT INTO test (co13) VALUES(v_today);
2   v_date DATE := TO_DATE('2008/4/1','YYYY/MM/DD'); 3  BEGIN 4   INSERT INTO work (col3) VALUES(v_date);
2008.11.07
1刷 061
コードの4行目
,v_dname VARCHAR2(14));
,v_dname VARCHAR2(20));
2009.11.23
1刷 062
コードの4行目
,v_dname VARCHAR2(14) := '人材開発');
,v_dname VARCHAR2(20) := '人材開発');
2009.11.23
1刷 063
コードの5,6,11,12行目
DNAME VARCHAR2(14) LOC  VARCHAR2(13) 4 ,v_dname VARCHAR2(14) := '人材開発' 5 ,v_loc VARCHAR2(13) := '東京' );
DNAME VARCHAR2(20) LOC  VARCHAR2(20) 4 ,v_dname VARCHAR2(20) := '人材開発' 5 ,v_loc VARCHAR2(20) := '東京' );
2009.11.23
1刷 064
ページ上部のコード4,5行目、ページ下部のコード4,5行目
4 ,v_dname VARCHAR2(14) := '人材開発' 5 ,v_loc VARCHAR2(13) := '東京' ); 4 ,v_dname VARCHAR2(14) := '管理事業本部' 5 ,v_loc VARCHAR2(13) := '大阪' );
4 ,v_dname VARCHAR2(20) := '人材開発' 5 ,v_loc VARCHAR2(20) := '東京' ); 4 ,v_dname VARCHAR2(20) := '管理事業本部' 5 ,v_loc VARCHAR2(20) := '大阪' );
2009.11.23
1刷 067
ページ下部のコード5行目
4 ,v_dname VARCHAR2(14));
4 ,v_dname VARCHAR2(20));
2009.11.23
1刷 131
第7章の理解度チェック 1の表
以下の表に差し替えます。
2009.11.25
1刷 132
5行目、15行目
職種:担当 6. 次のCREATE TABLE文を:PL/SQLブロックの中で実行し、表を作成してください。
職種:エンジニア 6. 次のCREATE TABLE文を実行し、表を作成してください。
2009.11.23
1刷 237
3.の1行目
3. 親ブロックでdept表に対し、「SELECT deptno FROM dept INTO v_deptno WHERE dname = '経理';」という問い合わせを行い、…
3. 親ブロックでdept表に対し、「SELECT deptno INTO v_deptno FROM dept WHERE dname = '経理';」という問い合わせを行い、…
2009.11.23
1刷 243
練習問題 11.3 選択肢bとe
子ブロック内で発生した例外に対する
実行部にある子ブロック内で発生した例外に対する
2009.04.08
1刷 252
前章の理解度チェック「1.」
1. 次の説明は正しいですか?   例外処理部に子ブロックを記述することは記述できない
1. 次の説明は正しいですか?   例外処理部に子ブロックを記述することはできない
2009.11.19
1刷 277
2つめのコード5行目、3つ目のコード3行目
5 INSERT INTO err_log (errno) VALUES(SYSDATE, 1); SQL> INSERT INTO err_log (errno) VALUES(SYSDATE, sample_func3);
INSERT INTO err_log (errdate, errno) VALUES(SYSDATE, 1); INSERT INTO err_log (errno) VALUES(sample_func3);
2009.11.23
1刷 298
前章の理解度チェック
4・・・ストアドサブプログラムが無効(INVLID)に 5・・・ステータスがINVLIDに
4・・・ストアドサブプログラムが無効(INVALID)に 5・・・ステータスがINVALIDに
2009.11.24
1刷 301
本文下から2~1行目
「ORA-0060:内部エラー」のことです。
「ORA-00600:内部エラー」のことです。
2009.11.24
1刷 309
練習問題14.2
1の表の「プロシージャ」の「データ型」・・・P_qty NUMBER、 2の1行目・・・1.で作成したプロシージャを作成する
1の表の「プロシージャ」の「データ型」・・・p_qty NUMBER、 2の1行目・・・1.で作成したプロシージャを実行する
2009.11.25
1刷 314
3行目
table_d表列を追加すると、
table_d表から列を削除すると、
2009.11.25
1刷 387
第5章の理解度チェック
2. WHILEループ 3. 基本ループ
2. 基本ループ 3. WHILEループ
2009.11.23
1刷 389
第6章の理解度チェック6.
TRUNCATE TABLE work; DECLARE   v_cnt NUMBER := 1; BEGIN   WHILE v_cnt <= 3 LOOP     IF MOD(v_cnt, 2) = 0 THEN       INSERT INTO work VALUES(v_cnt, '偶数です。値は'||v_cnt||'です');     ELSE       INSERT INTO work VALUES(v_cnt, '奇数です。値は'||v_cnt||'です');     END IF;     v_cnt := v_cnt + 1;   END LOOP; END; /
TRUNCATE TABLE work; DECLARE   v_cnt NUMBER := 1; BEGIN   WHILE v_cnt <= 3 LOOP     CASE MOD(v_cnt, 2)       WHEN 0 THEN          INSERT INTO work VALUES(v_cnt, '偶数です。値は'||v_cnt||'です');       ELSE          INSERT INTO work VALUES(v_cnt, '奇数です。値は'||v_cnt||'です');     END CASE;     v_cnt := v_cnt + 1;   END LOOP; END; /
2008.11.07
1刷 390
左段の下から2行目
社員名:田中 職種 :担当 給与 :195000
社員名:田中 職種 :エンジニア 給与 :195000
2009.11.23