CREATE proc forums_BlockedIpAddress_Get
(
@IpID int
) AS 
SELECT
*
FROM
forums_BlockedIpAddresses
WHERE
IpID = @IpIDGO大概这么一个意思的一个存储过程
 请问怎么在oracle 中表达出来  

解决方案 »

  1.   

    我也在找这个问题,这样用起来真别扭
    http://community.csdn.net/Expert/topic/4571/4571404.xml?temp=.2022669
      

  2.   

    UP
    http://www.5ivb.net/Info/28/Info29742/
      

  3.   

    so nice 
      oracel 有些方面还是没微软人性化
      

  4.   

    C#调用ORACLE存储过程返回结果集及函数 
     
    ORACLE段: 
    首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集。 
    1:建立PACKAGE: 
    CREATE OR REPLACE package SCOTT.pk_wt 
    is 
    type mytype is ref cursor; 
    procedure p_wt(mycs out mytype); 
    function f_get(str in varchar2) 
    return varchar2; 
    end; 

    说明:其实PACKAGE只是个声明罢了。我们在这里定义了一个存储过程返回结集和一个函数,返回字符串。 2:建立PACKAGE BODY: 
    CREATE OR REPLACE package BODY SCOTT.pk_wt 
    is 
    procedure p_wt(mycs out mytype) 
    is 
    begin 
    open mycs for select * from test; 
    end p_wt; function f_get(str varchar2) 
    return varchar2 
    is 
    str_temp varchar2(100) := ''good luck!''; 
    begin 
    str_temp := str_temp || str; 
    return str_temp; 
    end f_get; end pk_wt; 

    说明:这里建立PACKAGE BODY是具体的说明和使用,将采用什么方式实现。。 C#段: 
    在C#中代码将分为两部分,一部分是使用函数,另外一部分是使用结果集。 
    定义一个连接,从WEBCONFIG里去取得: 
    private OracleConnection orcn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["scott"]); 
    C#调用ORACLE函数: 
    OracleCommand cmd=new OracleCommand("pk_wt.f_get",orcn); 
    cmd.CommandType=CommandType.StoredProcedure; 
    OracleParameter p1=new OracleParameter("str",OracleType.VarChar,10); 
    p1.Direction=System.Data.ParameterDirection.Input; 
    p1.Value=this.TextBox1.Text; 
    OracleParameter p2=new OracleParameter("result",OracleType.VarChar,100); 
    p2.Direction=System.Data.ParameterDirection.ReturnValue; 
    cmd.Parameters.Add(p1); 
    cmd.Parameters.Add(p2); 
    orcn.Open(); 
    cmd.ExecuteNonQuery(); 
    orcn.Close(); 
    this.Button_function.Text=p2.Value.ToString(); 
    其中RESULT是系统自定义的函数返回变量,特别要注意的是,函数的参数的返回类型要指定,另外就是COMMAND类型也需要指定,另外和一般的存储过程没什么差别。 C#调用ORACLE返回结果集: 
    OracleCommand cmd=new OracleCommand("pk_wt.p_wt",orcn); 
    cmd.CommandType=CommandType.StoredProcedure; 
    OracleParameter p1=new OracleParameter("mycs",OracleType.Cursor); 
    p1.Direction=System.Data.ParameterDirection.Output; 
    cmd.Parameters.Add(p1); 
    OracleDataAdapter da=new OracleDataAdapter(cmd); 
    DataSet ds=new DataSet(); 
    da.Fill(ds,"test"); 
    this.DataGrid1.DataSource=ds; 
    this.DataGrid1.DataBind(); 
    这里没什么可说的类。。只是定义的数据类型是游标,类型是OUTPUT,另外没什么了。。 个人总结: 
    ORACLE的PACKAGE和PACKAGE BODY将是我们返回结集和使用函数的唯一方法,这一定要好好学习。。  
      

  5.   

    create or replace procedure aaa(pi_bank_id Varchar2,pi_date date)
     Is
    mAmount1 number(20,2);    begin  
       mAmount1 :=0;    
                select nvl(SUM(a.FIN_VALUE),0)
                into mAmount1
                 from info a where
               a.BANK_ID=Bank_id 
               
               
               end aaa;
      

  6.   

    CREATE OR REPLACE PROCEDURE forums_BlockedIpAddress_Get(
      inIpID IN   VARCHAR2
    )
    ISSELECT
    *
    FROM
    forums_BlockedIpAddresses
    WHERE
    IpID = inIpID;END forums_BlockedIpAddress_Get;