我用函数递归取得一组数据(表类型),该怎么返回到程序中啊?游标好象访问不了表类型,直接返回表类型,程序又不认得,怎么解决这问题?我用的程序语言是c#

解决方案 »

  1.   

    CREATE OR REPLACE  FUNCTION "WEBPOWER_NET"."GETALLPARENTSID"     (
        nodeid number) return BASE_TABLE.NodeTable 
    is
      ParentId number;
      T_ReTable BASE_TABLE.NodeTable;--这里是包头定义的表类型
      TempTable BASE_TABLE.NodeTable;
      i number := 0;
    begin
      ParentId := GetOneParentId(nodeid);--这里是取得一个父节点的函数
      T_ReTable(i):=ParentId;
      i:=i+1;
      if ParentId > 0 then
        TempTable := GetAllParentsId(ParentId);
        for j in TempTable.first..TempTable.last loop
          T_ReTable(i):=TempTable(j);
          i:=i+1;
        end loop;
      end if;
      return T_ReTable;
    end;在包体中调用到这个函数 然后返回值
      

  2.   

    你说的是否是:如何返回表机构,下列是vb.net的,dt接收的就是表1结构
    ==========>返回DBテーブルのstyle
           ----------------------
           Imports System.Data.OleDb
           ----------------------

    Dim dbConnect As OleDbConnection                '接続変数
                    Dim strTemp As String
                    Dim odcTemp As OleDbConnection                  'DB接続用Connection変数
                    Dim strDBConStr As String                       'DB接続用文字列                'DB接続用文字列を取得する。
                    strDBConStr = "Provider=" & config.AppSettings("Provider")
                    strDBConStr = strDBConStr & ";Persist Security Info=" & _
                                    config.AppSettings("PersistSecurityInfo")
                    strDBConStr = strDBConStr & ";User ID=" & _
                                    config.AppSettings("UserID")
                    strDBConStr = strDBConStr & ";Password=" & _
                                    config.AppSettings("Password")
                    strDBConStr = strDBConStr & ";Data Source=" & _
                                    config.AppSettings("DataSource")
                    strDBConStr = strDBConStr & ";Extended Properties=" & _
                                    config.AppSettings("ExtendedProperties")                'DB接続
                    odcTemp = New OleDbConnection(strDBConStr)
                    odcTemp.Open()                'DB接続Return
                    dbConnect = odcTemp
                    Dim dt As DataTable = dbConnect.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nothing, Nothing, 表1})
                    objDBOpt.closeDB()
      

  3.   

    OracleParameter parameters = new OracleParameter("node_table",OracleType.Cursor);
    parameters.Direction=ParameterDirection.Output;
    OracleParameter parameters1 =new OracleParameter("nodeid",OracleType.Number);
    parameters1.Direction=ParameterDirection.Input;
    parameters1.Value=20;
    ret=db.ExecQueryBySP("TREE_VIEW_PAC.Select_getAllChildNodeId",ReturnType.DataSet,parameters,parameters1);
    ds=ret.DataSet;
    grd.DataSource=ds;
    grd.DataBind();你的我有点没看明白,这是我的调用代码!帮忙看看 谢谢!procedure Select_getAllChildNodeId(
      node_table_cursor out BASE_CURSOR.T_CURSOR,
      nodeid in tree_view.tree_id%Type
    )
    is
      node_table BASE_TABLE.NodeTable;
    begin
      node_table:=GetAllChildId(nodeid);
      open node_table_cursor for
       select * from node_table;
    end Select_getAllChildNodeId;这是包体存储过程代码