Update row count in a procedure

Iam using a procedure to update a table. After the completion of the procedure, it is returning that "PL/SQL procedure completed succefully". I want to return the number of records it updates also. How to achieve this?
Thanks for the help.

Please post your question int eh SQL and PL/SQL discussion forum.
The URL is:
PL/SQL

Similar Messages

  • There was an error while updating row count for "SH".."SH".CHANNELS

    Hi All,
    Am new to OBIEE.Pls help in this regard.
    Am building the physical layer as per Repository guide.When am importing the data in to this,am getting the below error.
    *"There was an error while updating row count for "SH".."SH".CHANNELS" :"*
    channles is the table name and having 5 rows.
    but am able to see the data in the sql prompt. like SELECT * FROM SH.CHANNELS then 5 rows data would be displaying..
    pls help in this regard and where is the excat problem?
    Thanks,

    what is the error?
    Make sure that your connection pool settings are okay..
    Make sure that, you are using correct driver in case of if you are using ODBC dsn..
    Also make sure that, your oracle server is running... TNS and Oracle server services

  • Obiee oracle gateway error while updating row count

    Hi ,
    OBIEE server 11.1.1.5 ,oracle server11g installed in linux 64bit,
    while updating row count in Admin tool i am getting the following error
    [NQODBC][SQL_STATE:HY000][nQSError:10058] A general error has occured.
    [nQSError: 43113]Message returned from OBIS.
    [nQSError:43093]An error occured while processing the EXECUTE PHYSICAL statement.
    [nQSError:17003]Oracle gateway error: OCIEnvNIsCreate or OCIEnvInit failed to initialize environment.Please check your Oracle Client installation and make sure the correct version of OCI libraries are in the library path.
    i am able to check the database from sqlplus it is working fine.
    Any suggestion highly appreciated plzzz

    Make sure your connection pool is valid and able to import or execute reports.
    If everything good as above said, in Physical layer database properties-> general tab choose the database version and try it once.
    If not
    Check the doc id 1271486.1
    Or
    To resolve the issue create a softlink (ln -s) in the <OracleBI>/server/Bin folder to link to the 32-bit Oracle Client Driver file.
    The example below shows how to perform a softlink from the 64 bit directory:
    cd /u10/app/orcladmin/oracle/OracleBI/server/Bin
    ln -s $ORACLE_HOME/lib32/libclntsh.so.10.1 libclntsh.so.10.1
    If helps mark

  • Not able to update row count in Physical Layer..connection failed in OBIEE 11g

    Hi Guys,
    I am not able to do Update Row count in the Physical Layer, i am getting an error The Connection has failed. This is in OBIEE 11g Linux env.
    I have put the tnsnames.ora file in the below path:
    /*****/pkgs/linux/intel/OBIEE_DIT/MW_HOME/Oracle_BI1/network/admin/
    I do not have admin under
    /****/pkgs/linux/intel/OBIEE_DIT/MW_HOME/oracle_common/network/
    But if i put the whole TNS entry in the Data Source Name i am able to connect:
    (DESCRIPTION =(ADDRESS = (PROTOCOL= TCP) (HOST= xxx.xxx.com) (PORT= 1671))(CONNECT_DATA = (SERVICE_NAME = US1OBIEE)))
    I am not able to understand the issue..
    Thanks,
    Amit

    Looks like rpd is looking for local tns config... try to use as hostname:port/ServiceName
    This should work, just in case not working! stop doing so since it is know issue.
    If helps mark

  • Error - Update Row Count in Oracle BI Administraton Tool

    Hi Everyone,
    I am running XE on the same machine that BI Administrator is running on. I them imported the HR scheme on the Physical Layer. As I try to update row count, I am getting errors:
    NQSError : - 10058 , A general error occurred
    An error occurred while executing the Physical Statement
    Oracle Error 3114 - Not connected to oracle OCI CALL OCIstmtexecute
    SQL statement preparation failed.
    I am connecting via odbc, but as my connection pool in the physical layer, I have tried all the available type of connection pool, and it does not work. I still get the same error.
    Does anyone have any ideas?
    Thanks,

    Well, could it then be that you are using a different user to connect to through the connection pool? If so, then you have to set the connection pool to prefix the tables with the schema name. I don't have access to the admin tool at the moment to point out exactly how that is done, but at least you right-click on the connection pool, choose properties and there you check a check box that suggests prefixing tables.
    The reason here is that the connection pool connects to the database using some username, and all queries are executed as this user. This user then has to have SELECT privileges on all the tables you have imported (which the user does of course if the tables can be found in the same schema), but if some tables have been imported from other schema then the server has to prefix the tables with the correct schema name.
    Hope this helps!
    Borkur

  • Purpose of Updating Row Counts in Oracle 11g RPD

    Hello all,
    I'm relatively new to RPD development, and have a relatively simple question. I have searched through the oracle community site and did several google searches for the answer. What is the purpose of Updating Row Counts on the Physical layer of the RPD? I know how to do it for a single table and for all tables. Does it help the planner build better optimized queries?

    Hi,
    Honestly I don't think OBIEE use that info at all (or it would be mandatory).
    It's more an info for the developer, to see if the DB connection works, if the table is the good one without looking at the data itself. It can also inform you if your ETL run or not (data or no data). So for me it's really only a developer helper, nothing OBIEE uses.

  • View Data & Updating row count

    Hi,
    iam using OBIEE 11g, when iam importing data from sysbase into physical layer then in the physical layer i cant able to view data and update row count also.
    For sysbase which dataconnection we have to use i.e (ODBC 3.5, OCI 10g/11g).
    for ODBC 3.5 connection is established but we cant get data i.e (view data in Physical layer ), for OCI 11g we cant establish a connection.
    Thanks in advance.
    prakash

    Hi,
    *• Relational Database System* including Oracle Database, Oracle Exadata Database Machine, Oracle TimesTen In Memory Database, DB2, Microsoft SQL Server, Teradata, Netezza, Informix, Sybase and other ODBC compliant data sources
    *• OLAP Sources* including Oracle Essbase, Hyperion Financial Management, Oracle Database OLAP Services, Oracle RPAS, Microsoft Analysis Services Cubes, and SAP BW Infocubes.
    *• XML Data Sources* including access to other types of data servers (e.g., other non-relational servers), Microsoft Excel spreadsheets, and Web Services.
    So, we should use ODBC 3.5 as Call Interface for Sybase.
    Thanks,
    Balaa...

  • Update row count is not working but its not throwing any error

    i m using obiee 11.1.1.6.8, where i cant do update row count in physical layer and tools---update row count...nothing was afffected
    iand i cant update rowcount option in physical layer of obieee.
    please help me

    Did u check in Physical DB whether it has data or not? If it has data,Try deleting that table from physical layer and import again.
    Thanks,

  • Error while updating row counts

    Hello,
    I have created a connection pool and while trying to do "update all row counts" i am getting the following error.
    [NQODBC][SQL_ATATE:HY000][NQSError: 10058]A general error has occured.
    [NQSError: 43093] Anerror occured while processing the EXECUTE PHYSICAL statement.
    [NQSError: 17001] ORacle error code:942, message:ORA-00942: table or view does not exist at OCI call OCIstmtExecute
    [NQSError: 17010] SQL statement preparation failed.
    Please provide any suggestions.
    Thanks in Advance.

    hi..
    make sure that the data source name and credentials you given in connection pools are correct...
    Also, make sure that the db-user specified in the connection pool has permissions on that table...
    And make sure that the table name is correct and existing in that schema..

  • Returning row count using Stored Procedure.

    I have the following stored procedure.
    create or replace
    PROCEDURE CHECK_DER_OUTPUT (dummy IN VARCHAR2) AS
    recordCount NUMBER;
    BEGIN
    SELECT COUNT(*) into recordCount FROM ICS_TEMP_DERIVATIVE WHERE ALLOCATIONTYPE in ('Aggregate','Non Aggregate');
    END ;
    All I need to return the count as an ResultSet? Is this possible?
    Help appreciated !

    A procedure can return an OUT parameter, i.e.
    CREATE OR REPLACE PROCEDURE check_der_output (
      p_dummy IN varchar2,
      p_recordCount OUT number )
    AS
    BEGIN
      SELECT COUNT(*)
        INTO p_recordCount
        FROM ics_temp_derivative
       WHERE allocationType IN ('Aggregate', 'Non Aggregate' );
    END;Or you could write a function that returns the number
    CREATE OR REPLACE FUNCTION check_der_output (
      p_dummy IN varchar2 )
        RETURN NUMBER
    IS
      l_recordCount number;
    BEGIN
      SELECT COUNT(*)
        INTO l_recordCount
        FROM ics_temp_derivative
       WHERE allocationType IN ('Aggregate', 'Non Aggregate' );
      RETURN( l_recordCount );
    END;Justin

  • How to count updated rows after an UPDATE?

    Is there a way to count updated rows after an update?
    Let's say I have an update like
    UPDATE table_a
    set field_1 = 'new_field'
    WHERE field_2 ='some_value' ;
    And now I would like to insert an info record into logging table like
    INSERT INTO logging_tbl (step, description, changed_rows) VALUES('UPDATE', 'update of table_a', ?);
    update is in sqlplus script.
    Thanks.
    Message was edited by:
    br00klynZ00

    Use SQL%ROWCOUNT.
    DECLARE
      v_num NUMBER := 0;
    BEGIN
    UPDATE table_a
    set field_1 = 'new_field'
    WHERE field_2 ='some_value' ;
    v_num := SQL%ROWCOUNT;
    INSERT INTO logging_tbl (step, description, changed_rows)
    VALUES('UPDATE', 'update of table_a', v_num);
    END;

  • Count of updated rows

    Hi there,
    I would like to be able to count updated rows after submitting a page. I'm aware that #MRU_COUNT# does that in success messages, but I don't know how to (or is it even possible) assign that value to a page item, for instance.
    (The number of updated rows isn't all that important, I would just like to know if there was a change made or not).
    Any help is much appreciated!
    Edited by: 893204 on Oct 25, 2011 2:40 PM

    Hi, Chris, thank you for your reply.
    I have a report on Employees (Automated Row Fetch).
    Editing a row brings up a modal window where I can change employee name, address and so on. I want to be able to know was there any change made to the row when the user clicks Submit.
    I hope I made things clearer this time.

  • How to add the Row count(number of rows in table)  in  the table header?

    Hi,
    I'm having a table. This table is viewed when i click on a search button.
    <b>On the table header it should dynamically display the number of rows in the table, i.e., the row count.</b>
    How to do this? could any one explain me with the detailed procedure to achieve this.
    Thanks & Regards,
    Suresh

    If you want to show a localized text in the table header, you should use the <b>Message Pool</b> to create a (parameterized) message "tableHeaderText" like "There are table entries".
    Next, create a context attribute "tableHeaderText" of type "string" and bind the "text" property of the table header Caption UI element to this attribute.
    Whenever the table data has changed (e.g. at the end of the supply function for the table's data source node), update the header text:
    int numRows = wdContext.node<TableDataSourceNode>().size();
    String text = wdComponentAPI.getTextAccessor().getText
      IMessage<ComponentName>.TABLE_HEADER_TEXT,
      new Object[] { String.valueOf(numRows) }
    wdContext.currentContextElement().setTableHeaderText(text);
    Maybe you want to provide a separate message for the case that there are no entries.
    Alternatively, you can make the attribute calculated and return the header text in the attribute getter.
    Armin

  • Dynamically Add Report Parameters & Get Row Count

    In out Portal reports, we are inserting records into our own logging tables at the beginning of the report and updating the record at the end of the report. Currently, the sequential key has been added as a parameter so that we can access it through-out the report execution. Therefore, it displays on the parameter screen. We don't want the users to see this item. Is it possible to add it to the parameter list without having it display on the screen? Can this be done using a procedure in wwv_standard_util? Any other suggestions?
    Also, we need to get the total row count of the query. Where can we get this value?
    null

    In out Portal reports, we are inserting records into our own logging tables at the beginning of the report and updating the record at the end of the report. Currently, the sequential key has been added as a parameter so that we can access it through-out the report execution. Therefore, it displays on the parameter screen. We don't want the users to see this item. Is it possible to add it to the parameter list without having it display on the screen? Can this be done using a procedure in wwv_standard_util? Any other suggestions?
    Also, we need to get the total row count of the query. Where can we get this value?
    null

  • Array Bind: nbr of updated rows?

    Hello,
    when using array binding with UPDATE statements, how to look up the number of updated rows?
    I couldn't find any parameter property such as ArrayBindAffectedRows.
    Is it possible to use array bind with SQL statements which return values, e.g.:
    UPDATE emp SET salary = salary + :increase
    WHERE mgr = :mgrNo
    RETURNING salary INTO :newSalary;
    Hm, arrays :increase and :newSalary might have different lengths.
    Thanks,
    Armin

    Ok this is genuinly tricky.
    The only way I can think of to get this is to use FORALL and BULK COLLECT. This does an array-bound insert from PL/SQL. But you need to pass Associative Arrays from ODP.NET to PL/SQL to get this started.
    Any other solution I could think of would require running some PL/SQL code for each update statement, for instance in a trigger. But avoiding the context switches from PL/SQL to SQL is a main reason to use array binding in the first place.
    Here's a complete sample program:
    I used inline PL/SQL for compactness, but you might want to save the block as a procedure.
    using System;
    using System.Data;
    using Oracle.DataAccess.Client;
    using Oracle.DataAccess.Types;
         public class Test
          static OracleConnection connect()
            string constr = "data source=oracle;user id=scott;password=tiger";
            OracleConnection con = new OracleConnection(constr);
            con.Open();
            return con;
        const string sql = @"
    declare
      type NumTable is table of Number index by binary_integer;
      l_managers NumTable := :mgr;
      l_increase NumTable := :inc;
      l_newSals NumTable;
      l_records int;
    begin
      forall idx in l_managers.first .. l_managers.last
        update emp
        SET
        sal = sal + l_increase(idx)
        WHERE mgr = l_managers(idx)
        RETURNING sal BULK COLLECT INTO l_newSals;
      :records_affected := l_newSals.count;
    end;
        [STAThread]
        static void Main(string[] args)
          try
            using (OracleConnection con = connect())
              string cr = new String(new char[] {(char)13});
              OracleCommand cmd = new OracleCommand(sql.Replace(cr,""),con);
              OracleDecimal[] increases = new OracleDecimal[] {10,20,30};
              int[] managers = new int[] { 7698,7839,7782};
             OracleParameter pMgr = cmd.Parameters.Add("manager",
                 OracleDbType.Int32,
                 ParameterDirection.Input);
              pMgr.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
              pMgr.Size = managers.Length;
              pMgr.Value = managers;
              OracleParameter pInc = cmd.Parameters.Add("increase",
                 OracleDbType.Decimal,
                 ParameterDirection.Input);
              pInc.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
              pInc.Size = increases.Length;
              pInc.Value = increases;
              OracleParameter pRecs = cmd.Parameters.Add("records",
                 OracleDbType.Int32 ,
                 ParameterDirection.Output);
              pRecs.CollectionType = OracleCollectionType.None;
              cmd.ExecuteNonQuery();
              int recs = (int)pRecs.Value;
              Console.WriteLine("{0} records affected",recs );
          catch (Exception ex)
            Console.WriteLine(ex);
    }

Maybe you are looking for