日期:2014-05-18 浏览次数:20885 次
--Author bluedn
--Description 测试Java 调用Oracle 存储过程返回值
-- 返回列表 建一个程序包
create or replace package Pack_Schlist is
type Sch_Cursor is ref cursor;
end Pack_Schlist;
--它是把游标(可以理解为一个指针),作为一个out 参数来返回值的
create or replace procedure Proc_SearchResultList(p_CURSOR out Pack_Schlist.Sch_Cursor) is
begin
open p_CURSOR for select * from Proc_Table;
end Proc_SearchResultList;
-- Create Proc_SearchResultOne 有返回值的存储过程(非列表)
create or replace procedure Proc_SearchResultOne(PARA1 in VARCHAR2, PARA2 out VARCHAR2) As
begin
select name into PARA2 from Proc_Table where ID = PARA1;
end Proc_SearchResultOne;
-- Create Proc_Insert 插入数据:无返回值的存储过程
create or replace procedure Proc_Insert(ID in varchar2, Name in varchar2) is
begin
insert into PROC_TABLE(ID,NAME) VALUES (ID,Name);
end Proc_Insert;
-- Create table
create table PROC_TABLE
(
ID VARCHAR2(100),
NAME VARCHAR2(100)
)
tablespace USERS
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
------解决方案--------------------
存储过程在sql里直接建立的,
create procedure pNew
@para1 varchar(255),
@para2 int output
AS
declare @strSQL nvarchar(4000)
begin
--执行过程
end
------解决方案--------------------
结题,给分吧,谢谢
------解决方案--------------------
写存储过程上面的都说了,
但有一点建议:要先在查询分析器写好代码测试,不要直接在JAVA里面测试