PGECons技術ドキュメントテンプレート Ver.3

Similar documents
SQL移行調査編

SQL移行調査編

労働時間と休日は、労働条件のもっとも基本的なものの一つです

計算式の取り扱い

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

H28記入説明書(納付金・調整金)8

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

Oracle Text 概要

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

Microsoft Word - サンプル _データベースアクセス_.doc

<4D F736F F D AC90D1955D92E CC82CC895E DD8C D2816A2E646F63>

<4D F736F F D20819C B78AFA95DB91538C7689E68DEC90AC289

2 出 願 資 格 審 査 前 記 1の 出 願 資 格 (5) 又 は(6) により 出 願 を 希 望 する 者 には, 出 願 に 先 立 ち 出 願 資 格 審 査 を 行 いますので, 次 の 書 類 を 以 下 の 期 間 に 岡 山 大 学 大 学 院 自 然 科 学 研 究 科 等

PowerPoint プレゼンテーション

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

一般競争入札について

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

購買ポータルサイトyOASIS簡易説明書 b

2 役 員 の 報 酬 等 の 支 給 状 況 平 成 27 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 役 名 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 2,142 ( 地 域 手 当 ) 17,205 11,580 3,311 4 月 1

<4D F736F F F696E74202D C90BF8F CC8DEC90AC97E181698A4F8D E8816A5F56322E707074>

1-1 一覧画面からの印刷

<4D F736F F D208ED089EF95DB8CAF89C193FC8FF38BB CC8EC091D492B28DB88C8B89CA82C982C282A282C42E646F63>

Microsoft Word - 第3章.doc

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..


POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

01_07_01 データのインポート_エクスポート_1

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

PowerPoint プレゼンテーション

あいち電子調達共同システム

Taro-H19退職金(修正版).jtd

1. 概 要 Webで 申 込 みした 手 続 きの 内 容 とNEXIでの 手 続 状 況 を Web 申 込 状 況 一 覧 で 確 認 することができます また 各 種 手 続 きにおいて 申 込 みを 完 了 せずに 保 存 状 態 にした 手 続 きを この 一 覧 から 再 開 すること

参加表明書・企画提案書様式

<4D F736F F D F93878CA797708F4390B3816A819A95CA8B4C976C8EAE91E682538B4C8DDA97E12E646F6378>

「給与・年金の方」からの確定申告書作成編

返還同意書作成支援 操作説明書

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

2 研 究 資 源 共 通 化 統 合 検 索 システムソフトウェア 利 用 者 用 マニュアル(ゲートウェイシステム) 目 次 1. はじめに 主 な 利 用 の 流 れ 検 索 検 索 画 面 検 索 画 面 の 設 定...

Microsoft Word - 新提案書作成・審査要領、提案書作成様式(別添3,4)

3. 選 任 固 定 資 産 評 価 員 は 固 定 資 産 の 評 価 に 関 する 知 識 及 び 経 験 を 有 する 者 のうちから 市 町 村 長 が 当 該 市 町 村 の 議 会 の 同 意 を 得 て 選 任 する 二 以 上 の 市 町 村 の 長 は 当 該 市 町 村 の 議

<4D F736F F D E598BC68A8897CD82CC8DC490B68B7982D18E598BC68A8893AE82CC8A C98AD682B782E993C195CA915B C98AEE82C382AD936F985E96C68B9690C582CC93C197E1915B927582CC898492B75F8E96914F955D89BF8F915F2E646F6

接続試験実施要領【障害者総合支援法(平成27年4月報酬改定)対応】

<4D F736F F D208DE3905F8D8291AC8B5A8CA48A948EAE89EF8ED0208BC696B18BA492CA8E64976C8F BD90AC E378C8E89FC92F994C5816A>

平成25年度 独立行政法人日本学生支援機構の役職員の報酬・給与等について

平成21年9月29日

るよう 工 事 打 合 せ 簿 ( 様 式 2)により 受 注 者 に 求 めます 5-1 理 由 書 ( 様 式 3)が 提 出 され 特 別 の 事 情 を 有 すると 認 めた 場 合 は 社 会 保 険 等 の 加 入 が 確 認 できる 書 類 を 提 出 するよう 工 事 打 合 せ 簿

1

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

03_主要処理画面.xlsx

公営住宅法施行令の一部を改正する政令―公営住宅法施行令例規整備*

CSV_Backup_Guide

研究者情報データベース

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都

4.5. < 参 加 表 明 書 を 提 出 する> 調 達 案 件 一 覧 の 表 示 対 象 となる 案 件 を 検 索 し 調 達 案 件 一 覧 に 表 示 させます 参 加 したい 案 件 の 調 達 案 件 名 称 行 - 入 札 参 加 資 格 確 認 申 請 / 技 術 資 料 /

指 定 ( 又 は 選 択 ) 官 庁 PCT 出 願 人 の 手 引 - 国 内 段 階 - 国 内 編 - アイスランド 特 許 庁 国 内 段 階 に 入 るための 要 件 の 概 要 3 頁 概 要 国 内 段 階 に 入 るための 期 間 PCT 第 22 条 (3)に 基 づく 期 間

目 次 利 用 に 際 しての 注 意 事 項... ユーザー 登 録... ログイン... 課 題 申 請... 5 装 置 予 約... 6 ライセンス 取 得 方 法... 7 利 用 料 金 の 確 認 ( 準 備 中 ) 外 部 発 表 登 録 の 方 法... 5 < 附

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

PowerPoint プレゼンテーション

決 算 時 の 流 れ-1 1 年 間 の 仕 訳 入 力 が 終 了 したら 以 下 の 手 順 で 決 算 書 を 作 成 します Step1 精 算 表 を 印 刷 する 1.[F2 入 力 ]タブより 合 計 表 を 選 択 し 月 度 の 指 定 で 期 首 ~12ヶ 月 目 を 指 定

注 雇 促 進 税 制 と 本 制 度 のどちらかを 利 する 可 能 性 があるが あらかじめどちらの 制 度 を 利 するか 判 断 できない という 場 合 雇 促 進 税 制 の 事 前 届 出 ( 雇 促 進 計 画 の 提 出 )をした 上 で 申 告 の 際 にどちらを 利 するかご

②130401雇用促進計画パンフレット

一 覧 表 ( 専 従 者 用 ) YES NOチャート( 専 従 月 額 単 価 用 ) (P.4)を 参 考 にしてください < 直 接 雇 用 者 > 一 覧 表 ( 専 従 者 用 )の 単 価 は 委 託 期 間 中 に 継 続 して 半 年 以 上 当 該 AMED 事 業

