Can a procedure in select return more of 1 value

Is it possibile write a procedure called from a SELECT that return 2 value?
For ex:
SELECT proc_a (par1,par2, ret1,ret2) from xtable
where ret1 and ret2 are value returned from proc_a
Thanks

Well it goes something like this. However you need to remember that joining in SQL may be considerably more efficient than calling PL/SQL functions, plus you should pay attention to how many times the function actually gets called in different scenarios (I report this via a call to DBMS_OUTPUT.PUT_LINE).
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> CREATE OR REPLACE TYPE ot_dept AS OBJECT (
  2     deptno NUMBER (2),
  3     dname VARCHAR2 (14),
  4     loc VARCHAR2 (13));
  5  /
Type created.
SQL> CREATE OR REPLACE FUNCTION f_dept (
  2     p_deptno IN dept.deptno%TYPE)
  3     RETURN ot_dept
  4  IS
  5     o_dept ot_dept;
  6  BEGIN
  7     DBMS_OUTPUT.PUT_LINE ('f_dept (' || p_deptno || ')');
  8
  9     SELECT ot_dept (d.deptno, d.dname, d.loc)
10     INTO   o_dept
11     FROM   dept d
12     WHERE  d.deptno = p_deptno;
13
14     RETURN o_dept;
15  END f_dept;
16  /
Function created.
SQL> SET SERVEROUTPUT ON;
SQL> SELECT e.empno, e.ename, e.job,
  2         e.d.deptno, e.d.dname, e.d.loc
  3  FROM  (SELECT e.empno, e.ename, e.job,
  4                f_dept (e.deptno) d
  5         FROM   emp e
  6         WHERE  job = 'CLERK') e;
     EMPNO ENAME      JOB         D.DEPTNO D.DNAME        D.LOC
      7369 SMITH      CLERK             20 RESEARCH       DALLAS
      7876 ADAMS      CLERK             20 RESEARCH       DALLAS
      7900 JAMES      CLERK             30 SALES          CHICAGO
      7934 MILLER     CLERK             10 ACCOUNTING     NEW YORK
f_dept (20)
f_dept (20)
f_dept (20)
f_dept (20)
f_dept (20)
f_dept (20)
f_dept (30)
f_dept (30)
f_dept (30)
f_dept (10)
f_dept (10)
f_dept (10)
SQL> SELECT e.empno, e.ename, e.job,
  2         e.d.deptno, e.d.dname, e.d.loc
  3  FROM  (SELECT /*+ NO_MERGE */ e.empno, e.ename, e.job,
  4                f_dept (e.deptno) d
  5         FROM   emp e
  6         WHERE  job = 'CLERK') e;
     EMPNO ENAME      JOB         D.DEPTNO D.DNAME        D.LOC
      7369 SMITH      CLERK             20 RESEARCH       DALLAS
      7876 ADAMS      CLERK             20 RESEARCH       DALLAS
      7900 JAMES      CLERK             30 SALES          CHICAGO
      7934 MILLER     CLERK             10 ACCOUNTING     NEW YORK
f_dept (20)
f_dept (20)
f_dept (20)
f_dept (20)
f_dept (30)
f_dept (10)
SQL> CREATE OR REPLACE TYPE ntt_dept AS TABLE OF ot_dept;
  2  /
Type created.
SQL> SELECT e.empno, e.ename, e.job,
  2         d.deptno, d.dname, d.loc
  3  FROM   emp e, TABLE (ntt_dept (f_dept (e.deptno))) d
  4  WHERE  e.job = 'CLERK';
     EMPNO ENAME      JOB           DEPTNO DNAME          LOC
      7369 SMITH      CLERK             20 RESEARCH       DALLAS
      7876 ADAMS      CLERK             20 RESEARCH       DALLAS
      7900 JAMES      CLERK             30 SALES          CHICAGO
      7934 MILLER     CLERK             10 ACCOUNTING     NEW YORK
f_dept (20)
f_dept (20)
f_dept (30)
f_dept (10)
SQL>

