Executing Java CGI Program and Returning Result to Browser

Hi all, I'm an experienced ASP/PHP/JS programmer but completely new to Java. I'm building a site where I need to execute the same piece of code in every language I can manage, and I'm onto Java. For the purpose of illustration, my goal is to replicate the following PHP code as Java code:
<?php echo($_GET['message']); ?>I've written and compiled a "Hello World!" application and uploaded it to my server (Dreamhost shared hosting, Linux platform with JDK installed). Using this line form telnet, the application prints "Hello World!" to the screen:
java -classpath . helloworld.classSo, following a very old tutorial I found online, I created a CGI script and CHMOD'd it to 755 containing the following:
#!/usr/sh /usr/bin/java -classpath . regex.classBut this returns a 500 "Internal server error". After a few unsuccessful alterations I tried to emulate the CGI script in PHP like so:
<?php exec('java -classpath . regex', $output); echo(join($output, '<br />')); ?>But all I get back from that is "Error occurred during initialization of VM. Could not reserve enough space for code cache".
Any advice would be very much appreciated. I can learn the Java language - there's plenty of resources available for that, but I'm struggling to get started because I can't get the application to run as CGI.
Many Thanks,
-William

wwarby wrote:
Hi, and thanks for the responses.
paulcw, my ultimate goal is obviously a little more ambitious than printing "Hello World!" to the browser but for simplicity's sake I thought I'd start there. I tried this in a .cgi file:
#!/bin/sh
/usr/local/dh/java -version...and I still get a 500 internal server error. I have uploaded the script in ASCII mode and CHMOD'd it to 755, and checked with my host that I have the Java path correct (I've also tried just "java" and "/usr/bin/java" which do the same thing).Well that's because you're confusing running Java generally vs running it as a CGI vs running ANYTHING as a CGI. The web server expects CGI scripts to send certain content to standard output, and in a certain format. Generally speaking it's headers, then a blank line, then other content.
Furthermore, I think you might be confusing executing arbitrary code from PHP vs executing a CGI script. I'm not familiar with PHP but the way you called exec suggests to me that it can run arbitrary code and doesn't expect the output to necessarily be in CGI format.
You've got to do things one step at a time here.
spoon_, the #!/usr/sh" thing was a mistake on the forum post - in the script it is "#!/bin/sh" and it is on a line of it's own. The full .cgi file is now:
{code}#!/bin/sh
/usr/local/dh/java -classpath . hello{code}
And the .java file is now:
{code}class hello {
     public static void main(String args[]) {
          System.out.println("Content-type: text/html");
          System.out.println();
          System.out.println("Hello World!");
}{code}
as per your instructions. I compliled it on the server using javac, and when I run:
{code}java -classpath . hello{code}
in telnet, it returns:
{code}Content-type: text/html
Hello World!{code}
to the telnet window. Unfortunately when run from the CGI script I still get the 500 Internal server error.Have you checked your web server logs?
I'm going to guess here that your web server doesn't have permission to run the JVM executable.
That's an interesting path: "/usr/local/dh". What does "dh" stand for?
My server definitely supports Java (version 1.5.0_02) and CGI - it says so on their Wiki and specifically mentions Java as one of the languages that CGI scripts can use. What am I doing wrong?
Edited by: wwarby on Dec 25, 2007 1:30 AMCheck your web server logs. There should be both an access log and an errors log. The errors log will probably contain more information.

Similar Messages

  • Possible to extend java Concurrent Program and replace standard??

    Hi All!
    i have following developing need. There is a java concurrent program POXPOPDF (PO Output for Communication). The customer needs this program to do actually something complete different than printing the PO in PDF. The executable for this CP is java class PoGenerateDocumentCP in oracle.apps.po.communicate package.
    We thought that we may be able to extend that class and then in some way made OA to use the extended java class instead of the standard. This is possbile and simple for OA Framework pages unsing classes as controllers, but I don't know how it could be done for CP (if there's a way to do it without violent intervention in standard system).. Is it possbile, can anyone help me with this.
    The thing is that instead of reformatting the XML returned from PO_COMMUNICATION_PVT.POXMLGEN (function POXMLGEN in database package PO_COMMUNICATION_PVT) into PDF we want to reformat into another XML and then send it in other way to a webservice. Once I have the XML from POXMLGEN I have no problem to reformat it into another XML (I think, I have done it iwith other issues/processes). The webservice and the call to it is no problem and is already use with other purposes in other processes, but here (replaceing this stadard java class for an extension/new one) I am a little lost.
    Appreciate very much your help.
    Regards,
    Patricia

    Never mind, I see now that FND_REQUEST.SUBMIT_REQUEST() really does work, I tried with a different standard java concurrent program and it worked fine, and then I figured out that my parameters into fnd_request.submit_request for concurrent program APXVVCF4 were not correct (application short name was invalid for concurrent program).
    Thanks for the Info!

  • How to call an alv report from another program and return back

         Hello ,
    I am calling one abap program (Prgm B) from another program (Prgrm A).
    Here, Prgm B is an ALV report. I have fetch some data from Prgem B that gets stored in an internal table.
    Now, I am using below code in Prgrm A,
      SUBMIT Prgrm B VIA SELECTION-SCREEN
                          WITH SELECTION-TABLE rspar
                          EXPORTING LIST TO MEMORY
                          AND RETURN.
    When Prgrm A executed, it lead me to selection screen of Prgrm B and when I click F8, it shows me the report output, In short, it doesnt return back to Prgrm A. It ends up showing me the alv report if Prgrm B even afetr using RETURN statement.
    I want to get back to Prgrm A by fetching some data from Prgrm B.
    Please let me know, if i am missing something.
    Regards,
    Seema

    Hi Seema,
    Refer below code.
    DATA: v_matnr LIKE mara-matnr.
    DATA: t_listobject TYPE abaplist OCCURS 0 WITH HEADER LINE.
    DATA: t_mara TYPE mara OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF t_ascilist OCCURS 0,
             line(200).
    DATA: END OF t_ascilist.
    data var(3) type c.
    SELECT-OPTIONS: s_matnr FOR v_matnr.
    var = '  3'.
    START-OF-SELECTION.
       SUBMIT ztestaks1 WITH s_matnr IN s_matnr EXPORTING LIST TO MEMORY
       AND RETURN.
       CALL FUNCTION 'LIST_FROM_MEMORY'
            TABLES
                 listobject = t_listobject
            EXCEPTIONS
                 not_found  = 1
                 OTHERS     = 2.
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ELSE.
         CALL FUNCTION 'LIST_TO_ASCI'
    *     EXPORTING
    *       LIST_INDEX               = -1
    *       WITH_LINE_BREAK          = ' '
           TABLES
             listasci                 = t_ascilist
             listobject               = t_listobject
           EXCEPTIONS
             empty_list               = 1
             list_index_invalid       = 2
             OTHERS                   = 3.
         IF sy-subrc <> 0.
           MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
         ELSE.
           WRITE:/ 'Below are the lines from the submitted program.'.
           LOOP AT t_ascilist.
             WRITE:/ t_ascilist-line.
           ENDLOOP.
           SKIP 2.
         ENDIF.
       ENDIF.
       IMPORT t_mara FROM MEMORY ID 'T_MARA'.
       WRITE:/
    'Here is the output from the table exported from the submitted program.'
       LOOP AT t_mara.
         WRITE:/ t_mara-matnr.
       ENDLOOP.
    Submitted program
    REPORT  ZTESTAKS1.
    DATA: v_matnr LIKE mara-matnr,
           v_maktx LIKE makt-maktx.
    DATA: t_mara TYPE mara OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF t_makt OCCURS 0,
             matnr LIKE makt-matnr.
    DATA: END OF t_makt.
    SELECT-OPTIONS: s_matnr FOR v_matnr,
                     s_maktx FOR v_maktx.
    START-OF-SELECTION.
       SELECT matnr INTO TABLE t_makt
                    FROM makt
                   WHERE matnr IN s_matnr
                     AND maktx IN s_maktx.
    if not t_makt[] is initial.
       SELECT * FROM mara
                INTO TABLE t_mara FOR ALL ENTRIES IN t_makt
               WHERE matnr = t_makt-matnr.
    endif.
       EXPORT t_mara TO MEMORY ID 'T_MARA'.
       WRITE:/ 'This list is from the submitted program'.
       SKIP 1.
       LOOP AT t_mara.
         WRITE:/ t_mara-mtart.
       ENDLOOP.
    Hopes this helps you.
    Thanks,
    Ashok.

  • How to get Spool Number after submtting the program and return

    Hi All,
    Could you please assist me on this issue. I have ABAP program which will create a spool number and this spool number is generated by submitting the same report. Now when try to retrive the spool number from sy-spono it is displaying as 000000 but it suppose to be the spool which is created during submit program. COuld you please assist me on this issue. I have added the part of code for your reference,
    DATA: l_params TYPE pri_params,
    l_valid TYPE string,
    w_spool_nr like sy-spono,
    p_m_werks like marc-werks.
    export p_werks to memory id 'P_WERKS'.
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
    IMPORTING
    out_parameters = l_params
    valid = l_valid
    IF sy-subrc <> 0.
    ENDIF.
    import p_werks from memory id 'P_WERKS'.
    p_m_werks = p_werks.
    SUBMIT zmmlist01 with p_werks eq p_m_werks
    to SAP-SPOOL
    spool parameters l_params
    without spool dynpro and return.
    write: sy-SPOno.
    Thanks & Regards,
    Nagaraj Kalbavi

    Hi,
    You can use the code snippet as below :
    SELECT MAX( RQIDENT ) INTO G_SPOOL_NUM
    FROM TSP01
    WHERE RQCLIENT = SY-MANDT AND
    RQOWNER = SY-UNAME.
    Also you can use the FM RSPO_FIND_SPOOL_REQUESTS' and pass the relevant parameters to this FM. This should get you the desired results.
    Hope this would be of some help!!
    Regards,
    Lalit Kabra

  • Thread to search a web page and return results

    Hi, I am writing a program where the user will key in an ISBN, after the user inputs the number I want to create a thread to query a website like amazon and return the title of the book and name of the author. Any suggestions on how to accomplish this in Java? Are there any libraries available to do something like this
    Thanks

    I would suggest you start by seeing what APIs Google and/or Amazon have to offer you. Accessing web content from a program is in many cases, against the terms of service for the site. But many popular sites have special feeds or API resources to let you access content like this.
    Then at some point you'll be wanting to go through the [_Custom Networking Tutorial_|http://java.sun.com/docs/books/tutorial/networking/index.html]

  • Callling an standard program and return back

    Hi all,
    I am coding an  Zprogram in that i have to call an Standard Program ( ex:- SAPMF02K) and after executing that standard program again i have to come back and execute my remaining Zprogram .
    How can i do this.
    Regards
    Ajay

    Hi,
    Use SUBMIT AND RETURN
    That is , u can do...
    SUBMIT SAPMF02K AND RETURN.
    Chk the following link.....
    http://www.sapdevelopment.co.uk/reporting/rep_submit.htm
    Regards.
    Edited by: Iyswarya  Godi on Jul 9, 2008 7:16 AM
    Edited by: Iyswarya  Godi on Jul 9, 2008 7:16 AM

  • How To call a Tcode From a Program and returning back ?

    Dear All,
    I have a requirement, i have to show all the open orders as in the the tcode va05  and return back to the my program. so how to display the tcode and getting back to my program. please help?

    Hi,
    Basic syntax to call the transaction is:
    SET PARAMETER ID <id name> FIELD <filedname>.
    CALL TRANSACTION <TCOde> AND SKIP FIRST SCREEN.
    If your are using ALV then snippet is :
    FORM user_command  USING okcode    LIKE sy-ucomm
                           lselfield TYPE slis_selfield.
      CASE okcode.
        WHEN '&IC1'. " SAP standard code for double-clicking
          CASE lselfield-sel_tab_field."check if double click is only on
            WHEN 'ITAB-AUFNR'."aufnr not on any other field
              SET PARAMETER ID 'ANR' FIELD lselfield-value.
              CALL TRANSACTION 'IW32' AND SKIP FIRST SCREEN.
          ENDCASE.
      ENDCASE.
    Endform.
    Pooja

  • Call program and return with data

    Hi, Experts,
    I have called a program from my main program using SUBMIT
    and return.
    I need to get data back from called program in table format.
    Is there any way to fullfill such requirement.
    Regards
    Rajiv singh.

    if the program is custom , then you can use import and export  option. you can export the data to memory in the submit program, and import from memory after submit call.
    if it Standard program , in some standard programs also will export data to memory , so check in inside the program.

  • Execute webdynpro from abap program and return to the caller program

    Guys,
    I have a question here.
    I know there is a way to call an abap webdynpro application from normal abap program by either using a class method, or use a function module WDY_EXECUTE_IN_PLACE by providing
    the webdynpro application or using CALL TRANSACTION statement.
    But, is there anyways that we can call the webdynpro application from abap program by supplying data to the webdynpro and display to the user from the portal, and then
    once the user do some manipulation on the data, can we transfer back the data to the caller abap program?

    hey ,
    you can pack any web-dynpro program in tranasaction code and run it from R/3 and not via portal  :
    search in " SAPTECHNICAL" how to do so  - for some reason i cant post a link here
    than you can use call transaction .
    regards
    ASA

  • EXECUTE IMMEDIATE dynamic statement and return procedure value

    Hello guys,
    How can i return values from procedure using EXECUTE IMMEDIATE statment?
    I made easy example:
    CREATE OR REPLACE PACKAGE pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER);
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER);
    END;
    CREATE OR REPLACE PACKAGE BODY pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER)
    IS
    BEGIN
    v_out:=(p_age_1+p_age_2+p_age_3)/3;
    END pro_calc_average;
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER)
    IS
    x number;
    v_sql varchar2(4000);
    BEGIN
    v_sql:='pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x)';
    dbms_output.put_line(v_sql);
    EXECUTE IMMEDIATE v_sql;
    dbms_output.put_line(' ====> '||x);
    END pro_calc;
    END;
    -- Run procedures [Faild]
    EXEC pac_test.pro_calc(2,9,19);
    When i run:
    DECLARE
    x number;
    BEGIN
    pac_test.pro_calc_average(2,9,9,x);
    dbms_output.put_line(' ====> '||x);
    END;
    It's works, but this is not what i am looking for.
    Thank you guys,
    Sam.

    Hi Sam,
    Like this?
    CREATE OR REPLACE PACKAGE pac_test
    IS
    pac_var number;  /* added new*/
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER);
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER);
    END;
    CREATE OR REPLACE PACKAGE BODY pac_test
    IS
    PROCEDURE pro_calc_average( p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER,
    v_out OUT NUMBER)
    IS
    BEGIN
    v_out:=(p_age_1+p_age_2+p_age_3)/3;
    END pro_calc_average;
    PROCEDURE pro_calc(p_age_1 IN NUMBER,
    p_age_2 IN NUMBER,
    p_age_3 IN NUMBER)
    IS
    pack_local_var number;
    v_sql varchar2(4000);
    BEGIN
    --v_sql:='pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x)';
    v_sql:=' declare x number; begin pac_test.pro_calc_average('||p_age_1||','||p_age_2||','||p_age_3||',x);
    dbms_output.put_line(x);
    pac_test.pac_var:=x; /* added new*/
    end;';
    dbms_output.put_line(v_sql);
    EXECUTE IMMEDIATE v_sql;
    pack_local_var:=pac_var; /* added new*/
    dbms_output.put_line(pack_local_var); /* added new*/
    END pro_calc;
    END;Declared a package variable.
    But be aware this variable is accessible to everyone and they can read or change its value if they have the right privileges.
    REgards,
    Bhushan

  • Dequeue Business event (AQ or AppsAdapter) in OSB and return results fails

    I am new to OSB. The scenario is to publish out the results to SFDC (SalesForce.Com) any changes in EBS.
    The Dequeueing works well within OSB. However when I am trying to return the results back.. It is failing. Is it because Dequeueing wsdl has only an input structure
    and does not have an output structure?

    I get the following error message
    BEA-382040: Failed to set the value of context variable "body". Value must be an instance of {http://schemas.xmlsoap.org/soap/envelope/}Body. So basically the input definition of the Event is
      <soapenv:Envelope   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header   xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    </soap:Header>
    <soapenv:Body>
    <even:WF_EVENT_T   xmlns:even="http://xmlns.oracle.com/xdb/APPS/EventListener">
    <!--Optional:-->
    <PRIORITY>1.051732E7</PRIORITY>
    <!--Optional:-->
    <SEND_DATE>string</SEND_DATE>
    <!--Optional:-->
    <RECEIVE_DATE>string</RECEIVE_DATE>
    <!--Optional:-->
    <CORRELATION_ID>string</CORRELATION_ID>
    <!--Optional:-->
    <PARAMETER_LIST>
    <!--Zero or more repetitions:-->
    <PARAMETER_LIST_ITEM>
    <!--Optional:-->
    <NAME>string</NAME>
    <!--Optional:-->
    <VALUE>string</VALUE>
    </PARAMETER_LIST_ITEM>
    </PARAMETER_LIST>
    <!--Optional:-->
    <EVENT_NAME>string</EVENT_NAME>
    <!--Optional:-->
    <EVENT_KEY>string</EVENT_KEY>
    <!--Optional:-->
    <EVENT_DATA>string</EVENT_DATA>
    <!--Optional:-->
    <FROM_AGENT>
    <!--Optional:-->
    <NAME>string</NAME>
    <!--Optional:-->
    <SYSTEM>string</SYSTEM>
    </FROM_AGENT>
    <!--Optional:-->
    <TO_AGENT>
    <!--Optional:-->
    <NAME>string</NAME>
    <!--Optional:-->
    <SYSTEM>string</SYSTEM>
    </TO_AGENT>
    <!--Optional:-->
    <ERROR_SUBSCRIPTION>ZQ==</ERROR_SUBSCRIPTION>
    <!--Optional:-->
    <ERROR_MESSAGE>string</ERROR_MESSAGE>
    <!--Optional:-->
    <ERROR_STACK>string</ERROR_STACK>
    </even:WF_EVENT_T>
    </soapenv:Body>
    </soapenv:Envelope>
    and then I replace the body with
    <soapenv:Envelope  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    </soap:Header>
    <soapenv:Body>
    <get:GetSystemDateInput  xmlns:get="http://xmlns.oracle.com/pcbpel/adapter/db/GetSystemDate"/>
    </soapenv:Body>
    </soapenv:Envelope>
    before the call to the business service GetSystemDate and then I get this error
      <soapenv:Envelope   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server</faultcode>
    <faultstring>
    BEA-382040: Failed to set the value of context variable "body". Value must be an instance of {http://schemas.xmlsoap.org/soap/envelope/}Body.
    </faultstring>
    <detail>
    <con:fault   xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-382040</con:errorCode>
    <con:reason>
    Failed to set the value of context variable "body". Value must be an instance of {http://schemas.xmlsoap.org/soap/envelope/}Body.
    </con:reason>
    <con:location>
    <con:node>PipelinePairNode1</con:node>
    <con:pipeline>PipelinePairNode1_request</con:pipeline>
    <con:stage>stage1</con:stage>
    <con:path>request-pipeline</con:path>
    </con:location>
    </con:fault>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>

  • Applet sends SQL and servlet queries and returns results to applet

    So, this is what my problem is. I've tried several different ways on this so my code probably don't work at all.
    Could someone post me an example on how to send the sql query from the Applet and how to pick up the data from the servlet.
    Thank you,
    Derek Lung

    I suggest you to use:
    * one JavaBean that handles db connections and queries;
    * a Servlet that uses the JavaBean and receives a String that rappresents the query from the Applet: such String will be passed to JavaBean in order to execute the query and retrieve the data from db;
    * the Applet that uses the Servlet to retrieve the results (you can store them in a structure that MUST be serializable.
    Let me know if you find problems in costructing such architecture!
    -- Ivan

  • Procedure to take inpot data set and return result set

    Hi all,
    I have a situation where there will be one "standard" set of data (source_data below) and I will need to get information on results for certain groups of clients (client_data being an example). As straight SQL this would be very easy (see below) -- real world problem is a little more complicated. However, what I would like to do is set up a procedure so that I can pass it my variable client data and it will spit back out a data set the same as the output from the given SQL.
    A pointer in the right direction would be appreciated. If I could "pass the client data" as a string containing a SQL query, that would be even better, e.g.
    GetResults('select client_id,min(whatever_date) from some_client_data where .....',MyOutputRefCursor?)
    create table source_data
    (client_id integer,
    tdate date,
    amount number(6,2));
    create table client_data
    (client_id integer,
    critical_date date);
    insert into source_data values(1,to_date('20090104','yyyymmdd'),1000);
    insert into source_data values(1,to_date('20100104','yyyymmdd'),2000);
    insert into source_data values(1,to_date('20110104','yyyymmdd'),3000);
    insert into source_data values(1,to_date('20120104','yyyymmdd'),4000);
    insert into source_data values(2,to_date('20090104','yyyymmdd'),5000);
    insert into source_data values(2,to_date('20090604','yyyymmdd'),1000);
    insert into source_data values(2,to_date('20100104','yyyymmdd'),2000);
    insert into source_data values(3,to_date('20091004','yyyymmdd'),3000);
    insert into source_data values(3,to_date('20091104','yyyymmdd'),4000);
    insert into source_data values(4,to_date('20090104','yyyymmdd'),5000);
    insert into source_data values(4,to_date('20090604','yyyymmdd'),2000);
    insert into client_data values(1,to_date('20110104','yyyymmdd'));
    insert into client_data values(2,to_date('20090604','yyyymmdd'));
    select c.client_id,
      sum(CASE WHEN tdate < critical_date then amount else null end) used_before,
      sum(CASE WHEN tdate >= critical_date then amount else null end) used_after
    from source_data s
    inner join client_data c on s.client_id = c.client_id
    GROUP BY c.client_id;Thanks,
    Jon

    JonWat wrote:
    I have a situation where there will be one "standard" set of data (source_data below) and I will need to get information on results for certain groups of clients > (client_data being an example). As straight SQL this would be very easy (see below) -- real world problem is a little more complicated. Can you give a more accurate representation of the real world problem?
    A pointer in the right direction would be appreciated. If I could "pass the client data" as a string containing a SQL query, that would be even better, e.g.Passing a query as as string for execution is rarely the correct approach. This approach won't scale and most likely will result in maintenance and security problems.
    If you can update your post to have a more accurate representation of the problem you are trying to solve you'll probably get an acceptable answer. Other than that all I can suggest is that you need to rethink the approach a bit. For example, if you know you need to filter out a set of data to join to your SOURCE_DATA table, why couldn't you do that inside the procedure?
    SELECT c.client_id
         , SUM
           ( CASE
             WHEN tdate < critical_date
             THEN amount
             END
           ) AS used_before
        ,  SUM
           ( CASE
             WHEN tdate >= critical_date
             THEN amount
             END
           ) AS used_after
    FROM   source_data s
    JOIN   ( SELECT client_id
                  , MIN(<date column>) AS critical_date
             FROM   client_data
             WHERE  <where clause>
             GROUP BY client_id
           ) c on s.client_id = c.client_id
    GROUP BY c.client_id;

  • Create a DAQ program and display results on with waveform and spreadsheet

    I need help creating a DAQ program that will read digital and analog channels and display on a continuous waveform, and then display readings on a spreadsheet

    You definitely want to start with the example programs. There are many of them which ship with LabVIEW and even more on NI's Example Programs Library (http://www.ni.com/devzone/libraries/default.htm). Also, if you are wanting to use an Excel spreadsheet, I would suggest getting the Report Generation Toolkit for Microsoft Office. It simplifies your coding immensely and will save you a lot of time.
    J.R. Allen

  • Store procedure which get list of values separated by semicolon and return result set as a string semicolon separated string

    Hello,
    I am trying to make stored procedure in what i am getting i_group_id  as a list of groups seprated by semicoln like 1,2,14,17,23.
    And i want list of emails based on that group. And result set will be as a list of emails seprated by semicolon.
    If you know how to install that in stored procedure please help me. Appreciate your help.
    Thanks.
    PROCEDURE get_groups_email(i_group_id    IN VARCHAR2,
                               x_group_email_dtl_cur OUT resultcur)
    IS
    x_group_email VARCHAR2(4000):=NULL;
    BEGIN                           
       FOR i IN (SELECT   TRIM(emp.email) email
                   FROM   ems.employee emp,
                          ems.groups_employee egrp
                  WHERE   egrp.group_id IN (i_group_id)
                    AND   emp.person_id = egrp.person_id) LOOP
        x_group_email:= x_group_email || i.email ||';';
      END LOOP;
      x_group_email := RTRIM(x_group_email,';');
       OPEN x_group_email_dtl_cur FOR 
         SELECT   x_group_email
           FROM   DUAL; 
    DBMS_OUTPUT.PUT_LINE('x_group_email:' || x_group_email);                                       
    END get_groups_email;
    PROCEDURE get_groups_email(i_group_id    IN VARCHAR2,
                               x_group_email_dtl_cur OUT resultcur)
    IS
    x_group_email VARCHAR2(4000):=NULL;
    BEGIN                           
       FOR i IN (SELECT   TRIM(emp.email) email
                   FROM   ems.employee emp,
                          ems.groups_employee egrp
                  WHERE   egrp.group_id IN (i_group_id)
                    AND   emp.person_id = egrp.person_id) LOOP
        x_group_email:= x_group_email || i.email ||';';
      END LOOP;
      x_group_email := RTRIM(x_group_email,';');
       OPEN x_group_email_dtl_cur FOR 
         SELECT   x_group_email
           FROM   DUAL; 
    DBMS_OUTPUT.PUT_LINE('x_group_email:' || x_group_email);                                       
    END get_groups_email;

    1013527 wrote:
    I am using Oracle 9.7.2. Not 11g.
    No Database at hand to provide a working example.
    So use http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:73830657104020 to split your list into rows.
    Join that to your table of e-mail addresses
    then take a look at http://www.sqlsnippets.com/en/topic-11787.html maybe chosing http://www.sqlsnippets.com/en/topic-12087.html
    and you're done.
    Regards
    Etbin
    something to play with (still NOT TESTED!)
    with
    e_mails as
    (select 1 user_id,'alpha' || chr(64) || 'domain.eu' e_mail from dual union all
    select 2,'beta' || chr(64) || 'domain.eu' from dual union all
    select 3,'gamma' || chr(64) || 'domain.eu' from dual union all
    select 4,'delta' || chr(64) || 'domain.eu' from dual union all
    select 5,'epsilon' || chr(64) || 'domain.eu' from dual union all
    select 6,'zeta' || chr(64) || 'domain.eu' from dual union all
    select 7,'eta' || chr(64) || 'domain.eu' from dual union all
    select 8,'theta' || chr(64) || 'domain.eu' from dual union all
    select 9,'iota' || chr(64) || 'domain.eu' from dual union all
    select 10,'kappa' || chr(64) || 'domain.eu' from dual union all
    select 11,'lambda' || chr(64) || 'domain.eu' from dual union all
    select 12,'mu' || chr(64) || 'domain.eu' from dual union all
    select 13,'nu' || chr(64) || 'domain.eu' from dual union all
    select 14,'xi' || chr(64) || 'domain.eu' from dual union all
    select 15,'omicron' || chr(64) || 'domain.eu' from dual union all
    select 16,'pi' || chr(64) || 'domain.eu' from dual union all
    select 17,'rho' || chr(64) || 'domain.eu' from dual union all
    select 18,'sigma' || chr(64) || 'domain.eu' from dual union all
    select 19,'tau' || chr(64) || 'domain.eu' from dual union all
    select 20,'upsilon' || chr(64) || 'domain.eu' from dual union all
    select 21,'phi' || chr(64) || 'domain.eu' from dual union all
    select 22,'chi' || chr(64) || 'domain.eu' from dual union all
    select 23,'psi' || chr(64) || 'domain.eu' from dual union all
    select 24,'omega' || chr(64) || 'domain.eu' from dual
    groups as
    (select 1 g_id,'1,15,21,17' members from dual union all
    select 2,'23,10,3,20,7,23,15,9' from dual union all
    select 3,'3,4,5,6,7,8' from dual union all
    select 4,'23,24,15,16,7,18' from dual
    select g_id,
           substr(sys_connect_by_path(e_mail,';'),2) e_mail_list
      from (select g.g_id,
                   e.e_mail,
                   row_number() over (partition by g.g_id order by e.user_id) rn
              from e_mails e,
                   groups g
             where instr(','||g.members||',',','||to_char(e.user_id)||',') > 0
               and instr(','||:group_list||',',','||to_char(g.g_id)||',') > 0
    where connect_by_isleaf = 1
    start with rn = 1
    connect by rn = prior rn + 1
            and g_id = prior g_id
    Message was edited by: Etbin provided a small example

Maybe you are looking for