vs2005中
         Me.Open()
        Dim cmd As New OracleCommand
        cmd.Connection = myConnection
        cmd.CommandText = "Get_user"
        cmd.CommandType = CommandType.StoredProcedure
        Dim da As New OracleDataAdapter()
        da.SelectCommand = cmd
        Dim Ds As New DataSet
        Try
            da.Fill(Ds)
        Catch ex As OracleException
            Throw ex
        Finally
            Me.Close()
        End Try
        Return Ds
”Get_user"就这么一个sql语句 select SSLMMSTF_STFCD,Trim(SSLMMSTF_STFNM2) as SSLMMSTF_STFNM2,SSLMMSTF_PASSWORD from SSLMM_STAFF 
请问这个存储过程怎么写?
以前只用过sqlserver的
谢谢!

解决方案 »

  1.   

    CREATE OR REPLACE PROCEDURE Get_user(MYCUR OUT SYS_REFCURSOR) IS
    BEGIN
    OPEN MYCUR FOR 
    select SSLMMSTF_STFCD,Trim(SSLMMSTF_STFNM2) as SSLMMSTF_STFNM2,SSLMMSTF_PASSWORD from SSLMM_STAFF;
    END Get_user;
      

  2.   

    这个一般用包:
    CREATE OR REPLACE PACKAGE PKG_GetList
    AS
      TYPE refcursor IS REF CURSOR; PROCEDURE GetList( 
    rst  OUT  refcursor 
    ) ;
    END; 
    /
    create or replace package body PKG_GetListPROCEDURE GetList(
    rst  OUT  refcursor 

    IS 
    BEGIN 
     OPEN rst FOR 
      select SSLMMSTF_STFCD,Trim(SSLMMSTF_STFNM2) as SSLMMSTF_STFNM2,SSLMMSTF_PASSWORD from SSLMM_STAFF ;END GetList; 
    end;
      

  3.   

    按3楼的写存储过程 vs2005调用,执行前加:
      '输出参数 
      With cmd.Parameters
        .Add(New OracleParameter("rst", OracleType.Cursor)).Direction = ParameterDirection.Output
      End With