Similar Messages

  • How to Create a Procedure/Function to Return more than one value

    How I can write a function/Procedure to which one value is passed and it will return nine values. How I can use these values

    Syed,
    I would use PL_SQL table versus a VARRAY for this purpose as you will have an advantage of joining PL_SQL table if you want to in your SQL statements in the procedure.
    1. At the SQL prompt, create a type using,
       create or replace type myTable as table of VARCHAR2(100);
    2. Pass the table to your procedure as IN OUT parameter,
    Create or replace procedure
    myProc(pvar1 IN Number, passingArray IN OUT myTable) AS
    Begin
        --Fill the array with your logic
        for i in 1..9
        loop
            passingArray.extend;
            passingArray(passingArray.count) := 'what ever';
        end loop; 
    End;
    3. From your Main prog, you call  Myproc
       --declare a variable for type first
       passingArray myTable := myTable();
       begin
       myProc(10, passingArray());
       --At this point, You would be able to Join the PL_SQL table
       --which gives you the power of using SQL with PL_SQL tables
       end; -- end of main program
    4. All done!I have not shown how to use PL_SQL tables in SELECT statements, as that is not the subject here.
    At the end of the story, I would say, if you know the number of arguments that you are going to pass to a procedure, Simply use "that many" IN OUT parameters to finish your task(9 in your case). Although the proc call looks large with this, it is much simpler. The above approach is VERY helpful if YOU DO NOT KNOW THE NUMBER OF ARGUMENTS that you are sending AND receiving From a procedure.
    Thx,
    SriDHAR

  • Can Function Return more than One Values ??

    Hi Experts,
    I would like to ask you Can Function Return more than one values. I Used Function with Out and In out parameter and its working Fine..
    1. what is harm using Out and In out parameter in function
    2. if we can use Out and In out parameter in Function so what is deffernce between procedure and Function.
    3. Is there any Other Way Though which we can return more the One values in Function.
    Please advice me...
    Thanks
    Umesh Goel

    Yes/No.
    You can return multiple value from function. But, in PL/SQL and not in a SQL.
    The following examples demonstrate that -
    SQL*Plus: Release 9.2.0.1.0 - Production on Wed Mar 28 17:41:15 2007
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL> create or replace package glob
      2  as
      3    b varchar2(20);
      4    c varchar2(20);
      5  end;
      6  /
    Package created.
    SQL>
    SQL> create or replace function test_mul_out(a in number)
      2  return number
      3  is
      4    cursor c1(eno in number)
      5    is
      6      select ename,job,sal
      7   from emp
      8   where empno = eno;
      9  
    10    rec c1%rowtype;
    11    d  number(10);
    12  begin
    13    open c1(a);
    14    loop
    15      fetch c1 into rec;
    16      exit when c1%notfound;
    17       glob.b:= rec.ename;
    18    glob.c:= rec.job;
    19    d:= rec.sal;
    20    end loop;
    21    close c1;
    22    return d;
    23  end;
    24  /
    Function created.
    SQL> set serveroutput on
    SQL>
    SQL> declare
      2    zz  number(10);
      3  begin
      4    select test_mul_out(7777)
      5    into zz
      6    from dual;
      7    
      8    dbms_output.put_line('Ename: '||glob.b);
      9    dbms_output.put_line('Job: '||glob.c);
    10    dbms_output.put_line('Sal: '||zz);
    11  end;
    12  /
    Ename: Avik
    Job: CLERK
    Sal: 3456
    PL/SQL procedure successfully completed.
    SQL> Regards.
    Satyaki De.

  • Can oracle  function return more than one value

    Hi All
    please answer can oracle function return more than one value
    need one schenario
    regards

    Can any function, irrespective of the language, return multiple values?
    OF COURSE NOT!!
    So why do you think Oracle will now suddenly do it differently than all other languages? Never mind that it is impossible for a function (a unit/module of code) returning a memory address, to return multiple memory addresses. The machine code that does that, has not been yet been designed/implemented.
    I am continually amazed that this question is asked. It is about something so fundamental in almost every single 3rd and 4th generation language... something that is taught right at the start... the definition of what a procedure and what a function is.
    Sorry, but I simply cannot pull punches on this subject and smooth it over. There is something fundamentally wrong with your training as a programmer if you have to ask such a question about a function.
    And whatever programming skills you build on such a foundation, will be seriously lacking.
    I kindly suggest that you get back to the very basics of programming - and review and revisit until you fully understand it. There are no shortcuts in becomming a good programmer.
    Message was edited by:
    Billy Verreynne

  • Can a method return more than one value?

    I was studying for my biology exam and I got bored and I started thinking and then I wandered if a method can return more than one value...?
    For example, if I want a method to return a row a column, I make a method that returns an int. But what if I want to return two ints? Or what If I want to return an integer and a string? Is it possible or do I have make two methods, each returning one thing?
    What I always did until now is is I want for example to return a few integers, I would store them in a String and then when I return the string, I parse the numbers out using stringtokenizer... but it doesn't look like the best way... and it's pretty annoying...

    I'm weak on terminology, hence I don't even know what
    AFAIK means...As Far As I Know
    This doesn't really make sense for me. It's more
    efficient to make a whole class just for two
    integers, than having two methods? Efficiency is not the point. The flow is.
    If you have two methods, the caller must be aware of both of them. The other way it's up to the callee.
    Just because the
    two integers are related to each other? Doesn't
    making a class require more memory usage than just
    making two one-line methods?The memory usage is not wholly irrelevant, but there are ways to handle that (caching, inlining, etc.).
    It's a bit hard to counter your point for me, but if you had done a lot of GUI painting stuff, you'd see all those Points, Dimensions, Rectangles, you name it, are quite invaluable.

  • Best way to return more than 1 value in a function?

    Hi all,
    What's the best way to return more than 1 value from a function? returning a cursor? varray? objects? etc? I thought of a cursor first, but i was hesitant since i am not sure if the cursor will be automatically closed when you return a cursor(open cursor no longer used is bad). Example:
    BEGIN
    OPEN c_temp_cursor;
    RETURN c_temp_cursor;
    END;
    With above example, c_temp_cursor is remained open. Or is it automatically closed once it exits from the function? Need some suggestions and expert advice.
    Thanks.
    Note: Function is to be used to return and not a procedure (This is a requirement. Can't explain the details on why).
    Edited by: dongzky on Jul 3, 2010 4:17 PM
    typo: "ir exists" to "it exits" (in bold)

    First create your pl/sql table type
    CREATE OR REPLACE TYPE pmc_tab AS TABLE OF NUMBER;
    Then a table:-
    CREATE TABLE v_stats_daily(start_date date, field1 number, field2 number, field3 number);
    Some insert into the table so we've got test data...
    insert into v_stats_daily values('08-OCT-2003',10,20,30);
    insert into v_stats_daily values('08-OCT-2003',40,50,60);
    insert into v_stats_daily values('08-OCT-2003',70,80,90);
    Then create your function:-
    CREATE OR REPLACE FUNCTION PMC_STATS
    (pStatDate Date) RETURN pmc_tab IS
    MyArray pmc_tab;
    vstat1 NUMBER;
    vstat2 NUMBER;
    vstat3 NUMBER;
    BEGIN
    MyArray := pmc_tab();
    select sum(Field1), sum(field2),sum(field3)
    into vstat1, vstat2,vstat3
    from v_stats_daily
    where Start_date = pStatDate;
    MyArray.extend;
    MyArray(1) := vstat1;
    MyArray.extend;
    MyArray(2) := vstat2;
    MyArray.extend;
    MyArray(3) := vstat3;
    RETURN MyArray;
    END;
    In SQL*Plus:-
    SQL>set serverout on
    Then a lump of PL/SQL to run your function:-
    DECLARE
    MyDate DATE;
    MyArray pmc_tab;
    i NUMBER;
    numOut NUMBER;
    BEGIN
    MyArray := pmc_stats('08-OCT-2003');
    dbms_output.put_line('Table count: '||to_char(MyArray.count));
    for i in 1..MyArray.last LOOP
    numOut := MyArray(i);
    --if numOut is null then
    dbms_output.put_line('Value: '||to_char(numOut));
    --end if;
    END LOOP;
    END;
    Your output will look like:-
    Table count: 3
    Value: 120
    Value: 150
    Value: 180
    Hope this helps,

  • Subquery returned more than one value

    Hi,
    I have this statement which has been working fine - not I get a 'Subquery returned more than one value" error:
    SELECT
    'WAS3' AS 'Rec ID',
    E.EecEEID AS 'Emp ID',
    eepNameFirst AS 'First Name',
    eepNameLast AS 'Last Name',
    EecDateOfOriginalHire AS 'Service Date',
    (SELECT DATEDIFF(YEAR, EecDateOfOriginalHire, getdate()) from empcomp EC WHERE EC.EecEEID = E.EECEEID) as 'Yrs of Serv'
    FROM
    EmpPers
    JOIN EmpComp E
    ON E.eecEEID = eepEEID
    JOIN Company
    ON eecCoID = cmpCoID
    WHERE
    EecDateOfTermination IS NOT NULL
    AND EXISTS
    (SELECT 1
    FROM EmpComp e2
    WHERE e2.EecEEID = E.EecEEID
    --AND e2.eecEmplStatus <> 'A')-- changed to <> ...this WAS/is to filter out anyone that was termed then re-hired
    --AND E.EecTermReason NOT IN ('I01','I02','I03','I14','I22','V05','V07','V09','V12','V22','V13', 'TRO')
    AND E.eecDateOfTermination
    IN (SELECT (EC.eecDateOfTermination)
    FROM EMPCOMP EC
    WHERE EC.EecEEID = E.EECEEID
    AND EC.eecDateOfTermination IS NOT NULL
    AND eC.eecDateOfTermination >= DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
    AND EC.eecDateOfTermination <=DATEADD(wk,DATEDIFF(wk,0,GETDATE()),6)
    AND e.eecDateOfTermination >= DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
    AND E.eecDateOfTermination <= DATEADD(wk,DATEDIFF(wk,0,GETDATE()),6)))
    --AND eC.eecDateOfTermination >= DATEADD(wk,DATEDIFF(wk,0,('12/30/2007')),0)
    -- AND EC.eecDateOfTermination <=DATEADD(wk,DATEDIFF(wk,0,('12/30/2007')),6)
    -- AND e.eecDateOfTermination >= DATEADD(wk,DATEDIFF(wk,0,('12/30/2007')),0)
    -- AND E.eecDateOfTermination <= DATEADD(wk,DATEDIFF(wk,0,('12/30/2007')),6)
    -- AND E.eecDateOfTermination IS NOT NULL ))
    --added below per Paul Cottle to exclude employeess less than four years
    AND E.eecdateoforiginalhire >=dateadd(year,-4, CURRENT_TIMESTAMP)
    qeqw

    Check this, if it works:
    SELECT
    'WAS3' AS 'Rec ID',
    E.EecEEID AS 'Emp ID',
    eepNameFirst AS 'First Name',
    eepNameLast AS 'Last Name',
    EecDateOfOriginalHire AS 'Service Date',
    DATEDIFF(YEAR, EecDateOfOriginalHire, getdate()) as 'Yrs of Serv'
    FROM EmpPers
    JOIN EmpComp E ON E.eecEEID = eepEEID
    JOIN Company ON eecCoID = cmpCoID
    WHERE EecDateOfTermination IS NOT NULL
    AND EXISTS
    (SELECT 1
    FROM EmpComp e2
    WHERE e2.EecEEID = E.EecEEID
    AND E.eecDateOfTermination
    IN (SELECT (EC.eecDateOfTermination)
    FROM EMPCOMP EC
    WHERE EC.EecEEID = E.EECEEID
    AND EC.eecDateOfTermination IS NOT NULL
    AND eC.eecDateOfTermination >= DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
    AND EC.eecDateOfTermination <=DATEADD(wk,DATEDIFF(wk,0,GETDATE()),6)
    AND e.eecDateOfTermination >= DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
    AND E.eecDateOfTermination <= DATEADD(wk,DATEDIFF(wk,0,GETDATE()),6)))
    AND E.eecdateoforiginalhire >=dateadd(year,-4, CURRENT_TIMESTAMP)
    If this post answers your query, please click "Mark As Answer" or "Vote as Helpful".

  • Possible to return more than one value?

    If I have a somethign like this:
    public int test()
    return 5;
    }Is it possible to have test() return more than one value? And if it can, can you post an example showing how?

    Could you post an example of how to do this?If you do not know how to define a class, you need to start from the very beginning.
    Sun's basic Java tutorial
    Sun's New To Java Center. Includes an overview of what Java is, instructions for setting up Java, an intro to programming (that includes links to the above tutorial or to parts of it), quizzes, a list of resources, and info on certification and courses.
    http://javaalmanac.com. A couple dozen code examples that supplement The Java Developers Almanac.
    jGuru. A general Java resource site. Includes FAQs, forums, courses, more.
    JavaRanch. To quote the tagline on their homepage: "a friendly place for Java greenhorns." FAQs, forums (moderated, I believe), sample code, all kinds of goodies for newbies. From what I've heard, they live up to the "friendly" claim.
    Bruce Eckel's Thinking in Java (Available online.)
    Joshua Bloch's Effective Java
    Bert Bates and Kathy Sierra's Head First Java.
    James Gosling's The Java Programming Language. Gosling is
    the creator of Java. It doesn't get much more authoratative than this.

  • How to return more than one value from a  function

    hello everybody,
    Can anyone tell me how to return more than a single value from a function, the problem is i have 4 points,
    2 points form one line ,another 2 points form 2nd line ,each point is 3 dimensional(x,y,z coorinates) so i will pass these values to func(x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4), i will find the point of intersecton of two lines and i will get it as x,y,z , now how to return these 3 coordinates,usually the function returns only one value, please help me to solve it out.
    Thanks.

    I think the easiest way or trick here is (easiest isn't always the best as we know, but atleast this one will work) to create simple data array. and pass that. Create an array with:
    <code>
    class justArray {
    int x=0
    int y=0;
    int z= 0;
    ...somewhere
    justArray[] points= new justArray[4];
    points[0].x= ..
    points[0].y= ..
    points[0].z= ..
    points[1].x= ..
    return points[]
    </code>

  • LOV Return more than one value to differenent items on page

    New to express. I need to returm more than one value from list of LOV. For example: LOV => select a, b, c from testtable
    I would then like to
    a to populate item1 => with submit
    b to populate item2 => hidden
    c to pupulate item3 => hidden
    as items on my page
    when a user chooses a (with submit) in item1 b and c would populate also, b and c are hidden to the user. Any advice?

    Dear Frank
    I did it as like as the following link lead me:
    http://www.oracle.com/technology/obe/obe11jdev/11/adfbc_new_features/adfbc.html
    The problem has been appeared when I attached the "Create" button and when press on it to create new record, then the "LOV" couldn't work correctly.
    Thanks for your reply

  • How to Store the result sets of a stored procedure that is returning more that one result set in two different table ?

    Hi Experts,
       I have on stored procedure which returns mote than one resultset i want that to store in two different temp table how can achieve this in SQL server.
     following is the stored procedure and table that i need to create.
    create procedure GetData as begin select * from Empselect * from Deptend 
    create table #tmp1 (Ddeptid int, deptname varchar(500),Location varchar(100))
    Insert into #tmp1 (Ddeptid , deptname ,Location )
    exec GetData
    create table #tmp (empid int , ename varchar(500),DeptId int , salary int)
    Insert into #tmp (empId,ename,deptId,salary)
    exec GetData
    Niraj Sevalkar

    You cant get two resultsets out of SP like this. The workaround is to merge and bring the resultsets.
    For this number of columns as well as corresponding datatypes have to be compatible. Also you will need one additional column which indicates resultset value. Then use this as filter to get your desired resultset out
    create procedure GetData as
    begin
    select 'resultset1' as Cat,*,.. N columns from Emp
    union all
    select 'resultset2' as Cat,*,.. N columns from Dept
    end
    create table #tmp1 (Ddeptid int, deptname varchar(500),Location varchar(100))
    Insert into #tmp1 (Ddeptid , deptname ,Location )
    Select column1,column2,column3
    from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
    Integrated Security=SSPI','Execute yourdb..GetData')
    WHERE Cat = 'resultset1'
    create table #tmp (empid int , ename varchar(500),DeptId int , salary int)
    Insert into #tmp (empId,ename,deptId,salary)
    Select column1,column2,column3, column4
    from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
    Integrated Security=SSPI','Execute yourdb..GetData')
    WHERE Cat = 'resultset2'
    also see
    http://sqlblogcasts.com/blogs/madhivanan/archive/2007/11/26/select-columns-from-exec-procedure-name-is-this-possible.aspx
    Another method is to populate table with relevant resultset within procedure itself and then select from the table directly outside.
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Stored procedure with select return multiple rows

    hi,
    in transact the stored procedure is . .
    CREATE PROCEDURE MIPROCEDIMIENTO @CODE INT AS
    BEGIN
    SELECT COD, NAME, LASTNAME FROM EMPLOYE WHER COD = @CODE;
    END
    in oracle how?
    please, i speak spanish. .
    thanks

    http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10767/procedures_plsql.htm#TDPNG60035
    Sybrand Bakker
    Senior Oracle DBA

  • How can a LOV returns more than one value in ADF query?

    Hi,
    I'm using JDev 11g .I'm using a LOV attribute and I have declared a transient attribute to return the meaningful value of the LOV on it. Now it works fine in form , but I want to make it work on the view criteria(<af:query>). It does not return the transient content, and returns empty value.
    Thanks
    Edited by: farzaneh on Nov 13, 2009 10:56 AM

    It seems like Shay Schmeltzer just put out something on his blog on this very issue. You might go have a look to see if you get inspired, since you have given us very little information by which to help you otherwise.

  • Can a function return more than one value

    plz give me some example.

    http://forums.oracle.com/forums/search.jspa?threadID=&q=%2Bfunction+%2Bparameters&objID=f75&dateRange=all&userID=&numResults=15&rankBy=10001
    Nicolas.

  • How to return more than one value through RECORD TYPE from function

    Hi friends,
    i m ew in oracle forms. i want to return the two values at a time from a function but can't,Please help me. my codding is as following
    Thanks in advance.
    FUNCTION Fun_Choose_Right_cast(v_post_no payroll.post_register.post_no%TYPE) RETURN RECORD IS --here is the error 
    v_return_char CHAR NOT NULL := 'X';
    TYPE row_no_record_type IS RECORD
         (v_row_id NUMBER(3)NOT NULL := 0,
         v_char CHAR NOT NULL := 'X');
    row_no_record row_no_record_type;
    BEGIN
    IF v_post_no = 1 THEN
         IF TRUNC(v_post_no*0.15) >= 1 THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'A';
              --v_return_char := 'A';
         END IF;
         IF TRUNC(v_post_no*0.075) >= 1 THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'B';
              --v_return_char := 'B';
         END IF;
         IF TRUNC(v_post_no*0.275) >= 1 THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'C';
              --v_return_char := 'C';
         END IF;
         IF row_no_record_type.v_row_id = 0 AND v_char = 'X' THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'D';
         --IF v_return_char = 'X' THEN 
              --v_return_char := 'D';
         END IF;
    ELSIF(v_post_no BETWEEN 2 AND 100) THEN
         IF TRUNC(v_post_no*0.15) > TRUNC((v_post_no-1)*0.15) THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'A';
              --v_return_char := 'A';
         END IF;
         IF TRUNC(v_post_no*0.075) > TRUNC((v_post_no-1)*0.075) THEN
              IF TRUNC(v_post_no*0.15) > TRUNC((v_post_no-1)*0.15) THEN
                   row_no_record_type.v_row_id := v_post_no-1;
                   v_char := 'B';
                   --v_return_char := 'A';
              ELSE
                   row_no_record_type.v_row_id := v_post_no;
                   v_return_char := 'B';
              END IF;
         END IF;
         IF TRUNC(v_post_no*0.275) > TRUNC((v_post_no-1)*0.275) THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'C';
              --v_return_char := 'C';
         END IF;
         IF row_no_record_type.v_row_id = 0 AND v_char = 'X' THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'D';
         --IF v_return_char = 'X' THEN 
              --v_return_char := 'D';
         END IF;
         END IF;
    RETURN row_no_record;
    END;

    Posting your Oracle version is immensely helpful when asking questions (different version = different answers / functionality available).
    select * from v$version;Also, using tags will preserve the formatting of your code.
    You should likely read (a lot) about  [http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10807/05_colls.htm]
    Basically, you would need to create a PL/SQL record and reference that, OR you could create a SQL type.
    If you're looking for a 'simple' way to return many single values (no arrays) then your best bet would be a procedure with multiple OUT parameters.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for

  • Asset an dLiabilities reconciliation reports.

    Friends, My client want reports profit centre balances on YTD an dprevious year etc by Company code, controling area, profitcentre, account group, internal order no etc.. Can you help me out if there any business content extractors helps? Thanks for

  • Every .dmg file I download is "damaged"

    I've tried to install the newest java update, Pro Tools 10.3.4, Norton Antivirus for Mac, and a few others, and I have the same problem with all disk images downloaded from the internet.  When I double click on the dmg file, it opens it, and I can se

  • Interactive Movie

    Hello I am looking for some guidance; I have 4 clips shot simultaneous of a subject; from 4 different angles. I would like to make a clip that is "interactive". The clip start from the shot head on and the viewer can click and have the clip continue

  • Manual Trashing of older TM backup files

    My question is somewhat related to another topic at http://discussions.apple.com/thread.jspa?threadID=2445257&tstart=0 but here goes anyway. I have TM backup partition on external drive and it is getting full. I know TM will toss old backups as neede

  • How to see show on computer

    How to show presentation on computer and screen simultaneously