.NET中使用ORACLE函数和过程并输出参数(1)
.net,ADO.NET,oracle,DBHELPERORA 我们知道.NET中调用ORACLE 的过程没有调用MS-SQLSERVER中的存储过程那么方便,尤其用到参数输出的时候,但是ORACLE的功能强大不会这个不能处理,这个你懂得,呵呵。 2个解决方案,一个是ORACLE中的函数可以带参数输出的,这
.net,ADO.NET,oracle,DBHELPERORA
我们知道.NET中调用ORACLE 的过程没有调用MS-SQLSERVER中的存储过程那么方便,尤其用到参数输出的时候,但是ORACLE的功能强大不会这个不能处理,这个你懂得,呵呵。
2个解决方案,一个是ORACLE中的函数可以带参数输出的,这个比较吻合SQLSERVER中的存储过程(个人比较意见用 ORACLE中的函数应对SQLSERVER中的存储过
程。
二就是用PROCEDURE 的OUT参数带出结果来解决这个问题。
下面来做个程序测试
<img src="/static/imghw/default1.png" data-src="pic/20151007/fv4kap0u3kx.png" class="lazy" alt=".NET中使用ORACLE函数和过程并输出参数(1)" ><img src="/static/imghw/default1.png" data-src="pic/20151007/v00wnsymgll.png" class="lazy" alt=".NET中使用ORACLE函数和过程并输出参数(1)" ><span>qiantian</span>" runat="<span>server</span>"> <p> Button1" runat="<span>server</span>" OnClick="<span>Button1_Click</span>" Text="<span>测试FUNCTION输出</span>" /> button2" runat="<span>server</span>" OnClick="<span>button2_Click</span>" Text="<span>测试PROCEDUCE输出</span>" /> <br> Button3" runat="<span>server</span>" Text="<span>测试FUNCTION三层</span>" OnClick="<span>Button3_Click</span>" /> Button4" runat="<span>server</span>" Text="<span>测试PROCEDURE三层</span>" OnClick="<span>Button4_Click</span>" /> </p>
后台代码 针对测试FUNCTION输出(直接写在代码里面)
<span>protected</span> <span>void</span> Button1_Click(<span>object</span> sender, EventArgs e) { OracleConnection conn = <span>new</span> OracleConnection("<span>Data Source=yu;Persist Security Info=True;User ID=$$$$$$;Password=$$$$$$$$;Unicode=True;</span>"); OracleCommand cmd = <span>new</span> OracleCommand(); cmd.Connection = conn; cmd.CommandText = "<span>F_ACC_CREATEPERMISSION</span>"; cmd.CommandType = CommandType.StoredProcedure; <span>// add the parameters, including the return parameter to retrieve </span> cmd.Parameters.Add("<span>CategoryID</span>", OracleType.Number).Value = 555; cmd.Parameters.Add("<span>Description</span>", OracleType.VarChar, 50).Value = "<span>zzz1</span>"; <span>// the return value </span> cmd.Parameters.Add("<span>Result</span>", OracleType.Number).Direction = ParameterDirection.ReturnValue; <span>// execute the function</span> conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); <span>// output the result</span> Response.Write("<span>Resultis: </span>" + cmd.Parameters["<span>Result</span>"].Value); }
后台代码 针对测试FUNCATION (通过参数 数据库类的 三层模式输出)
<img src="/static/imghw/default1.png" data-src="pic/20151007/fv4kap0u3kx.png" class="lazy" alt=".NET中使用ORACLE函数和过程并输出参数(1)" ><img src="/static/imghw/default1.png" data-src="pic/20151007/v00wnsymgll.png" class="lazy" alt=".NET中使用ORACLE函数和过程并输出参数(1)" ><span> <span>protected</span> <span>void</span> Button3_Click(<span>object</span> sender, EventArgs e) { <span>// Accounts.Bus.Permissions myperm = new Accounts.Bus.Permissions();</span> Accounts.Data.Permission myperm = <span>new</span> Accounts.Data.Permission(); <span>int</span> i = myperm.Create(555, "<span>zzz3</span>"); Response.Write(i.ToString()); } </span><p> </p><p><br> </p><p> </p>
PERMISSION 类中代码
<span>/// </span> <span>/// 创建一个权限</span> <span>/// </span> <span>public</span> <span>int</span> Create(<span>int</span> categoryID, <span>string</span> description) { <span>int</span> rowsAffected; OracleParameter[] parameters = { <span>new</span> OracleParameter("<span>CategoryID</span>", OracleType.Number), <span>new</span> OracleParameter("<span>Description</span>", OracleType.VarChar,50) }; parameters[0].Value = categoryID; parameters[1].Value = description; <span>return</span> DbHelperOra.RunProcedure("<span>F_ACC_CREATEPERMISSION</span>", parameters, <span>out</span> rowsAffected); }
DbHelperOra中的代码
<span>/// </span> <span>/// 执行存储过程,返回影响的行数 对应ORACLE 的FUNCTION 的RETURN用的 </span> <span>/// </span> <span>/// <param name="storedProcName">存储过程名</span> <span>/// <param name="parameters">存储过程参数</span> <span>/// <param name="rowsAffected">影响的行数</span> <span>/// </span> <span>public</span> <span>static</span> <span>int</span> RunProcedure(<span>string</span> storedProcName, IDataParameter[] parameters, <span>out</span> <span>int</span> rowsAffected) { <span>using</span> (OracleConnection connection = <span>new</span> OracleConnection(connectionString)) { <span>int</span> result; connection.Open(); OracleCommand command = BuildIntCommand(connection, storedProcName, parameters); rowsAffected = command.ExecuteNonQuery(); result = <span>int</span>.Parse(command.Parameters["<span>ReturnValue</span>"].Value.ToString()); <span>//Connection.Close();</span> <span>return</span> result; } }
BuildIntCommand调用的代码段
<span>/// </span> <span>/// 创建OracleCommand 对象实例(用来返回一个整数值) </span> <span>/// </span> <span>/// <param name="storedProcName">存储过程名</span> <span>/// <param name="parameters">存储过程参数</span> <span>/// OracleCommand 对象实例</span> <span>private</span> <span>static</span> OracleCommand BuildIntCommand(OracleConnection connection, <span>string</span> storedProcName, IDataParameter[] parameters) { OracleCommand command = BuildQueryCommand(connection, storedProcName, parameters); <span>//command.Parameters.Add(new OracleParameter("ReturnValue", OracleType.Int32, 4, ParameterDirection.ReturnValue,false, 0, 0, string.Empty, DataRowVersion.Default, null));</span> command.Parameters.Add("<span>ReturnValue</span>", OracleType.Number).Direction = ParameterDirection.ReturnValue; <span>return</span> command; }
BuildQueryCommand调用的代码段
<span>/// </span> <span>/// 构建OracleCommand 对象(用来返回一个结果集,而不是一个整数值)</span> <span>/// </span> <span>/// <param name="connection">数据库连接</span> <span>/// <param name="storedProcName">存储过程名</span> <span>/// <param name="parameters">存储过程参数</span> <span>/// OracleCommand</span> <span>private</span> <span>static</span> OracleCommand BuildQueryCommand(OracleConnection connection, <span>string</span> storedProcName, IDataParameter[] parameters) { OracleCommand command = <span>new</span> OracleCommand(storedProcName, connection); command.CommandType = CommandType.StoredProcedure; <span>foreach</span> (OracleParameter parameter <span>in</span> parameters) { command.Parameters.Add(parameter); } <span>return</span> command; }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。

Oracleビューは、Exputility:Oracleデータベースにログインしてエクスポートできます。 Expユーティリティを開始し、ビュー名とエクスポートディレクトリを指定します。ターゲットモード、ファイル形式、テーブルスペースなどのエクスポートパラメーターを入力します。エクスポートを開始します。 IMPDPユーティリティを使用してエクスポートを確認します。

Oracleログファイルがいっぱいになると、次のソリューションを採用できます。1)古いログファイルをクリーンします。 2)ログファイルサイズを増やします。 3)ログファイルグループを増やします。 4)自動ログ管理をセットアップします。 5)データベースを再発射化します。ソリューションを実装する前に、データの損失を防ぐためにデータベースをバックアップすることをお勧めします。

Oracleはデータベース会社だけでなく、クラウドコンピューティングとERPシステムのリーダーでもあります。 1。Oracleは、データベースからクラウドサービスおよびERPシステムへの包括的なソリューションを提供します。 2。Oraclecloudは、AWSとAzureに挑戦し、IAAS、PAAS、SAASサービスを提供します。 3. e-businesssuiteやfusionApplicationsなどのOracleのERPシステムは、企業がオペレーションを最適化するのに役立ちます。

CENTOSシステムにHadoop分散ファイルシステム(HDFS)を構築するには、複数のステップが必要です。この記事では、簡単な構成ガイドを提供します。 1.初期段階でJDKをインストールする準備:すべてのノードにJavadevelopmentKit(JDK)をインストールすると、バージョンはHadoopと互換性がある必要があります。インストールパッケージは、Oracleの公式Webサイトからダウンロードできます。環境変数構成: /etc /プロファイルファイルを編集し、JavaおよびHadoop環境変数を設定して、システムがJDKとHadoopのインストールパスを見つけることができるようにします。 2。セキュリティ構成:SSHパスワードなしログインSSHキーを生成する:各ノードでSSH-KeyGenコマンドを使用する

Oracleデータベースを停止するには、次の手順を実行します。1。データベースに接続します。 2。すぐにシャットダウンします。 3.シャットダウンは完全に中止します。

CENTOSシステムでWebLogicデータベース接続を構成するには、次の手順が必要です。JDKのインストールと環境構成:サーバーがWebLogicバージョンと互換性のあるJDKをインストールしていることを確認してください(たとえば、WeBlogic14.1.1には通常JDK8が必要です)。 java_home、classpath、およびパス環境変数を正しく設定します。 WebLogicのインストールと減圧:Oracle WebサイトからCentosシステム用のWebLogicインストールパッケージをダウンロードし、指定されたディレクトリに解凍します。 WebLogicユーザーとディレクトリの作成:専用のWebLogicユーザーアカウントを作成し、セキュリティパスワードを設定します

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。
