<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>oracle信息站</title>
	<atom:link href="http://oraclecn.org.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://oraclecn.org.cn</link>
	<description>新鲜全面的oracle消息</description>
	<pubDate>Mon, 05 Jan 2009 20:04:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>asp.net 存储过程</title>
		<link>http://oraclecn.org.cn/html/333.html</link>
		<comments>http://oraclecn.org.cn/html/333.html#comments</comments>
		<pubDate>Mon, 05 Jan 2009 20:04:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/333.html</guid>
		<description><![CDATA[asp.net获取存储过程的输出参数2008-09-12 13:37这个其实很简单，只是学习到了就作个记录，也给不知道的人留个方便。一、假设存储过程如下&#8211;region [dbo].[InsertArchive]&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#38;nbsp;Generated By:    wangzeng using&#38;nbsp;CodeSmith 4.0.0.0&#8211;&#38;nbsp;Template:        StoredProcedures.cst&#8211;&#38;nbsp;Procedure Name: [dbo].[InsertArchive]&#8211;&#38;nbsp;Date Generated: 2007年11月28日&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;插入档案记录ALTER PROCEDURE [dbo].[InsertArchive]     @Name varchar(50),     @Sex int,     @PostID int,     @OrgID int,     @WorkTypeID varchar(20),     @ArchivesID int&#38;nbsp;OUTPUT //注意AS&#8211;SET NOCOUNT ONINSERT INTO [dbo].[Archives] (     [Name],     [Sex],     [PostID],     [OrgID],     [WorkTypeID]) VALUES (     @Name,     @Sex,     @PostID,     @OrgID,     @WorkTypeID)SET @ArchivesID =&#38;nbsp;SCOPE_IDENTITY()&#8211;endregion 二、获取输出参数的代码/**////&#38;lt;summary&#38;gt;        ///&#38;nbsp;新增档案        ///&#38;lt;/summary&#38;gt;        ///&#38;lt;param name=&#8221;Name&#8221;&#38;gt;&#38;lt;/param&#38;gt;        ///&#38;lt;param name=&#8221;Sex&#8221;&#38;gt;&#38;lt;/param&#38;gt;        ///&#38;lt;param name=&#8221;OrgID&#8221;&#38;gt;&#38;lt;/param&#38;gt;        ///&#38;lt;param name=&#8221;PostID&#8221;&#38;gt;&#38;lt;/param&#38;gt;        ///&#38;lt;param name=&#8221;WorkID&#8221;&#38;gt;&#38;lt;/param&#38;gt;        ///&#38;lt;returns&#38;gt;&#38;lt;/returns&#38;gt;        publicint&#38;nbsp;InsertArchive(string&#38;nbsp;Name,int&#38;nbsp;Sex,int&#38;nbsp;OrgID,int&#38;nbsp;PostID,string&#38;nbsp;WorkTypeID,refint&#38;nbsp;ArchivesID) //注意 ref        {             SqlCommand comm [...]]]></description>
			<content:encoded><![CDATA[<p><DIV CLASS="tit"><span id="1_1">asp.net</font></font>获取<span id="2_1">存储过程</font></font>的输出参数</DIV><DIV CLASS="date">2008-09-12 13:37</DIV><TABLE STYLE="TABLE-LAYOUT: FIXED"><TBODY><TR><TD><DIV CLASS="cnt" ID="blog_text"><P>这个其实很简单，只是学习到了就作个记录，也给不知道的人留个方便。</P><P>一、假设<span id="2_2">存储过程</font></font>如下</P><DIV STYLE="BORDER-RIGHT: #CCCCCC 1PX SOLID; PADDING-RIGHT: 5PX; BORDER-TOP: #CCCCCC 1PX SOLID; PADDING-LEFT: 4PX; PADDING-BOTTOM: 4PX; BORDER-LEFT: #CCCCCC 1PX SOLID; WIDTH: 98%; WORD-BREAK: BREAK-ALL; PADDING-TOP: 4PX; BORDER-BOTTOM: #CCCCCC 1PX SOLID; BACKGROUND-COLOR: #EEEEEE"><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><SPAN STYLE="COLOR: #000000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">region [dbo].[InsertArchive]<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</SPAN><SPAN STYLE="COLOR: #000000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Generated By:    wangzeng </SPAN><SPAN STYLE="COLOR: #0000FF">using</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;CodeSmith </SPAN><SPAN STYLE="COLOR: #000000">4.0</SPAN><SPAN STYLE="COLOR: #000000">.</SPAN><SPAN STYLE="COLOR: #000000">0.0</SPAN><SPAN STYLE="COLOR: #000000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Template:        StoredProcedures.cst<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Procedure Name: [dbo].[InsertArchive]<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Date Generated: 2007年11月28日<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</SPAN><SPAN STYLE="COLOR: #000000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">插入档案记录<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>ALTER PROCEDURE [dbo].[InsertArchive]<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @Name varchar(</SPAN><SPAN STYLE="COLOR: #000000">50</SPAN><SPAN STYLE="COLOR: #000000">),<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @Sex </SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">,<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @PostID </SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">,<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @OrgID </SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">,<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @WorkTypeID varchar(</SPAN><SPAN STYLE="COLOR: #000000">20</SPAN><SPAN STYLE="COLOR: #000000">),<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @ArchivesID </SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;OUTPUT //注意<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>AS<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">SET NOCOUNT ON<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>INSERT INTO [dbo].[Archives] (<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     [Name],<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     [Sex],<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     [PostID],<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     [OrgID],<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     [WorkTypeID]<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>) VALUES (<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @Name,<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @Sex,<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @PostID,<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @OrgID,<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>     @WorkTypeID<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>)<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/>SET @ArchivesID </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;SCOPE_IDENTITY()<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN><SPAN STYLE="COLOR: #000000">&#8211;</SPAN><SPAN STYLE="COLOR: #000000">endregion<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/></SPAN></DIV><P> </P><P>二、获取输出参数的代码</P><DIV STYLE="BORDER-RIGHT: #CCCCCC 1PX SOLID; PADDING-RIGHT: 5PX; BORDER-TOP: #CCCCCC 1PX SOLID; PADDING-LEFT: 4PX; PADDING-BOTTOM: 4PX; BORDER-LEFT: #CCCCCC 1PX SOLID; WIDTH: 98%; WORD-BREAK: BREAK-ALL; PADDING-TOP: 4PX; BORDER-BOTTOM: #CCCCCC 1PX SOLID; BACKGROUND-COLOR: #EEEEEE"><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"/><IMG ALIGN="top" STYLE="DISPLAY: NONE" SRC="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"/><SPAN STYLE="BORDER-RIGHT: #808080 1PX SOLID; BORDER-TOP: #808080 1PX SOLID; DISPLAY: NONE; BORDER-LEFT: #808080 1PX SOLID; BORDER-BOTTOM: #808080 1PX SOLID; BACKGROUND-COLOR: #FFFFFF">/**/</SPAN><SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;summary&amp;gt;</SPAN><SPAN STYLE="COLOR: #008000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #008000">&amp;nbsp;新增档案<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;/summary&amp;gt;</SPAN><SPAN STYLE="COLOR: #008000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;param name=&#8221;Name&#8221;&amp;gt;&amp;lt;/param&amp;gt;</SPAN><SPAN STYLE="COLOR: #008000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;param name=&#8221;Sex&#8221;&amp;gt;&amp;lt;/param&amp;gt;</SPAN><SPAN STYLE="COLOR: #008000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;param name=&#8221;OrgID&#8221;&amp;gt;&amp;lt;/param&amp;gt;</SPAN><SPAN STYLE="COLOR: #008000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;param name=&#8221;PostID&#8221;&amp;gt;&amp;lt;/param&amp;gt;</SPAN><SPAN STYLE="COLOR: #008000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;param name=&#8221;WorkID&#8221;&amp;gt;&amp;lt;/param&amp;gt;</SPAN><SPAN STYLE="COLOR: #008000"><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"/>        </SPAN><SPAN STYLE="COLOR: #808080">///</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;</SPAN></SPAN><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"/><SPAN STYLE="COLOR: #000000">        </SPAN><SPAN STYLE="COLOR: #0000FF">public</SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;InsertArchive(</SPAN><SPAN STYLE="COLOR: #0000FF">string</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Name,</SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Sex,</SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;OrgID,</SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;PostID,</SPAN><SPAN STYLE="COLOR: #0000FF">string</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;WorkTypeID,</SPAN><SPAN STYLE="COLOR: #0000FF">ref</SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;ArchivesID) //注意 ref<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"/><IMG ALIGN="top" STYLE="DISPLAY: NONE" SRC="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"/>        </SPAN><SPAN STYLE="BORDER-RIGHT: #808080 1PX SOLID; BORDER-TOP: #808080 1PX SOLID; DISPLAY: NONE; BORDER-LEFT: #808080 1PX SOLID; BORDER-BOTTOM: #808080 1PX SOLID; BACKGROUND-COLOR: #FFFFFF"><IMG SRC="http://www.cnblogs.com/Images/dot.gif"/></SPAN><SPAN><SPAN STYLE="COLOR: #000000">{<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             SqlCommand comm </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #0000FF">new</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;SqlCommand(</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">InsertArchive</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">, conn.Conn);<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.CommandType </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;CommandType.StoredProcedure;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters.Add(</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@Name</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">, SqlDbType.VarChar, </SPAN><SPAN STYLE="COLOR: #000000">50</SPAN><SPAN STYLE="COLOR: #000000">);<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@Name</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Value </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Name;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@Name</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Direction </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;System.Data.ParameterDirection.Input;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters.Add(</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@Sex</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">, SqlDbType.Int, </SPAN><SPAN STYLE="COLOR: #000000">4</SPAN><SPAN STYLE="COLOR: #000000">);<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@Sex</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Value </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Sex;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@Sex</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Direction </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;System.Data.ParameterDirection.Input;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters.Add(</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@OrgID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">, SqlDbType.Int, </SPAN><SPAN STYLE="COLOR: #000000">4</SPAN><SPAN STYLE="COLOR: #000000">);<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@OrgID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Value </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;OrgID;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@OrgID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Direction </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;System.Data.ParameterDirection.Input;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters.Add(</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@PostID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">, SqlDbType.Int, </SPAN><SPAN STYLE="COLOR: #000000">4</SPAN><SPAN STYLE="COLOR: #000000">);<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@PostID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Value </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;PostID;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@PostID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Direction </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;System.Data.ParameterDirection.Input;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters.Add(</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@WorkTypeID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">, SqlDbType.NVarChar,</SPAN><SPAN STYLE="COLOR: #000000">20</SPAN><SPAN STYLE="COLOR: #000000">);<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@WorkTypeID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Value </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;WorkTypeID;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@WorkTypeID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Direction </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;System.Data.ParameterDirection.Input;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/><BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters.Add(</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@ArchivesID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">, SqlDbType.Int, </SPAN><SPAN STYLE="COLOR: #000000">4</SPAN><SPAN STYLE="COLOR: #000000">);<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@ArchivesID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Value </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;ArchivesID;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@ArchivesID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Direction </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;System.Data.ParameterDirection.Output;           //注意方向<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>            <BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>            </SPAN><SPAN STYLE="COLOR: #0000FF">if</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;(conn.Conn.State </SPAN><SPAN STYLE="COLOR: #000000">==</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;ConnectionState.Closed)<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>                 conn.Conn.Open();<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>            </SPAN><SPAN STYLE="COLOR: #0000FF">int</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;counts </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;comm.ExecuteNonQuery();<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>             ArchivesID </SPAN><SPAN STYLE="COLOR: #000000">=</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;Int32.Parse(comm.Parameters[</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">@ArchivesID</SPAN><SPAN STYLE="COLOR: #000000">&#8220;</SPAN><SPAN STYLE="COLOR: #000000">].Value.ToString()); //关键的地方<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>            </SPAN><SPAN STYLE="COLOR: #0000FF">if</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;(conn.Conn.State </SPAN><SPAN STYLE="COLOR: #000000">==</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;ConnectionState.Open)<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>                 conn.Conn.Close();<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"/>            </SPAN><SPAN STYLE="COLOR: #0000FF">return</SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;counts;<BR/><IMG ALIGN="top" SRC="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"/>         }</SPAN></SPAN></DIV></DIV></TD></TR></TBODY></TABLE><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/88.html" title="oracle 管理 论文">oracle 管理 论文</a></li>
<li><a href="http://oraclecn.org.cn/html/18.html" title="oracle pl sql">oracle pl sql</a></li>
<li><a href="http://oraclecn.org.cn/html/147.html" title="oracle 10g 启动">oracle 10g 启动</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/333.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>什么是存储过程</title>
		<link>http://oraclecn.org.cn/html/332.html</link>
		<comments>http://oraclecn.org.cn/html/332.html#comments</comments>
		<pubDate>Mon, 05 Jan 2009 20:04:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/332.html</guid>
		<description><![CDATA[Java调用存储过程的2种方法 
baochunlin woziji管理员UID87295 帖子590 精华0 积分4511 金币4511  威望0  阅读权限255 在线时间138 小时 注册时间2008-3-27 最后登录2009-1-5 个人空间 发短消息 加为好友 当前离线 1# 大 中 小 发表于 2008-10-22 11:03  只看该作者 Java调用存储过程的2种方法 creat  proc proc_select    @pid varchar(20)    @address varchar(20) output    as    select @address=address from userinfo [...]]]></description>
			<content:encoded><![CDATA[<div class=dssubject id=dssubject><span class=dsbold>Java调用<span class=\"hl1\"><span id=\"1_1\">存储过程</span></span>的2种方法 <BR></span></div>
<p><span class=dsnormal><span class=dslink>baochunlin <BR>woziji<BR></span></span><BR><span class=dsnormal>管理员<BR><BR>UID<BR>87295 <BR>帖子<BR>590 <BR>精华<BR>0 <BR>积分<BR>4511 <BR>金币<BR>4511  <BR>威望<BR>0  <BR>阅读权限<BR>255 <BR>在线时间<BR>138 小时 <BR>注册时间<BR>2008-3-27 <BR>最后登录<BR>2009-1-5 <BR><BR>个人空间<BR> 发短消息<BR> 加为好友<BR> 当前离线 <BR></span><span class=dsnormal><span class=dsbold>1# 大 中 小 发表于 2008-10-22 11:03  只看该作者 <BR></span></span><span class=dsnormal><span class=dsbold><BR>Java调用<span class=\"hl1\"><span id=\"1_2\">存储过程</span></span>的2种方法<BR></span></span><span class=dsnormal> creat  proc proc_select<BR>    @pid varchar(20)<BR>    @address varchar(20) output<BR>    as<BR>    select @address=address from userinfo where pid=@pid<BR>    go<BR><BR>    用java调用:<BR>    class.forName(\\\&#8221;sun.jdbc.odbc.JdbcOdbcDriver\\\&#8221;);  //加载驱动<BR>    Connection con=DriverManager.getConnection(\\\&#8221;Jdbc:Odbc:test\\\&#8221;,\\\&#8221;sa\\\&#8221;,\\\&#8221;\\\&#8221;);    //获得连接<BR>    String call=\\\&#8221;{call proc_select(?,?)};\\\&#8221;          //调用语句<BR>    CallableStatement proc=con.preparecall(call);    //调用<span class=\"hl1\"><span id=\"1_3\">存储过程</span></span><BR>    proc.setString(1,\\\&#8221;12345678\\\&#8221;);                  //给输入参数传值<BR>    proc.registerOutParameter(2,Type.varchar);      //声明输出参数<span class=\"hl1\"><span id=\"1_4\">是</span></span><span class=\"hl1\"><span id=\"1_5\">什么</span></span>类型的<BR>    proc.execute();                                  //执行<BR>    String address=proc.getString(2);                //获得输出参数<BR><BR>    java调用<span class=\"hl1\"><span id=\"1_6\">存储过程</span></span>2<BR><BR>    <span class=\"hl1\"><span id=\"1_7\">存储过程</span></span>可以有返回值，所以CallableStatement类有类似getResultSet这样的方法来获取返回值。当<span class=\"hl1\"><span id=\"1_8\">存储过程</span></span>返回一个值时，你必须使用registerOutParameter方法告诉JDBC驱动器该值的SQL类型<span class=\"hl1\"><span id=\"1_9\">是</span></span><span class=\"hl1\"><span id=\"1_10\">什么</span></span>。你也必须调整<span class=\"hl1\"><span id=\"1_11\">存储过程</span></span>调用来指示该<span class=\"hl1\"><span id=\"1_12\">过程</span></span>返回一个值。<BR><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/182.html" title="oracle 10g em配置">oracle 10g em配置</a></li>
<li><a href="http://oraclecn.org.cn/html/160.html" title="oracle 10g 中文下载">oracle 10g 中文下载</a></li>
<li><a href="http://oraclecn.org.cn/html/278.html" title="oracle数据库许可证">oracle数据库许可证</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/332.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>hibernate 存储过程</title>
		<link>http://oraclecn.org.cn/html/331.html</link>
		<comments>http://oraclecn.org.cn/html/331.html#comments</comments>
		<pubDate>Sun, 04 Jan 2009 20:04:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/331.html</guid>
		<description><![CDATA[引自： http://tb.blog.csdn.net/TrackBack.aspx?PostId=546174如果底层数据库（如Oracle）支持存储过程，也可以通过存储过程来执行批量更新。存储过程直接在数据库中运行，速度更加快。在Oracle数据库中可以定义一个名为batchUpdateStudent()的存储过程，代码如下：create or replace procedure batchUpdateStudent(p_age in number) asbeginupdate STUDENT set AGE=AGE 1 where AGE&#38;gt;p_age;end;以上存储过程有一个参数p_age，代表学生的年龄，应用程序可按照以下方式调用存储过程：tx = session.beginTransaction();Connection con=session.connection();String procedure = &#8220;{call batchUpdateStudent(?) }&#8221;;CallableStatement cstmt = con.prepareCall(procedure);cstmt.setInt(1,0); //把年龄参数设为0cstmt.executeUpdate();tx.commit();引自： http://www.afuer.com/article.asp?id=140使用存储过程来查询     Hibernate    3引入了对存储过程查询的支持.    存储过程必须返回一个结果集,作为Hibernate能够使用的第一个外部参数.    下面是一个Oracle9和更高版本的存储过程例子.           Create    or    REPLACE    FUNCTION    selectAllEmployments               RETURN    SYS_REFCURSOR       AS               st_cursor    SYS_REFCURSOR;       BEGIN               OPEN    st_cursor    FOR         Select    EMPLOYEE,    EMPLOYER,         STARTDATE,    ENDDATE,         REGIONCODE,    EID,    VALUE,    CURRENCY         FROM    EMPLOYMENT;                   RETURN      st_cursor;         END;     在Hibernate里要要使用这个查询,你需要通过命名查询来映射它.           &#38;lt;sql-query    name=&#8221;selectAllEmployees_SP&#8221;    callable=&#8221;true&#8221;&#38;gt;             &#38;lt;return    alias=&#8221;emp&#8221;    class=&#8221;Employment&#8221;&#38;gt;                     &#38;lt;return-property    name=&#8221;employee&#8221;    column=&#8221;EMPLOYEE&#8221;/&#38;gt;                     &#38;lt;return-property    name=&#8221;employer&#8221;    column=&#8221;EMPLOYER&#8221;/&#38;gt;                                             &#38;lt;return-property    [...]]]></description>
			<content:encoded><![CDATA[<p><DIV><P STYLE="TEXT-INDENT: 2EM">引自： <A HREF="http://tb.blog.csdn.net/TrackBack.aspx?PostId=546174" TARGET="_blank">http://tb.blog.csdn.net/TrackBack.aspx?PostId=546174</A></P><P STYLE="TEXT-INDENT: 2EM">如果底层数据库（如Oracle）支持<span id="2_1">存储过程</font></font>，也可以通过<span id="2_2">存储过程</font></font>来执行批量更新。<span id="2_3">存储过程</font></font>直接在数据库中运行，速度更加快。在Oracle数据库中可以定义一个名为batchUpdateStudent()的<span id="2_4">存储过程</font></font>，代码如下：</P><P STYLE="TEXT-INDENT: 2EM">create or replace procedure batchUpdateStudent(p_age in number) as</P><P STYLE="TEXT-INDENT: 2EM">begin</P><P STYLE="TEXT-INDENT: 2EM">update STUDENT set AGE=AGE 1 where AGE&amp;gt;p_age;</P><P STYLE="TEXT-INDENT: 2EM">end;</P><P STYLE="TEXT-INDENT: 2EM">以上<span id="2_5">存储过程</font></font>有一个参数p_age，代表学生的年龄，应用程序可按照以下方式调用<span id="2_6">存储过程</font></font>：</P><P STYLE="TEXT-INDENT: 2EM">tx = session.beginTransaction();</P><P STYLE="TEXT-INDENT: 2EM">Connection con=session.connection();</P><P STYLE="TEXT-INDENT: 2EM">String procedure = &#8220;{call batchUpdateStudent(?) }&#8221;;</P><P STYLE="TEXT-INDENT: 2EM">CallableStatement cstmt = con.prepareCall(procedure);</P><P STYLE="TEXT-INDENT: 2EM">cstmt.setInt(1,0); //把年龄参数设为0</P><P STYLE="TEXT-INDENT: 2EM">cstmt.executeUpdate();</P><P STYLE="TEXT-INDENT: 2EM">tx.commit();</P><P STYLE="TEXT-INDENT: 2EM">引自： http://www.afuer.com/article.asp?id=140</P><P STYLE="TEXT-INDENT: 2EM">使用<span id="2_7">存储过程</font></font>来查询   </P><P STYLE="TEXT-INDENT: 2EM">  <span id="1_1">Hibernate</font></font>    3引入了对<span id="2_8">存储过程</font></font>查询的支持.    <span id="2_9">存储过程</font></font>必须返回一个结果集,作为<span id="1_2">Hibernate</font></font>能够使用的第一个外部参数.    下面是一个Oracle9和更高版本的<span id="2_10">存储过程</font></font>例子.     </P><P STYLE="TEXT-INDENT: 2EM">    </P><P STYLE="TEXT-INDENT: 2EM">  Create    or    REPLACE    FUNCTION    selectAllEmployments     </P><P STYLE="TEXT-INDENT: 2EM">          RETURN    SYS_REFCURSOR     </P><P STYLE="TEXT-INDENT: 2EM">  AS     </P><P STYLE="TEXT-INDENT: 2EM">          st_cursor    SYS_REFCURSOR;     </P><P STYLE="TEXT-INDENT: 2EM">  BEGIN     </P><P STYLE="TEXT-INDENT: 2EM">          OPEN    st_cursor    FOR     </P><P STYLE="TEXT-INDENT: 2EM">    Select    EMPLOYEE,    EMPLOYER,     </P><P STYLE="TEXT-INDENT: 2EM">    STARTDATE,    ENDDATE,     </P><P STYLE="TEXT-INDENT: 2EM">    REGIONCODE,    EID,    VALUE,    CURRENCY     </P><P STYLE="TEXT-INDENT: 2EM">    FROM    EMPLOYMENT;     </P><P STYLE="TEXT-INDENT: 2EM">              RETURN      st_cursor;     </P><P STYLE="TEXT-INDENT: 2EM">    END;   </P><P STYLE="TEXT-INDENT: 2EM">  在<span id="1_3">Hibernate</font></font>里要要使用这个查询,你需要通过命名查询来映射它.     </P><P STYLE="TEXT-INDENT: 2EM">    </P><P STYLE="TEXT-INDENT: 2EM">  &amp;lt;sql-query    name=&#8221;selectAllEmployees_SP&#8221;    callable=&#8221;true&#8221;&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">          &amp;lt;return    alias=&#8221;emp&#8221;    class=&#8221;Employment&#8221;&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;return-property    name=&#8221;employee&#8221;    column=&#8221;EMPLOYEE&#8221;/&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;return-property    name=&#8221;employer&#8221;    column=&#8221;EMPLOYER&#8221;/&amp;gt;                           </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;return-property    name=&#8221;startDate&#8221;    column=&#8221;STARTDATE&#8221;/&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;return-property    name=&#8221;endDate&#8221;    column=&#8221;ENDDATE&#8221;/&amp;gt;                           </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;return-property    name=&#8221;regionCode&#8221;    column=&#8221;REGIONCODE&#8221;/&amp;gt;                           </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;return-property    name=&#8221;id&#8221;    column=&#8221;EID&#8221;/&amp;gt;                                                   </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;return-property    name=&#8221;salary&#8221;&amp;gt;     </P><P STYLE="TEXT-INDENT: 2EM">                          &amp;lt;return-column    name=&#8221;VALUE&#8221;/&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">                          &amp;lt;return-column    name=&#8221;CURRENCY&#8221;/&amp;gt;                           </P><P STYLE="TEXT-INDENT: 2EM">                  &amp;lt;/return-property&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">          &amp;lt;/return&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">          {    ?    =    call    selectAllEmployments()    }   </P><P STYLE="TEXT-INDENT: 2EM">  &amp;lt;/sql-query&amp;gt;   </P><P STYLE="TEXT-INDENT: 2EM">    </P><P STYLE="TEXT-INDENT: 2EM">  注意<span id="2_11">存储过程</font></font>当前仅仅返回标量和实体.现在不支持&amp;lt;return-join&amp;gt;和&amp;lt;load-collection&amp;gt;     </P><P STYLE="TEXT-INDENT: 2EM">引自： http://sjes.com.cn/3frffgxs/2007-7-1/dispbbs_850_252f22232f20</P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;<span id="1_4">hibernate</font></font>-mapping package=&#8221;com.unmi.vo&#8221;&amp;gt; &amp;lt;class name=&#8221;Test&#8221; table=&#8221;TEST&#8221;/&amp;gt;       </P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;sql-query callable=&#8221;true&#8221; name=&#8221;selectAllUsers&#8221;&amp;gt; </P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;return alias=&#8221;aa&#8221; class=&#8221;Test&#8221;&amp;gt; &amp;lt;return-property name=&#8221;oborqt&#8221; column=&#8221;OBORQT&#8221;/&amp;gt;</P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;return-property name=&#8221;moorqt&#8221; column=&#8221;MOORQT&#8221;/&amp;gt; &amp;lt;return-property name=&#8221;roschn&#8221; column=&#8221;ROSCHN&#8221;/&amp;gt;</P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;return-property name=&#8221;plandate&#8221; column=&#8221;PLANDATE&#8221;/&amp;gt; </P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;return&amp;gt; { ? = call selectAllUsers() } &amp;lt;/sql-query&amp;gt; </P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;/<span id="1_5">hibernate</font></font>-mapping&amp;gt;</P><P STYLE="TEXT-INDENT: 2EM">{ ? = call selectAllUsers() } 也可以写成{ call selectAllUsers() }， 如果有参数就写成 { ? = call selectAllUsers(?,?,?) } 代码中对query设置相应位置上的值就OK Java调用关键代码如下</P><P STYLE="TEXT-INDENT: 2EM">Session session = HibernateUtil.currentSession();</P><P STYLE="TEXT-INDENT: 2EM">Query query = session.getNamedQuery(&#8221;selectAllUsers&#8221;); </P><P STYLE="TEXT-INDENT: 2EM">List list = query.list();</P><P STYLE="TEXT-INDENT: 2EM">System.out.println(list);</P><P STYLE="TEXT-INDENT: 2EM">要求你的<span id="2_12">存储过程</font></font>必须能返回记录集，否则要出错 如果你的<span id="2_13">存储过程</font></font>是完成非查询任务就应该在配置文件用以下三个标签 </P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;sql-insert callable=&#8221;true&#8221;&amp;gt;{call createPerson (?, ?)}&amp;lt;/sql-insert&amp;gt;</P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;sql-delete callable=&#8221;true&#8221;&amp;gt;{? = call deletePerson (?)}&amp;lt;/sql-delete&amp;gt; </P><P STYLE="TEXT-INDENT: 2EM">&amp;lt;sql-update callable=&#8221;true&#8221;&amp;gt;{? = call updatePerson (?, ?)}&amp;lt;/sql-update&amp;gt;</P><P STYLE="TEXT-INDENT: 2EM">注： 直接从<span id="1_6">hibernate</font></font>的session中取connection出来调呗，按照<span id="1_7">hibernate</font></font>的思想，<span id="2_14">存储过程</font></font>是要少用的，所以对<span id="1_8">hibernate</font></font>的支持好像不是很好</P></DIV><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/166.html" title="oracle 10g 恢复">oracle 10g 恢复</a></li>
<li><a href="http://oraclecn.org.cn/html/282.html" title="oracle数据库产品介绍">oracle数据库产品介绍</a></li>
<li><a href="http://oraclecn.org.cn/html/198.html" title="oracle数据库介绍">oracle数据库介绍</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/331.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>如何执行存储过程</title>
		<link>http://oraclecn.org.cn/html/330.html</link>
		<comments>http://oraclecn.org.cn/html/330.html#comments</comments>
		<pubDate>Sun, 04 Jan 2009 20:04:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/330.html</guid>
		<description><![CDATA[如何用Command命令来执行存储过程？
如何创建一个Command命令，用来执行如下存储过程。要求为Command对象设置参数，并根据存储过程的用意选择合适的方式执行这些Command对象。 SQL存储过程： SQL code CREATE PROCEDURE spGetEmployeesCountOfADepart @DepartId nchar(10), @Count int Output AS Select @Count=count(*) from 员工信息表 where 部门编号=@DepartId GO 参考答案答：没看明白，这只给出一个存储过程，好像没有什么选择性啊。如果是问如果给command加参数。 答：如果有3个Command命令是不是就意味着要在里面写3个“SqlCommand cmd = new SqlCommand(\&#8221;spGetEmployeesCountOfADepart\&#8221;,con); ”这样的命令了？答：哦，我明白了，谢谢 Eagle_ice 答：二楼正解，其实楼主可以封装个函数或者类，这样就只要传个参数就可以了，不用每次都写这么长。 答：ding 答：cmd.ExecuteNonQuery(String.Format(\&#8221;spGetEmployeesCountOfADepart {0},{1}\&#8221;,DepartId ,Count)); 
相关

oracle数据库管理
10g oracle schedule
oracle 10g voting

]]></description>
			<content:encoded><![CDATA[<div class=dssubject id=dssubject><span class=dsbold><span class=\"hl1\"><span id=\"1_1\">如何</span></span>用Command命令来<span class=\"hl1\"><span id=\"1_2\">执行存储过程</span></span>？<BR></span></div>
<p><span class=dsnormal><BR><span class=\"hl1\"><span id=\"1_3\">如何</span></span>创建一个Command命令，用来<span class=\"hl1\"><span id=\"1_4\">执行</span></span>如下<span class=\"hl1\"><span id=\"1_5\">存储过程</span></span>。要求为Command对象设置参数，并根据<span class=\"hl1\"><span id=\"1_6\">存储过程</span></span>的用意选择合适的方式<span class=\"hl1\"><span id=\"1_7\">执行</span></span>这些Command对象。 SQL<span class=\"hl1\"><span id=\"1_8\">存储过程</span></span>： SQL code CREATE PROCEDURE spGetEmployeesCountOfADepart @DepartId nchar(10), @Count int Output AS Select @Count=count(*) from 员工信息表 where 部门编号=@DepartId GO <BR><BR>参考答案<BR><BR>答：没看明白，这只给出一个<span class=\"hl1\"><span id=\"1_9\">存储过程</span></span>，好像没有什么选择性啊。如果是问如果给command加参数。 <BR><BR>答：如果有3个Command命令是不是就意味着要在里面写3个“SqlCommand cmd = new SqlCommand(\&#8221;spGetEmployeesCountOfADepart\&#8221;,con); ”这样的命令了？<BR><BR>答：哦，我明白了，谢谢 Eagle_ice <BR><BR>答：二楼正解，其实楼主可以封装个函数或者类，这样就只要传个参数就可以了，不用每次都写这么长。 <BR><BR>答：ding <BR><BR>答：cmd.ExecuteNonQuery(String.Format(\&#8221;spGetEmployeesCountOfADepart {0},{1}\&#8221;,DepartId ,Count)); <BR><BR></span><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/94.html" title="上海 oracle 考试时间">上海 oracle 考试时间</a></li>
<li><a href="http://oraclecn.org.cn/html/235.html" title="oracle数据库字符集">oracle数据库字符集</a></li>
<li><a href="http://oraclecn.org.cn/html/255.html" title="pb连接oracle 数据库">pb连接oracle 数据库</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/330.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>asp 存储过程</title>
		<link>http://oraclecn.org.cn/html/329.html</link>
		<comments>http://oraclecn.org.cn/html/329.html#comments</comments>
		<pubDate>Fri, 02 Jan 2009 20:04:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/329.html</guid>
		<description><![CDATA[存储过程采用的是select top 加 not in的方式完成，速度也算是相当快了 我测试过了百万级数据量一般查询在1秒一下，贴出来大家交流下，看有没有什么好的建议。 简单几句话就可以实现分页功能,请看代码： 最简单使用方法（适用于任何数据表）： test.asp 
相关

oracle 事务
oracle erp
oracle pl sql

]]></description>
			<content:encoded><![CDATA[<p><P><span id="2_1">存储过程</font></font>采用的是select top 加 not in的方式完成，速度也算是相当快了 我测试过了百万级数据量一般查询在1秒一下，贴出来大家交流下，看有没有什么好的建议。 <BR/>简单几句话就可以实现分页功能,请看代码： <BR/>最简单使用方法（适用于任何数据表）： <BR/>test.<span id="1_1">asp</font></font> </P><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/173.html" title="oracle 10g 管理员">oracle 10g 管理员</a></li>
<li><a href="http://oraclecn.org.cn/html/65.html" title="oracle having">oracle having</a></li>
<li><a href="http://oraclecn.org.cn/html/70.html" title="oracle em">oracle em</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/329.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>分页功能的存储过程</title>
		<link>http://oraclecn.org.cn/html/328.html</link>
		<comments>http://oraclecn.org.cn/html/328.html#comments</comments>
		<pubDate>Fri, 02 Jan 2009 20:04:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/328.html</guid>
		<description><![CDATA[如何用DataGrid的自定义分页功能和存储过程结合实现分页
 楼主li_binquan（）2006-12-26 16:22:12 在 .NET技术 / ASP.NET 提问 如何用DataGrid的自定义分页功能和存储过程结合实现分页 问题点数：10、回复次数：2Top 1 楼memoriccell（记忆细胞）回复于 2006-12-26 16:43:57 得分 0 不能结合   DataGrid的分页是通过检索出来的数据条数和你给DataGrid设定的每页显示的记录条数来计算的   假设你现在一页显示10条数据，那么你的存储过程也只会查询10条   那么DataGrid的分页就会认为你当前只有一页   要用存储过程分页还是自己写一个分页功能吧，或者用论坛上高手们提供的控件Top2 楼net_lover（【孟子E章】）回复于 2006-12-28 13:42:47 得分 10存储过程只返回当前页的数据，直接绑定即可。总页数由存储过程一起返回，页数的显示自己计算的。   Top相关问题文章录入：news    责任编辑：news  上一篇文章： web服务器程序相关问题下一篇文章： MSFlexGrid中 显示汉字时逆时针转了90度，如何解决？…【字体：小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】  网友评论： （只显示最新10条。评论内容只代表网友观点，与本站立场无关！） &#124; 设为首页 &#124; 加入收藏 &#124; [...]]]></description>
			<content:encoded><![CDATA[<div class=dssubject id=dssubject><span class=dsbold>如何用DataGrid的自定义<span class=\"hl1\"><span id=\"1_1\">分页功能</span></span>和<span class=\"hl1\"><span id=\"1_2\">存储过程</span></span>结合实现<span class=\"hl1\"><span id=\"1_3\">分页</span></span><BR></span></div>
<p><span class=dsnormal> 楼主li_binquan（）2006-12-26 16:22:12 在 .NET技术 / ASP.NET 提问 <BR>如何用DataGrid的自定义<span class=\"hl1\"><span id=\"1_4\">分页功能</span></span>和<span class=\"hl1\"><span id=\"1_5\">存储过程</span></span>结合实现<span class=\"hl1\"><span id=\"1_6\">分页</span></span> 问题点数：10、回复次数：2Top <BR><BR></span><span class=dsnormal><span class=dsbold>1 楼memoriccell（记忆细胞）回复于 2006-12-26 16:43:57 得分 0 <BR><BR></span></span><span class=dsnormal>不能结合  <BR> DataGrid<span class=\"hl1\"><span id=\"1_7\">的</span></span><span class=\"hl1\"><span id=\"1_8\">分页</span></span>是通过检索出来的数据条数和你给DataGrid设定的每页显示的记录条数来计算的  <BR> 假设你现在一页显示10条数据，那么你<span class=\"hl1\"><span id=\"1_9\">的存储过程</span></span>也只会查询10条  <BR> 那么DataGrid<span class=\"hl1\"><span id=\"1_10\">的</span></span><span class=\"hl1\"><span id=\"1_11\">分页</span></span>就会认为你当前只有一页  <BR><BR> 要用<span class=\"hl1\"><span id=\"1_12\">存储过程</span></span><span class=\"hl1\"><span id=\"1_13\">分页</span></span>还是自己写一个<span class=\"hl1\"><span id=\"1_14\">分页功能</span></span>吧，或者用论坛上高手们提供的控件Top<BR><BR></span><span class=dsnormal><span class=dsbold>2 楼net_lover（【孟子E章】）回复于 2006-12-28 13:42:47 得分 10<BR></span></span><span class=dsnormal><BR><span class=\"hl1\"><span id=\"1_15\">存储过程</span></span>只返回当前页的数据，直接绑定即可。总页数由<span class=\"hl1\"><span id=\"1_16\">存储过程</span></span>一起返回，页数的显示自己计算的。  <BR> Top<BR><BR></span><span class=dsnormal><span class=dsbold>相关问题<BR></span></span><span class=dsnormal><BR>文章录入：news    责任编辑：news  </span><span class=dsnormal><span class=dslink><BR><BR>上一篇文章： web服务器程序相关问题<BR><BR>下一篇文章： MSFlexGrid中 显示汉字时逆时针转了90度，如何解决？…<BR><BR>【字体：小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】  </span></span><BR><BR><span class=dsnormal><span class=dsbold>网友评论： （只显示最新10条。评论内容只代表网友观点，与本站立场无关！） </span></span><span class=dsnormal><span class=dslink><BR><BR>| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |   </span></span><BR><BR><span class=dsnormal>CopyRight@2005-2008,SST.COM.CN,版权所有,保留所有权利. 站长：Airby<BR> 模板设计：Airby </span><span class=dsnormal><span class=dslink>  <BR>粤ICP备07511844号 </span></span> <BR><BR><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/315.html" title="oracle创建存储过程">oracle创建存储过程</a></li>
<li><a href="http://oraclecn.org.cn/html/316.html" title="oracle存储过程示例">oracle存储过程示例</a></li>
<li><a href="http://oraclecn.org.cn/html/18.html" title="oracle pl sql">oracle pl sql</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/328.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>java 调用存储过程</title>
		<link>http://oraclecn.org.cn/html/327.html</link>
		<comments>http://oraclecn.org.cn/html/327.html#comments</comments>
		<pubDate>Thu, 01 Jan 2009 20:04:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/327.html</guid>
		<description><![CDATA[标签：]]></description>
			<content:encoded><![CDATA[<p><DIV><P STYLE="TEXT-INDENT: 2EM"><TABLE WIDTH="100%" CELLPADDING="0" BORDER="0" CELLSPACING="0"><TBODY><TR><TD>标签：<A HREF="http://uni.sina.com.cn/c.php?t=blog&amp;k=<br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/189.html" title="oracle 10g pl sql">oracle 10g pl sql</a></li>
<li><a href="http://oraclecn.org.cn/html/112.html" title="oracle 10g oem">oracle 10g oem</a></li>
<li><a href="http://oraclecn.org.cn/html/256.html" title="oracle 还原数据库">oracle 还原数据库</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/327.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>java 存储过程</title>
		<link>http://oraclecn.org.cn/html/326.html</link>
		<comments>http://oraclecn.org.cn/html/326.html#comments</comments>
		<pubDate>Thu, 01 Jan 2009 20:04:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/326.html</guid>
		<description><![CDATA[Oracle开发人员 JAVA存储过程
在这些情况下，你可以结合使用Java存储过程和对象关系框架（如Oracle9i应用服务器[Oracle9iAS] TopLink）来实现定制的主关键字查找器方法。在将EJB查找器定义为REDIRECT或NAMED查找器后，TopLink将生成一个SQL查询用于检索bean实例。数据驱动的EJB调用 在数据驱动体系结构中，商务逻辑调用可以作为数据库操作（如插入、更新或删除）的结果来触发。实现该数据逻辑的Java存储过程可以被声明为数据库触发器，用以调用运行于中间层J2EE应用服务器的EJB。EJB的调用既可以采用J2EE1.3兼容的服务器通过Interoperable Inter-ORB Protocol（IIOP）标准远程方法调用（remote method invocation，RMI）实现，也可以通过销售商特定的传输协议（如Oracle9iAS/Oc4J的ORMI，或者通过BEA WebLogic的T3）用RMI来实现。每个应用服务器提供商在提供基于IIOP的RMI，以提供互操作性的同时，都有其自己优化的协议。Oracle9iAS同时支持基于IIOP的RMI调用和基于ORMI协议的RMI调用。 数据驱动的消息传送 Oracle9i数据库嵌入了Advanced Queuing（AQ，高级排队），它是一种集成的、稳定、可靠、安全、可扩展和事务处理式的消息排队框架。Oracle通过标准的Java消息传送系统（Java Messaging System，JMS）API为Java开发人员提供AQ功能。Java存储过程可以通过JMS接口调用AQ操作，从而能够实现快速、在会话期内、可扩展的、数据驱动的消息传送。 Java存储过程可以利用JMS调用AQ操作。可以用以下4个步骤实现这一模式：创建并启动JMS Queue（为此，可以将以下一些操作嵌入SQL脚本内）： execute dbms_aqadm.create_queue_table(queue_table =&#38;gt; \&#8217;queue1\&#8217;, queue_payload_type =&#38;gt; \&#8217;SYS.AQ$_JMS_TEXT_MESSAGE\&#8217;, comment =&#38;gt; \&#8217;a test queue\&#8217;, multiple_consumers =&#38;gt; false, compatible =&#38;gt; \&#8217;8.1.0\&#8217;); execute dbms_aqadm.create_queue( queue_name =&#38;gt; \&#8217;queue1\&#8217;, queue_table =&#38;gt; \&#8217;queue1\&#8217; ); execute dbms_aqadm.start_queue(queue_name =&#38;gt; \&#8217;queue1\&#8217;); 创建Java存储过程（代码摘录如下）： 
相关

oracle 事务
oracle ppt
连接oracle

]]></description>
			<content:encoded><![CDATA[<div class=dssubject id=dssubject><span class=dsbold>Oracle开发人员 <span class=\"hl1\"><span id=\"1_1\">JAVA</span></span><span class=\"hl2\"><span id=\"2_1\">存储过程</span></span><BR></span></div>
<p><span class=dsnormal><BR>在这些情况下，你可以结合使用<span class=\"hl1\"><span id=\"1_2\">Java</span></span><span class=\"hl2\"><span id=\"2_2\">存储过程</span></span>和对象关系框架（如Oracle9i应用服务器[Oracle9iAS] TopLink）来实现定制的主关键字查找器方法。在将EJB查找器定义为REDIRECT或NAMED查找器后，TopLink将生成一个SQL查询用于检索bean实例。<BR><BR>数据驱动的EJB调用 <BR><BR>在数据驱动体系结构中，商务逻辑调用可以作为数据库操作（如插入、更新或删除）的结果来触发。实现该数据逻辑的<span class=\"hl1\"><span id=\"1_3\">Java</span></span><span class=\"hl2\"><span id=\"2_3\">存储过程</span></span>可以被声明为数据库触发器，用以调用运行于中间层J2EE应用服务器的EJB。EJB的调用既可以采用J2EE1.3兼容的服务器通过Interoperable Inter-ORB Protocol（IIOP）标准远程方法调用（remote method invocation，RMI）实现，也可以通过销售商特定的传输协议（如Oracle9iAS/Oc4J的ORMI，或者通过BEA WebLogic的T3）用RMI来实现。每个应用服务器提供商在提供基于IIOP的RMI，以提供互操作性的同时，都有其自己优化的协议。Oracle9iAS同时支持基于IIOP的RMI调用和基于ORMI协议的RMI调用。 <BR><BR>数据驱动的消息传送 <BR><BR>Oracle9i数据库嵌入了Advanced Queuing（AQ，高级排队），它是一种集成的、稳定、可靠、安全、可扩展和事务处理式的消息排队框架。Oracle通过标准的<span class=\"hl1\"><span id=\"1_4\">Java</span></span>消息传送系统（<span class=\"hl1\"><span id=\"1_5\">Java</span></span> Messaging System，JMS）API为<span class=\"hl1\"><span id=\"1_6\">Java</span></span>开发人员提供AQ功能。<span class=\"hl1\"><span id=\"1_7\">Java</span></span><span class=\"hl2\"><span id=\"2_4\">存储过程</span></span>可以通过JMS接口调用AQ操作，从而能够实现快速、在会话期内、可扩展的、数据驱动的消息传送。 <BR><BR><span class=\"hl1\"><span id=\"1_8\">Java</span></span><span class=\"hl2\"><span id=\"2_5\">存储过程</span></span>可以利用JMS调用AQ操作。可以用以下4个步骤实现这一模式：<BR><BR>创建并启动JMS Queue（为此，可以将以下一些操作嵌入SQL脚本内）： <BR><BR>execute dbms_aqadm.create_queue_table(queue_table =&amp;gt; \&#8217;queue1\&#8217;, queue_payload_type =&amp;gt; \&#8217;SYS.AQ$_JMS_TEXT_MESSAGE\&#8217;, comment =&amp;gt; \&#8217;a test queue\&#8217;, multiple_consumers =&amp;gt; false, compatible =&amp;gt; \&#8217;8.1.0\&#8217;); execute dbms_aqadm.create_queue( queue_name =&amp;gt; \&#8217;queue1\&#8217;, queue_table =&amp;gt; \&#8217;queue1\&#8217; ); execute dbms_aqadm.start_queue(queue_name =&amp;gt; \&#8217;queue1\&#8217;); <BR><BR>创建<span class=\"hl1\"><span id=\"1_9\">Java</span></span><span class=\"hl2\"><span id=\"2_6\">存储过程</span></span>（代码摘录如下）： <BR><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/263.html" title="oracle数据库同步">oracle数据库同步</a></li>
<li><a href="http://oraclecn.org.cn/html/71.html" title="oracle 恢复">oracle 恢复</a></li>
<li><a href="http://oraclecn.org.cn/html/301.html" title="oracle存储过程goto">oracle存储过程goto</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/326.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>存储过程 循环</title>
		<link>http://oraclecn.org.cn/html/325.html</link>
		<comments>http://oraclecn.org.cn/html/325.html#comments</comments>
		<pubDate>Thu, 01 Jan 2009 05:33:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/325.html</guid>
		<description><![CDATA[1  存储过程中，循环遍历临时表是一个很常见的操作，以下是个简单的例子：declare @fl_field nvarchar(20)   &#8211; 定义游标declare Temp_Table cursor for         select KdgId from kdg_type &#8211; 查询结果     &#8211; 打开游标 取第一行记录 赋给@fl_field    open Temp_Table     fetch next from Temp_Table into @fl_field     &#8211; 循环开始    while @@fetch_status = 0     begin         &#8211; 逻辑操作&#8230;               &#8211; 取下一条记录        fetch next from Temp_Table into @fl_field     end     &#8211; 循环结束&#38;nbsp;    &#8211; 关闭游标 删除游标引用    close Temp_Table     deallocate Temp_Table 2   用户自定义函数的递归实现，在树查询中较为常见：/******   查询@idValue下的所有子节点的id，用“,”隔开，拼接成字符串   ******//******   返回结果的id排列符合树结构，即子节点在父节点后    ******/CREATE  function dbo.Fun_GetChildren_KdgTypeData(@idValue varchar(20))returns varchar(1000)asbegin     declare @itemId varchar(20)     declare @temp varchar(1000)     set @temp = @idValue     set @itemId = @idValue      declare Temp_Table cursor for         select KdgTypeId from kdg_typedata where IsDelete=0 and KdgParentId=@itemId  &#8211; 查询@itemId的子节点      open Temp_Table         fetch next from Temp_Table into @itemId         &#8211; 若@itemId不存在子节点     if @itemId is null or @itemId = &#8221;         set @temp = @temp   @itemId    &#8211; 字符串拼接id   ,   id    else     begin         while @@fetch_status = 0         begin             set @temp = @temp   &#8216;,&#8216;   dbo.Fun_GetChildren_KdgTypeData(@itemId)  &#8211; 递归               fetch next from Temp_Table into @itemId         end         close Temp_Table         deallocate Temp_Table     end     return @tempend 3  [转载]数据库split函数的实现：&#8211; @SourceSql 需要分割的字符串 &#8211; @StrSeprate 分隔符create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp table(a varchar(100))&#8211;实现split功能 的函数as begin     declare @i int     set @SourceSql=rtrim(ltrim(@SourceSql))     set @i=charindex(@StrSeprate,@SourceSql)     while @i&#38;gt;=1     begin         insert @temp values(left(@SourceSql,@i-1))         set @SourceSql=substring(@SourceSql,@i 1,len(@SourceSql)-@i)         set @i=charindex(@StrSeprate,@SourceSql)     end         if @SourceSql&#38;lt;&#38;gt;&#8216;&#8216; [...]]]></description>
			<content:encoded><![CDATA[<p><P><STRONG><FONT COLOR="#FF0000">1  <span id="1_1">存储过程</font></font>中，<span id="2_1">循环</font></font>遍历临时表是一个很常见的操作，以下是个简单的例子</FONT></STRONG>：</P><P><SPAN STYLE="COLOR: #0000FF">declare</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@fl_field</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">nvarchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">20</SPAN><SPAN STYLE="COLOR: #000000">)  <BR/> <BR/></SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 定义游标</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #0000FF">declare</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table </SPAN><SPAN STYLE="COLOR: #0000FF">cursor</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">for</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">select</SPAN><SPAN STYLE="COLOR: #000000"> KdgId </SPAN><SPAN STYLE="COLOR: #0000FF">from</SPAN><SPAN STYLE="COLOR: #000000"> kdg_type <FONT COLOR="#339966">&#8211; 查询结果</FONT><BR/> <BR/>    </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 打开游标 取第一行记录 赋给@fl_field</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">    </SPAN><SPAN STYLE="COLOR: #0000FF">open</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">fetch</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">next</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">from</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table </SPAN><SPAN STYLE="COLOR: #0000FF">into</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@fl_field</SPAN><SPAN STYLE="COLOR: #000000"><BR/> <BR/>    </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> <span id="2_2">循环</font></font>开始</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">    </SPAN><SPAN STYLE="COLOR: #0000FF">while</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #008000">@@fetch_status</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">0</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">begin</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 逻辑操作&#8230;</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">      <BR/>         </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 取下一条记录</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">        </SPAN><SPAN STYLE="COLOR: #0000FF">fetch</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">next</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">from</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table </SPAN><SPAN STYLE="COLOR: #0000FF">into</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@fl_field</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">end</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> <span id="2_3">循环</font></font>结束</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">&amp;nbsp;    </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 关闭游标 删除游标引用</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">    </SPAN><SPAN STYLE="COLOR: #0000FF">close</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">deallocate</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table</SPAN></P><P> </P><P><SPAN STYLE="COLOR: #000000"><STRONG><FONT COLOR="#FF0000">2   用户自定义函数的递归实现，在树查询中较为常见：</FONT></STRONG></SPAN></P><P><SPAN STYLE="COLOR: #000000"><SPAN STYLE="COLOR: #008080">/*</SPAN><SPAN STYLE="COLOR: #008080">*****   查询@idValue下的所有子节点的id，用“,”隔开，拼接成字符串   *****</SPAN><SPAN STYLE="COLOR: #008080">*/</SPAN><SPAN STYLE="COLOR: #000000"><BR/></SPAN><SPAN STYLE="COLOR: #008080">/*</SPAN><SPAN STYLE="COLOR: #008080">*****   返回结果的id排列符合树结构，即子节点在父节点后    *****</SPAN><SPAN STYLE="COLOR: #008080">*/</SPAN><SPAN STYLE="COLOR: #000000"><BR/></SPAN><SPAN STYLE="COLOR: #0000FF">CREATE</SPAN><SPAN STYLE="COLOR: #000000">  </SPAN><SPAN STYLE="COLOR: #0000FF">function</SPAN><SPAN STYLE="COLOR: #000000"> dbo.Fun_GetChildren_KdgTypeData(</SPAN><SPAN STYLE="COLOR: #008000">@idValue</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">varchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">20</SPAN><SPAN STYLE="COLOR: #000000">))<BR/></SPAN><SPAN STYLE="COLOR: #0000FF">returns</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">varchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">1000</SPAN><SPAN STYLE="COLOR: #000000">)<BR/></SPAN><SPAN STYLE="COLOR: #0000FF">as</SPAN><SPAN STYLE="COLOR: #000000"><BR/></SPAN><SPAN STYLE="COLOR: #0000FF">begin</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">declare</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">varchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">20</SPAN><SPAN STYLE="COLOR: #000000">)<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">declare</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">varchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">1000</SPAN><SPAN STYLE="COLOR: #000000">)<BR/> <BR/>    </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@idValue</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@idValue</SPAN><SPAN STYLE="COLOR: #000000"><BR/> <BR/> <BR/>    </SPAN><SPAN STYLE="COLOR: #0000FF">declare</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table </SPAN><SPAN STYLE="COLOR: #0000FF">cursor</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">for</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">select</SPAN><SPAN STYLE="COLOR: #000000"> KdgTypeId </SPAN><SPAN STYLE="COLOR: #0000FF">from</SPAN><SPAN STYLE="COLOR: #000000"> kdg_typedata </SPAN><SPAN STYLE="COLOR: #0000FF">where</SPAN><SPAN STYLE="COLOR: #000000"> IsDelete</SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">0</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">and</SPAN><SPAN STYLE="COLOR: #000000"> KdgParentId</SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000">  </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 查询@itemId的子节点</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000"> <BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">open</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table<BR/>     <BR/>    </SPAN><SPAN STYLE="COLOR: #0000FF">fetch</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">next</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">from</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table </SPAN><SPAN STYLE="COLOR: #0000FF">into</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     <BR/>    </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 若@itemId不存在子节点 </SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">    </SPAN><SPAN STYLE="COLOR: #0000FF">if</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">is</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">null</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">or</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #FF0000">&#8221;</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080"> </SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000">    </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 字符串拼接id   ,   id</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">    </SPAN><SPAN STYLE="COLOR: #0000FF">else</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">begin</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">while</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #008000">@@fetch_status</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">0</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">begin</SPAN><SPAN STYLE="COLOR: #000000"><BR/>             </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080"> </SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #FF0000">&#8216;</SPAN><SPAN STYLE="COLOR: #FF0000">,</SPAN><SPAN STYLE="COLOR: #FF0000">&#8216;</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #808080"> </SPAN><SPAN STYLE="COLOR: #000000"> dbo.Fun_GetChildren_KdgTypeData(</SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000">)  </SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> 递归</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #000000">        <BR/>       </SPAN><SPAN STYLE="COLOR: #0000FF">fetch</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">next</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">from</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table </SPAN><SPAN STYLE="COLOR: #0000FF">into</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@itemId</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">end</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">close</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table<BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">deallocate</SPAN><SPAN STYLE="COLOR: #000000"> Temp_Table<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">end</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">return</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"><BR/></SPAN><SPAN STYLE="COLOR: #0000FF">end</SPAN><SPAN STYLE="COLOR: #000000"><BR/> <STRONG><FONT COLOR="#FF0000">3  [转载]数据库split函数的实现：</FONT></STRONG></SPAN></SPAN></P><DIV><SPAN STYLE="COLOR: #000000"><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080"> @SourceSql 需要分割的字符串</SPAN><SPAN STYLE="COLOR: #008080"><BR/> &#8211;</SPAN><SPAN STYLE="COLOR: #008080"> @StrSeprate 分隔符</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #0000FF">create</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">function</SPAN><SPAN STYLE="COLOR: #000000"> f_split(</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">varchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">8000</SPAN><SPAN STYLE="COLOR: #000000">),</SPAN><SPAN STYLE="COLOR: #008000">@StrSeprate</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">varchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">10</SPAN><SPAN STYLE="COLOR: #000000">))<BR/></SPAN><SPAN STYLE="COLOR: #0000FF">returns</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">table</SPAN><SPAN STYLE="COLOR: #000000">(a </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">varchar</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">100</SPAN><SPAN STYLE="COLOR: #000000">))<BR/></SPAN><SPAN STYLE="COLOR: #008080">&#8211;</SPAN><SPAN STYLE="COLOR: #008080">实现split功能 的函数</SPAN><SPAN STYLE="COLOR: #008080"><BR/></SPAN><SPAN STYLE="COLOR: #0000FF">as</SPAN><SPAN STYLE="COLOR: #000000"> <BR/></SPAN><SPAN STYLE="COLOR: #0000FF">begin</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">declare</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@i</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #000000">int</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #FF00FF">rtrim</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #FF00FF">ltrim</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000">))<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@i</SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #FF00FF">charindex</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #008000">@StrSeprate</SPAN><SPAN STYLE="COLOR: #000000">,</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000">)<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">while</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@i</SPAN><SPAN STYLE="COLOR: #808080">&amp;gt;=</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">1</SPAN><SPAN STYLE="COLOR: #000000"><BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">begin</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">insert</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">values</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #FF00FF">left</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000">,</SPAN><SPAN STYLE="COLOR: #008000">@i</SPAN><SPAN STYLE="COLOR: #808080">-</SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">1</SPAN><SPAN STYLE="COLOR: #000000">))<BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #FF00FF">substring</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000">,</SPAN><SPAN STYLE="COLOR: #008000">@i</SPAN><SPAN STYLE="COLOR: #808080"> </SPAN><SPAN STYLE="FONT-WEIGHT: BOLD; COLOR: #800000">1</SPAN><SPAN STYLE="COLOR: #000000">,</SPAN><SPAN STYLE="COLOR: #FF00FF">len</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000">)</SPAN><SPAN STYLE="COLOR: #808080">-</SPAN><SPAN STYLE="COLOR: #008000">@i</SPAN><SPAN STYLE="COLOR: #000000">)<BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">set</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@i</SPAN><SPAN STYLE="COLOR: #808080">=</SPAN><SPAN STYLE="COLOR: #FF00FF">charindex</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #008000">@StrSeprate</SPAN><SPAN STYLE="COLOR: #000000">,</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000">)<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">end</SPAN><SPAN STYLE="COLOR: #000000"><BR/>         </SPAN><SPAN STYLE="COLOR: #0000FF">if</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #808080">&amp;lt;&amp;gt;</SPAN><SPAN STYLE="COLOR: #FF0000">&#8216;</SPAN><SPAN STYLE="COLOR: #FF0000">&#8216;</SPAN><SPAN STYLE="COLOR: #000000"><BR/>             </SPAN><SPAN STYLE="COLOR: #0000FF">insert</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #008000">@temp</SPAN><SPAN STYLE="COLOR: #000000"> </SPAN><SPAN STYLE="COLOR: #0000FF">values</SPAN><SPAN STYLE="COLOR: #000000">(</SPAN><SPAN STYLE="COLOR: #008000">@SourceSql</SPAN><SPAN STYLE="COLOR: #000000">)<BR/>     </SPAN><SPAN STYLE="COLOR: #0000FF">return</SPAN><SPAN STYLE="COLOR: #000000"> <BR/></SPAN><SPAN STYLE="COLOR: #0000FF">end</SPAN></SPAN></DIV><DIV><SPAN STYLE="COLOR: #0000FF"><FONT COLOR="#000000"> 用法：select * from dbo.f_split(&#8217;aaa,bbb,ccc,ddd,eee&#8217;,',&#8217;)</FONT></SPAN><P><SPAN STYLE="COLOR: #0000FF">   结果：</SPAN></P><P>aaa</P><P>bbb</P><P>ccc</P><P>ddd</P><P>eee</P> </DIV><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/57.html" title="oracle数据库管理">oracle数据库管理</a></li>
<li><a href="http://oraclecn.org.cn/html/219.html" title="oracle数据库管理论文">oracle数据库管理论文</a></li>
<li><a href="http://oraclecn.org.cn/html/178.html" title="oracle 10g 游标">oracle 10g 游标</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/325.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>sql 存储过程</title>
		<link>http://oraclecn.org.cn/html/324.html</link>
		<comments>http://oraclecn.org.cn/html/324.html#comments</comments>
		<pubDate>Thu, 01 Jan 2009 05:32:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[标准]]></category>

		<guid isPermaLink="false">http://oraclecn.org.cn/html/324.html</guid>
		<description><![CDATA[在ASP.Net项目中使用存储过程,首先可以提高数据库的安全性，其次可以提高运行SQL代码运行的速度，在大型项目中一般是必不可少的。Visual Studio.Net为SQL的存储过程提供了强大的支持，您既可以通过visual studio.net来新建存储过程，也可以直接在Sql Server的查询分析器中运行，还可以通过企业管理器创建，使用起来也非常方便。大家一直都误认为SQL存储过程是一个比较“高深”的技术，其实掌握一般的语法是没有什么大问题的，而我们在使用存储教程中也主要是增删减的操作，学会使用一般的T-SQL就很容易上手了。 我们先来看一下在Sql-server中是如何创建一个存储过程的吧，我们可以使用SQL命令语句创建，也可以通过SQL server中的企业管理器来创建，但其实都是离不开自己写语句的，当然系统存储过程我们就不用去动它了（存储过程分为系统存储过程 ，本地存储过程，临时存储过程，远程存储过程，扩展存储过程），而本地存储过程就是我们自己编写的存储过程，其实也叫用户存储过程。当创建存储过程时需要确定存储过程的三个组成部分 所有的输入参数以及传给调用者的输出参数 被执行的针对数据库的操作语句包括调用其它存储过程的语句 返回给调用者的状态值以指明调用是成功还是失败 一、存储过程创建 1.用企业管理器来创建存储过程; 我们先打开企业管理器，找到我们要创建存储过程的数据库
相关

oracle数据库报价
oracle恢复数据库文件
hp unix oracle 10g

]]></description>
			<content:encoded><![CDATA[<p><span class=dsnormal>在ASP.Net项目中使用<span class=\"hl2\"><span id=\"2_1\">存储过程</span></span>,首先可以提高数据库的安全性，其次可以提高运行<span class=\"hl1\"><span id=\"1_1\">SQL</span></span>代码运行的速度，在大型项目中一般是必不可少的。Visual Studio.Net为<span class=\"hl1\"><span id=\"1_2\">SQL</span></span>的<span class=\"hl2\"><span id=\"2_2\">存储过程</span></span>提供了强大的支持，您既可以通过visual studio.net来新建<span class=\"hl2\"><span id=\"2_3\">存储过程</span></span>，也可以直接在<span class=\"hl1\"><span id=\"1_3\">Sql</span></span> Server的查询分析器中运行，还可以通过企业管理器创建，使用起来也非常方便。大家一直都误认为<span class=\"hl1\"><span id=\"1_4\">SQL</span></span><span class=\"hl2\"><span id=\"2_4\">存储过程</span></span>是一个比较“高深”的技术，其实掌握一般的语法是没有什么大问题的，而我们在使用存储教程中也主要是增删减的操作，学会使用一般的T-<span class=\"hl1\"><span id=\"1_5\">SQL</span></span>就很容易上手了。<BR> 我们先来看一下在<span class=\"hl1\"><span id=\"1_6\">Sql</span></span>-server中是如何创建一个<span class=\"hl2\"><span id=\"2_5\">存储过程</span></span>的吧，我们可以使用<span class=\"hl1\"><span id=\"1_7\">SQL</span></span>命令语句创建，也可以通过<span class=\"hl1\"><span id=\"1_8\">SQL</span></span> server中的企业管理器来创建，但其实都是离不开自己写语句的，当然系统<span class=\"hl2\"><span id=\"2_6\">存储过程</span></span>我们就不用去动它了（<span class=\"hl2\"><span id=\"2_7\">存储过程</span></span>分为系统<span class=\"hl2\"><span id=\"2_8\">存储过程</span></span> ，本地<span class=\"hl2\"><span id=\"2_9\">存储过程</span></span>，临时<span class=\"hl2\"><span id=\"2_10\">存储过程</span></span>，远程<span class=\"hl2\"><span id=\"2_11\">存储过程</span></span>，扩展<span class=\"hl2\"><span id=\"2_12\">存储过程</span></span>），而本地<span class=\"hl2\"><span id=\"2_13\">存储过程</span></span>就是我们自己编写的<span class=\"hl2\"><span id=\"2_14\">存储过程</span></span>，其实也叫用户<span class=\"hl2\"><span id=\"2_15\">存储过程</span></span>。<BR><BR>当创建<span class=\"hl2\"><span id=\"2_16\">存储过程</span></span>时需要确定<span class=\"hl2\"><span id=\"2_17\">存储过程</span></span>的三个组成部分<BR> 所有的输入参数以及传给调用者的输出参数<BR> 被执行的针对数据库的操作语句包括调用其它<span class=\"hl2\"><span id=\"2_18\">存储过程</span></span>的语句<BR> 返回给调用者的状态值以指明调用是成功还是失败<BR> 一、<span class=\"hl2\"><span id=\"2_19\">存储过程</span></span>创建<BR> 1.用企业管理器来创建<span class=\"hl2\"><span id=\"2_20\">存储过程</span></span>;<BR> 我们先打开企业管理器，找到我们要创建<span class=\"hl2\"><span id=\"2_21\">存储过程</span></span>的数据库<BR><br />
<h3>相关</h3>
<ul class="related_post">
<li><a href="http://oraclecn.org.cn/html/239.html" title="oracle 数据库系统">oracle 数据库系统</a></li>
<li><a href="http://oraclecn.org.cn/html/274.html" title="oracle数据库使用">oracle数据库使用</a></li>
<li><a href="http://oraclecn.org.cn/html/311.html" title="oracle 存储过程 数组">oracle 存储过程 数组</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraclecn.org.cn/html/324.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
