首页 新闻 搜索 专区 学院

关于oracle的存储过程-------(送分)

0
悬赏园豆:20 [已解决问题] 解决于 2008-11-12 02:05

最近开始学习oracle,以前用的是sql server ,例如写一个关于全查student表的存储过程:

  create proc myproc
  as
        select * from student
    go

 

现在请大家帮忙给写个oracle的关于全查的存储过程,student表中的字段 sid,sname

最好在遇到特殊关键字的时候给加个注释,,谢谢了

胡言乱语的主页 胡言乱语 | 初学一级 | 园豆:35
提问于:2008-11-09 20:08
< >
分享
最佳答案
0

1、先创建一个包,进行申明,包含一个Proc_GetData存储过程,返回一个游标:

 

create or replace package mspetshop4.Package_CATEGORY
is
type mytype
is ref cursor;
procedure Proc_GetData(myinput out mytype);
end;

 

2、创建包体:

 

CREATE OR REPLACE package BODY "MSPETSHOP4".Package_CATEGORY
is
procedure Proc_GetData(myinput out mytype)
is
begin
open mycs for select * from "MSPETSHOP4"."CATEGORY";
end Proc_GetData;
end;

 

3、C#调用:

using System;
using System.Collections.Generic;
using System.Web;
using System.Data.OracleClient;

namespace WebApplication3 {
public class OracleProcedures {
public static OracleConnection GetOracleConnection() {
OracleConnection conn
= new OracleConnection("Data Source=***;user id=MSPETSHOP4;password=***;min pool size=4;max pool size=4;");
conn.Open();
return conn;
}

public static void ExcuteProceduresDemo() {
using (OracleConnection conn = GetOracleConnection()) {
OracleCommand cmd
= new OracleCommand();
cmd.Connection
= conn;
cmd.CommandType
= System.Data.CommandType.StoredProcedure;
cmd.CommandText
= "MSPETSHOP4.Package_CATEGORY.Proc_GetData";
OracleParameter para
= new OracleParameter();
para.ParameterName
= "myinput";
para.Direction
= System.Data.ParameterDirection.Output;
para.OracleType
= OracleType.Cursor;
cmd.Parameters.Add(para);
str
OracleDataReader dr
= cmd.ExecuteReader();
while (dr.Read()) {
//code
}
dr.Close();
}
}
}
}

完。

5yplan | 小虾三级 |园豆:1330 | 2008-11-10 22:41
其他回答(2)
0
丁学 | 园豆:18530 (专家六级) | 2008-11-10 08:29
0

用视图

1-2-3 | 园豆:200 (初学一级) | 2008-11-10 15:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册