[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>データアクセスのいろいろ]]

* 目次 [#s075cea6]
#contents

*概要 [#ocf51988]

-ストアドプロシージャ - Wikipedia~
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%82%A2%E3%83%89%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3

--ネットワーク・プロセス間通信が発生しないので高速。
--このため、大量データの処理に使用されることが多い。。
--このため、大量データの処理に使用されることが多い。

*DBMS ネイティブなストアド プロシージャ [#r2e22ac2]
-DBMSごとの、ネイティブなストアド プロシージャ
--Transact-SQL (SQL Server)
--PL/SQL (Oracle)
**DBMS ネイティブなストアド プロシージャ [#r2e22ac2]
DBMSごとの、ネイティブなストアド プロシージャ

*CLR ストアド プロシージャ [#n3923e6e]
***Transact-SQL (SQL Server) [#u389e9e7]

***PL/SQL (Oracle) [#r5810176]

**CLR ストアド プロシージャ [#n3923e6e]
DBMSごとの、CLR ストアド プロシージャ

-CLR ストアド プロシージャについて~
--http://msdn.microsoft.com/ja-jp/library/ms131094.aspx
http://msdn.microsoft.com/ja-jp/library/ms131094.aspx

-DBMSごとの、CLR ストアド プロシージャ
--SQL CLR (SQL Server)
--ODE.NET の .NETストアド プロシージャ (Oracle)
***SQL CLR (SQL Server) [#zfae2613]

***ODE.NET の .NETストアド プロシージャ (Oracle) [#f97e5641]

*詳細 [#efe71fcb]
ストアドの定義と実行

**共通(ADO.NET) [#x7ba137f]

***SqlParameterのプロパティ [#b3f7b2a8]
-SqlParameter.Directionプロパティに、~
ParameterDirection列挙型の2、3、4を設定した際の動作を確認する。
|#|メンバー名|説明|h
|1|Input|このパラメーターは入力パラメーターです。|
|2|InputOutput|このパラメーターは入力と出力の両方の機能です。|
|3|Output|このパラメーターは出力パラメーターです。|
|4|ReturnValue|パラメーターは、ストアド プロシージャ、組み込み関数、ユーザー定義関数などの操作からの戻り値を表します。|

-SqlParameter.SqlDbTypeプロパティに~
以下のSqlDbType列挙型を設定した際の動作を確認する。
|#|メンバー名|説明|h
|1|Structured|テーブル値パラメーターに含まれている構造化データを指定するための特別なデータ型。|

--[[参考:テーブル値パラメタ>.NETでバッチは書けるか?#c5411901]]

***複数の結果セット [#t9e4291b]
SELECT文を発行した回数分の結果セットが返る。

-Visual Basic .NET を使用して複数の結果セットを返す~
ストアド プロシージャの型指定されたデータセットに格納するには、方法~
https://support.microsoft.com/ja-jp/help/322793/how-to-fill-a-typed-dataset-from-a-stored-procedure-that-returns-multi

-【VB.NET】ストアドプロシージャの複数の結果を扱う~
( ソフトウェア ) - プログラム の個人的なメモ - Yahoo!ブログ~
https://blogs.yahoo.co.jp/dk521123/27790718.html

**DBMS ネイティブなストアド プロシージャ [#s15463e8]

***Transact-SQL (SQL Server) [#jae7c0fa]
-Open棟梁によるストアド実行サンプル~
https://gist.github.com/daisukenishino2/a97e2017a0c683d2c858e39741b63949

***PL/SQL (Oracle) [#e56bf103]

**CLR ストアド プロシージャ [#ga85dad8]

***SQL CLR (SQL Server) [#r1726c32]

***ODE.NET の .NETストアド プロシージャ (Oracle) [#id22f207]

*参考 [#bbbadd94]
-[[.NETでバッチは書けるか?]]

**DBMS ネイティブなストアド プロシージャ [#ubd0084d]

***マニュアル [#n6aad688]
-Transact-SQL
--ストアド プロシージャ (データベース エンジン) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/sql/relational-databases/stored-procedures/stored-procedures-database-engine

-PL/SQL
--ストアド・プロシージャの開発および使用~
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/appdev.111/E05694-03/tdddg_procedures.htm

***ストアド ファンクションとの違い [#wc2cf4e5]
以下を参考にすると、

-SQL Serverでは機能の違い
-Oracleでは戻り値の有・無

に依るらしい。

-Re[2]: ストアドプロシージャとファンクションの使い分け~
http://bbs.wankuma.com/index.cgi?mode=al2&namber=20155&KLOG=39

-「PL-SQLでファンクションとストアドプロシージャの差が知りたいです。」(1) Java Solution - @IT~
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25920&forum=12

-ストアドプロシージャとビューとユーザー定義関数 - とりあえず半歩~
http://sotoattanito.hatenablog.com/entry/2015/11/10/225318

-ストアドファンクション (stored function)とは~
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典~
https://wa3.i-3-i.info/word13123.html

***無名SQLブロック(BEGIN~ENDブロック) [#a3ffb47e]
BEGIN...ENDで囲まれた手続き型と非手続き型のSQLステートメントを実行する。

-Transact-SQL
--Works - BEGIN~ENDブロック活用~
http://kojama.la.coocan.jp/works/column/beblock.html
--BEGIN...END (Transact-SQL) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/sql/t-sql/language-elements/begin-end-transact-sql

--Microsoft SQL Server Japan Support Team Blog
---変数とパラメータの違い~
https://blogs.msdn.microsoft.com/jpsql/2012/01/16/455/
---DO’s&DONT’s #10: やらない方がいいこと – クエリの条件句で変数を参照する~
https://blogs.msdn.microsoft.com/jpsql/2011/10/30/dosdonts-10-12/

-PL/SQL
--PL/SQLのサブプログラムの使用~
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_v1/appdev.102/B19257-01/subprograms.html
--How To資料: 匿名のPL/SQLブロックを介したデータベース表に対するBLOBデータの読込み/書込み~
http://otndnld.oracle.co.jp/tech/windows/odpnet/howto/02_anonyblock/content.html

**[[大量データの処理方式3]] [#f93fba87]

***[[.NETでバッチは書けるか?]] [#o1d0f10e]

***[[SQL Server 大量データ処理時の性能問題]] [#saa3bdc5]

**CLR ストアド プロシージャ [#s83c50a2]
各DBMSごとに用意されている。

***共通(ADO.NET) [#n7dd4ec1]
-ストアド プロシージャの実行とパラメーター、戻り値の受け渡しを行う

--言語: C#~
https://code.msdn.microsoft.com/windowsdesktop/DataAccess-howto-32c91bf0
--言語: VB.NET~
https://code.msdn.microsoft.com/windowsdesktop/DataAccess-howto-ec5ddd99

-Using SqlParameter Direction in C#.Net with with Stored Procedure - CodeProject~
https://www.codeproject.com/Tips/828514/Using-SqlParameter-Direction-in-Csharp-Net-with-wi

-マニアックなプログラミング備忘録~
http://space.geocities.jp/nequomame/dotnet/odpdotnet_02/odpdotnet_02_02_02.html

***SQL ServerのCLR ストアド プロシージャ [#n8f7b6db]
SQL CLR

-特集 SQL Server 2005の新機能「SQL CLR」(前編)(1/3) - @IT~
http://www.atmarkit.co.jp/fdotnet/special/sqlclr01/sqlclr01_01.html
--[特集]SQL Server 2005の新機能「SQL CLR」(前編) 
---SQL Serverプログラミングを革新するSQL CLRとは? ~
1. 従来のSQLプログラミングについて~
2. SQLプログラミングを革新するSQL CLRとは?~
3. SQL CLRの特長とストアド・プロシージャとの使い分け~
--[特集]SQL Server 2005の新機能「SQL CLR」(後編) 
---Visual Studio 2005でSQL CLRを実装してみる 
1. SQL CLRプログラミングの種類~
2. SQL CLRでHello World!を作成してみる~
3. Visual StudioによるSQL CLRの開発~
4. SQL CLRプログラムの実行

-SQL Server 2005を使いこなそう

--(4)SQL CLRの仕組みとメリットを理解しよう (1-3) - @IT~
http://www.atmarkit.co.jp/ait/articles/0605/16/news106.html

--(5)SQL CLRコーディング、最初の一歩 (1-3) - @IT~
http://www.atmarkit.co.jp/ait/articles/0606/13/news109.html

-SQL CLRを極める3つのコーディング・テクニック(3-3) - @IT~
http://www.atmarkit.co.jp/fdb/rensai/sqls05try06/sqls05try06_3.html

--Transact-SQLでは困難だった複雑な計算処理や文字列操作などでは大きく力を発揮します。~
そこで、今回は.NET Frameworkで提供される正規表現ライブラリの利用を確認してみましょう。

--正規表現とは文字列のパターンを表現する表記法です。~
文字列の検索や置換といったシーンで利用されています。~
ここでは正規表現による入力値チェックをSQL CLRで実装します。

***OracleのCLR ストアド プロシージャ [#n8f7b6db]
.NETストアド プロシージャ

-.NETでOracleアプリを作ろう(5)- @IT~
VB.NETで楽々Oracleストアド・プロシージャ作成 (1/4)~
http://www.atmarkit.co.jp/ait/articles/0603/07/news122.html

-Oracleのストアド・プロシージャをVB/C#で記述する方法 (1/3):CodeZine(コードジン)~
https://codezine.jp/article/detail/1202

-.NETストアド・プロシージャの開発とデプロイ~
https://docs.oracle.com/cd/E16338_01/appdev.112/b56266/procedures_dot_net.htm
-Oracleでの.NETストアド・プロシージャの使用~
http://www.oracle.com/technetwork/jp/articles/williams-sps-099589-ja.html

***DB2のCLR ストアド プロシージャ [#z2238da4]
.NET CLR ルーチン

>・・・

***その他 [#ca4e0a63]
OSSのDBでは、N/Aであるもよう。

|#|DBMS|サポート|h
|1|PostgreSQL|N/A|
|2|MySQL|N/A|

----
Tags: [[:データアクセス]], [[:SQL Server]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS