SIGCHILD on SQLCODE=100

We experience a large delay (180 Milliseconds)for each time our
PRO*COB application executes a FETCH for which there is no data
to satisfy the request. If there is data the response to the
application is within .1 Milliseconds. After the delay the Server
returns SQLCODE=100. We need to eliminate the delay.
Related, we see SQL/Net Break/Reset to be very high and
approximate to the number of occurences of the delay. The
application and the server execute on the same AIX machine.
We have no WHENEVER in the application, but check SQLCODE with an
IF statement.
It appears the server attempts to signal the application ???
Anyone have any experience with this and how to circumvent ?

We experience a large delay (180 Milliseconds)for each time our
PRO*COB application executes a FETCH for which there is no data
to satisfy the request. If there is data the response to the
application is within .1 Milliseconds. After the delay the Server
returns SQLCODE=100. We need to eliminate the delay.
Related, we see SQL/Net Break/Reset to be very high and
approximate to the number of occurences of the delay. The
application and the server execute on the same AIX machine.
We have no WHENEVER in the application, but check SQLCODE with an
IF statement.
It appears the server attempts to signal the application ???
Anyone have any experience with this and how to circumvent ?

Similar Messages

  • SQLCODE = 100 problem.  Help please.

    Hi all,
    I'm getting SQLCODE = 100 returned from a database function following an attempted selection which I know should be returning one row of data.
    I've proved this by doing a simple select..
    SELECT xml_reference
            FROM mydmap
            WHERE source_table = 'PERSON' AND
                  source_field = '<CHANGETYPE>';
    XML_REFERENCE                          
    employeeChangeType                     
    1 rows selected I've also written a test function tries to emmulate the erroring function at the point of failure (the erroring function is 1500 lines long so a bit hefty to post here.)
    Below is a snippet from the original. The problem occurs at the selection in line 134.
    129   -- define change type item string
    130   v_cChangeTypeMapping := '<CHANGETYPE>';
    131
    132   BEGIN
    133      -- get employee change type xml reference
    134      SELECT xml_reference
    135        INTO v_cEmployeeChangeType
    136        FROM mydmap
    137         WHERE source_table = 'PERSON'
    138                 AND source_field = v_cChangeTypeMapping;
    139   EXCEPTION
    140      WHEN OTHERS THEN
    141         v_sys_error := SQLCODE;
    142   END;
    143
    144   v_nError := v_sys_error;
    145   v_nRowCount := SQL%ROWCOUNT;
    146
    147   IF v_nError <> 0
    148     OR v_nRowCount = 0 THEN
    149   BEGIN
    150      -- RETURN;
    151      RETURN v_sys_error ;
    152
    153   END;
    154   END IF;
    ...Here is my test function. This performs perfectly.
    create or replace
    function my_test return varchar2 as
    v_returnValue VARCHAR2(500) := '';
    v_cChangeTypeMapping VARCHAR2(50);
    BEGIN
      v_cChangeTypeMapping := '<CHANGETYPE>';
      BEGIN
        SELECT xml_reference
            INTO v_returnvalue
            FROM mydmap
            WHERE source_table = 'PERSON' AND
                  source_field = '<CHANGETYPE>';
      EXCEPTION
        WHEN OTHERS THEN
          v_returnValue := SQLCODE;
      END;
      RETURN v_returnvalue;
    END my_test;So now I'm confused :-|
    Can anyone shed some light as to what might be going on?
    Almost forgot.. I'm using Oracle 10g Express Edition and doing my debugging/coding from within SQL Developer.
    Thanks in advance
    Phil C.

    Phil Cole wrote:
    I've solved my problem by placing RTRIM around the filter columns in the WHERE clause. Although I fail to see why this should have been a problem given that the data types of the variables and columns were matched. I'm not aware that I've needed to be this particular about trimming data before. But then I am very new to the Oracle environment and trying to pick it up as I go along. Could this be due to a setting on the database that I'm unaware of?
    SELECT xml_reference
    INTO v_cEmployeeChangeType
    FROM mydmap
    WHERE RTRIM(source_table) = 'PERSON'
    AND RTRIM(source_field) = v_cChangeTypeMapping;
    EXCEPTION
    WHEN OTHERS THEN
    v_sys_error := SQLCODE;
    END;Phil.Not a good solution. Even if it is a possible workaround.
    By using a function like RTRIM on the column you prevent index access on those columns.
    I suggest checking the type declaration of your v_cChangeTypeMapping variable.
    Change it according to the test case provided to have the same datatype as the column.
    Problem as Keith already explained is probably a different datatype between CHAR and VARCHAR2.
    Oracle will do a data type conversion. Depending on what you do in your select this comparison might work in one way or the other.
    example
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> select '|'||cast('Test' as char(10))||'|' Test_Char,
      2         '|'||cast('Test' as Varchar2(10))||'|' Test_Varchar2,
      3         case when cast('Test' as char(10)) = cast('Test' as Varchar2(10))
      4              then 'identical strings'
      5     else 'different strings'
      6      end compare_strings
      7  from dual;
    TEST_CHAR    TEST_VARCHAR COMPARE_STRINGS
    |Test      | |Test|       different strings
    SQL> As you can see, even if my string is only 'Test' it depends on the datatype whether some blanks are added to it or not. Always avoid implizit type conversions. Try to use the same datatypes for the variables as for the columns.
    Edited by: Sven W. on Nov 3, 2008 2:49 PM

  • Sqlcode 100 does not come with exception

    I have following query
    SELECT a.col1 into v_acc_account FROM account_t a
    WHERE a.col1=<input paramter> FOR UPDATE OF a.col1 NOWAIT;
    The statement returns sqlcode of 100 and does not throw exception
    From oracle documentation I understand that the errorcode is accompanied by an exception. What may be the reason behind this behavior.
    The return code 100 explains 'DATA NOT FOUND", we have data for the select query.
    Data not found means, the select is failing or the locks not available.
    any help much appreciated
    Regards,
    Nandish

    The code does not make much sense.
    What is the actual problem to address - obtain a row lock using several retries with a 2 sec delay between each retry?
    I would suggest a modularised approach like the following - with code that is easy to read, understand and maintain:
    SQL> create or replace procedure LockEmpForUpdate(
      2          empID number,
      3          waits integer default 5,
      4          waitSecs integer default 2 ) is
      5 
      6          RESOURCE_BUSY   exception;
      7          pragma exception_init( RESOURCE_BUSY, -54 );
      8 
      9          loopCnt integer;
    10          rID     rowid;
    11  begin
    12          loopCnt := 1;
    13          while (loopCnt <= waits ) loop
    14                  begin
    15                          loopCnt := loopCnt + 1;
    16 
    17                          select
    18                                  e.rowid into rID
    19                          from    emp e
    20                          where   e.empno = empID
    21                          for update
    22                          nowait;
    23 
    24                  exception when RESOURCE_BUSY then
    25                          if loopCnt <= waits then
    26                                  DBMS_LOCK.Sleep( waitSecs );
    27                          end if;
    28                  end;
    29          end loop;
    30 
    31          if rID is null then
    32                  raise_application_error(
    33                          -20000,
    34                          'Failed to obtain a row lock on employee '||empID
    35                  );
    36          end if;
    37 
    38  end;
    39  /
    Procedure created.
    SQL>
    SQL> --// this employee is locked in another session via an update
    SQL> exec LockEmpForUpdate( empID => 7369 )
    BEGIN LockEmpForUpdate( empID => 7369 ); END;
    ERROR at line 1:
    ORA-20000: Failed to obtain a row lock on employee 7369
    ORA-06512: at "BILLY.LOCKEMPFORUPDATE", line 32
    ORA-06512: at line 1
    SQL> --// this employee is not locked
    SQL> exec LockEmpForUpdate( empID => 7782 )
    PL/SQL procedure successfully completed.
    SQL>

  • Sqlcode and ORA-nnnnn

    Hi,
    Is the PL/SQL sqlcode the same as the ORA-nnnnn code?
    My application returns sqlcode on exceptions and I would like to reformat this as ORA- if they are one and the same.
    Regards
    Dave
    (Oracle 9i)
    Edited by: user482248 on Mar 12, 2010 3:57 PM
    Added db version.

    Except for NO_DATA_FOUND (error = ORA-01403, SQLCODE = 100). SQLERRM(100) returns 'ORA-01403: no data found'.

  • Problem with upgrade due to no connection to audit database

    Hello everyone!
    Today after work I wanted to finally upgrade ZCM but run into some problems.
    We have three servers: Two primary servers and one database-server (OEM Sybase SQL Anywhere). All three are running on SLES 11.
    I want to upgrade our ZCM11.2.4MU1 to ZCM11.3a and then to 11.3.1.
    I started by upgrading the Sybase database and running dbunload according to the documentation.
    Then I continued with "sh install.sh -c" and chose "Audit Database". I selected the OEM Sybase SQL Anywhere with port 2639.
    Admin, password and database-name were unique. But I made the mistake to set the servername to the same as the zenworks-database. *sigh*
    The installation completed.
    The sybase-asa and sybase-audit-asa services couldn't run at the same time, therefore I rebooted the database-server and installed the audit database again with a unique database-name.
    Before the upgrade I could start dbisql and connect without problems to backup the database. Now I cannot connect anymore without using the additional parameter: links=tcpip{host=IPorDNSName,port=2638}
    Connecting to the Audit Database via dbisql is not possible, with the following message:
    Code:
    Could not connect to the database.
    Database server not found
    Ensure that the name in the "Server name" field is spelled correctly, that the network options on the network tab are correct and that the database server has been started.
    [Sybase][ODBC Driver][SQL Anywhere]Database server not found
    SQLCODE=-100
    SQLSTATE=08001
    Connection parameters:
    User=zenauditadmin
    Password=***
    Server=zenworks_audit_database_server
    DBN=zenworks_audit_database2
    LINKS=ShMem
    ENC=NONE
    links=tcpip{host=<ip>,port=2639}
    With that said, it is not possible to upgrade the first primary server because the setup routine is also not possible to connect to the Audit Server:
    Code:
    We were unable to create a connection to the database. Please check your
    connection information.
    Specify the existing ZENworks database and database authentication information
    for an existing user with sufficient permissions.
    The services sybase-asa and sybase-audit-asa are both running. I also restarted them a couple of times.
    zenworks_database.conf and zenworks_database_audit.conf look fine.
    Do you have any idea what I missed?
    Is the duplicate servername still somewhere existend and prevents the proper running?
    Thank you very much in advance for pointing me in any direction!

    novellchuck wrote:
    >
    > Hello everyone!
    >
    > Today after work I wanted to finally upgrade ZCM but run into some
    > problems.
    >
    > We have three servers: Two primary servers and one database-server
    > (OEM Sybase SQL Anywhere). All three are running on SLES 11.
    > I want to upgrade our ZCM11.2.4MU1 to ZCM11.3a and then to 11.3.1.
    >
    > I started by upgrading the Sybase database and running dbunload
    > according to the documentation.
    > Then I continued with "sh install.sh -c" and chose "Audit Database". I
    > selected the OEM Sybase SQL Anywhere with port 2639.
    >
    > Admin, password and database-name were unique. But I made the mistake
    > to set the servername to the same as the zenworks-database. sigh
    > The installation completed.
    > The sybase-asa and sybase-audit-asa services couldn't run at the same
    > time, therefore I rebooted the database-server and installed the audit
    > database again with a unique database-name.
    >
    > Before the upgrade I could start dbisql and connect without problems
    > to backup the database. Now I cannot connect anymore without using the
    > additional parameter: links=tcpip{host=IPorDNSName,port=2638}
    >
    > Connecting to the Audit Database via dbisql is not possible, with the
    > following message:
    >
    >
    > Code:
    > --------------------
    > Could not connect to the database.
    > Database server not found
    >
    > Ensure that the name in the "Server name" field is spelled
    > correctly, that the network options on the network tab are correct
    > and that the database server has been started. [Sybase][ODBC
    > Driver][SQL Anywhere]Database server not found SQLCODE=-100
    > SQLSTATE=08001
    > Connection parameters:
    > User=zenauditadmin
    > Password=***
    > Server=zenworks_audit_database_server
    > DBN=zenworks_audit_database2
    > LINKS=ShMem
    > ENC=NONE
    > links=tcpip{host=<ip>,port=2639}
    > --------------------
    >
    >
    > With that said, it is not possible to upgrade the first primary server
    > because the setup routine is also not possible to connect to the Audit
    > Server:
    >
    >
    > Code:
    > --------------------
    > We were unable to create a connection to the database. Please
    > check your connection information.
    >
    >
    > ************************************************** ********************
    > ******** Specify the existing ZENworks database and database
    > authentication information for an existing user with sufficient
    > permissions. --------------------
    >
    >
    > The services sybase-asa and sybase-audit-asa are both running. I also
    > restarted them a couple of times.
    > zenworks_database.conf and zenworks_database_audit.conf look fine.
    >
    > Do you have any idea what I missed?
    > Is the duplicate servername still somewhere existend and prevents the
    > proper running?
    >
    > Thank you very much in advance for pointing me in any direction!
    Oh boy... and no backup?
    Not sure how to get the sybase back working again... my first choice in
    such a case would be to make a contact to Novell, are you able to
    create an SR on this?
    Niels
    I have always liked... Cowabunga!
    If you find this post helpful, please show your appreciation by
    clicking on the star below.
    A member must be logged in before s/he can assign reputation points.

  • How to call stored procedure with parameters?

    I created a stored procedure in db like:
    CREATE PROCEDURE dbo.MySP
    @name varchar(50),
    @access_date datetime
    AS
    BEGIN
    --insert data into a table
    End
    Then I create pb function to call this sp like( I use pb 11.5)
    datetime ll_date
    ll_date =datetime(today(), now())
    DECLARE mytest PROCEDURE FOR MySP @objname = :is_name, @access_date = :ll_date USING is_tran;
    IF is_tran.SQLCode <> 0 THEN
          MessageBox ( "Error", "DECLARE failed" )
          RETURN
    END IF
    EXECUTE mytest;
    IF ( is_tran.SQLCode <> 0 ) and ( is_tran.SQLCode <> 100 ) THEN
          MessageBox ( "Error", "EXECUTE failed" )
          RETURN
    END IF
    Then I run the app, first time to call this function without any error, but no data inserted, no thing happen.
    keep in the app and call the function again, give me error declare error.
    debug give me SQLCode = 100.
    SP is fine, I can insert data with isql like:
    exec MySP 'name', '2014-06-18'
    How to figure out the problem and fix it?

    You didn't mention the database in question, but the first thing I would recommend is making the call via and RPCFUNC declaration on a user object to type transaction rather than embedded SQL.  Embedded SQL (IMHO) should be a last resort.
    See:  Using Transaction Objects to call Stored Procedures

  • Error Executing a Function

    Environment: Oracle 10gR2 on Windows Server 2008 (64-bit)
    I have created this Function:
    -- ===========================================================================
    -- Function: f_delete_gl_account
    -- Author: Carol Burrows, dbcSMARTsoftware Inc.
    -- Translation: Murray Sobol, dbcSMARTsoftware Inc.
    -- Purpose: This is a database Function which deletes a
    -- GL_Account_Nbr from all tables.
    -- Last Modified: Thursday May 27, 2010
    -- Parameter(s): ac_gl_account_nbr varchar2(75) (GL_Acct_Nbr)
    -- Return Code(s): SUCCESS 1
    -- ERROR -1 -> Cannot get GL_Acct_Nbr
    -- -225 -> Cannot delete s1_gl_account_posting records
    -- -226 -> Cannot delete s1_gl_account records
    -- -99 -> Abnormal termination
    -- ===========================================================================
    CREATE or replace FUNCTION f_delete_gl_account
    (ac_gl_account_nbr IN varchar)
    RETURN NUMBER
    IS
    lc_gl_account_nbr varchar2(75);
    c number;
    rows_deleted number;
    BEGIN
    IF (ac_gl_account_nbr IS NULL) THEN
    RETURN (-1);
    END IF;
    lc_gl_account_nbr := ac_gl_account_nbr;
    BEGIN
    c := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(c, 'DELETE FROM br_gl_account WHERE gl_acct_nbr = ' || lc_gl_account_nbr, DBMS_SQL.NATIVE);
    rows_deleted := DBMS_SQL.EXECUTE(c);
    dbms_output.put_line('The total number of rows deleted are ' || rows_deleted);
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line('SQLCODE= ' || SQLCODE);
    dbms_output.put_line('SQLERRM= ' || SQLERRM);
    dbms_output.put_line('No rows deleted');
    RETURN(-2);
    END;
    BEGIN
    c := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(c, 'UPDATE fin_allocation SET allocate_gl_acct_nbr = NULL WHERE allocate_gl_acct_nbr = ' || lc_gl_account_nbr, DBMS_SQL.NATIVE);
    rows_deleted := DBMS_SQL.EXECUTE(c);
    dbms_output.put_line('The total number of rows updated are ' || rows_deleted);
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line('No rows deleted');
    RETURN(-3);
    END;
    BEGIN
    c := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(c,'UPDATE fin_allocation ' ||
    'SET contra_gl_acct_nbr = NULL ' ||
    'WHERE contra_gl_acct_nbr = lc_gl_account_nbr', DBMS_SQL.NATIVE);
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line('No rows updated');
    RETURN(-4);
    END;
    -- ============================================================
    -- All Child data has been deleted, now Delete data from
    -- s1_gl_account_posting and s1_gl_account tables
    -- ============================================================
    BEGIN
    c := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(c, 'UPDATE s1_gl_account_posting SET gl_acct_nbr = NULL WHERE gl_acct_nbr = lc_gl_account_nbr', DBMS_SQL.NATIVE);
    rows_deleted := DBMS_SQL.EXECUTE(c);
    dbms_output.put_line('The total number of rows deleted are ' || rows_deleted);
    EXCEPTION
    WHEN OTHERS THEN
    RETURN(-225);
    END;
    BEGIN
    c := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(c, 'DELETE FROM s1_gl_account WHERE gl_acct_nbr = lc_gl_account_nbr', DBMS_SQL.NATIVE);
    rows_deleted := DBMS_SQL.EXECUTE(c);
    dbms_output.put_line('The total number of rows deleted are ' || rows_deleted);
    EXCEPTION
    WHEN OTHERS THEN
    RETURN(-226);
    END;
    -- ============================================================
    -- Process finished with SUCCESS
    -- ============================================================
    RETURN(1);
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line('SQLCODE= ' || SQLCODE);
    dbms_output.put_line('SQLERRM= ' || SQLERRM);
    RETURN(-999);
    END;
    which compiles OK.
    When I test it using this SQL:
    set serveroutput on
    select f_delete_gl_account('1120000-4000-9999') from dual;
    I get this error:
    F_DELETE_GL_ACCOUNT('1120000-4000-9999')
    -2
    1 row selected.
    SQLCODE= -14551
    SQLERRM= ORA-14551: cannot perform a DML operation inside a query
    No rows deleted
    I am trying to avoid using dynamic SQL; instead I am using DBMS_SQL.OPEN_CURSOR and DBMS_SQL.PARSE
    Any assistance would be appreciated.

    Murray Sobol wrote:
    I removed the last one.
    BTW, the purpose of those statements was to show the Oracle error message and text if the Function should fail.
    With those lines removed, I have now lost that capability.
    I compiled it and tested it as before, the error is now:
    F_DELETE_GL_ACCOUNT('1120000-4000-9999')
    -999
    1 row selected.Not at all true if you removed ALL the "exception when others".
    Please go through the examples below, in the first set i use your "exception catching" method. Notice how you have NO IDEA which line number causes the exception.
    Then in the second set, i run things the way they should be run, which do you find more informative?
    FIRST (bad) SET
    TUBBY_TUBBZ?exec :x := 0;
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    begin
      2 
       if :x = 0
       then
          raise no_data_found;
       end if;
       if :x = 1
       then
          raise too_many_rows;
       end if;
    exception
       when others then
          dbms_output.put_line('SQLCODE= ' || SQLCODE);
          dbms_output.put_line('SQLERRM= ' || SQLERRM);  
    end;
    SQLCODE= 100
    SQLERRM= ORA-01403: no data found
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.15
    TUBBY_TUBBZ?TUBBY_TUBBZ?   exec :x := 1;
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    begin
      2 
       if :x = 0
       then
          raise no_data_found;
       end if;
       if :x = 1
       then
          raise too_many_rows;
       end if;
    exception
       when others then
          dbms_output.put_line('SQLCODE= ' || SQLCODE);
          dbms_output.put_line('SQLERRM= ' || SQLERRM);  
    end;
    SQLCODE= -1422
    SQLERRM= ORA-01422: exact fetch returns more than requested number of rows
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00SECOND (gooder) set
    TUBBY_TUBBZ?TUBBY_TUBBZ?   exec :x := 0;
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    begin
      2 
       if :x = 0
       then
          raise no_data_found;
       end if;
       if :x = 1
       then
          raise too_many_rows;
       end if;
    end;
    begin
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at line 5
    Elapsed: 00:00:00.01
    TUBBY_TUBBZ?TUBBY_TUBBZ?   exec :x := 1;
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    begin
      2 
       if :x = 0
       then
          raise no_data_found;
       end if;
       if :x = 1
       then
          raise too_many_rows;
       end if;
    end;
    begin
    ERROR at line 1:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at line 10
    Elapsed: 00:00:00.01
    TUBBY_TUBBZ?TUBBY_TUBBZ?   Please keep in mind this is trivial for tiny blocks like i'm demonstrating with, but imagine a procedure making many nested procedure calls, each procedure being 100's of lines long.

  • R11:RECEIVED ERROR MESSAGES FOR AP INVOICE APPROVAL IN ORACLE WORKFLOW

    Hi All,
    We have this error:
    ### Detailed Problem Statement ###
    Received the following error messages in sysadmin notifications:
    Event Error Name: 100
    Event Error Message: ORA-01403: no data found
    Event Error Stack: HZ_DQM_SYNC>REALTIME_SYNCH(oracle.apps.ar.hz.DQM.realtimesync,
    30665979B704AE043C0A81404B04A)
    Event Error Name: WFE_DISPATCH_RULE_ERR
    Event Error Message: [WFE_DISPATCH_RULE_ERR] ENAME=oracle.apps.ap.payment EKEY=10001
    RULE=ap_payment_event_wf_pfg.rule_function SQLCODE=100 SQLERRM=ORA-01403: no
    data found
    Event Error Stack: WF_Event.dispatch_internal()
    In addition, during the set-up of Oracle Approvals Management, there was no available list of
    values in the Notification Style in the workflow configurator page.
    Action Plan
    =======
    1) Confirm if the workflow is customized in any way.
    2) Confirm whether you are able to select global preferences for the other invoices approval, meaning are you
    getting the list of values for the other invoices.
    There are no workflow customizations. We are trying to implement it to AP invoice
    approval only.
    Can you instruct me on how to test this one? I thought I could only select the global preferences from the workflow configuration window. And there are no distinction as to which invoice approval
    process it is applicable. Where could I select the global preferences for other
    invoices approval?
    Thanks a lot

    thanks hussein , but still we can not see LOV values even if we inserted data manually...:(
    But it has improved and we moved on to another error which is:
    *****received the error message:3120: Activity 'APINV/52822' has no performer
    ### Problem description or inquiry details ###
    Received the following error message:
    Error Message
    3120: Activity 'APINV/52822' has no performer.
    Error Stack
    Wf_Engine_Util.Notification_Send(APINV, 115191_1, 52822, APINV:APINV_MRA) Wf_Engine_Util.Notification(APINV, 115191_1, 52822, RUN)
    Encountered the following:
    No list of values in the notification style field in the global configuration region in the Workflow Configuration Page
    Please note that we could not update the workflow configuration page using the forms because there
    is no list of values to select in the above-mentioned field. We just recently
    changed the workflow administrator role from SYSADMIN to KCAALIM to reduce
    changing of user log-in. We have previously used the sysadmin user log-in to
    access the workflow configuration page. there was still no list of values for
    the notification style. we changed the wf admin role to kcaalim using the sql:
    udpate wf_resources set text = 'KCAALIM' where name like 'WF_ADMIN_ROLE';
    Commit;
    Hence, changing of wf admin role and user log-in (to sysadmin) won't help (just in case you would advise me to do so) since we tried it
    already.
    ### Responsibility and navigational paths to reproduce ###
    1. set-up the AME for ap invoice approval.
    2. test an actual transaction.
    3. when the list is generated, set-up workflow for AP approval.
    when setting up the configuration page, there is no list of values available for the notification style. hence the workflow
    configuration could not be updated.
    4. Run the required programs (i.e., synchronizations)
    5. run the approval workflow from the developer studio page.
    6. review the status from the Status Monitor page.
    7. The error message appears
    8. payables, create a sample invoice.
    9. validate and initiate approval.
    10. review the approval history to find out the required approver. (the approver's name appears with 0 amount of approval)
    11. check the notifications in the required approver's worklist.
    12. there are no notifications sent.
    Text continued in next action...
    **** screen shots availble >http://rapidshare.com/files/176008682/error_-noperformer.doc.html
    Thanks again...

  • Does Declare Dynamic Cursor Support with Order Clause?

    Given a dynamic cursor like
         declare CUR_10 dynamic cursor for SQLSA;
         prepare SQLSA from :ls_SQL;
         open dynamic CUR_10;
         do while TRUE
              fetch CUR_10 into :ls_var1, :ls_var2
         loop
    where ls_SQL is "select COL1, COL2 from TABLE_A order by COL2 desc"
    can I fetch values in the exact DESCENDING order of COL2?

    Hello Ronald,
    Values will be fetched in the way you SQL statement has been defined for your dynamic cursor, so in the descending order.
    I've tested your code with an Oracle connection and it works perfectly.
    Just ensure to add a condition to your DO WHILE statement when the resultset is exhausted:
    DO WHILE TRUE AND SQLCA.SQLCode <> 100
    Kind regards,
    Jacob

  • Urgetnt:Generate XML Document from Oracle Tables.

    Environment is :9i Release 2
    Requirement : Generate XML document from the data which is vailable in Oracle tables at client location.
    Could some body help me on how to get ahead on this.
    Thanks in advance,
    Kumar.

    Implimentation in PowerBuilder7(Source is experimental.. need optimization):
    kml_store = create datastore
    selectblob kml into :kml_result from (select get_kml(:querry_type,:tmp_querry_value,1) as kml from dual) using sqlca;
    if sqlca.sqlcode=100 then
    MessageBox("INFO","No data found");
    return false;
    end if
    if sqlca.sqlcode = -1 then
         MessageBox("INFO","Error in generating KMl file");
         return false
    end if
    li_FileNum = FileOpen("test.kml",StreamMode!, Write!, LockWrite!, Replace!);
    b_len=Len(kml_result)
    b_len=64244;
    /*inserting in file :)*/
    DO WHILE b_pos<=b_len
         s_pipe=String(BlobMid(kml_result,b_pos,i_str_len))
         ret = FileWrite(li_FileNum,s_pipe);
         s_pipe="";
         b_pos=b_pos+i_str_len;
    LOOP
    FileClose(li_FileNum);
    Message was edited by:
    user601564

  • How can i migrate Power Builder 8.0 Function into oracle PL/SQL

    Hi Oracle Experts...
    How can i migrate Power Builder 8.0 Function into oracle PL/SQL.. I had migrate some of the coding from PB to PL/SQL. But i don't know how can i convert PB structure(here structure is a data type) into oracle PL/SQL.
    Instead of structure what is the equivalent in oracle plsql
    Below i pasted my POWER BUILDER FUNCTION:
    Long ll_perd,ll_lnperd,ll_mon,ll_effmon,ll_instno,ll_odno
    Decimal{5} ldl_actual,ldl_diff,ldl_inst
    Datetime ldt_first,ldt_exp,ldt_oddt, ldt_lastprod
    String ls_instmode,ls_inst
    str_batch lstr_od //Structure to store odamt and oddate
    Select pay_c_final,lon_d_expiry, lon_d_lastprod
    Into     :ls_inst,:ldt_exp, :ldt_lastprod
    From      loan_mast
    Where branch_c_code = :gs_branch and
              act_c_type      = :as_actype and
              act_c_no           = :as_acno;
    If Sqlca.Sqlcode = -1 Then
         f_message('FT-0189',Sqlca.Sqlerrtext)
         lstr_od.batchslno = -1
         Return lstr_od
    End If
    If adt_prodt > ldt_exp Then
         Select Ceil(months_between(:adt_prodt,:ldt_exp)) Into :lstr_od.batchslno From dual;
         lstr_od.cheqdt = ldt_exp
         lstr_od.batchslno = DaysAfter(Date(ldt_lastprod), Date(adt_prodt))
    Else
         If ls_inst = 'N' Then
              If adt_prodt > ldt_exp Then
                   Select Ceil(months_between(:adt_prodt,:ldt_exp)) Into :lstr_od.batchslno From dual;
                   lstr_od.cheqdt = ldt_exp
              Else
                   lstr_od.batchslno = 1
              End If
         ElseIf ls_inst = 'Y' Then
              Select first_d_due,lon_c_instperd,lon_n_perd
              Into     :ldt_first,:ls_instmode,:ll_lnperd
              From     loan_mast
              Where branch_c_code = :gs_branch and
                        act_c_type      = :as_actype and
                        act_c_no          = :as_acno;
              If Sqlca.Sqlcode = -1 Then
                   f_message('FT-0189',Sqlca.Sqlerrtext)
                   lstr_od.batchslno = -1
                   Return lstr_od // Return Structure
              End If
              Select Ceil(months_between(:adt_prodt,:ldt_first)) Into :ll_mon from dual;
              If ll_mon > 0 Then
                   Select Nvl(ln_n_balance,0),Nvl(ln_n_instlamt,0),Nvl(ln_n_instlno,0)
                   Into     :ldl_actual,:ldl_inst,:ll_instno
                   From     loan_inst_sch
                   Where act_c_type = :as_actype and
                             act_c_no     = :as_acno and
                             ln_d_effdate = (Select Max(ln_d_effdate)
                                                           From     loan_inst_sch
                                                           Where act_c_type = :as_actype and
                                                                     act_c_no     = :as_acno and
                                                                     ln_d_effdate < :adt_prodt);
                   If Sqlca.Sqlcode = -1 Then
                        f_message('FT-0224', Sqlca.Sqlerrtext)
                        lstr_od.batchslno = -1
                        Return lstr_od
                   ElseIf Sqlca.Sqlcode = 100 Then
                        lstr_od.batchslno = 1
    *                    Return lstr_od*
                   End If
                   If adl_bal > ldl_actual Then
                        If ldl_inst > 0 Then
                             lstr_od.batchslno = (adl_bal - ldl_actual) / ldl_inst
                        End If
                   Else
                        lstr_od.batchslno = 1
                   End If     
                   If lstr_od.batchslno = 0 Then lstr_od.batchslno = 1
                   //For full OD
                   If ll_mon > ll_lnperd Then
                        lstr_od.batchslno = (ll_mon - ll_lnperd) + lstr_od.batchslno
                   End If
                   If ls_instmode = 'Q' Then
                        lstr_od.batchslno = lstr_od.batchslno * 3
                   ElseIf ls_instmode = 'H' Then
                        lstr_od.batchslno = lstr_od.batchslno * 6
                   ElseIf ls_instmode = 'Y' Then
                        lstr_od.batchslno = lstr_od.batchslno * 12
                   End If
                   Select :adt_prodt - :lstr_od.batchslno Into :lstr_od.cheqdt From dual;
                   If ls_instmode = 'M' Then
                        ll_odno = ll_instno - lstr_od.batchslno // To get OD Date
                        Select ln_d_effdate
                        Into     :lstr_od.cheqdt
                        From     loan_inst_sch
                        Where act_c_type = :as_actype and
                                  act_c_no     = :as_acno and
                                  ln_n_instlno = :ll_odno;
                        If Sqlca.Sqlcode = -1 Then
                             f_message('FT-0224', + Sqlca.Sqlerrtext)
                             lstr_od.batchslno = -1
                             Return lstr_od
                        End If
                   End If
              Else
                   lstr_od.batchslno = 1
              End If
         End If
    End if
    Return lstr_od
    Thanks in adance
    Arun M M

    What are you going to return the structure to? What I would normally use here if the code was going to be used by other PL/SQL would be a PL/SQL object type.
    However, if PowerBuilder is still in the equation (you're moving the logic to PL/SQL but keeping PowerBuilder for the GUI ), then you'll have to return something else, because PowerBuilder doesn't understand PL/SQL object types. Perhaps passing a REF CURSOR as a OUT argument and populating it from the procedure. PowerBuilder could then retrieve the result of the procedure using a stored procedure based DataWindow.

  • ProC problem

    We have a problem accessing multiple Oracle tables from embedded SQL(Pro*C). The problem appears to occur when several functions containing embedded SQL are compiled separately. If all the Oracle functions are combined and compiled together then so far we have not found a problem.
    NOTE: We have successfully compiled and run these Oracle programs on HP and IBM UNIX machines (HP-UX and AIX).
    Basically the problem is that accesses to the second and subsequent tables return incorrect values - in fact it appears that the system thinks it is still accessing the first table.
    For example, the following are three functions that are compiled separately
    and then linked:
    iesmain.pc
    ies1.pc
    ies2.pc
    Link step:
    gcc -o iesmain iesmain.o ies1.o ies2.o -L/oracle/product/8.1.5/lib -lclntsh
    Execution results:
    When run iesmain second table returns data but is really data from the
    first table:
    READING XCTNNEXT
    SQLCODE = 0
    JOBNAME = bulljob
    SQLCODE = 100
    CLOSE CURSOR CODE. SQLCODE = 0
    READING LINES_IN
    SQLCODE = 0
    RRRCC = bullj
    SQLCODE = 100
    CLOSE CURSOR CODE. SQLCODE = 0
    If instead you compile the three functions together then the result is different:
    eg cat iesmain.pc ies1.pc ies2.pc > escat.pc
    Link step:
    gcc -o iescat iescat.o -L/oracle/product/8.1.5/lib -lclntsh
    Execution results:
    READING XCTNNEXT
    SQLCODE = 0
    JOBNAME = bulljob
    SQLCODE = 100
    CLOSE CURSOR CODE. SQLCODE = 0
    READING LINES_IN
    SQLCODE = 0
    RRRCC = SVI01
    SQLCODE = 0
    RRRCC = JKA01
    SQLCODE = 0
    RRRCC = JKB01
    SQLCODE = 0
    etc
    null

    I too have experienced a similar problem on 8i for Linux, yet the same code works fine on 8.0.5 and 8i on Solaris. After struggling with this for a couple days I'm glad to see I am not the only one with the problem.
    I tried copying the pre-compiled source from Solaris to Linux, but the problem still exists. The only significant difference between two precompiler outputs seems to be
    linux :static const unsigned int sqlctx = 1;
    solaris:static unsigned long sqlctx = 619115;
    The code that is causing me problems is anonymous pl/sql blocks in the ProC code, executing the first block in the second file seems to re-execute the last block in the first file (this is my current thinking anyway).
    Has anyone managed to successfully use multiple ProC files?
    Thanks,
    Jill

  • SQL.SQLCODE usage

    The following SQL will execute a SELECT, then exit with the SQLCODE....
    SELECT * FROM DUAL;
    EXIT SQL.SQLCODE;
    I want to add to this scenario by calling a log procedure after the select, passing in the SQLCODE:
    SELECT * FROM DUAL;
    EXECUTE LOG_PROC(p_name='TEST', p_sqlcode=SQL.SQLCODE) -- where p_sqlcode declared as NUMBER
    EXIT SQL.SQLCODE;
    Two problems:
    1) The EXECUTE does not work at all, throwing the following error:
    PLS-00103: Encountered the symbol "." when expecting one of the following:
    Substituting "%" for "." is also rejected.
    2) Even if the EXECUTE did work, would not the subsequent SQL.SQLCODE in the EXIT
    reflect the EXECUTE and not the original SELECT?
    My Question:
    *========*
    IS THERE A WAY TO STORE THE VALUE OF SQL.SQLCODE IMMEDIATELY AFTER THE
    SELECT FOR LATER USE IN THE EXECUTE and EXIT STATEMENTS????

    Don't know. Works fine here:
    SQL> CREATE OR REPLACE
      2  PROCEDURE LOG_PROC (P_NAME IN VARCHAR2, P_SQLCODE IN NUMBER) as
      3  begin
      4     dbms_output.put_line('LOG_PROC called...p_name = ' || p_name || '...p_sqlcode= ' || p_sqlcode);
      5  end;
      6  /
    Procedure created.
    SQL> declare
      2     l_dummy varchar2(1);
      3  begin
      4     select dummy
      5     into   l_dummy
      6     from   dual
      7     where  dummy = 'z';
      8  exception
      9     when no_data_found then
    10        LOG_PROC(p_name => 'TEST', p_sqlcode => SQLCODE);
    11  end;
    12  /
    LOG_PROC called...p_name = TEST...p_sqlcode= 100
    PL/SQL procedure successfully completed.

  • SQL Error:  DSNT408I SQLCODE = -913

    BI_PROCESS_ODSACTIVAT failed with log
    03/30/2008  4:57:45     SQL Error:  DSNT408I SQLCODE = -913, ERROR:  UNSUCCESSFUL EXE I     DBMAN     257
    short dump is
    Information on where terminated                                                                               
    The termination occurred in the ABAP program "CL_RSD_DTA====================CP"
    in "DELETE_DATA_INT".                                                        
    The main program was "RSPROCESS ".                                                                               
    The termination occurred in line 199 of the source code of the (Include)      
    program "CL_RSD_DTA====================CM00S"                                
    of the source code of program "CL_RSD_DTA====================CM00S" (when     
    calling the editor 1990).                                                    
    The program "CL_RSD_DTA====================CP" was started as a background job.
    Source code extract                                                                               
    001690   *             E_IS_VALTAB        =                                        
    001700                 e_is_dimtab        = l_is_dimtab.                           
    001710                                                                             
    001720             CHECK: l_is_dimtab = rs_c_false.                                
    001730           ENDIF.                                                            
    001740                                                                             
    001750   *     progress                                                            
    001760           l_percentage = 100 * sy-tabix / l_cnt.                            
    001770           l_text = 'Löschen des Inhaltes von Tabelle &1'(002).              
    001780           REPLACE '&1' WITH l_s_mage-objname INTO l_text.                   
    001790           CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'                         
    001800             EXPORTING                                                       
    001810               percentage = l_percentage                                     
    001820               text       = l_text.                                          
    001830   *     drop and recreate table                                             
    001840           CALL FUNCTION 'RSDU_TABLE_TRUNCATE'                               
    001850             EXPORTING                                                       
    001860               i_tablnm = l_s_mage-objname                                   
    001870             EXCEPTIONS                                                      
    001880               OTHERS   = 1.                                                 
    001890           IF sy-subrc = 0.                                                  
    001900             MESSAGE s860(r7) WITH l_s_mage-objname INTO l_dummy.            
    001910   *         Datenbank-Tabelle &1 wurde gelöscht und neu angelegt            
    001920             CALL METHOD cl_rso_application_log=>add_message.                
    001930           ELSE.                                                             
    001940             MESSAGE e861(r7) WITH l_s_mage-objname INTO l_dummy.            
    001950   *    Datenbank-Tabelle &1 konnte nicht gelöscht bzw. neu angelegt werden  
    001960             CALL METHOD cl_rso_application_log=>add_message.           
    001970   *         raise here (sending message only does not notify           
    001980   *         the caller about the error)                                
         >             RAISE failed.                                              
    002000           ENDIF.                                                       
    002010         ENDLOOP.                                                       
    002020       ENDIF.                             "just delete data             
    002030     ENDIF.                               "e_data_exists   = rs_c_true  
    002040   * 3. actions after deletion of data

    Hi,
    Looks like you should find out from your Basis / DB person what the error code 913 stands for, it could be a resource availability issue
    Excerpt from the below link:
    http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2.doc.mc/msgs/dsnt408i.html
    "This message contains an SQL return code and a brief explanation, with text inserted from the SQLERRM field. The SQL return code is negative, indicating that an error has occurred. For more information about this SQL return code, see DB2 Codes."

  • I will give $100 to the person who can solve this problem once and for all.

    I'm not even kidding, dude. We can do PayPay, I'll mail you a check, whatever you want. That is how frustrating this is, that is how badly I want it fixed, and that is how much overtime I've worked lately thanks to being shorthanded at my place of biz-nass. I'm an hombre of my word, so if you actually come up with a solution that works, the cheddar will be yours. Okay let's hit it.
    It's the skipping thing. First 10-12 seconds of a song - every song - will play fine, then iTunes skips, stutters, and basically does the god **** hokey pokey and shakes it all about. It happens most notably with songs that I double-click to play, but I'm pretty much noticing it on any song now after a transition is made. I've been using iTunes for ages and this didn't happen until the upgrade to 7.3. I have poured over these forums for nearly a week, tried every solution offered (even offered one of my own that actually worked for maybe four days before the whole thing started up again) and NOTHING. To save us all some time, here's what I've tried:
    - Downgrading. I'll admit I didn't do this correctly at first. I didn't remove everything according to the support guidelines, but I went down to version 6.05 and that did nothing to quell the skipping. I upgraded back up to 7.3 because hey, why not, and attempted the remaining trial fixes. I have since removed both iTunes and Quicktime, step my step according the the guidelines, and not only have I downgraded to my current running version of 7.2, I put both of the programs on my F drive (as opposed to the default C drive), my gigantic bonus internal drive where I typically keep nothing but my giganto music library. I thought putting the app on the same drive as the music might fix things. I thought wrong. Dead wrong. Dead diddly dum iddly wrong.
    - Quicktime settings. My settings for Quicktime have always been in safe mode with the output size at 16 bits. So when I saw this "fix" I just rolled my eyes. I used to have that dealio back in the dizzle when iTunes would just get all static-y and skip when I'd open other programs or even just minimize it, so that fix worked for that, but it's nothing compared to this. In simpler terms, that fix is like Superman, and this skipping? The kryptonite. Actually that's probably not a great metaphor, but we've got a ways to go and this is going to get mucho boring if I don't throw some chuckles out there. Ready for fix three? Giddy up!
    - Turn off cross-fade? It's never been on. I never really got the appeal of that, and also I think it resulted in some minor skipping back in the d. I also attempted similar fixes like turning off the equalizer, messing with the volume, closing last.fm, REMOVING an old album art retrieval program from back before iTunes got its **** together with album art, ANYTHING that might interfere with playback was turned off, removed, b-slapped, and sent crying home to its moms. Nada.
    - Recreating my library. This was the fix I offered someone else, because it actually did the trick for a few days. After an entire night spent reimporting 73 gigs worth of music, it played fine, but I did lose a ton of album art, playcounts, etc, so you can imagine how ****** I was when this wound up not being a permanent fix. I was beyond ******. I was livid. But I was taught in the dojos of my youth to channel my anger into productivity, and instead of sculpting a lovely bonsai tree, I set out to fix this pup once and for all.
    - That darn anti-virus! This was the final fix I tried, even though I wasn't using any of the culprit programs listed in the forums as causes of the skipping, and even those offering this as a solution confessed it was pretty hit or miss. But having tried everything else, having resorted to playing my music on MediaMonkey of all things, I figured I'd give it a shot. I used (reason for the past-tense forthcoming) AVG Anti-Virus, Lavasoft AdAware and something called Spyware Doctor that I think just came bundled with XP. I removed all of them. I had just done a virus scan recently to see if that's what was causing this, so I figured I'd be okay until I could redownload them after this fix wound up not working. And it didn't work, so there's that.
    There may be a couple of fixes I've tried that I'm forgetting now, since I'm delirious after spending practically every night for the past week trying to fix this problem, while my girlf, Heather, sits and laughs at me while watching Clark and Michael on her MacBook. In fact, she's laughing at the $100 offer as I type this, but I assure you, if you offer a solution that works, the money is as good as yours. If you come up with a workable solution, I'll have to test and make sure it isn't temporary like the recreating my library thing, but I won't leave you hanging once I'm satisfied that it's fixed for good. I know it's unorthodox, perhaps illegal in some states, but I'm desperate here, peeps. The ball is in your court, and I beg you not to give up the rock.
    Gateway E-2000 Windows XP

    I think the problem lays with Last.fm. I had the same exact problem as you. In your processes screen, end the task "lastfmhelper.exe" Last.fm still scrobbles. The tracks don't skip, although I notice there is still a bit of a lag in the first part of the song - but if you can deal with that, no skipping. I think you will have to end that task everytime you boot up your computer, or uninstall last.fm completely until they fix it; it is a bug in their software, as opposed to iTunes.

Maybe you are looking for