您可以调用的SQL Server 存储过程是返回一个或多个OUT 参数的存储过程,存储过程使用这些参数将数据返回到调用它的应用程序。可以使用Microsoft SQL Server 2005 JDBC Driver 提供的SQLServerCallableStatement 类,调用此类存储过程并处理其返回的数据。
使用JDBC 驱动程序调用此类存储过程时,必须结合SQLServerConnection 类的prepareCall 方法使用call SQL 转义序列。带有OUT参数的call 转义序列的语法如下所示:
{call procedure-name[([parameter][,[parameter]]。。。)]}
注意:
有关SQL 转义序列的详细信息,请参阅使用SQL 转义序列《http://msdn.microsoft.com/zh-cn/library/ms378045%28v=SQL.90%29.aspx》。
构造call 转义序列时,请使用?(问号)字符来指定OUT 参数。此字符充当要从该存储过程返回的参数值的占位符。要为OUT 参数指定值,必须在运行存储过程前使用SQLServerCallableStatement 类的registerOutParameter 方法指定各参数的数据类型。
使用registerOutParameter 方法为OUT 参数指定的值必须是java.sql.Types 所包含的JDBC 数据类型之一,而它又被映射成本地SQL Server 数据类型之一。有关JDBC 和SQL Server 数据类型的详细信息,请参阅了解JDBC 驱动程序数据类型。
当您对于OUT 参数向registerOutParameter 方法传递一个值时,不仅必须指定要用于此参数的数据类型,而且必须在存储过程中指定此参数的序号位置或此参数的名称。例如,如果存储过程包含单个OUT 参数,则其序数值为1;如果存储过程包含两个参数,则第一个序数值为1,第二个序数值为2。
注意:
JDBC 驱动程序不支持将CURSOR、SQLVARIANT、TABLE 和TIMESTAMP SQL Server 数据类型用作OUT 参数。
作为实例,在SQL Server 2005 AdventureWorks 示例数据库中创建以下存储过程:
《javascript.:CodeSnippet_CopyCode(‘CodeSnippetContainerCode0’);》
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerID INT OUTPUT
AS
BEGIN
SELECT @managerID = ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
END
根据指定的整数IN 参数(employeeID),该存储过程也返回单个整数OUT 参数(managerID)。根据HumanResources.Employee 表中包含的EmployeeID,OUT 参数中返回的值为ManagerID。
更多免费相关学习经验请访问:Tore_m_1206686_21115_1_1.html”>http://www.shangxueba.com/sTore_m_1206686_21115_1_1.html
莫找借口失败,只找理由成功。(不为失败找理由,要为成功找方法