How to fetch data to APEX Report using stored procedure?

hi all,
i am making a report in APEX. user selects two dates and clicks GO button - i have a Stored Procedure linked to that result region so Stored Procedure gets called.
my stored procedure does the following -
using specified dates (IN) i do query and put data into a table (this table has been created only for this report) -
i want to show all these data i entered into the table on my APEX report in the same procedure call. can i use ref cursor to return? how to do that?
currently, i use another button in APEX which basically fetches all data from table. basically, user clicks one button to generate report and then another button to get report. which is not desirable at all :(
i m using APEX      3.1.2.00.02 and Oracle 10 database.
pls let me know if you need further clarification of the problem. thanks in advance.
regards,
probashi
Edited by: porobashi on May 19, 2009 2:53 PM

Thanks Tony.
I am not sure what you meant by >> change the report to be based off of a query returning sql statement, no need to keep that table around.... >>
Here's my stored procedure
create or replace
PROCEDURE ABC_PROC (
START_DATE IN DATE,
END_DATE IN DATE
AS
RULE_REC MTG_OFFICER_FORECAST%ROWTYPE;
TYPE REF_CURSOR IS REF CURSOR;
TCUR REF_CURSOR;
BEGIN
DELETE FROM ABC_REPORT;
OPEN TCUR FOR
SELECT ABC_FORECAST.*
from MTG_OFFICER_FORECAST , MTG_USERS
WHERE MTG_OFFICER_FORECAST.NBR_OFFICER = MTG_USERS.NBR_OFFICER AND
MTG_OFFICER_FORECAST.NBR_INSTITUTION = MTG_USERS.NBR_INSTITUTION;
LOOP
FETCH TCUR INTO RULE_REC;
EXIT WHEN TCUR%NOTFOUND;
INSERT INTO ABC_REPORT( NBR_OFFICER, OFFICER_NAME, FORECAST_NBR_LOANS, FORECAST_LOAN_AMT, FORECAST_FEES,
ACTUAL_NBR_LOANS, ACTUAL_LOAN_AMT, ACTUAL_FEES, RATIO_NBR_LOANS, RATIO_LOAN_AMT, RATIO_FEES, NBR_INSTITUTE )
VALUES ( RULE_REC.NBR_OFFICER, RULE_REC.NAME_LOAN_OFFICER, RULE_REC.NBR_LOANS, RULE_REC.AMT_LOAN, RULE_REC.AMT_FEES,
ACTUAL_NBR_LOANS, ACTUAL_LOAN_AMOUNT, ACTUAL_FEES, SUCCESS_RATIOS_NBR_LOANS_PERC, SUCCESS_RATIOS_LOAN_AMT_PERC, SUCCESS_RATIOS_FEES_PERC, RULE_REC.NBR_INSTITUTION );
END LOOP;
CLOSE TCUR;
END ABC_PROC;
Thanks,
Probashi
Edited by: porobashi on Jun 2, 2009 11:43 AM

Similar Messages

  • Sub report using Stored Procedure returns incorrect data

    Post Author: rikleo2001
    CA Forum: Data Connectivity and SQL
    Guys,
    I am using CR 9 in ASP.net application.
    One simple report and one Sub report, sub report is basically linked with Stored procedure accepting one parameter and returns a select query.
    Main report is linked with that sub report using that parameter field.
    Sub report is on demand sub report.
    Now when I execute that main report and click on on demand sub report I am getting Wrong order information.
    Here is out put on main report
    Order 1                                          on demandDetail
    Order 2                                          on demandDetail
    Order 3                                          on demandDetail  
         NOW If I click on Order 3 (On demanddetail link, it displays rondom order details, some time correct on too), I am really stuck and don't know where I am going wrong.
    Please help me to solve this issues.
    Many Thanks

    Post Author: rikleo2001
    CA Forum: Data Connectivity and SQL
    Hi Yangster,
    Thank you so much for your reply.
    On DEMAND Sub report is located in main report, IN DETAIL SECTION
    I am passing Order ID from main report linked to  {?morderid} in subreport under command object, and if I run it in design mode, it works perfectly alright, so problem is isolated to ASP.NET and Crystal report post back method on Crystal report.
    The example I give to you this is a simple example to identify issues in my real application and report.
    My main report contains summary of data base on unique identifier. that summary have 4 differant types of details which has to be on the same report (as Crystal report doesn't provide Nested subreport), so I decided to use 4 subreports on main report and all subreport using Stored procedure command object.(Sub report has it own complex processing requirement to fulfill).
    Please help me with any further ideas? for the sample which I presented to you this is only using one SP on main report with a simple processing.
    Many Thanks

  • Why Dynamic Parameter is not working, when i create report using stored procedure ?

    Post Author: Shashi Kant
    CA Forum: General
    Hi all
    Why Dynamic Parameter is not working, when i create report XI using stored procedure ?
    Only i shaw those parameters which i used in my stored procedure, the parameter which i create dynamic using stored procedure
    is not shown to me when i referesh the report for viewing the results.
    I have used the same procedure which i mention below but can not seen the last screen which is shown in this .
    ============================================================================================
    1. Select View > Field Explorer2. Right-click on Parameter Fields and select New from the right-click menu.3. Enter u201CCustomer Nameu201D as the name for your parameter4. Under u201CList of Valuesu201D select u201CDynamicu201D5. Under the Value column, click where is says u201Cclick here to add itemu201D and select Customer Name from the drop-down list. The dialog shown now look like the one shown below in Figure 1. Click OK to return to your report design.
    Dynamic Parameter Setup6. Next, select Report > Select Expert, select the Customer Name field and click OK.7. Using the drop-down list beside select u201CIs Equal Tou201D and using the drop-down list, select your parameter field (it should be the first field). 8. Click OK to return to your report design and see the parameter dialog.The parameter dialog will appear and show you a dynamic list of values that is updated each time your run your report. It couldnu2019t be easier! In our next tutorial, we will be looking at how to use this feature to create cascading parameter fields, where the values are filtered by the preceding selection.
    Dynamic Parameters in Action
    My question is that whether dynamic parameter is working with storedprocedure or not.
    When i added one table and try to fetch records using dyanmic prameters. after that i am not be able to find the dynamic parameter option when i referesh my report.
    One more thing when i try the static parameter for my report, the option i see when i referesh the screen.
    Please reply soon , it's urgent
    Regards
    shashi kant

    Hi Kishore,
    I have tested the issue step by step by following you description, while the first issue works well in my local environment. Based on my research, this can be caused by the lookup expression or it indeed return Male value based on the logic. If you use the
    expression below, it will indeed only return the Male record. So please try to double-check the record in the two datasets and the expression in your environment:
    =lookup(first(Fields!ProgramID.Value,"DataSet1"),Fields!ProgramID.Value,Fields!Gender.Value,"DataSet2")
    As to the second issue, please try to use the following expression:
    =Count(Lookup(fields!ProgramID.value,fields!ProgramID.value,fields!Gender.value,"DataSet2"))
    Besides, if this issue still exist, in order to trouble shoot this issue more efficiently, could you please post both the .rdl  file with all the size properties to us by the following E-mail address?  It is benefit for us to do further analysis.
    E-mail: [email protected]
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Hey guys how to fetch data from db table using subroutine

    hi guys,
                   I am fetching data from db table "mcha". now in the follwing code i get it in "HSDAT1_DATE."
                   now when i read out_tab with key "HSDAT1". it wont come in out_tab-value.plz tell me what is wrong whether some key condition in out_tab or any thing else.
    and what should i write in changing && in script.
    thanks in advance
    FORM DATE_MGF TABLES IN_TAB STRUCTURE ITCSY
                         OUT_TAB STRUCTURE ITCSY.
    tables :MCHA ,QALS.
      DATA : WERKS1 LIKE QALS-WERK.
      DATA : HSDAT1 LIKE MCHA-HSDAT.
      DATA : DATE(2),
             MONTH(2),
             YEAR(4).
    DATA : HSDAT1_DATE(10).
      READ TABLE IN_TAB WITH KEY 'QALS-WERK'.
      LOOP AT IN_TAB.
        IF SY-TABIX EQ 1.
          WERKS1 = IN_TAB-VALUE.
          IF WERKS1 NE SPACE.
            EXIT.
          ENDIF.
        ENDIF.
      ENDLOOP.
      SELECT SINGLE HSDAT INTO HSDAT1
                          FROM MCHA
                                    WHERE  WERKS = WERKS1.
      DATE = HSDAT1+6(2).
      MONTH = HSDAT1+4(2).
      YEAR = HSDAT1+0(4).
      CONCATENATE DATE '.' MONTH '.' YEAR INTO HSDAT1_DATE.
      READ TABLE OUT_TAB WITH KEY 'HSDAT1' .
      IF SY-SUBRC = 0.
        OUT_TAB-VALUE = HSDAT1.
        MODIFY OUT_TAB INDEX SY-TABIX.
      ENDIF.

    Hi,
    Let me understanf clearly what you want.
    initally mine out_tab is blank
    According to you, your table out_tab is blank. And you need to add out_tab-value = HSDAT1_date.
    READ TABLE OUT_TAB WITH KEY 'HSDAT1' .
      IF SY-SUBRC = 0.
        OUT_TAB-VALUE = HSDAT1.
        MODIFY OUT_TAB INDEX SY-TABIX.
      ENDIF.
    So, if your table is blank, then read statement will fail.
    Please let me know if your table out_tab in blank when you are reading the table and if this table contains any field called HSDAT.
    Basically i would like to know your internal table out_tab declaration.
    Thanks,
    Archana

  • How to fetch %ROWTYPE OUT param of  a stored procedure from Java program?

    I have a stored procedure that has IN / OUT parameter as table_name%ROWTYPE.
    From a java program how can I access this ROWTYPE variable?
    I tried all possible documentation and none of the explains whether or not this is supported.
    My use case expect exactly 1 record from the procedure and we would prefer not to use REF CURSOR.
    Is there a way to achieve this? If so, can someone help me with it by posting the sample code to achieve this?
    I tried all the possible OracleTypes to register the OutParameter and they all fail.
    Looks like there isn't any equivalent of %ROWTYPE in OracleTypes either.
    If you need, I can post my sample procedure that uses %ROWTYPE as OUT parameter.
    I really appreciate your help in this regard.
    - Karthik

    Hi,
    If "returning only 1 record" the showstopper for not using Ref Cursor, you might want to reconsider because as you probably know, the ref cursor is only a pointer and requires additional step to retrieve the data.
    Kuassi

  • Crystal Reports - Using Stored Procedure with c#

    Post Author: cathalmckenna
    CA Forum: Data Connectivity and SQL
    Hey
    I've got some c# code that sets a reports data source.
    Its works when connecting to a data source that is a Table, however when the datasource is a Stored Procedure the following error is generated.
    The table 'PNL_STATUS_REPORT' could not be found.Error in File C:\DOCUME1\mckennac\LOCALS1\Temp\temp_9b3cb2f4-7e37-4e34-bd18-af7b06c85139 {ACBDC2D4-A275-4CAA-B3C0-E3C92F615007}.rpt:The table could not be found.
    The problem is when setting table.Location. I've tried prefixing this with the package name that the stored proc is in, but no luck. If I set the table Location to the package name, I get no error, but the report returns no results.
    Any ideas why this doesnt work, is there a different way to handle stored procs??
                 ConnectionInfo connInfo = new ConnectionInfo();            connInfo.DatabaseName = dbName;            connInfo.ServerName = serverName;            connInfo.UserID = userName;            connInfo.Password = password;                        foreach (Table table in report.Database.Tables)            {                TableLogOnInfo logOnInfo = table.LogOnInfo;                string[] locations = table.Location.Split('.');                string unqualifiedLocation = locations[locations.Length - 1];                logOnInfo.ConnectionInfo = connInfo;                table.ApplyLogOnInfo(logOnInfo);                table.Location = unqualifiedLocation;            }
    thanks
    Cathal

    Post Author: ianbennett
    CA Forum: Data Connectivity and SQL
    I too am having the same problem.  I have found that when the user has a fast connection it works OK but when they use a "slow" link it does not seem to passs the logon information through before trying to generate the report.

  • How to dynamically create sqlldr control file using stored procedure

    I am trying to dynamically create the control file (.ctl) and execute the same using a stored procedure.I would be passing the file name as a parameter to this procedure. How do I go about doing this?
    The control file has the following structure. The file name (mktg) varies and is passed as an input to the stored procedure.
    SPOOL mktg.ctl
    LOAD DATA
    INFILE 'mktg.csv'
    INTO TABLE staging
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
    (COMPANY_NAME,
    ADDRESS,
    CITY,
    STATE,
    ZIP)
    SPOOL OFF ;
    sqlldr scott/tiger CONTROL= mktg.ctl LOG=mktg.log BAD=mktg.bad

    We are using oracle 9i rel 2.
    I have not had much success with the creation of log and bad files using external tables when they are being used within a dynamic sql.
    Plz check this:
    Re: problems related to data loads from excel, CSV files into an oracle 9i db

  • Report using Stored Procedure

    <p>HI, we are having problems with a report that uses a stored procedure.  </p><p>When we run the report and enter the parameters, the report comes back blank.  Having a look in the &#39;Show SQL&#39; box says that Crystal Reports is executing the stored procedure but instead of placing in the parameters entered, it is showing &#39;NULL&#39; for all the parameters!</p><p>We can execute the stored procedure fine in the DB and we have checked the ODBC and the OLE DB connections are valid.  </p><p>Has any one encountered this before?</p><p> </p><p>Thanks in advance. <br /></p>

    <p>Did you check little check box below entering parameters.</p><p>Or another reason might be while defining odbc you need to have stored procedures returns value option. But this doesnt seem to be a problem in your case</p>

  • How to fetch oracle process id from a stored procedure.

    Hi,
    I want to fetch the oracle process id from within a stored procedure.
    I know that the one way to do this is using the v$process view. But, a grant has to be given to the user on this table. Due to the strict policies at my workplace, I do not have the permission to do this, nor can i ask anyone to give the grant. But, i need the oracle pid very much.
    Is there an alternate way to get the oracle process id from within the stored procedure (without using the v$process view, like we have sys_context() to fetch session id without using v$session) ?
    Any help would be appreciated.
    Thanks,
    AP

    Hi,
    The point is i do not want to use v$process ( or v_$process) ,because i can not give the select grant to the user on this view. ( As i need to fetch it from a stored procedure, not from the SQL prompt).
    Rahul , your query is correct. It fetches the values ( though i needed oracle process id not unix pid ; i would get it through p.pid), but i need an alternate approach to this.
    Is there an alternate approach which would enable me to fetch the oracle process id ( without using any of the V$ - system views) ? Does Oracle has such a feature /approach ?
    -AP

  • How to fetch data from PTREQ tables

    I need to display  data in the customised webdynpro application from PTREQ tables.
    Can anyone help me out how to fetch data from these tables.

    use the standard modules like
    PT_ARQ_REQUEST_CHECK
    PT_ARQ_REQUEST_EXECUTE
    PT_ARQ_REQUEST_PREPARE

  • How to build a report in webi XIr2 using stored procedure

    Post Author: vijay123
    CA Forum: WebIntelligence Reporting
    hi,
    Is anybody can help me out how to creat a report using stored procedure in webiXir2
    thanks
    vijay

    Post Author: amr_foci
    CA Forum: WebIntelligence Reporting
    this has been posted twice.. i think

  • How to create a LOV based on a stored procedure returning a cursor

    Hello,
    I've tried to search the forum, but did not find much. We are facing a problem of large LOVs and creating large TMP files on the app server. Our whole application is drived by store procedures. LOVs are built manually by fetching data from cursors returned from stored procedures. That creates the issue when whole LOV needs to be stored in the memory and thus the TMP files.
    Is there anyway how to create LOV based on a procedure returning cursor ?
    Thank you,
    Radovan

    Hello,
    As of now we populate the record group by looping through the ref cursor and adding rows into it. Is there a better way? That forces the whole record group to be stored in a memory on the app server.
    Thank you,
    Radovan

  • Crystal Reports 2008 Stored Procedure and Parameters from LOVs

    Quite simple report using stored procedure as data source. When editing some of the parameters we get this error when clicking OK to close "This stored procedure parameter can only accept multiple values. Please ensure that Allow Multiple Values is true."
    As we all know stored procedure parameters do not access multiple values at all, so this message is very hard to debug. The report does work if we set the 'Allow Multiple Values' to true, but only when using exactly one value for the parameter. We have tried verify database and other things, but cannot find any way around this issue.
    All ideas are appreciated as this is stopping us from utilizing the dynamic parameters.
    Thanks, Stig

    We managed to work around the issue by creating a new stored procedure. First we used the same parameter names and changed the data source to the new stored procedure. After renaming the parameter with the issue the problem then was resolved.
    Note that another parameter that was earlier affected by this issue in the way that it could not be edited and saved due to the same error message now also works fine. This even if this parameter has not changed names.
    Quite a complex situation to debug this. Maybe if the source of the error message is found in the code we could help testing.
    Stig

  • IN Operator Parameter using stored procedure

    Hi Guys,
    I'm running a reporting services report using stored procedure and I'm facing a dilemma with the IN Operator in the stored procedure.
    Can someone please help me out debugging the statement below? (run it on AdventureWorks Database)
    Can I have the @Title Parameter based on another select statement something like this 
    Set @Title = SELECT Title FROM TableTitle
    DECLARE @Title varchar(1000)
    set @Title = 'Design Engineer', 'Tool Designer', 'Marketing Assistant'
    SELECT FirstName, LastName, e.Title
    FROM HumanResources.Employee AS e
    JOIN Person.Contact AS c
    ON e.ContactID = c.ContactID
    WHERE e.Title IN (@Title)
    Appreciate all the help on this.
    Thank you
    John

    Hi John,
    For your problem, we can use dynamical statement to solve the issue.
    Here are 2 options to be clarified:
             1. A multi-value parameter will return an array value.
             2. It is not able to pass an array in a stored procedure.
    To solve the issue, we can use the following steps:
    1.              Cconvert the array into string that delimited by “,” using the function “Join” in SQL Server Reporting Services.
    2.              Pass the string in the stored procedure.
    3.              Combine the parameter and the statement into one simply string.
    4.              Execute the simply string.
    Here are the detailed steps for your reference:
    1.       In Report Designer, create a new dataset as “SELECT Title FROM TableTitle”.
    2.       Create a new multi-value parameter, set the available value from the dataset above.
    3.       Set the query of the main dataset as :
    ="spSelect_Title "&Join(Parameters!para.Value, ",")
    4.       Change the stored procedure as:
    ALTER PROCEDURE [dbo].[spSelect_Title]
             -- Add the parameters for the stored procedure here
             --@Query NVarchar(Max),
             @Title NVarchar(MAX)
    AS
    BEGIN
             -- SET NOCOUNT ON added to prevent extra result sets from
             -- interfering with SELECT statements.
             SET NOCOUNT ON;
             DECLARE @Query Varchar(Max)
             SET @Query = 'SELECT FirstName, LastName, e.Title
             FROM HumanResources.Employee AS e
             JOIN Person.Contact AS c
             ON e.ContactID = c.ContactID
             WHERE e.Title IN (' + @Title+ ')'
    --       PRINT ' QUERY = '+ ISNULL(@Query,'NULL')
             Execute sp_executesql @Query
    END
    If you have any more questions, please feel free to ask.
    Thanks,
    Jin
    Jin Chen - MSFT

  • How to exctract data from a report to use it in a process

    Hi! I would like to know how to exctract data from a report to use it in a process. Let's say that I have a report which have following fields: id_person, name_person. And then, I want to make a process which introduce the id_person (from report) into an associative tabel. How can I reffer to the fields from my report?
    I was thinking about something like that( this should be the code from my process)
    insert into associative_table(id_person)
    values(id_person) or
    insert into associative_table(id_person)
    values(Report_name.id_person) but it doesn't work....
    Thank you very much.

    Another option, use collections.
    Create an on load process that loads all the rows you would have in your report into a collection:
    begin
    HTMLDB_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
    p_collection_name => 'ASSIGNED_CALENDAR_CONTACTS' );
    for x in (SELECT CONTACT_ID, CONTACT_FNAME, CONTACT_LNAME
    FROM CONTACT
    WHERE InStr( pkg_CalendarMgr.f_FetchContactIDsForDay( TO_DATE( :P3_CALENDAR_DT, 'YYYYMMDD' ), 'OF' ), CONTACT_ID ) > 0 )
    loop
    htmldb_collection.add_member(p_collection_name => 'ASSIGNED_CALENDAR_CONTACTS',
    p_c001 => x.CONTACT_ID,
    p_c002 => x.CONTACT_FNAME,
    p_c003 => x.CONTACT_LNAME);
    end loop;
    end;
    Then, instead of your report selecting from the table, have it select from the collection, this way your display will match what's in the collection:
    SELECT c001, c002 || Chr(32) || c003 CONTACT_NAME, 'Remove' remove
    FROM htmldb_collections
    WHERE collection_name = 'ASSIGNED_CALENDAR_CONTACTS'
    ORDER BY c003, c002
    Then you can have a button on the form that steps through the collection, one element at a time and does whatever you want it to.

Maybe you are looking for

  • ITunes wants me to set up or restore my iPod Touch again-or eject it!

    I bought this iPod Touch only two months ago. And since this is my second iPod (the first was a 5 gen that I had had for a couple years), I only did the initial iTunes 8 update I had to do when I bought it. Since it had been working fine, I didn't do

  • No new mail notification in Outlook - CAS Exchange RPC Client Access problem

    Hi, we're facing this problem: Users start complaining they suddenly don't receive new mail notifications in Outlook (2010/2013)  anymore Inbox does not show the new mail either When the user changes folders in outlook, the new mail does show in the

  • LaCie External Drive No Longer Recognized

    My LaCie d2 Hard Drive (Extreme) suddenly is no longer recognized. This may or may not have anything to do with my copying several files to it just prior, with much memory still available on it. I rebooted my computer twice and it was still not there

  • Disable the Dynamic Selection Icon from T.Code FBL1N

    Hi, I want to disable the Dynamic Selection Icon from T.Code FBL1N... Please Note that i found a link where some code is given for this problem. Remove the dynamic selection screen....... Please tell me where i paste that code....after initialization

  • GetFlashCard(int N) ?    please help me.....

    CAN SOMEONE HELP ME WITH THIS PROGRAM..... PLEASE...... JUST THE getFlashCard(int N) PART...... I'AM REALLY NOT GOOD WITH JAVA (PLEASE REPLY ME AT [email protected] public class FlashCard { private int numberOfCards = 0;      private String mP