各位高手,在ORACLE中写个存储过程,要返回多列的值,表的大体结构如下
A      B
——   ——
tom   01
jerry 01
......我要取B=01的所有的列的值并能在调用该存储过程的时候返回给调用者(例如c#),请问这个存储过程应该怎么去写呢?详细一点,多谢多谢!!!

解决方案 »

  1.   

    你写的时候把可以把B列等于01的所有A列值用逗号串起来,把这个字符串
    返回去,在程序里用split拆开,不就行了嘛..
      

  2.   

    虽然procedure也可以返回数据,要返回值,建议使用function,不要使用procedure
    要返回多行数据,可以返回一个游标:
    CREATE OR REPLACE FUNCTION ff(tab VARCHAR2) RETURN SYS_REFCURSOR IS
      r SYS_REFCURSOR;
    BEGIN
      OPEN r FOR 'SELECT id,name FROM '||tab;
      RETURN r;
    END;