Java怎么调用Oracle输入参数为一个对象的存储过程(是输入参数,不是输出,别乱回答) 15
一个Oracle写的存储过程,输入参数是一个对象类型,这样的话,java可以调用吗?简单举个例子比如procedureSP_TEST(i_parainMyType,o_p...
一个Oracle写的存储过程,输入参数是一个对象类型,这样的话,java可以调用吗?
简单举个例子 比如procedure SP_TEST(i_para in MyType ,o_para out varchar2)。
其中MyType是这样声明的。 Type MyType is record (
id Integer,
name varchar2(50),
info varchar2(200)
);
这样的话,Java可以调用吗?我只知道输出参数是对象型的话是可以调用的,用Cursor返回即可。但输入参数的话,能否调用?如果可以的话,该怎样调用?
(不要问我为什么要这么做,我有我的原因,当然不可以的话,可以用其他的方法实现)
谢谢! 展开
简单举个例子 比如procedure SP_TEST(i_para in MyType ,o_para out varchar2)。
其中MyType是这样声明的。 Type MyType is record (
id Integer,
name varchar2(50),
info varchar2(200)
);
这样的话,Java可以调用吗?我只知道输出参数是对象型的话是可以调用的,用Cursor返回即可。但输入参数的话,能否调用?如果可以的话,该怎样调用?
(不要问我为什么要这么做,我有我的原因,当然不可以的话,可以用其他的方法实现)
谢谢! 展开
3个回答
展开全部
在存储中定义一个 参数 为output,将存储过程中得到的值赋给这个参数,其他存储可以调
---------联机丛书
使用 OUTPUT 参数
OUTPUT 参数允许外部过程、批处理或多条 Transact-SQL 语句访问在过程执行期间设置的某个值。下面的示例创建一个存储过程 (titles_sum),并使用一个可选的输入参数和一个输出参数。
首先,创建过程:
USE pubs
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name = 'titles_sum' AND type = 'P')
DROP PROCEDURE titles_sum
GO
USE pubs
GO
CREATE PROCEDURE titles_sum @@TITLE varchar(40) = '%', @@SUM money OUTPUT
AS
SELECT 'Title Name' = title
FROM titles
WHERE title LIKE @@TITLE
SELECT @@SUM = SUM(price)
FROM titles
WHERE title LIKE @@TITLE
GO
接下来,将该 OUTPUT 参数用于控制流语言。
说明 OUTPUT 变量必须在创建表和使用该变量时都进行定义。
参数名和变量名不一定要匹配,不过数据类型和参数位置必须匹配(除非使用 @@SUM = variable 形式)。
DECLARE @@TOTALCOST money
EXECUTE titles_sum 'The%', @@TOTALCOST OUTPUT
IF @@TOTALCOST
---------联机丛书
使用 OUTPUT 参数
OUTPUT 参数允许外部过程、批处理或多条 Transact-SQL 语句访问在过程执行期间设置的某个值。下面的示例创建一个存储过程 (titles_sum),并使用一个可选的输入参数和一个输出参数。
首先,创建过程:
USE pubs
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name = 'titles_sum' AND type = 'P')
DROP PROCEDURE titles_sum
GO
USE pubs
GO
CREATE PROCEDURE titles_sum @@TITLE varchar(40) = '%', @@SUM money OUTPUT
AS
SELECT 'Title Name' = title
FROM titles
WHERE title LIKE @@TITLE
SELECT @@SUM = SUM(price)
FROM titles
WHERE title LIKE @@TITLE
GO
接下来,将该 OUTPUT 参数用于控制流语言。
说明 OUTPUT 变量必须在创建表和使用该变量时都进行定义。
参数名和变量名不一定要匹配,不过数据类型和参数位置必须匹配(除非使用 @@SUM = variable 形式)。
DECLARE @@TOTALCOST money
EXECUTE titles_sum 'The%', @@TOTALCOST OUTPUT
IF @@TOTALCOST
展开全部
你将你要的值村在那三个变量中之后再调用那个过程,过程输入的类型和那三个变量对应
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分到三个入参里。。。
无语
无语
追问
拜托,请你厚道点,用“无语”这词,不要觉得自己很牛,也不要认为别人很次。我也知道其他的方法可以实现。但是列出一大堆的参数,还要对象干什么?我要封装成这个形式,肯定有一定的原因。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询