目 次 1.はじめに 1-1. はじめに 2. 操 作 2-1. 概 要 2-2. 操 作 方 法 ( 調 査 依 頼 の 確 認 ) 2-3. 操 作 方 法 ( 回 答 登 録 ) 2-4. 操 作 方 法 (ワークシート 出 力 ) 2-5. 操 作 方 法 (ワークシート 取 込 ) 3.

1-2 新 規 CPD 会 員 登 録 の 申 請 から 登 録 までの 手 順 当 協 会 CPDシステムを 利 用 するためには 当 協 会 ホームページトップ 画 面 より CPD 事 務 局 へ のCPD 会 員 登 録 が 必 要 です CPD 会 員 登 録 が 完 了 すると 登 録

ファイルサーバー(NFS) 構築ガイド

Taro-1-14A記載例.jtd

Microsoft PowerPoint - c3_op-manual.pdf

年金通信25-30厚年基金見直し(法改正概要)

PowerPoint プレゼンテーション

Taro-2220(修正).jtd

全設健発第     号

GRIDY SFA カスタム 項 目 操 作 ガイド 用 本 書 はに 必 要 な 操 作 を 解 説 しております は GRIDY SFA ののことです GRIDY SFA へ 申 し 込 み 最 初 に 登 録 を 行 った 方 がそのままとなります カスタム 項 目 はの 方 のみ 操 作 可

平成16年年金制度改正 ~年金の昔・今・未来を考える~

事務連絡

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

 

<4D F736F F D B796EC8CA7835C F815B E646F63>

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

2 役 員 の 報 酬 等 の 支 給 状 況 役 名 法 人 の 長 理 事 理 事 ( 非 常 勤 ) 平 成 25 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 16,936 10,654 4,36

Q IFRSの特徴について教えてください

2007 Microsoft Corporation. All rights reserved. 本 書 に 記 載 した 情 報 は 本 書 各 項 目 に 関 する 発 行 日 現 在 の Microsoft の 見 解 を 表 明 するものです Microsoft は 絶 えず 変 化 する

10 期 末 現 在 の 資 本 金 等 の 額 次 に 掲 げる 法 人 の 区 分 ごとに それぞれに 定 める 金 額 を 記 載 します 連 結 申 告 法 人 以 外 の 法 人 ( に 掲 げる 法 人 を 除 きます ) 法 第 292 条 第 1 項 第 4 号 の5イに 定 める

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

(1) 社 会 保 険 等 未 加 入 建 設 業 者 の 確 認 方 法 等 受 注 者 から 提 出 される 施 工 体 制 台 帳 及 び 添 付 書 類 により 確 認 を 行 います (2) 違 反 した 受 注 者 へのペナルティー 違 反 した 受 注 者 に 対 しては 下 記 のペ

c. 投 資 口 の 譲 渡 に 係 る 税 務 個 人 投 資 主 が 投 資 口 を 譲 渡 した 際 の 譲 渡 益 は 株 式 等 に 係 る 譲 渡 所 得 等 として 原 則 20%( 所 得 税 15% 住 民 税 5%)の 税 率 による 申 告 分 離 課 税 の 対 象 となりま

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

Q10 適 用 年 度 の 前 事 業 年 度 末 日 に 雇 用 者 がいない 場 合 には 雇 用 増 加 割 合 が 算 出 できないため 適 用 年 度 において 雇 用 促 進 税 制 の 適 用 を 受 けることはできな いのか Q11 新 設 法 人 や 新 たに 事 業 を 開 始

平成27年度大学改革推進等補助金(大学改革推進事業)交付申請書等作成・提出要領

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

