Setting up Gas Procedures in Register

Hello Everyone,
I am trying to carry out gas billing settings in SPRO. I gave done the general settings in ISU->Contract billing->Special functions etc. For gas billing the procedure has to be defined at the register level.
While trying to do a Full Installation via EG31 i am not able to see the gas procedure when pressing F4 that has been defined in SPRO. The temperature area, pressure area etc are available in the F4 dropdown but gas proceudre is not visible. Also we cannot enter this manualy. It has to be selected from a drop down list. But the gas procedure filed drop down does not show anything. This is despite there being 3 gas procedures defined in SPRO and stored in stanadard table TE699.
1. Can some one explain as to why the gas procedure is not coming up in the F4 dropdown.
2. Also though i have made these settings i am not clear on where and how they are utilised in the billing process. Can any one provide an example or document on gas billing.
Thanks in advance,
Avneet

http://help.sap.com/saphelp_utilities472/helpdata/en/c6/4dc810eafc11d18a030000e829fbbd/content.htm
Regards,
Siva

Similar Messages

  • Set parameter (call procedure) before selecting view

    Dear all,
    we want to query a view from an oracle database. The view requires a workspace to be set using a procedure (background: we want to report Oracle Warehouse Builder execution time. to query the table/view with the performance data a procedure called wb_workspace_management.set_workspace('OWB','OWB') needs to be called at the beginning of the session.
    We have imported the view to OBIEE but don't know how we can set the workspace - execute the procedure - at the beginning of each session.
    Any idea where to go ?
    Regards,
    Knut
    Edited by: knherzog on 20.06.2011 06:44

    Hi Knut,
    I do not understand exactly what you are trying to achieve, but I think you have to take a look at the Connection Pool. Here you can add some scripts / procedures to be executed on connect or disconnect. You can also execute these scripts / procedures before or after query.
    Hope this is what you are looking for.
    Cheers,
    Daan Bakboord
    http://obibb.wordpress.com

  • Ipad shows all regular Iphone inbound calls as Facetime.  I only want true FT calls to appear. I switch audio/video and it still happens.  How can I set the Ipad to only register true facetime calls rather than all inbound regular calls?  thanks

    My Ipad  will show all regular inbound calls, from Iphone, as Facetime calls.  I would like only TRUE facetime calls to appear. I have switched audio/video on Ipad but it still happens.  How can I set the Ipad to only register only true FT calls rather than all inbound calls that a re not facetime calls?  Yes, you may have to reread this twice and slowly to understand..... Thanks!

    Hi webn,
    I understand that you do not wish to see phone calls on your iPad anymore. I have an article for you with some information on accomplishing this goal:
    Connect your iPhone, iPad, iPod touch, and Mac using Continuity - Apple Support
    https://support.apple.com/en-us/HT6337
    Turn off iPhone cellular calls
    To turn off iPhone cellular calls on your iPad or iPod touch, go to Settings > FaceTime and turn off iPhone Cellular Calls.
    On your Mac, open the FaceTime app and go to FaceTime > Preferences. Click Settings and deselect the iPhone Cellular Calls option.
    Thanks for coming to the Apple Support Communities!
    Cheers,
    Braden

  • Return a record set from a procedure

    I am building an application for my company.
    Before oracle I had used MS SQL Server for a long time.
    I build a procedure as following
    CREATE OR REPLACE PROCEDURE YBP.ReturnSet
    -- Return a record set from a procedure
    IS
    BEGIN
    SELECT * FROM fdbase;
    END;
    But the complier show me a error message:
    <font color="#0000FF">PLS-00428     an INTO clause is expected in this SELECT statement</font>
    I read the error details
    <font color="#0000FF">"In PL/SQL, only a subquery is written without an INTO clause."</font>
    But I know that this procedure can run well in <font color="#0000FF">MS SQL Server .</font>
    How I can do this thing in Oracle
    Any help will be appreciate!

    I have a stored proc that is defined as
    CREATE or REPLACE
    PROCEDURE ABC
    (linkid IN CHAR,
    Year_in IN DATE,
    Method_in IN CHAR,
    Date_out OUT DATE,
    average_out OUT NUMBER)
    is
    begin
    .. Date_out := ...;
    average_out := ...;
    end;
    another partially completed stored proc that returns a ref
    cursor defined as follows:
    create or replace package zzz
    as
    type cursorType is ref cursor;
    end;
    create or replace function test return zzz.cursortype
    as
    date_OUT date;
    Average_OUT number;
    l_cursor zzz.cursorType;
    CURSOR temp_cur is
    SELECT l.linkid, L.routenumber, ABC(l.linkid,
    to_date('01/01/2000', 'mm/dd/yyyy'),
    '2',
    date_OUT,
    average_OUT)
    FROM LINK l
    WHERE l.LINKID <= '010999';
    begin
    open temp_cur;
    end;
    inside test (which I need help completing), how can I refer to
    the date_out and the average_out params returned by ABC() so
    that these values are in turn passed to the cursortype defined
    in package zzz?
    Thanks in advance.

  • Gas procedure  not in table TE669

    Dear Experts,
    while doing billing i am getting error message as Gas procedure not in table TE669.
    I found that in my installation under reg data there is no gas procedure allocated, i tried to enter gas procedure in installation change mode, but still that field comes in disable mode, can any one tell me from where i can enter that gas procedure for that particular installation?
    thanks.. cheers.

    HI avinash,
    Thanks for reply, but in eg70, temp area. air prusere area fields coming in disable mode, if i  didn't enter these two it wont allow me to save. do u have any idea y its coming in disabled mode.
    it was happening for the new time slice only, same device used for new time slice also, but in previous time slice it was picked all the values. and its happening only for one customer.
    This is the Error msg i am getting:
    Gas procedure XXX vol. corr. factor proc. XXX: temp. area is missing
    Message no. AH695
    Diagnosis
    You have selected the specified volume correction factor procedure as the gas procedure. The temperature is calculated using a procedure for which the concrete gas temperatures are entered for each temperature area.
    System Response
    Error
    Procedure
    Specify an appropriate temperature area, or select a different gas procedure that does not require a temperature area.
    Cheers.

  • Which procedures are registered on an alert?

    Hi,
    I'm working on a big and (for me) new system which uses (a lot of) alerts.
    Is there a way to find out, which procedures are registered or listening on alert XYZ?
    Thanks
    Mephi

    select * from dba_source
    where lower(text) like '%dbms_alert.register%';
    OWNER                          NAME                           TYPE               LINE TEXT                                             
    SYS                            DBMS_ALERT                     PACKAGE              39   --      dbms_alert.register('emp_table_alert');
    1 row selected.if your "alert"-message is not dinamic, then
    select distinct owner, name, type
    from dba_source
    where lower(text) like '%dbms_alert.register%'
    intersect
    select distinct owner, name, type
    from dba_source
    where lower(text) like lower('%alertXYZ%')

  • How to set partner determination procedure for customer hierarhies.........

    hi,
    sap gurus,
    how to set partner determination procedure for customer
    hierarhies.........
    regards,
    balaji.t
    09990019711.

    Hello Rajesh,
    The PDP is set up in customizing.You must create a regular partner determination procedure.In the IMG choose
    CRM>Basic Functions>Partner Processing-->Define Partner Determination Procedure
    You can define a partner determination procedure for each object type.
    PDP assigned to the object type Campaign can also be campaign-type-dependent.
    IMG:CRM>Marketing>Marketing Planning and Campaign Management>Partner Processing>
    Assign Partner Determination Procedure
    Hope this helps!
    Best Regards,
    Shanthala Kudva.

  • Setting ViewObject Stored Procedure Where Clause Param from Struts Action

    I adapted/used Steve's example to get stored procedure to populate my ViewObject. However, I could not retrieve any rows after passing whereClause value from Struts action. The param in execureQueryForCollection returns null.
    What could be wrong. Thanks.
    Here's my code.
    ViewObjectImpl:
    package org.adb.sls.model;
    import java.math.BigDecimal;
    import java.sql.CallableStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Timestamp;
    import java.sql.Types;
    import oracle.jbo.JboException;
    import oracle.jbo.domain.Date;
    import oracle.jbo.domain.Number;
    import oracle.jbo.server.DBTransaction;
    import oracle.jbo.server.ViewObjectImpl;
    import oracle.jbo.server.ViewRowImpl;
    import oracle.jbo.server.ViewRowSetImpl;
    import oracle.jdbc.driver.OracleCallableStatement;
    import oracle.jdbc.driver.OracleTypes;
    // --- File generated by Oracle ADF Business Components Design Time.
    // --- Custom code may be added to this class.
    public class ViewApplicableLoanTypesImpl extends ViewObjectImpl
    * PLSQL block that will execute the REF_CURSOR
    private static final String SQL =
    "begin ? := sls_loan_types_pkg.get_applcbl_staff_lns_fn(?); end;";
    * PLSQL block that will count the REF_CURSOR returned rows
    private static final String COUNTSQL =
    "begin ? := sls_loan_types_pkg.get_count_applcbl_staff_lns_fn(?); end;";
    * This is the default constructor (do not remove)
    public ViewApplicableLoanTypesImpl()
    * Overridden framework method.
    * Wipe out all traces of a built-in query for this VO
    protected void create() {
    getViewDef().setQuery(null);
    getViewDef().setSelectClause(null);
    setQuery(null);
    * Overidden framework method
    protected void executeQueryForCollection(Object qc, Object[] params, int noUserParams)
    // input parameter is employee number
    String employeeNumber = null;
    if (params != null) {
    employeeNumber = (String) params[0];
    } else
    System.out.println("param is null");
    storeNewResultSet(qc,retrieveRefCursor(qc,employeeNumber));
    super.executeQueryForCollection(qc, params, noUserParams);
    protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet rs)
    * We ignore the JDBC ResultSet passed by the framework (null anyway) and
    * use the resultset that we've stored in the query-collection-private
    * user data storage
    rs = getResultSet(qc);
    * Create a new row to populate
    ViewRowImpl r = createNewRowForCollection(qc);
    try {
    * Populate new row by attribute slot number for current row in Result Set
    populateAttributeForRow(r,0, nullOrNewNumber(rs.getBigDecimal(1)));
    populateAttributeForRow(r,1, nullOrNewNumber(rs.getBigDecimal(2)));
    populateAttributeForRow(r,2, rs.getString(3));
    populateAttributeForRow(r,3, nullOrNewNumber(rs.getBigDecimal(4)));
    populateAttributeForRow(r,4, rs.getString(5));
    catch (SQLException s) {
    throw new JboException(s);
    return r;
    protected boolean hasNextForCollection(Object qc)
    ResultSet rs = getResultSet(qc);
    boolean nextOne = false;
    try {
    nextOne = rs.next();
    * When were at the end of the result set, mark the query collection
    * as "FetchComplete".
    if (!nextOne) {
    setFetchCompleteForCollection(qc, true);
    * Close the result set, we're done with it
    rs.close();
    catch (SQLException s) {
    throw new JboException(s);
    return nextOne;
    protected void releaseUserDataForCollection(Object qc, Object rs)
    * Ignore the ResultSet passed in since we've created our own.
    * Fetch the ResultSet from the User-Data context instead
    ResultSet userDataRS = getResultSet(qc);
    if (userDataRS != null) {
    try {
    userDataRS.close();
    catch (SQLException s) {
    /* Ignore */
    super.releaseUserDataForCollection(qc, rs);
    public long getQueryHitCount(ViewRowSetImpl viewRowSet)
    Object[] params = viewRowSet.getParameters(true);
    String id = (String)params[0];
    CallableStatement st = null;
    try {
    st = getDBTransaction().createCallableStatement(COUNTSQL,DBTransaction.DEFAULT);
    * Register the first bind parameter as our return value of type CURSOR
    st.registerOutParameter(1,Types.NUMERIC);
    * Set the value of the 2nd bind variable to pass id as argument
    if (id == null) st.setNull(2,Types.VARCHAR);
    else st.setString(2,id);
    st.execute();
    return st.getLong(1);
    catch (SQLException s) {
    throw new JboException(s);
    finally {try {st.close();} catch (SQLException s) {}}
    * Return a JDBC ResultSet representing the REF CURSOR return
    * value from our stored package function.
    private ResultSet retrieveRefCursor(Object qc,String id) {
    CallableStatement st = null;
    try {
    st = getDBTransaction().createCallableStatement(SQL,DBTransaction.DEFAULT);
    * Register the first bind parameter as our return value of type CURSOR
    st.registerOutParameter(1,OracleTypes.CURSOR);
    * Set the value of the 2nd bind variable to pass id as argument
    if (id == null) st.setNull(2,Types.VARCHAR);
    else st.setString(2,id);
    st.execute();
    ResultSet rs = ((OracleCallableStatement)st).getCursor(1);
    * Make this result set use the fetch size from our View Object settings
    rs.setFetchSize(getFetchSize());
    return rs ;
    catch (SQLException s) {
    s.printStackTrace();
    throw new JboException(s);
    finally {try {st.close();} catch (SQLException s) {}}
    * Store a new result set in the query-collection-private user-data context
    private void storeNewResultSet(Object qc, ResultSet rs) {
    ResultSet existingRs = getResultSet(qc);
    // If this query collection is getting reused, close out any previous rowset
    if (existingRs != null) {
    try {existingRs.close();} catch (SQLException s) {}
    setUserDataForCollection(qc,rs);
    hasNextForCollection(qc); // Prime the pump with the first row.
    * Retrieve the result set wrapper from the query-collection user-data
    private ResultSet getResultSet(Object qc) {
    return (ResultSet)getUserDataForCollection(qc);
    * Return either null or a new oracle.jbo.domain.Date
    private static Date nullOrNewDate(Timestamp t) {
    return t != null ? new Date(t) : null;
    * Return either null or a new oracle.jbo.domain.Number
    private static Number nullOrNewNumber(BigDecimal b) {
    try {
    return b != null ? new Number(b) : null;
    catch (SQLException s) { }
    return null;
    Struts Action
    package org.adb.sls.view;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import oracle.jbo.ApplicationModule;
    import oracle.jbo.ViewObject;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import oracle.adf.model.binding.DCDataControl;
    import oracle.adf.model.bc4j.DCJboDataControl;
    import oracle.jbo.html.BC4JContext;
    public class IndexAction extends DefaultADFAction
    protected ActionForward performActionLogic(ActionMapping mapping,
    ActionForm form, HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    try {    
    ApplicationModule am = getApplicationModule("SLSApplicableLoanTypesDataControl", request);
    if (am == null)
    System.out.println("am is null");
    ViewObject vo = am.findViewObject("ViewApplicableLoanTypes");
    vo.setWhereClauseParam(0,request.getSession().getAttribute("SSO_EMPLOYEE_NUMBER"));
    vo.executeQuery();
    } catch (Exception e)
    e.printStackTrace();
    return mapping.findForward("success");
    Struts Config
    <form-beans>
    <form-bean name="DataForm" type="oracle.adf.controller.struts.forms.BindingContainerActionForm"/>
    </form-beans>
    <action-mappings>
    <action path="/index" className="oracle.adf.controller.struts.actions.DataActionMapping" type="org.adb.sls.view.IndexAction" name="DataForm" unknown="false">
    <set-property property="modelReference" value="indexUIModel"/>
    <forward name="success" path="/home.do"/>
    </action>
    <action path="/home" className="oracle.adf.controller.struts.actions.DataActionMapping" type="oracle.adf.controller.struts.actions.DataForwardAction" name="DataForm" parameter="/index.uix" unknown="true">
    <set-property property="modelReference" value="indexUIModel"/>
    </action>
    </action-mappings>

    I just found the solution. I've overridden setWhereClause method.
    public void setWhereClauseParams(Object[] values)
    ViewObjectImpl vo = (ViewObjectImpl) super.getViewObject();
    vo.setWhereClauseParam(0,values[0]);
    }

  • Hashset Object Setting in Stored procedure

    I have a store Procedure:
    CREATE PROCEDURE TESTING_SET(TEST_SET SET(CHAR(100) NOT NULL))
    RETURNING CHAR(100);
    DEFINE element CHAR(100);
    FOREACH SELECT * INTO element FROM TABLE(TEST_SET)
    RETURN element WITH RESUME;
    END FOREACH;
    END PROCEDURE;
    I am trying to call a stored procedure using CallableStetement. The stored procedure accepts a SET object. So I am setting the Hasset as CallableStatement.setObject(HashSet);
    But when the CallableStatement.execte() is called I am getting the following error:
    java.sql.SQLException: Routine (testing_set) can not be resolved.
    at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3631)
    at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3963)
    at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2693)
    at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2609)
    at com.informix.jdbc.IfxSqli.a(IfxSqli.java:1828)
    at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2521)
    at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2461)
    at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:393)
    at com.informix.jdbc.IfxStatement.a(IfxStatement.java:1326)
    at com.informix.jdbc.IfxPreparedStatement.d(IfxPreparedStatement.java:449)
    at com.informix.jdbc.IfxCallableStatement.execute(IfxCallableStatement.java:331)
    at com.west.wic.test.HashSetTest.main(HashSetTest.java:40)
    Caused by: java.sql.SQLException
    at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:413)
    at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3968)
    ... 10 more
    error message:Routine (testing_set) can not be resolved.
    error code:-674
    Please help me in this regard.

    >
    I wasn't directly replying to you
    >
    Well maybe that wasn't your intention but that is what this line in the reply means:
    >
    Posted: May 3, 2013 12:19 PM in response to: rp0428
    >
    That means you are responding to 'rp0428'; that's me. So when you say this
    >
    But first make sure that the database user you're using
    >
    And because your comments are 'in response to: rp0428' the word "you're" is generally going to be interpreted to mean 'rp0428' unless you indicate otherwise.
    If you had responded to OP that word "you're" would mean you are telling OP to
    >
    first make sure that the database user you're using
    >
    It isn't a question of 'right'; it is a question of how to address your remarks to the proper person so that that person KNOWS the remarks are meant for them.
    Here's an easy way for you to remember who to reply to: it is the same person you would LOOK at if you were in the same room with them.
    You would be looking at me while you were listening to my comments. Then you would turn and look at OP when you made yours. In the forum you accomplish that by using the 'reply' link on one of OP's comments.
    If, for some reason, you did want to make comments to both of us in your one reply then pick one to reply to, even me, and then preface your comment to OP like this:
    >
    -- comment here for rp0428 - but you didn't make any
    OP: first make sure that the database user you're using . . .
    >
    See how that 'OP:' prefix makes it clear that, even though your comments are 'in response to: rp0428' that particular comment is meant for OP?
    It might be aarkward at first but once you try it a few times you'll get the hang of it. ;)

  • Setting pl/sql procedure as the data source in a Report Query

    Is there a way to set PL/SQL as the data source in a Report Query? we want to
    able to use the ReportQuery function and query results returned by a PL/SQL procedure.
    thanks

    Not exactly sure what you want to do, but on a ReportQuery you can set either a StoredProcedureCall, or an SQLCall.
    query.setCall(new StoredProcedureCall(...));
    query.setCall(new SQLCall("begin; my_proc(); end"));
    Now, a stored procedure in Oracle cannot return a result, so using a ReportQuery which requires a result may not make sense.
    You could instead use a DataModifyQuery.
    If you return results through output parameters (you must use a StoredProcedureCall for this) you could use a DataReadQuery or a ReadAllQuery/ReportQuery if you wish to build objects from the data.
    James : http://www.eclipselink.org

  • How to set a Extent Procedure connection in Net8

    I want use ORDIMAGE,but I don't know how to set extent procedure in Net8. Is it necessory? And I how to set it?
    Thanks.

    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by [email protected]:
    Are there some other documents about oc4j that you could sent?
    I have been looking on orionserver but the documentation is not complet.<HR></BLOCKQUOTE>
    For Orion, your best bet is not the documentation but to search for your topic via the extensive mailing list. It is quite active and discusses such topics as pooled connections...also for other sorts of information, look at www.orionsupport.com and www.jollem.com.

  • Performance to fetch result set from stored procedure.

    I read some of related threads, but couldn't find any good suggestions about the performance issue to fetch the result set from a stored procedure.
    Here is my case:
    I have a stored procedure which will return 2,030,000 rows. When I run the select part only in the dbartisan, it takes about 3 minutes, so I know it's not query problem. But when I call the stored procedure in DBArtisan in following way:
    declare cr SYS_REFCURSOR;
    firstname char(20);
    lastname char(20);
    street char(40);
    city char(20);
    STATE varchar2(2);
    begin DISPLAY_ADDRESS(cr);
    DBMS_OUTPUT.ENABLE(null);
    LOOP
    FETCH cr INTO firstname,lastname,street, city, state;
    EXIT WHEN cr%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE( firstname||','|| lastname||','|| street||',' ||city||',' ||STATE);
    END LOOP;
    CLOSE cr;
    end;
    It will take about 100 minutes. When I used DBI fetchrow_array in perl code, it took about same amount of time. However, same stored procedure in sybase without using cursor, and same perl code, it only takes 12 minutes to display all results. We assume oracle has better performance. So what could be the problem here?
    The perl code:
    my $dbh = DBI->connect($databaseserver, $dbuser, $dbpassword,
    { 'AutoCommit' => 0,'RaiseError' => 1, 'PrintError' => 0 })
    or die "couldn't connect to database: " . DBI->errstr;
    open OUTPUTFILE, ">$temp_output_path";
    my $rc;
    my $sql="BEGIN DISPLAY_ADDRESS(:rc); END;";
    my $sth = $dbh->prepare($sql) or die "Couldn't prepare statement: " . $dbh->errstr;
    $sth->bind_param_inout(':rc', \$rc, 0, { ora_type=> ORA_RSET });
    $sth->execute() or die "Couldn't execute statement: " . $sth->errstr;
    while($address_info=$rc->fetchrow_arrayref()){
    my ($firstname, $lastname, $street, $city, $STATE) = @$address_info;
    print OUTPUTFILE $firstname."|".$lastname."|".$street."|".$city."|".$STATE;
    $dbh->commit();
    $dbh->disconnect();
    close OUTPUTFILE;
    Thanks!
    rulin

    Thanks for you reply!
    1) The stored procedure has head
    CREATE OR REPLACE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    cv_1 IN OUT SYS_REFCURSOR
    AS
    err_msg VARCHAR2(100);
    BEGIN
    --Adaptive Server has expanded all '*' elements in the following statement
    OPEN cv_1 FOR
    Select ...
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    err_msg := SQLERRM;
    dbms_output.put_line (err_msg);
    ROLLBACK;
    END;
    If I only run select .. in DBArtisan, it display all 2030,000 rows in 3:44 minutes
    2) But when call stored procedure, it will take 80-100 minutes .
    3) The stored procedure is translated from sybase using migration tools, it's very simple, in sybase it just
    CREATE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    AS
    BEGIN
    select ..
    The select part is exact same.
    4) The perl code is almost exact same, except the query sql:
    sybase verson: my $sql ="exec DISPLAY_ADDRESS";
    and no need bind the cursor parameter.
    This is batch job, we create a file with all information, and ftp to clients everynight.
    Thanks!
    Rulin

  • Getting result set from stored procedures in database controls in weblogic

    I am calling a stored procedure from database control which actually returns a result set
    when i call the stored procedure like
    * @jc:sql statement="call PROC4()"
    ResultSet sampleProc() throws SQLException;
    it gives me exception saying
    "weblogic.jws.control.ControlException: Method sampleProc is DML but does not return void or int"
    I would appreciate any help
    Thanks,
    Uma

    Thanks for you reply!
    1) The stored procedure has head
    CREATE OR REPLACE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    cv_1 IN OUT SYS_REFCURSOR
    AS
    err_msg VARCHAR2(100);
    BEGIN
    --Adaptive Server has expanded all '*' elements in the following statement
    OPEN cv_1 FOR
    Select ...
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    err_msg := SQLERRM;
    dbms_output.put_line (err_msg);
    ROLLBACK;
    END;
    If I only run select .. in DBArtisan, it display all 2030,000 rows in 3:44 minutes
    2) But when call stored procedure, it will take 80-100 minutes .
    3) The stored procedure is translated from sybase using migration tools, it's very simple, in sybase it just
    CREATE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    AS
    BEGIN
    select ..
    The select part is exact same.
    4) The perl code is almost exact same, except the query sql:
    sybase verson: my $sql ="exec DISPLAY_ADDRESS";
    and no need bind the cursor parameter.
    This is batch job, we create a file with all information, and ftp to clients everynight.
    Thanks!
    Rulin

  • Can we pass temporary result set to the  procedure?

    Hi,
    The result set is stored in a temporary storage. Can we pass that resultset to the procedure?
    Thanks and regards
    Gowtham Sen.

    I'm still unclear just what this result set is... Is is a table or a cursor or something else?
    If you imply the physical result set of a SQL query, there is no such thing in Oracle. Oracle does not create and store a result set in memory containing the rows of the SQL SELECT. Creating such sets in memory does not scale. A single SELECT on such a database can kill the performance of the entire database by exhasuting all memory with a single large physical result set.
    Oracle "results" live in the database cache (residing in the SGA). Rows (as data blocks) are paged into and out of this case as demand dictates. When PL/SQL code, for example, fetches a row, the SQL engine grabs the row from the db cache (SGA) and copies it to the PGA (the private memory area of the PL/SQL process). The row also may not yet exist in the db cache - in which case it needs a physical read from disk to get the data block containing that row into the db cache (after which it is copied to the PGA).
    A PL/SQL process can do a bulk fetch - e.g. fetch a 100 rows from the SQL query/cursor at a time. In that case, a 100 rows are copied from the SGA db cache to the PGA.
    At no time is there are single large unique and dedicated memory struct in the SGA that contains the complete "result set" of a SQL query.
    Once you have fetched that row, that is it. Deal is done. You cannot reverse the cursor and fetch the row again. After you have fetched the last row in that cursor, you cannot pass that cursor to another process - the cursor is now empty. That other process cannot rewind the cursor and start fetching from the 1st row again. You will need to pass the SQL to that process in order for it to create its own cursor - also keeping in mind that in between the rows can have changed and that this other process could now see different results with its cursor.
    If you want to create such a physical temporary result set that is consistent and re-usable, you can use a temporary table - and insert the results of the SELECT into this temp table for further processing. This temp table is session specific and is auto destroyed when the session terminates.
    A comment though - it sounds like you're approaching the date warehouse processing (scrubbing, transformation and loading of data) as a row-by-row process.
    That is a flawed approach. Row-by-row processing does not scale. One should deal with data sets. Especially when the volumes are large. One should also attempt to perform minimal passes through a data set. Processing a bunch of rows, then passing that rows to another process to do some processing on the same rows.. this means multiple passes through the same data. That is very inefficient performance and resource wise.

  • Set compatability mode procedure

    Hi folks
    Is there any way to interrogate the current status of this parameter?
    I have exported, imported and copied my apps a number of times lately and I am not sure whether apex might deem any of these operations as being a "new" application and therefore set the parameter accordingly.
    Obviously there must be a means of getting the parameter, but it hasn't rated a mention in any of the doco I've read so far.
    Regards
    CS

    create or replace procedure cau_2
    (ngay1 date,ngay2 date)
    as
      cursor c is (select kh1.ID, kh1.TenKH, kh1.TenDayDuKH
                  from Khachhang kh1
                  where kh1.ngaysinh >= Ngay1 and kh1.ngaysinh <= Ngay2);
      begin
        for kh1 in c
        loop
          dbms_output.put_line(kh1.ID || ',' || kh1.TenKH || ',' || kh1.TenDayDuKH);
        end loop;
      end; THIS IS A PROCEDURE accept 2 VARIABLE ngay1(day) ngay2(day) and export all customer(khachhang) who have birthday betwwen ngay1 and ngay2. I try using syntax of you but it's not complied.
    Edited by: [email protected] on 23:02 12-06-2010

Maybe you are looking for