< 現 在 の 我 が 国 D&O 保 険 の 基 本 的 な 設 計 (イメージ)> < 一 般 的 な 補 償 の 範 囲 の 概 要 > 請 求 の 形 態 会 社 の 役 員 会 社 による 請 求 に 対 する 損 免 責 事 由 の 場 合 に 害 賠 償 請 求 は 補 償 されず(

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

HDC-EDI BaseのAny変換における閏年の取り扱いに関する重要なお知らせ

就 業 規 則 ( 福 利 厚 生 ) 第 章 福 利 厚 生 ( 死 亡 弔 慰 金 等 ) 第 条 法 人 が 群 馬 県 社 会 福 祉 協 議 会 民 間 社 会 福 祉 施 設 等 職 員 共 済 規 程 に 基 づき 群 馬 県 社 会 福 祉 協 議 会 との 間 において 締 結 す

V-CUBE One

経 理 上 くん db(version 8.001)の 変 更 点 概 要 Ⅰ. 消 費 税 /リバースチャージ 方 式 の 申 告 に 対 応 1 特 定 課 税 仕 入 特 定 課 税 仕 入 返 還 区 分 を 追 加 しました Ⅱ.その 他 の 改 良 修 正 詳 細 は 後 述 を 参 照

別冊資料-11

事 業 税 の 外 形 標 準 課 税 事 業 税 は 都 道 府 県 が 所 得 ( 利 益 )に 対 して 課 税 します 1. 個 人 事 業 税 業 種 区 分 税 率 ( 標 準 税 率 ) 第 1 種 事 業 ( 物 品 販 売 業 製 造 業 金 銭 貸 付 業 飲 食 店 業 不 動

Transcription:

エンタープライズ コンソーシアム 技 術 部 会 WG#2 SQL 移 行 調 査 編 製 作 者 担 当 企 業 名 SRA OSS, Inc. 日 本 支 社 2013 Enterprise Consortium

改 訂 履 歴 版 改 訂 日 変 更 内 容 1.0 2013/04/22 初 版 ライセンス 本 作 品 は CC-BY ライセンスによって 許 諾 されています ライセンスの 内 容 を 知 りたい 方 は http://creativecommons.org/licenses/by/2.1/jp/ でご 確 認 ください 文 書 の 内 容 表 記 に 関 する 誤 り ご 要 望 感 想 等 につきましては PGECons のサイトを 通 じてお 寄 せいただきます ようお 願 いいたします サイト URL https://www.pgecons.org/contact/ Microsoft Windows Server 米 国 Microsoft Corporation の 米 国 及 びその 他 の 国 における 登 録 商 標 または 商 標 です は Corporation 及 びその 子 会 社 関 連 会 社 の 米 国 及 びその 他 の 国 における 登 録 商 標 です 文 中 の 社 名 商 品 名 等 は 各 社 の 商 標 または 登 録 商 標 である 場 合 があります は Community Association of Canada のカナダにおける 登 録 商 標 およびその 他 の 国 における 商 標 です その 他 本 資 料 に 記 載 されている 社 名 及 び 商 品 名 はそれぞれ 各 社 が 商 標 または 登 録 商 標 として 使 用 している 場 合 があります 2/18 2013 Enterprise Consortium

はじめに 本 資 料 の 目 的 本 資 料 は 異 種 DBMS から へ SQL を 移 行 する 作 業 の 難 易 度 およびボリュームの 事 前 判 断 と 実 際 に 書 き 換 えを 行 う 際 の 参 考 資 料 として 利 用 されることを 想 定 しています 本 資 料 で 記 載 する 範 囲 本 資 料 では 移 行 元 の 異 種 DBMS として Database および Microsoft を 想 定 し これらの DBMS から へSQLを 移 行 する 際 に 書 き 換 えが 必 要 である 箇 所 とその 書 き 換 え 方 針 について DML とトランザク ション 処 理 を 中 心 に 記 載 します スキーマ ストアドプロシージャ 組 み 込 み 関 数 に 関 する SQL については 本 資 料 では 取 り 扱 っていません これらに 関 しては それぞれ スキーマ 移 行 調 査 編 ストアドプロシージャ 移 行 調 査 編 組 み 込 み 関 数 移 行 調 査 編 を 参 照 してください 本 資 料 で 扱 う 用 語 の 定 義 資 料 で 記 述 する 用 語 について 以 下 に 定 義 します 表 1: 用 語 定 義 用 語 意 味 1 DBMS データベース 管 理 システムを 指 します ここでは および 異 種 DBMS の 総 称 と して 利 用 します 2 異 種 DBMS ではない データベース 管 理 システムを 指 します 本 資 料 では Database Microsoft が 該 当 します 3 データベース 管 理 システムの Database を 指 します 4 データベース 管 理 システムの Microsoft を 指 します 本 資 料 で 扱 う DBMS およびツール 本 書 では 以 下 の DBMS を 前 提 にした 調 査 結 果 を 記 載 します 表 2: 本 書 で 扱 う DBMS DBMS 名 称 バージョン 9.2.1 Database 11gR2 11.2.0.2.0 Microsoft 2008 R2 3/18 2013 Enterprise Consortium

目 次 1.SQL 移 行 調 査 の 概 要...5 1.1. 対 象 とする SQL について...5 1.2.SQL の 差 異 と 書 き 換 え 方 針 について...5 1.3. 標 準 SQL について...5 2. から への 移 行...6 2.1.SELECT 文... 6 2.2. 更 新 系... 9 2.3.その 他 の 書 き 換 え...10 2.4.トランザクション...10 3. から への 移 行...12 3.1.SELECT 文... 12 3.2. 更 新 系... 12 3.3.その 他 の 書 き 換 え...14 3.4.トランザクション...15 4. 別 紙 一 覧... 17 4/18 2013 Enterprise Consortium

1. SQL 移 行 調 査 の 概 要 本 資 料 では Database( 以 下 と 呼 称 )および Microsoft ( 以 下 と 呼 称 )から へアプリケーションを 移 行 する 際 に 問 題 となるSQLの 差 異 とその 書 き 換 え 方 針 について 記 載 します 本 章 では 調 査 内 容 の 概 要 について 説 明 します 1.1. 対 象 とする SQL について 本 資 料 では アプリケーションプログラムの 中 で 使 用 される 頻 度 が 高 いと 思 われる DML(SELECT, INSERT, UPDATE, DELETE など) およびトランザクション 処 理 関 連 SQL を 対 象 としています その 他 のスキーマ ストアドプロ シージャに 関 する SQL と 組 み 込 み 関 数 の 差 異 および 移 行 方 針 については 本 資 料 では 取 り 扱 っていません これらについ ては それぞれ スキーマ 移 行 調 査 編 ストアドプロシージャ 移 行 調 査 編 組 み 込 み 関 数 移 行 調 査 編 を 参 照 してく ださい 1.2. SQL の 差 異 と 書 き 換 え 方 針 について 異 種 DBMS と では SQL の 構 文 や 仕 様 に 違 いがあるため 移 行 元 の SQL 文 が 移 行 先 の では 動 作 しない 場 合 があります 本 資 料 では そのような SQL を 書 き 換 え 移 行 先 の にて 同 等 の 機 能 で 動 作 させる 際 の 参 考 となる 方 針 を 記 載 しています ただし これは 書 き 換 えの 前 後 で 完 全 に 同 じ 動 作 を 保 証 するものではあ りません また 本 資 料 は 異 種 DBMS と の 間 に 生 じる 全 ての SQL の 差 異 および 書 き 換 え 方 針 を 網 羅 した ものではなく 本 資 料 の 内 容 以 外 の 書 き 換 えが 必 要 になるケースも 存 在 します さらに ケースによっては SQL 文 の 書 き 換 えのみではなく SQL 文 を 発 行 するアプリケーション 側 での 対 応 が 適 切 な 場 合 もあるかもしれません 実 際 の 移 行 の 際 はこの 可 能 性 も 含 めて 検 討 する 必 要 があります 本 資 料 で 対 象 とする SQL の,, の3つの DBMS における 差 異 は 別 紙 SQL 差 異 表 にまとめましたので 参 照 してください 各 SQL 機 能 への 対 応 を で 非 対 応 を で 表 し 備 考 欄 にその 他 の 参 考 となる 情 報 を 記 載 してあります 1.3. 標 準 SQL について 標 準 SQL とは SQL の 国 際 標 準 規 格 であり 公 式 な 名 称 は ISO/IEC 9075 "Database Language SQL"です 2013 年 3 月 現 在 2011 年 に 改 定 されたものが 最 新 版 であり これは SQL:2011 と 呼 ばれています の 開 発 では 最 新 の 標 準 SQL に 準 拠 しようとしており 実 際 に 9.2 は SQL:2011 の 主 な 機 能 のほとんどをサポートしています SQL:2011 の 機 能 の 内 何 がサポートされており 何 がサポートされていないのかに ついては のドキュメントから 知 ることができます また 標 準 SQL に 対 して が 独 自 の 拡 張 を 加 えた 機 能 についてもドキュメントの SQL リファレンスに 記 載 されています 以 後 本 資 料 で 標 準 SQL といった 場 合 には SQL:2011 のことを 指 します 別 紙 SQL 差 異 表 には 各 SQL 機 能 が 標 準 SQL に 準 拠 しているかの 情 報 を 付 与 しています 本 資 料 および SQL 差 異 表 の 作 成 にあたり 各 機 能 が 標 準 SQL に 準 拠 しているかどうかの 判 断 は のドキュメントを 参 考 としまし た 5/18 2013 Enterprise Consortium

2. から への 移 行 本 章 では から へ 移 行 の 際 に 生 じる SQL の 書 き 換 え 方 針 を 紹 介 します 2.1. SELECT 文 2.1.1. 独 自 形 式 の 外 部 結 合 には 独 自 の 外 部 結 合 演 算 子 (+) が 存 在 します この 演 算 子 を 使 った 結 合 は 標 準 SQL 準 拠 の LEFT (RIGHT) OUTER JOIN 構 文 を 用 いて 以 下 のように 書 き 換 えます テーブル foo, bar の 右 外 部 結 合 SELECT * FROM foo, bar WHERE foo.id = bar.id (+) SELECT * FROM foo LEFT OUTER JOIN bar ON foo.id = bar.id テーブル foo, bar の 左 外 部 結 合 SELECT * FROM foo, bar WHERE foo.id (+) = bar.id SELECT * FROM foo RIGHT OUTER JOIN bar ON foo.id = bar.id また 以 下 のように 外 部 結 合 演 算 子 (+) と UNION 句 を 併 用 して 完 全 外 部 結 合 を 行 っている 場 合 があります こ のようなクエリは FULL OUTER JOIN を 用 いて 書 き 換 えます テーブル foo, bar の 完 全 外 部 結 合 SELECT * FROM foo, bar WHERE foo.id = bar.id (+) UNION SELECT * FROM foo, bar WHERE foo.id (+) = bar.id SELECT * FROM foo FULL OUTER JOIN bar ON foo.id = bar.id 2.1.2. DUAL 表 では SELECT 文 の FROM 句 を 省 略 できないため 表 を 必 要 としない 処 理 の 場 合 には DUAL 表 が 使 わ れます では FROM 句 が 省 略 可 能 であるので DUAL 表 は 存 在 しません SELECT 文 より FROM DUAL を 取 り 除 く 必 要 があります 現 在 日 時 の 表 示 SELECT current_timestamp FROM DUAL SELECT current_timestamp あるいは 該 当 する 全 ての SELECT 文 を 書 き 換 える 代 わりに 以 下 のような1 件 のレコードのみを 持 つ dual テーブ ルを 側 で 定 義 しておく 方 法 もあります dual テーブルの 定 義 CREATE TABLE dual (dummy VARCHAR(1)); INSERT INTO dual VALUES ('X'); SELECT current_timestamp FROM DUAL; 2.1.3. ROWNUM 擬 似 列 では 検 索 結 果 の 行 番 号 を 取 得 するのに ROWNUM 擬 似 列 を 用 いることができます で 検 索 結 果 の 表 示 件 数 を 制 限 する 場 合 には これを 用 いるのが 一 般 的 です しかし ROWNUM 擬 似 列 は 固 有 の 機 能 であり には 存 在 しません 6/18 2013 Enterprise Consortium

では 標 準 SQL の Window 関 数 の1つである row_number()により 行 番 号 の 取 得 が 可 能 です こ れを 用 いると ROWNUM 擬 似 列 を 用 いた 表 示 件 数 制 限 は 以 下 のように 書 き 換 えることができます tbl テーブルのデータを id で 昇 順 ソートし 最 初 から 10 行 のレコードを 取 得 する SELECT * FROM SELECT * FROM (SELECT * FROM tbl ORDER BY id) (SELECT row_number() OVER (ORDER BY id) WHERE ROWNUM <= 10 AS rownum, id FROM tbl) AS t WHERE rownum <= 10 独 自 の 機 能 である LIMIT OFFSET を 用 いると より 簡 素 な SQL 文 で 表 示 件 数 を 制 御 することも 可 能 です tbl テーブルのデータを id で 昇 順 ソートし 11 番 目 から 15 番 目 までの 5 行 のレコードを 取 得 する(LIMIT) SELECT * FROM tbl ORDER BY id LIMIT 5 OFFSET 10 また これと 同 じ 処 理 は 標 準 SQL 準 拠 である FETCH 句 を 用 いて 書 き 換 えることもできます 標 準 SQL への 準 拠 を 重 視 する 場 合 は FETCH 句 を 用 いるのがよいでしょう tbl テーブルのデータを id で 昇 順 ソートし 11 番 目 から 15 番 目 までの 5 行 のレコードを 取 得 する(FETCH) SELECT * FROM tbl ORDER BY id OFFSET 10 ROWS FETCH FIRST 5 ROWS ONLY 2.1.4. 階 層 型 問 い 合 わせ 独 自 の 機 能 である 階 層 問 い 合 わせを 用 いると 階 層 構 造 となっているデータから 階 層 順 にデータを 取 り 出 すことができます 階 層 構 造 データとは 例 えば 表 2.1 に 示 した staff テーブルのような 上 司 と 部 下 の 関 係 です こ の 構 造 をツリーで 表 すと 図 2.1 のようになります 表 2.1: staff テーブル ID NAME MANAGER_ID John 1 John 2 Paul 1 Paul Anna 3 Anna 1 4 Peter 2 Peter Ken Bob 5 Steve 4 6 Ken 3 Steve 7 Bob 3 図 2.1: staff テーブルの 階 層 構 造 の 階 層 問 い 合 わせでは START BY 句 でルートとなるデータを CONNECT BY 句 でノード 間 の 親 子 関 係 を 指 定 すると ルートから 辿 れるデータを 深 さ 優 先 探 索 の 順 に 取 り 出 すことができます でこれと 同 様 の 機 能 は 標 準 SQL の WITH 句 を 使 用 した 再 帰 的 問 い 合 わせを 用 いることで 実 現 可 能 です ただし 再 帰 問 い 合 わせを 用 いた 場 合 には データ 取 り 出 し 順 序 が とは 異 なって 幅 優 先 探 索 となることに 注 意 してくださ い 7/18 2013 Enterprise Consortium

staff テーブルに 対 する 階 層 問 い 合 わせ SELECT name FROM staff START WITH name = 'John' CONNECT BY manager_id = PRIOR id WITH RECURSIVE rec (id, name, manager_id) AS (SELECT id, name, manager_id FROM staff WHERE name = 'John' UNION ALL 結 果 : 深 さ 優 先 順 序 1. John 2. Paul 3. Peter 2 Paul 4. Steve 5. Anna 3 Peter 6. Ken 7. Bob 4 Steve 1 John 5 Anna 6 Ken 7 Bob SELECT staff.id, staff.name, staff.manager_id FROM staff, rec AS prior WHERE staff.manager_id = prior.id ) SELECT name FROM rec 結 果 : 幅 優 先 順 序 1. John 1 John 2. Paul 3. Anna 2 Paul 3 Anna 4. Peter 5. Ken 4 Peter 5 Ken 6 Bob 6. Bob 7. Steve 7 Steve また 標 準 SQL 準 拠 ではありませんが connectby 関 数 を 用 いると の CONNECT BY と 同 様 に 深 さ 優 先 順 序 の 階 層 問 い 合 わせが 可 能 です connectby 関 数 を 使 用 するには の 追 加 モジュールの contrib/tablefunc をデータベースにインストールする 必 要 があります staff テーブルに 対 する 階 層 問 い 合 わせ(connectby 関 数 ) SELECT name FROM connectby('staff', 'id', 'manager_id', 'id', '1', 0) AS t (id int, manager_id int, lavel int, pos int) JOIN staff ON staff.id=t.id ORDER BY pos 2.1.5. UNIQUE による 重 複 行 の 除 去 では 検 索 結 果 から 重 複 行 を 取 り 除 く 際 に UNIQUE を 使 うことができます これは 標 準 SQL の DISTINCT と 同 じ 働 きをします ではこのような UNIQUE の 使 い 方 はできないので DISTINCT に 書 き 直 します 重 複 する 行 の 除 去 SELECT UNIQUE * FROM tbl SELECT DISTINCT * FROM tbl 2.1.6. MINUS 演 算 子 による 差 集 合 計 算 で 検 索 結 果 の 差 集 合 を 求 める 場 合 に MINUS 演 算 子 を 使 いますが この 演 算 子 は 独 自 のもので には 存 在 しません は MINUS 演 算 子 と 同 等 の 機 能 を 持 つ EXCEPT 演 算 子 に 対 応 して います なお EXCEPT 演 算 子 は SQL 標 準 に 従 ったものです 2.1.7. FROM 句 中 のサブクエリの 別 名 ではサブクエリには 別 名 は 必 須 ではありませんが では FROM 句 の 中 のサブクエリには 別 名 を 付 ける 必 要 があります FROM 句 の 中 のサブクエリの 別 名 は 必 須 SELECT * FROM (SELECT * FROM tbl) AS sub 8/18 2013 Enterprise Consortium

2.2. 更 新 系 2.2.1. MERGE 文 MERGE 文 はテーブルに 既 存 の 行 がある 場 合 には 更 新 を ない 場 合 には 新 規 に 挿 入 を 行 う SQL 文 です 標 準 SQL に 従 ったものですが はこれに 対 応 していません では WITH 句 の 中 で UPDATE 文 を 用 いることにより これと 同 等 の 機 能 を 実 現 することができます なお 更 新 を 含 む WITH 句 は 独 自 の 拡 張 です diff テーブルの 値 を master テーブルにマージする (master テーブルに ID が 一 致 する 行 があったら diff.val を master.val に 足 し 加 える ID が 一 致 する 行 がない 場 合 には diff の 内 容 を master に 新 規 登 録 する ) MERGE INTO master USING diff ON master.id = diff.id WHEN MATCHED THEN UPDATE SET master.val = master.val + diff.val WHEN NOT MATCHED THEN INSERT VALUES (diff.id, diff.val) WITH inpt AS (SELECT * FROM diff), updt AS (UPDATE master.val = master.val + inpt.val FROM inpt WHERE master.id = inpt.id RETURNING master.id) INSERT INTO master (SELECT * FROM inpt WHERE id NOT IN (SELECT id FROM updt)) 2.2.2. ビューに 対 する 更 新 ではビューに 対 する 更 新 が 可 能 ですが ではビューに 対 して 更 新 することはできません ただ し RULE もしくはトリガーと 組 み 合 わせることで 更 新 可 能 なビューと 同 等 な 機 能 を 実 現 することが 可 能 です その 方 法 は スキーマ 移 行 調 査 編 の 第 5 章 で 述 べられていますので そちらを 参 照 してください 2.2.3. マルチテーブル INSERT の INSERT 文 では 複 数 のテーブルに 対 してデータを 挿 入 することが 可 能 です しかし の INSERT 文 にはそのような 機 能 はなく 個 々のテーブルに 毎 に INSERT 文 を 実 行 する 必 要 があります ただし のマルチテーブル INSERT を 利 用 すると1つのテーブルに 複 数 行 を 挿 入 することが 可 能 であり そ のようなクエリは 標 準 SQL に 従 い 以 下 のように 書 き 換 え 可 能 です テーブル tbl にレコードを 3 行 挿 入 する INSERT ALL INTO tbl VALUES (1, 'one') INTO tbl VALUES (2, 'two') INTO tbl VALUES (3, 'three') SELECT * FROM DUAL INSERT INTO tbl VALUES (1, 'one'), (2, 'two'), (3, 'three') 2.2.4. DELETE 文 の FROM の DELETE 文 では FROM キーワードが 省 略 可 能 ですが では 省 略 することはできません もし FROM が 省 略 されている 場 合 には 書 き 足 す 必 要 があります DELETE 文 の FROM は 省 略 できない DELETE tbl WHERE id = 2 DELETE FROM tbl WHERE id = 2 9/18 2013 Enterprise Consortium

2.3. その 他 の 書 き 換 え 2.3.1. NULL と 空 文 字 列 では 空 の 文 字 列 は NULL と 同 値 として 扱 われますが これは 標 準 SQL に 準 拠 したものではありません においてはこれらは 区 別 されます 文 字 列 の 結 合 や 検 索 をふくむクエリの 実 行 結 果 が 移 行 の 前 後 で 異 なる 場 合 があります また ではテーブルに 空 文 字 列 を 挿 入 すると NULL に 自 動 変 換 されますが では 変 換 されず 空 文 字 列 のまま 格 納 されます で と 同 じように 空 文 字 列 を NULL とみなさせるには ISNULL 関 数 を 使 って 変 換 する 方 法 が あります 空 文 字 列 を NULL とみなす 検 索 SELECT * FROM staff WHERE ISNULL(name, '') IS NOT NULL 2.3.2. REGEXP_LIKE 条 件 による 正 規 表 現 マッチング は REGEXP_LIKE 条 件 を 使 って 正 規 表 現 マッチングを 行 います この 条 件 は POSIX 正 規 表 現 規 格 に 準 拠 しています で POSIX 正 規 表 現 のマッチングを 行 う 場 合 には 正 規 表 現 マッチ 演 算 子 ( 表 2.2)を 用 います 演 算 子 表 2.2: 正 規 表 現 マッチ 演 算 子 説 明 例 ( 結 果 はすべて 真 ) ~ 正 規 表 現 に 一 致 大 文 字 小 文 字 の 区 別 あり 'thomas' ~ '.*thomas.*' ~* 正 規 表 現 に 一 致 大 文 字 小 文 字 の 区 別 なし 'thomas' ~* '.*Thomas.*'!~ 正 規 表 現 に 一 致 しない 大 文 字 小 文 字 の 区 別 あり 'thomas'!~ '.*Thomas.*'!~* 正 規 表 現 に 一 致 しない 大 文 字 小 文 字 の 区 別 なし 'thomas'!~* '.*vadim.*' POSIX 正 規 表 現 を 使 って p で 始 まるか e が2 回 現 れる 名 前 を 検 索 SELECT * FROM staff SELECT * FROM staff WHERE REGEXP_LIKE(lower(name), '^p (e.*){2}') WHERE name ~* '^p (e.*){2}' 2.3.3. 比 較 演 算 子 ^= では 不 等 を 表 す 演 算 子 に ^= が 使 用 できますが この 演 算 子 は には 存 在 しません <> 演 算 子 で 置 き 換 えてください 2.4. トランザクション と におけるトランザクション 処 理 に 違 いがあり 移 行 の 際 には 注 意 が 必 要 です 本 節 ではその 違 いについて 概 説 します 2.4.1. トランザクションの 開 始 と 自 動 コミット ではトランザクションは SQL の 実 行 によって 暗 黙 的 に 開 始 されます 一 方 では 標 準 SQL 準 拠 の START TRANSACTION 文 か あるいは 独 自 の BEGIN 文 を 実 行 して 明 示 的 にトランザクショ ンを 開 始 する 必 要 があります ではトランザクションを 開 始 せずに 発 行 されたコマンドは 暗 黙 的 にコ ミットされます これは 自 動 コミット と 呼 ばれています 2.4.2. DDL の 暗 黙 コミットとロールバック では CREATE TABLE などの DDL 実 行 の 前 後 で 自 動 的 に COMMIT が 発 行 されます DDL が 実 行 され た 時 点 で DDL 実 行 前 に 成 功 したコマンド 全 てと DDL の 結 果 がコミットされます そのため DDL をロールバック 10/18 2013 Enterprise Consortium

することはできません 一 方 では DDL が 自 動 的 にコミットを 発 行 することはなく トランザクション 中 で 発 行 された DDL はロールバックすることが 可 能 です 2.4.3. トランザクションの 終 了 とトランザクション 中 のエラー COMMIT 文 あるいは ROLLBACK 文 の 実 行 でトランザクションが 終 了 します また では 前 節 で 説 明 し た 理 由 により DDL の 実 行 によってもトランザクションが 終 了 します なお には 標 準 SQL 準 拠 の COMMIT 文 ROLLBACK 文 の 他 それぞれ 同 じ 意 味 をもつ END 文 ABORT 文 が 存 在 します では COMMIT 文 が 実 行 されると トランザクション 内 で 成 功 したコマンドの 結 果 のみをコミットし 失 敗 し たコマンドは 単 に 無 視 されます 一 方 では トランザクション 内 でエラーが 発 生 した 場 合 はそのトラン ザクション 全 体 が 失 敗 とみなされます エラーが 発 生 したトランザクションではそれ 以 降 のコマンド 実 行 ができず COMMIT 文 を 実 行 した 場 合 には 自 動 的 に ROLLBACK が 発 行 されます 11/18 2013 Enterprise Consortium

3. から への 移 行 本 章 では から へ 移 行 の 際 に 生 じる SQL の 書 き 換 え 方 針 を 紹 介 します 3.1. SELECT 文 3.1.1. TOP 句 ではクエリ 結 果 の 件 数 を 制 限 するために 独 自 の 拡 張 である TOP 句 を 用 います の SELECT 文 には TOP 句 はありません Window 関 数 LIMIT 句 FETCH 句 のいずれかを 用 いて 書 き 換 える 必 要 が あります 詳 しくは 本 資 料 の 2.1.3 節 を 参 照 して 下 さい 以 下 は 標 準 SQL 準 拠 である FETCH 句 を 用 いた 書 き 換 え 例 です tbl テーブルのデータを id で 昇 順 ソートし 最 初 から 10 行 のレコードを 取 得 する SELECT TOP 10 * FROM tbl ORDER BY id SELECT * FROM tbl ORDER BY id FETCH FIRST 10 ROWS ONLY 3.1.2. 列 の 別 名 は 独 自 の 構 文 により = を 使 った 列 の 別 名 を 指 定 することができます はこの 構 文 に 対 応 していません 標 準 SQL の AS ( 省 略 可 )を 用 いて 以 下 のように 書 き 換 える 必 要 があります 列 に 別 名 を 付 ける(SELECT 文 ) SELECT STAFF = s.name, MANAGER = m.name FROM staff AS s LEFT OUTER JOIN staff AS m ON s.manager_id = m.id SELECT s.name AS STAFF, m.name AS MANAGER FROM staff AS s LEFT OUTER JOIN staff AS m ON s.manager_id = m.id 3.2. 更 新 系 3.2.1. TOP 句 の TOP 句 は 更 新 系 のクエリにも 用 いることができます SELECT の 結 果 を 挿 入 する INSERT 文 で TOP 句 を 使 用 すると SELECT された 結 果 の 上 位 から 指 定 された 行 数 だけ 取 得 して 挿 入 します で 同 等 の 動 作 は SELECT 部 分 を LIMIT 句 または FETCH 句 を 用 いて 書 き 換 えることで 実 現 可 能 です tbl テーブルから 偶 数 の id を 昇 順 に 10 個 取 得 して nums テーブルに 挿 入 INSERT TOP (10) INTO nums INSERT INTO nums SELECT * FROM tbl WHERE id % 2 = 0 SELECT * FROM tbl WHERE id % 2 = 0 ORDER BY id ORDER BY id LIMIT 10 UPDATE 文 で TOP 句 を 用 いると 指 定 された 行 数 のレコードがランダムに 選 ばれ 更 新 されます で は random 関 数 と UPDATE 文 の FROM 句 を 用 いて 同 様 の 機 能 を 実 現 できます なお UPDATE 文 の FROM 句 は 独 自 の 拡 張 機 能 です nums テーブルのレコードをランダムに 10 つ 選 んで 更 新 UPDATE TOP (10) nums UPDATE nums AS t1 SET value = value * 10 SET value = value * 10 FROM (SELECT value FROM nums ORDER BY random() LIMIT 10) AS t2 WHERE t1.value = t2.value 12/18 2013 Enterprise Consortium

DELETE 文 で TOP 句 を 用 いると 指 定 された 行 数 のレコードがランダムに 選 ばれ 削 除 されます で は random 関 数 と DELETE 文 の USING 句 を 用 いて 同 様 の 機 能 を 実 現 できます なお DELETE 文 の USING 句 は 独 自 の 拡 張 機 能 です nums テーブルのレコードをランダムに 10 つ 選 んで 削 除 DELETE TOP (3) FROM nums DELETE FROM nums AS t1 USING (SELECT value FROM nums ORDER BY random() LIMIT 10) AS t2 WHERE t1.value = t2.value 3.2.2. INSERT 文 の INTO の INSERT 文 では INTO キーワードが 省 略 可 能 ですが では 省 略 することはできませ ん もし INTO が 省 略 されている 場 合 には 書 き 足 す 必 要 があります INSERT 文 の INTO は 省 略 できない INSERT tbl VALUES (10, 'ten') INSERT INTO tbl VALUES (10, 'ten') 3.2.3. DELETE 文 の FROM の DELETE 文 では FROM キーワードが 省 略 可 能 ですが では 省 略 することはできませ ん もし FROM が 省 略 されている 場 合 には 書 き 足 す 必 要 があります DELETE 文 の FROM は 省 略 できない DELETE tbl WHERE id = 10 DELETE FROM tbl WHERE id = 10 3.2.4. OUTPUT 句 では 更 新 された 行 の 結 果 を 返 すのに OUTPUT 句 を 使 用 することができます には OUTPUT 句 は 存 在 しません 代 わりに 独 自 の 拡 張 である RETURNING 句 を 用 います なお では UPDATE 文 で OUTPUT 句 を 用 いて 更 新 される 前 の 値 を 返 すこともできますが にはそのような 機 能 はありません 更 新 前 の 値 が 必 要 な 場 合 には 事 前 に 退 避 させておく 必 要 がありま す INSERT された 行 を 返 す INSERT INTO tbl OUTPUT INSERTED.* VALUES (11, 'eleven') INSERT INTO tbl VALUES (11, 'eleven') RETURNING * UPDATE された 行 の 結 果 を 返 す UPDATE tbl SET value = 'ELEVEN' OUTPUT INSERTED.* WHERE id = 11 UPDATE tbl SET value='eleven' WHERE id = 11 RETURNING * DELETE された 行 を 返 す DELETE FROM tbl OUTPUT DELETED.* WHERE id = 11 DELETE FROM tbl WHERE id = 11 RETURNING * 13/18 2013 Enterprise Consortium

3.2.5. MERGE MERGE 文 はテーブルに 既 存 の 行 がある 場 合 には 更 新 を ない 場 合 には 新 規 に 挿 入 を 行 う SQL 文 です 標 準 SQL に 従 ったものですが はこれに 対 応 していません では WITH 句 の 中 で UPDATE 文 を 用 いることにより これと 同 等 の 機 能 を 実 現 することができます なお 更 新 を 含 む WITH 句 は 独 自 の 拡 張 です diff テーブルの 値 を master テーブルにマージする (master テーブルに ID が 一 致 する 行 があったら diff.val を master.val に 足 し 加 える ID が 一 致 する 行 がない 場 合 には diff の 内 容 を master に 新 規 登 録 する ) MERGE INTO master USING diff ON master.id = diff.id WHEN MATCHED THEN UPDATE SET master.val = master.val + diff.val WHEN NOT MATCHED THEN INSERT VALUES (diff.id, diff.val) WITH inpt AS (SELECT * FROM diff), updt AS (UPDATE master.val = master.val + inpt.val FROM inpt WHERE master.id = inpt.id RETURNING master.id) INSERT INTO master (SELECT * FROM inpt WHERE id NOT IN (SELECT id FROM updt)) 3.2.6. ビューに 対 する 更 新 ではビューに 対 する 更 新 が 可 能 ですが ではビューに 対 して 更 新 することはできません ただし RULE もしくはトリガーと 組 み 合 わせることで 更 新 可 能 なビューと 同 等 な 機 能 を 実 現 することが 可 能 です その 方 法 は スキーマ 移 行 調 査 編 の 第 5 章 で 述 べられていますので そちらを 参 照 してください 3.3. その 他 の 書 き 換 え 3.3.1. 文 字 列 リテラルの 区 切 り 文 字 では SET QUOTED_IDENTIFIER が OFF の 場 合 には 文 字 列 リテラルを 表 すのに 二 重 引 用 符 (... )を 使 用 可 能 です しかし では 二 重 引 用 符 をこの 用 途 では 使 用 することはできません 代 わりに 引 用 符 ('...') で 書 き 換 える 必 要 があります 文 字 列 リテラルの 区 切 り 文 字 に 二 重 引 用 符 は 使 えない SELECT * FROM tbl WHERE value= nine SELECT * FROM tbl WHERE value= 'nine' 3.3.2. 識 別 子 の 区 切 り 文 字 では 識 別 名 を 表 すのに 角 括 弧 ([...])を 使 用 可 能 ですが では 角 括 弧 をこの 用 途 で 使 う ことはできません 代 わりに 二 重 引 用 符 (... )で 書 き 換 える 必 要 があります 識 別 子 の 区 切 り 文 字 に 引 用 符 は 使 えない SELECT * FROM [long name table] SELECT * FROM long name table 3.3.3. 文 字 列 連 結 演 算 子 では 文 字 列 の 連 結 に + 演 算 子 を 用 います では + 演 算 子 はこの 用 途 に 使 用 すること できません 演 算 子 で 置 き 換 えてください 文 字 列 の 連 結 SELECT 'Elephants' + ' never ' + 'forget.' SELECT 'Elephants' ' never ' 'forget.' 3.3.4. LIKE 演 算 子 では LIKE 演 算 子 の 中 で 文 字 クラスを 使 うことができますが の LIKE 演 算 子 は 文 字 ク 14/18 2013 Enterprise Consortium

ラスに 対 応 していません かわりに SQL 正 規 表 現 を 扱 える SIMILAR TO 演 算 子 で 置 き 換 えます A~G 以 外 の 文 字 から 始 まり A~G で 終 わる 名 前 を 検 索 SELECT name FROM staff SELECT name FROM staff WHERE name LIKE '[^a g]%[a g]' WHERE lower(name) SIMILAR TO '[^a g]%[a g]' 3.3.5. 大 文 字 / 小 文 字 全 角 / 半 角 平 仮 名 / 片 仮 名 の 区 別 では 照 合 順 序 の 設 定 によっては 文 字 列 比 較 の 際 に 大 文 字 / 小 文 字 全 角 / 半 角 平 仮 名 / 片 仮 名 が 区 別 されません ではこれらは 区 別 されますので 移 行 の 際 には 注 意 が 必 要 です アプリケーション 側 を 変 更 することで 対 応 する 他 に SQL の 書 き 換 えでもある 程 度 の 対 応 は 可 能 です 大 文 字 / 小 文 字 を 区 別 しない 文 字 列 比 較 のためには 独 自 の ILIKE 演 算 子 や ~* 演 算 子 が 用 意 され ています (~* 演 算 子 については 2.3.2 節 を 参 照 してください) その 他 に upper 関 数 または lower 関 数 を 使 って 文 字 列 を 予 め 大 文 字 か 小 文 字 のどちらかに 変 換 してから 比 較 を 行 う 方 法 があります lower 関 数 を 使 った 例 は 前 節 の LIKE 演 算 子 の 書 き 換 え 例 を 参 照 してください 全 角 / 半 角 の 変 換 は 以 下 のように translate 関 数 を 用 いることで 可 能 です 同 様 の 処 理 を 行 うユーザ 関 数 を 作 成 しておくことで lower 関 数 と 同 じ 要 領 で 使 うことができます 同 様 の 方 法 で 他 の 記 号 の 全 角 / 半 角 変 換 や 平 仮 名 / 片 仮 名 の 変 換 も 可 能 です 全 角 文 字 を 含 むデータからの 検 索 SELECT name FROM products WHERE code LIKE '%PGQL 5432 xxx%' SELECT * FROM products WHERE translate(upper(code), '-0123456789ABCDEFGHIJKLMNO PQRSTUVWXYZ', ' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ' ) LIKE '%PGQL 5432 xxx%' 3.3.6. 比 較 演 算 子!<!> では 小 さくない 大 きくない を 表 す 演 算 子!<!> が 使 用 できますが この 演 算 子 は には 存 在 しません 以 上 以 下 を 表 す 演 算 子 >= <= で 置 き 換 えてください 3.3.7. 排 他 的 論 理 和 演 算 子 でビット 演 算 の 排 他 的 論 理 和 (XOR) を 表 す 演 算 子 は ^ ですが ではこの 演 算 子 は 数 の 累 乗 を 表 します の 排 他 的 論 理 和 演 算 子 # で 置 き 換 えてください 3.4. トランザクション 本 節 では と のトランザクションに 関 する SQL の 差 異 について 概 説 します 3.4.1. BEGIN TRANSACTION ではトランザクションの 開 始 に BEGIN TRANSACTION 文 を 用 います これは 標 準 SQL に 準 拠 した ものではありませんが でも 同 じ 名 前 の 文 が 存 在 します ではこの 文 を 略 して BEGIN TRAN と 書 くことが 可 能 ですが この 構 文 は に 存 在 しま せん 略 さない 形 式 か 単 に BEGIN と 書 き 直 す 必 要 があります トランザクションの 開 始 BEGIN TRAN BEGIN また では BEGIN TRANSACTION 文 のオプションとしてトランザクションに 名 前 を 付 けることができ ますが の BEGIN 文 にはそのような 機 能 はありません 15/18 2013 Enterprise Consortium

3.4.2. COMMIT TRANSACTION トランザクションのコミットは COMMIT TRANSACTION 文 で 行 います COMMIT 文 は 標 準 SQL に 準 拠 していま すが 標 準 SQL が 規 定 しているのは COMMIT と COMMIT WORK の2 種 類 の 構 文 のみです しかしながら は COMMIT TRANSACTION という 構 文 にも 対 応 しています ではこの 文 を 略 して COMMIT TRAN と 書 くことが 可 能 ですが この 構 文 は に 対 応 し ていません 略 さない 形 式 か 単 に COMMIT と 書 き 直 してください トランザクションのコミット COMMIT TRAN COMMIT また SQL Serve の COMMIT TRANSACTION ではトランザクションの 名 前 を 指 定 することができますが の COMMIT 文 にはそのような 機 能 はありません 3.4.3. SAVE TRANSACTION ではセーブポイントの 保 存 に SAVE TRANSACTION 文 を 用 います これは 標 準 SQL には 存 在 しな い 文 です では 標 準 SQL に 準 拠 した SAVEPOINT 文 を 用 います セーブポイントの 設 定 SAVE TRANSACTION savepoint_name SAVEPOINT savepoint_name 3.4.4. ROLLBACK TRANSACTION トランザクションのロールバックは ROLLBACK TRANSACTION 文 で 行 います ROLLBACK 文 は 標 準 SQL に 準 拠 していますが 標 準 SQL が 規 定 しているのは ROLLBACK と ROLLBACK WORK の2 種 類 の 構 文 のみです しかしながら は ROLLBACK TRANSACTION という 構 文 にも 対 応 しています ではこの 文 を 略 して ROLLBACK TRAN と 書 くことが 可 能 ですが この 構 文 は に 対 応 していません 略 さない 形 式 か 単 に ROLLBACK と 書 き 直 してください トランザクションのロールバック ROLLBACK TRAN ROLLBACK また では ROLLBACK TRANSACTION 文 にトランザクションの 名 前 を 指 定 することができますが の ROLLBACK 文 にはそのような 機 能 はありません はセープポイントへの 復 帰 にも RALLBACK TRANSACTION 文 を 用 います この 場 合 にはトランザク ション 名 のかわりにセーブポイント 名 を 指 定 します では 標 準 SQL 準 拠 の ROLLBACK TO SAVEPOINT 文 を 用 います セーブポイントへの 復 帰 ROLLBACK TRAN savepoint_name ROLLBACK TO SAVEPOINT savepoint_name 16/18 2013 Enterprise Consortium

4. 別 紙 一 覧 別 紙 :SQL 差 異 表 17/18 2013 Enterprise Consortium

著 者 版 所 属 企 業 団 体 名 部 署 名 氏 名 SQL 移 行 調 査 編 第 1.0 版 (2012 年 度 WG2) SRA OSS, Inc. 日 本 支 社 技 術 開 発 部 長 田 悠 吾 18/18 2013 Enterprise Consortium