Update Oracle from 4.5 to 8i

How can I install Oracle 8i over older one (4.5) without affecting tables and information in the previous one.
note: I am working on a network database and connecting to online ones.
Please, help me.
Regards,
Hanady

How can I install Oracle 8i over older one (4.5) without affecting tables and information in the previous one.
note: I am working on a network database and connecting to online ones.
Please, help me.
Regards,
Hanady

Similar Messages

  • Tp return code 12 after update oracle from 9.2.0.4 to 9.2.0.8

    Hi
    tp return code 12 after update oracle from 9.2.0.4 to 9.2.0.8
    Please help me.
    Thank you

    Hi Maurizio,
    What does the transport logs says about the error?
    -Pinkle

  • Re: Update Oracle from form data?

    Too much to peruse. You should debug it yourself, for example by inserting System.out.println statements in there to figure out where it's giving you trouble.

    "...Too much to peruse..." - indeed.
    I'd recommend that you write a Java object that does all your database interactions and test it seperately from the servlet. Once you have that working, then let you servlet create an instance and just call its methods. By then you'll be 100% certain that your database object is working, and you can turn your attention to other problems.
    I'd recommend JUnit as a good Java unit testing framework:
    http://www.junit.org
    I'd also recommend that you look into JSTL and JSPs. Jakarta has a great implementation of JSTL (Java Standard Tag Library). It'll help simplify this code a lot. - MOD

  • Upgrade Oracle from the version 9 to 10

    Hi!
    We are planning a SAP-upgrade from 4.6c with Oracle version 9 to SAP EHP4.
    The target oracle version should be 10.
    Questions:
    1) What is the procedure to update Oracle from version 9 to 10?
    1a) where can I find the appropriate documentation?
    1b) with which tool should this operation be executed?
    Thank you very much!

    Holger,
    1) What is the procedure to update Oracle from version 9 to 10?{
    1a) where can I find the appropriate documentation?
    1b) with which tool should this operation be executed?
    You can download Oracle database upgrade from
    https://websmp209.sap-ag.de/instguides>Database Upgrades>Oracle
    This document explains the procedure of  updgrading Oracle from version 9i to 10g
    Note 720886 - Oracle Database 10g Integration into the SAP environment.pdf
    Note 828268 - Oracle Database 10g New functions.pdf
    After database upgrade you need to adjust the DB parameters according SAP Note  830576 - Parameter recommendations for Oracle.
    Thanks
    Sushil
    Edited by: Sushil Suryawanshi on Jun 4, 2009 7:03 PM

  • Insert and update tables from SQL server to oracle database tables

    Hi,
    I am having problem while update data from sql server to oracle database tables.
    I am doing one way insert +updates that is from SQL Server tables ==> Oracle database tables
    I am using tools Sql server Integration service. I can insert data from sql server to oracle but update can't. Please help me how can I update + insert from sql server to oracle database tables easily.
    Thanks in advance.

    Hi,
    What about using Oracle SQL Developer for migration
    http://www.oracle.com/technetwork/database/migration/sqlserver-095136.html
    HTH

  • Can someone tell me how to delta update data from db like oracle?

    Hi gurus:
         as the title,can someone tell me how to delta update data from db like oracle?
    and can someone give me some link about the detail of delta update?
        thanks very much.
    chan

    Hi,
    Check help links
    Data Transfer with DB Connect
    http://help.sap.com/saphelp_nw04/helpdata/en/58/54f9c1562d104c9465dabd816f3f24/frameset.htm
    http://www.bwexpert.com/downloads/DBConnectMakingDELTAABAPCode.doc
    Delta Concept
    http://help.sap.com/saphelp_nw04/helpdata/en/84/81eb588fc211d4b2c90050da4c74dc/frameset.htm
    Thanks

  • Problem installing Oracle Linux Release 5 Update 2 from Oracle e-Delivery

    Hello
    I have been trying to install Oracle Linux Release 5 Update 2 from Oracle e-Delivery so that I can install Oracle 11g express edition beta.
    Here are the steps that I took and the problem that I am having:
    1. I downloaded the file, unzipped the file twice, which gave me 3,042 files and 13 folders with the total size = 3.07 GB.
    2. I put in the DVD and restarted my PC hoping that my PC will boot from the DVD, but instead Window started.
    I reported this issue to tech support from e-Delivery, but they referred me to contact you. Please assist.
    Julia

    3,042 files and 13 folders with the total size = 3.07 GBWhich download .zip did you choose from edelivery? Under linux-x64 I peeked "Oracle Linux Release 5 Update 2 for x86_64 (64 Bit) - DVD" file V15099-01.zip downloaded, it has just the one .iso file. You'll need to burn that to DVD, but with burn s/w that handles ISO files.
    Also keep in mind you'll need 64 bit hardware (amd/intel 64? itanium? those are different), the only *nix platform I've got handy to try it out is -x86 :(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Help needed to access Oracle from Applet.

    Please help. I have spent days reading info on the web and I simply cannot access to Oracle from an applet to work. Oracle is on a different IP than the Web Server. For my testing I am running the html directly from my local file system.
    Here are the steps I have taken:
    1. Create a key: "%JAVA_HOME%/bin/keytool" -genkey -alias MyAlias -keypass MyKPass -keystore C:\Keys.bin -storepass MySPass
    2. Sign my jar: "%JAVA_HOME%/bin/jarsigner" -keystore C:\Keys.bin -storepass MySPass -keypass MyKPass -signedjar myjar-signed.jar myjar.jar MyAlias
    3. Sign Oracle's Jar: "%JAVA_HOME%/bin/jarsigner" -keystore C:\Keys.bin -storepass MySPass -keypass MyKPass -signedjar ojdbc14-signed.jar ojdbc14.jar MyAlias
    4. Applet Tag (at this time I have the two jars in the same folder as the HTML and JS files):
        <applet id="MyApp"
      codebase=""
      archive="myjar-signed.jar,ojdbc14-signed.jar"
      code="com/company/applets/Test.class"
      mayscript
      width="50" height="50">
        </applet>5. Javascript:
      document.observe("dom:loaded", function() {
      alert("Applet: " + $('MyApp').getVersion());
      $('MyApp').getConnection(url, user, pswd);
      alert("Applet: " + $('MyApp').getVersion() + "Got Connection.");
      $('MyApp').testConnection();
      alert("Applet: " + $('MyApp').getVersion() + "Connection Tested.");
    });Execution:
    1. The applet loads, The browser asks if I want to trust it, I say yes.
    2. The '$('MyApp').getVersion()' works.
    3. The '$('MyApp').getConnection(url, user, pswd);' fails. Java Code:
      public void getConnection(String url, String user, String pswd)
          throws Exception {
        try {
          System.out.println("Driver...");
          DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
          System.out.println("Connection...");
          _conn = DriverManager.getConnection(url, user, pswd);
          ...The driver registers, but the getConnection fails with a security error.
    After much reading, I used policytool to update the policy file. It added:
    keystore "file:/C:/Keys.bin", "jks";
    grant signedBy "MyAlias" {
      permission java.security.AllPermission;
    };This did not make any difference. Both IE and FF get the same error.
    The JRE being used is 1.6.0_14.
    Any help solving this would be MUCH appreciated.
    Thanks.

    I have simplified the problem, and now it has nothing to do with Oracle. It is a certificate/signing problem.
    Here are the steps I took to set the test up:
    Certificate:
    "%JAVA_HOME%/bin/keytool" -genkey -storepass MyStorePswd -keyalg RSA -alias MyRsa -dname "CN=Company.com, OU=IT, O=Company Inc, L=Atlanta, ST=Georgia, C=US, DC=mailexpress, DC=com" -validity 999
    "%JAVA_HOME%/bin/keytool" -selfcert -storepass MyStorePswd -alias MyRsa -validity 999
    "%JAVA_HOME%/bin/keytool" -exportcert -storepass MyStorePswd -alias MyRsa -rfc -file MyRsa.cer
    "%JAVA_HOME%/bin/keytool" -importcert -keystore "C:\Program Files\Java\jre6\lib\security\cacerts." -storepass changeit -alias MyRsa -file MyRsa.cer
    Jar Signing:
    "%JAVA_HOME%/bin/jarsigner" -storepass MyStorePswd -keypass MyStorePswd -signedjar Text-Project-signed.jar Text-Project.jar MyRsa
    "%JAVA_HOME%/bin/jarsigner" -verify Text-Project-signed.jar
    Result: jar verified.
    HTML:
        <applet id="MyApp"
                codebase="file:/c:/projects/Text-Project/js/Memory"
                archive="Text-Project.jar"           <== unsigned test  OR
                archive="Text-Project-signed.jar"    <== signed   test
                code="com/company/applets/MemTest.class"
                mayscript
                width="50" height="50">
        </applet>
    JavaScript:
    document.observe("dom:loaded", function() {
      alert("Applet: " + $('MyApp').checkSecurity());
    Function in the Applet:
      public String checkSecurity() {
        System.out.println("Security Check...");
        try {
          AccessController.checkPermission(new FilePermission("MemTest.js", "read"));
          AccessController.checkPermission(new FilePermission("MemTest.js", "write"));
          AccessController.checkPermission(new java.net.SocketPermission("192.168.1.121", "resolve"));
        } catch (Exception e) {
          e.printStackTrace();
          return e.getMessage();
        return "Security Checked OK";
      }Results (Internet Explorer):
    1. Unsigned JAR, No policy:
    Result = java.security.AccessControlException: access denied (java.io.FilePermission MemTest.js read)
    (as expected)
    2. Unsigned JAR, Policy = permission java.security.AllPermission:
    Result = Security Checked OK
    (as expected)
    3. Signed JAR, No Policy: Popup states: signature verified; do you want to run the application.
    Result = java.security.AccessControlException: access denied (java.io.FilePermission MemTest.js read)
    (not expected)
    Something is wrong with the certificate or signing process. Any ideas ?
    Thanks.
    Edited by: javadude.101 on Jul 29, 2009 12:29 PM

  • How to prevent Oracle from using an index when joining two tables ...

    How to prevent Oracle from using an index when joining two tables to get an inline view which is used in an update statement?
    O.K. I think I have to explain what I mean:
    When joining two tables which have many entries sometimes it es better not to use an index on the column used as join criteria.
    I have two tables: table A and table B.
    Table A has 4.000.000 entries and table B has 700.000 entries.
    I have a join of both tables with a numeric column as join criteria.
    There is an index on this column in table A.
    So I instead of
      where (A.col = B.col)I want to use
      where (A.col+0 = B.col)in order to prevent Oracle from using the index.
    When I use the join in a select statement it works.
    But when I use the join as inline view in an update statement I get the error ORA-01779.
    When I remove the "+0" the update statement works. (The column col is unique in table B).
    Any ideas why this happens?
    Thank you very much in advance for any help.
    Regards Hartmut

    I think you should post an properly formatted explain plan output using DBMS_XPLAN.DISPLAY including the "Predicate Information" section below the plan to provide more details regarding your query resp. update statement. Please use the \[code\] and \[code\] tags to enhance readability of the output provided:
    In SQL*Plus:
    SET LINESIZE 130
    EXPLAIN PLAN FOR <your statement>;
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);Usually if you're using the CBO (cost based optimizer) and have reasonable statistics gathered on the database objects used the optimizer should be able to determine if it is better to use the existing index or not.
    Things look different if you don't have statistics, you have outdated/wrong statistics or deliberately still use the RBO (rule based optimizer). In this case you would have to use other means to prevent the index usage, the most obvious would be the already mentioned NO_INDEX or FULL hint.
    But I strongly recommend to check in first place why the optimizer apparently seems to choose an inappropriate index access path.
    Regards,
    Randolf
    Oracle related stuff:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle:
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • Problem with updating oracle DB with java date thru resultset.updateDate()

    URGENT Please
    I am facing problem in updating oracle database with java date through resultset.updateDate() method. Can anybody help me please
    following code is saving wrong date value (dec 4, 2006 instead of java date jul 4, 2007) in database:
    ResultSet rs = stmt.executeQuery("SELECT myDate FROM myTable");
    rs.first();
    SimpleDateFormat sqlFormat = new SimpleDateFormat("yyyy-mm-dd");
    java.util.Date myDate = new Date();
    rs.updateDate("myDate", java.sql.Date.valueOf(sqlFormat.format(myDate)));
    rs.updateRow();

    I believe you should use yyyy-MM-dd instead of yyyy-mm-dd. I think MM stands for month while mm stands for minute as per
    http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
    (If this works, after spending so much of your time trying to solve it, don't hit yourself in the head too hard. I find running out of the room laughing hysterically feels better).
    Here is a more standard(?) way of updating:
    String sqlStatement=
    "update myTable set myDate=? where personID=?"
    PreparedStatement p1= connection.prepareStatement(sqlStatement);
    p1.setDate(1,new java.sqlDate());
    p1.setInt(2, personID);
    p1.executeUpdate();

  • Update Oracle with timestamp

    How do I go about updating oracle DB table with timestamp from XI using JDBC receiver?

    Hi SSG,
    1) Generate a string in message mapping for the datetimestamp. You could also do this in the SQL statement by using the oracle SYSDATE function.
    2) In the JDBC receiver channel SQL statement you have 2 choices:
    - If the string is in the default datetimestamp format for your oracle DB, then you can insert it directly.
    - Use the to_date function to convert the string to an Oracle date. I'd recommend this approach. Here's some documentation for this function:
    http://www.techonthenet.com/oracle/functions/to_date.php
    Thanks,
    Jesse

  • Deleting/Updating records from an object table in PL/SQL

    Hello All,
    VER:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    CORE     11.2.0.3.0     Production
    TNS for Linux: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - Production
    I have created an object and inserted records in it. Is there any way we can delete/update records from it. I do not want to delete based on iteration like delete.collection but I would like to know if we can delete directly from obj like delete from table...
    CREATE OR REPLACE TYPE test_type AS OBJECT
    col1 number,
    col2 varchar2(100)
    CREATE OR REPLACE TYPE tab_type is table of test_type;
    DECLARE
    test_tab tab_type;
    l_cnt NUMBER;
    BEGIN
    select test_type(col1,col2) bulk collect
    into test_tab from (select 1 as col1,'test1' as col2 from dual
                        union all
                        select 2,'test2' from dual);
    IF test_tab.count>0
    THEN
    DELETE FROM TABLE(CAST(test_tab as tab_type)) a
    where a.col1=1;
    END IF;
    l_cnt := test_tab.count;
    END;Thx
    Shank.

    SB,
    I have a scenario wherein I insert few records into a collection table. I'm gonna filter few records from collection table based on the filter.
    I want to delete the records that didn't match the filter. Right now, I'm inserting the records into a physical table and deleting from there. I do no want to use a physical table. Trying to avoid it.
    Would like to delete from collection itself.
    DELETE FROM TABLE(CAST(lv_attr_filter_tab as EDMS_CSPP_DISC_REQ_TAB_TYPE))
                                 WHERE NOT EXISTS (SELECT 1
                                       FROM edms_disc_lines_stg edls
                                       WHERE edls.req_id = edrg.request_id
                                          AND edls.disc_line_id = edrg.discount_id
                                          AND UPPER(edls.disc_status) IN ('ACTIVE');

  • Update database from Jtable

    Hi all,
    I am trying to update database from Jtable. I added Jtable to scrollpane .
    My question is..
    after updating the Jtable..I want to save the details to database..when I click save button on my screen...how to do that? Please help me out! Thanks in advance..
    Here is the code that I wrote...
    public class VasuTest extends JFrame {
    private boolean DEBUG = true;
    Vector column_list = new Vector();
    Vector rows = new Vector();
    public VasuTest() {
    super("VasuTest");
         JToolBar toolBar = new JToolBar();
    JButton button = null;
    button = new JButton("Send Email");
    button.setToolTipText("This is the Exit button");
    button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
         System.out.println("Send Email");
    toolBar.add(button);
    button = new JButton("Save");
    button.setToolTipText("This is the Save button");
    button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
         System.out.println("Save");
    toolBar.add(button);
    button = new JButton("Exit");
    button.setToolTipText("This is the Exit button");
    button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
         System.exit(0);
    toolBar.add(button);
         JPanel ContentPane = new JPanel();
    ImageIcon i1 = new ImageIcon("Dongle.gif");
    JLabel j1 = new JLabel( i1, JLabel.CENTER);
         ContentPane.add(j1,BorderLayout.CENTER);
         setContentPane(ContentPane);
         JDBCT myModel = new JDBCT();
    String q = "select a.email_no,a.email_ln_no,b.cust_no,null customer_name,null cdate,a.batch_no,b.purch_ord_no,a.user_part_no,null part_desc,a.user_upgraded_part_no,null prod_id,a.qty,a.price,a.encrypted_sum_id,a.decrypted_sum_id,a.approval_key,a.status_cd,decode(a.status_cd,'APPROVED','true','ERROR','false','PROCESSED','true') approved,null end_cust,null sales_ord,null so_line,null sales_ord_cust,null shipment ,null sales_end_cust_name ,null shipment_line,a.note,null fromcust from upgrade_req_key_s3 a,upgrade_req_s3 b where a.email_no = b.email_no order by a.email_no,a.email_ln_no";
    myModel.setQuery();
    final Font f = new Font("SansSerif", Font.BOLD, 10);
    JTable table = new JTable(myModel);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    // Container ContentPane = getContentPane();
         int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
         int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS;
         JScrollPane scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
         scrollPane.setPreferredSize ( new Dimension ( 770, 400 ) );
    ContentPane.add(toolBar,BorderLayout.CENTER);
    //Add the scroll pane to this window.
    ContentPane.add(scrollPane,BorderLayout.CENTER);
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    public class JDBCT extends AbstractTableModel {
    Vector cache; // will hold String[] objects...
    int colCount;
    int rowHeight;
    String [] headers;
    Connection db;
    Connection conn;
    Statement statement;
    String currentURL;
    // public QueryTableModel() {
    // cache = new Vector();
    // new oracle.jdbc.driver.OracleDriver();
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    catch (ClassNotFoundException e) {
    System.out.println(e.getMessage());
    System.exit(-1);
    String url = "jdbc:odbc:c3-erp,s3,s3";
    public String getColumnName(int i) {
         if (i == 0)      {  return      "Email No"                     ;     } else
    if (i == 1)      {  return      "Email Line No.";} else
         if (i == 2)      {  return      "Customer";} else
         if (i == 3)      {  return      "Customer Name";} else
         if (i == 4)      {  return      "Date";} else
         if (i == 5)      {  return      "Batch No";} else
         if (i == 6)      {  return      "Customer PO";} else
         if (i == 7)      {  return      "Upgrade From Part";} else
         if (i == 8)      {  return      "Part Description";} else
         if (i == 9)      {  return      "Upgrade To Part";} else
         if (i == 10)      {  return      "Product Id";} else
         if (i == 11)      {  return      "Quantity";} else
         if (i == 12)      {  return      "Price";} else
         if (i == 13)      {  return      "Encypted Sum ID";} else
         if (i == 14)      {  return      "Decrypted Serial No";} else
         if (i == 15)      {  return      "Key";} else
         if (i == 16)      {  return      "Status";} else
         if (i == 17)      {  return      "Approved";} else
         if (i == 18)      {  return      "End Customer";} else
         if (i == 19)      {  return      "Sales Order";} else
         if (i == 20)      {  return      "SO Line";} else
         if (i == 21)      {  return      "Sales Order End Customer";} else
         if (i == 22)      {  return      "Sales Order End Customer Name";} else
         if (i == 23)      {  return      "Shipment";} else
         if (i == 24)      {  return      "Shipment Line";} else
         if (i == 25)      {  return      "Errors";} else
         if (i == 26)      { return       "From"; }
         else {return headers[i-1] ;}
    public int getColumnCount() { return colCount; }
    public int getRowCount() { return cache.size(); }
    //public Class getColumnClass(int c) {
    // return getValueAt(0, c).getClass();
    // overloaded isCellEditable method so that it returns true
    // in reference to a cell being editable.
    public boolean isCellEditable(int row, int col) { return true; }
    // overloaded setValyeAt which updates the data Vector and
    // calls the fireTableRowsUpdated() to notify any listeners
    // that data has changed and they need to redraw.
    public void setValueAt(Object value, int row, int col) {
    ((String[])cache.elementAt(row))[col] = (String)value;     
         fireTableRowsUpdated(row,row);     
    public void getInfo () {
    System.out.println("Row Count is : " + cache.size());
         System.out.println("Value at 0,0 is : " + getValueAt(0,0));
    //     boolean res = isCellEditable(0,0);
    //     System.out.println("The value of the Boolean result is : " + res);
    public Object getValueAt(int row, int col) {
    return ((String[])cache.elementAt(row))[col];
    // All the real work happens here!
    // In a real application, we'd probably perform the query in a separate thread.
    public void setQuery() {
    cache = new Vector();
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    conn = DriverManager.getConnection ("jdbc:odbc:c3-erp","s3","s3");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select a.email_no,a.email_ln_no,b.cust_no,null customer_name,null cdate,a.batch_no,b.purch_ord_no,a.user_part_no,null part_desc,a.user_upgraded_part_no,null prod_id,a.qty,a.price,a.encrypted_sum_id,a.decrypted_sum_id,a.approval_key,a.status_cd,decode(a.status_cd,'APPROVED','true','ERROR','false','PROCESSED','true') approved,null end_cust,null sales_ord,null so_line,null sales_ord_cust,null shipment ,null sales_end_cust_name ,null shipment_line,a.note,null fromcust from upgrade_req_key_s3 a,upgrade_req_s3 b where a.email_no = b.email_no order by a.email_no,a.email_ln_no");
    ResultSetMetaData meta = rs.getMetaData();
    colCount = meta.getColumnCount();
    String[] record = new String[27];      
    // Now we must rebuild the headers array with the new column name
    headers = new String[27];
    for (int h=0; h < 27; h++) {
    // headers[h-1] = meta.getColumnName(h);
         headers[h] = getColumnName(h);
    // and file the cache with the record from our query. This would
    // be practical if we were expecting a few million records to our
    // response query, but we are not so we can do this.
    while(rs.next()) {
         for (int i=0; i < colCount; i++) {
         record[i] = rs.getString(i + 1);
         cache.addElement(record);
         // Get the FIRST column of the table tableView
    // TableColumn column0 = table.getColumn(cache.elementAt(0));
    // Set the cell editor as non editable.
    // column0.setCellEditor(new EditableCellEditor(new JComboBox(), true));
    fireTableChanged(null); // notify everyone the we had a new table.
    catch (Exception e) {
    cache = new Vector(); // blank it out and keep going.
         e.printStackTrace();
    public static void main(String[] args) {
    VasuTest frame = new VasuTest();
    frame.pack();
    frame.setVisible(true);
    }

    When you click on the save button, you need to go through the model and retrieve the values getValueAt().
    Convert to whatever type you want since getValueAt() returns type Object and update the DB.

  • Update problem from a dataset

    I'm having a problem updating a row on a backend database using a dataset which contains the datacolumns as parameters with a TableMapping object. I'm using this in conjunction with the ODT.net tool.
    I've used this technique hundreds of times with a SQL Server backend, with no problems whatsoever. I'm not doing anything different.
    Here is the SQL I'm executing:
    <code>
    PROCEDURE proc_prUpdate
              p_CALLID IN CALL.CALLID%TYPE,
              p_STARTTIME IN CALL.STARTTIME%TYPE,
              p_STANDARD IN CALL.STANDARD%TYPE,
              p_DURATION IN CALL.DURATION%TYPE,
              p_VOYCALLID IN CALL.VOYCALLID%TYPE,
              p_LESID IN CALL.LESID%TYPE,
              p_SERVICETYPE IN CALL.SERVICETYPE%TYPE,
              p_MESCATEGORY IN CALL.MESCATEGORY%TYPE,
              p_MOBILE IN CALL.MOBILE%TYPE,
              p_REGIONID IN CALL.REGIONID%TYPE,
              p_TXCHANNEL IN CALL.TXCHANNEL%TYPE,
              p_RXCHANNEL IN CALL.RXCHANNEL%TYPE,
              p_SPOTBEAM IN CALL.SPOTBEAM%TYPE,
              p_TERMINALID IN CALL.TERMINALID%TYPE,
              p_RETURNID IN CALL.RETURNID%TYPE,
              p_TELEPHONENUMBER IN CALL.TELEPHONENUMBER%TYPE,
              p_PID IN CALL.PID%TYPE,
              p_TIMEDURATION IN CALL.TIMEDURATION%TYPE,
              p_LESNAME IN CALL.LESNAME%TYPE,
              p_MESNAME IN CALL.MESNAME%TYPE,
              p_CITY IN CALL.CITY%TYPE,
              p_COUNTRY IN CALL.COUNTRY%TYPE,
              p_TARGETID IN CALL.TARGETID%TYPE,
              p_MESID IN CALL.MESID%TYPE,
              p_DBSERVERID IN CALL.DBSERVERID%TYPE
         AS
         BEGIN
              update CALL set      
              STARTTIME = p_STARTTIME, STANDARD = p_STANDARD, DURATION = p_DURATION, VOYCALLID = p_VOYCALLID, LESID = p_LESID, SERVICETYPE = p_SERVICETYPE, MESCATEGORY = p_MESCATEGORY, MOBILE = p_MOBILE, REGIONID = p_REGIONID, TXCHANNEL = p_TXCHANNEL, RXCHANNEL = p_RXCHANNEL, SPOTBEAM = p_SPOTBEAM, TERMINALID = p_TERMINALID, RETURNID = p_RETURNID, TELEPHONENUMBER = p_TELEPHONENUMBER, PID = p_PID, TIMEDURATION = p_TIMEDURATION, LESNAME = p_LESNAME, MESNAME = p_MESNAME, CITY = p_CITY, COUNTRY = p_COUNTRY, TARGETID = p_TARGETID, MESID = p_MESID, DBSERVERID = p_DBSERVERID
              where CALLID = p_CALLID;
         END;
    </code>
    The following is in the generated code for the DataAdapter. Here are all the parameters for the update command:
    <code>
    Dim OracleParameter29 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter30 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter31 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter32 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter33 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter34 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter35 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter36 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter37 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter38 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter39 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter40 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter41 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter42 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter43 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter44 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter45 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter46 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter47 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter48 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter49 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter50 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter51 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter52 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter53 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParamete
    </code>
    The following is the code for the parameter list in the generated code:
    <code>
    Me.updateOracleCommand1.CommandText = "CALL_PKG.PROC_PRUPDATE"
    Me.updateOracleCommand1.CommandType = System.Data.CommandType.StoredProcedure
    Me.updateOracleCommand1.Connection = Me.oracleConnection1
    OracleParameter29.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter29.ParameterName = "P_CALLID"
    OracleParameter29.SourceColumn = "P_CALLID"
    OracleParameter30.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Date
    OracleParameter30.ParameterName = "P_STARTTIME"
    OracleParameter30.SourceColumn = "P_STARTTIME"
    OracleParameter31.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter31.ParameterName = "P_STANDARD"
    OracleParameter31.SourceColumn = "P_STANDARD"
    OracleParameter32.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter32.ParameterName = "P_DURATION"
    OracleParameter32.SourceColumn = "P_DURATION"
    OracleParameter33.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter33.ParameterName = "P_VOYCALLID"
    OracleParameter33.SourceColumn = "P_VOYCALLID"
    OracleParameter34.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter34.ParameterName = "P_LESID"
    OracleParameter34.SourceColumn = "P_LESID"
    OracleParameter35.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter35.ParameterName = "P_SERVICETYPE"
    OracleParameter35.SourceColumn = "P_SERVICETYPE"
    OracleParameter36.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter36.ParameterName = "P_MESCATEGORY"
    OracleParameter36.SourceColumn = "P_MESCATEGORY"
    OracleParameter37.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter37.ParameterName = "P_MOBILE"
    OracleParameter37.SourceColumn = "P_MOBILE"
    OracleParameter38.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter38.ParameterName = "P_REGIONID"
    OracleParameter38.SourceColumn = "P_REGIONID"
    OracleParameter39.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter39.ParameterName = "P_TXCHANNEL"
    OracleParameter39.SourceColumn = "P_TXCHANNEL"
    OracleParameter40.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter40.ParameterName = "P_RXCHANNEL"
    OracleParameter40.SourceColumn = "P_RXCHANNEL"
    OracleParameter41.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter41.ParameterName = "P_SPOTBEAM"
    OracleParameter41.SourceColumn = "P_SPOTBEAM"
    OracleParameter42.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter42.ParameterName = "P_TERMINALID"
    OracleParameter42.SourceColumn = "P_TERMINALID"
    OracleParameter43.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter43.ParameterName = "P_RETURNID"
    OracleParameter43.SourceColumn = "P_RETURNID"
    OracleParameter44.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter44.ParameterName = "P_TELEPHONENUMBER"
    OracleParameter44.SourceColumn = "P_TELEPHONENUMBER"
    OracleParameter45.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter45.ParameterName = "P_PID"
    OracleParameter45.SourceColumn = "P_PID"
    OracleParameter46.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter46.ParameterName = "P_TIMEDURATION"
    OracleParameter46.SourceColumn = "P_TIMEDURATION"
    OracleParameter47.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter47.ParameterName = "P_LESNAME"
    OracleParameter47.SourceColumn = "P_LESNAME"
    OracleParameter48.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter48.ParameterName = "P_MESNAME"
    OracleParameter48.SourceColumn = "P_MESNAME"
    OracleParameter49.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter49.ParameterName = "P_CITY"
    OracleParameter49.SourceColumn = "P_CITY"
    OracleParameter50.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter50.ParameterName = "P_COUNTRY"
    OracleParameter50.SourceColumn = "P_COUNTRY"
    OracleParameter51.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter51.ParameterName = "P_TARGETID"
    OracleParameter51.SourceColumn = "P_TARGETID"
    OracleParameter52.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter52.ParameterName = "P_MESID"
    OracleParameter52.SourceColumn = "P_MESID"
    OracleParameter53.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter53.ParameterName = "P_DBSERVERID"
    OracleParameter53.SourceColumn = "P_DBSERVERID"
    Me.updateOracleCommand1.Parameters.Add(OracleParameter29)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter30)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter31)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter32)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter33)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter34)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter35)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter36)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter37)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter38)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter39)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter40)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter41)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter42)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter43)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter44)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter45)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter46)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter47)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter48)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter49)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter50)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter51)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter52)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter53)
    </code>
    Here is the code I'm running to try the update:
    <code>
    OracleDataAdapter1.TableMappings.Add("Table", "CALL")
    OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value = Call11._Call.Item(0).CALLID
    OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value = Call11._Call.Item(0).STANDARD
    Call11._Call.Item(0).STARTTIME = DataGrid1.Item(0, 1)
    Call11._Call.Item(0).STANDARD = DataGrid1.Item(0, 2)
    Call11._Call.Item(0).DURATION = DataGrid1.Item(0, 3)
    Call11._Call.Item(0).LESID = DataGrid1.Item(0, 4)
    Call11._Call.Item(0).SERVICETYPE = DataGrid1.Item(0, 5)
    Call11._Call.Item(0).MESCATEGORY = DataGrid1.Item(0, 6)
    Call11._Call.Item(0).MOBILE = DataGrid1.Item(0, 7)
    Call11._Call.Item(0).REGIONID = DataGrid1.Item(0, 8)
    Call11._Call.Item(0).MESID = DataGrid1.Item(0, 22)
    Call11._Call.Item(0).CALLID = Convert.ToInt32(TextBox1.Text)
    OracleDataAdapter1.Update(Call11)
    </code>
    I shouldn't need to add the above lines:
    <code>
    OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value = Call11._Call.Item(0).CALLID
    OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value = Call11._Call.Item(0).STANDARD
    </code>
    , but I added them to show you the value of the parms going in.
    When debugging, the following is my output:
    ?Call11._Call.Item(0).RowState
    Modified
    ?Call11._Call.Rows.Count
    1
    You can see that the rowstate is set to "Modified" and the rowcount is 1
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value
    8612967 {Long}
    [Long]: 8612967 {Long}
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value
    "B" {String}
    String: "B"
    The above, are the values of the first & third parms before the "Update" statement is executed.
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value
    {System.DBNull}
    [System.DBNull]: {System.DBNull}
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value
    {System.DBNull}
    [System.DBNull]: {System.DBNull}
    The above are the values of the first & third parms after the "Update" statement is executed.
    <code>
    OracleDataAdapter1.Update(Call11)
    </code>
    Notice the values are NULL. why???
    Below, is the value of my TableMapping object:
    ?OracleDataAdapter1.TableMappings.Count
    1
    ?OracleDataAdapter1.TableMappings.Item(0)
    {System.Data.Common.DataTableMapping}
    ColumnMappings: {System.Data.Common.DataColumnMappingCollection}
    DataSetTable: "CALL"
    SourceTable: "Table"
    The datatable name of the strongly typed dataset I am using is "CALL".
    When I change the update statement from:
    <code>
    OracleDataAdapter1.Update(Call11)
    </code>
    to
    <code>
    OracleDataAdapter1.UpdateCommand.ExecuteNonQuery()
    </code>
    the update works (using the latter), but returns a -1 for the records affected (-1 typically means the command can't decipher the action of the command that just took place).
    I might add that I successfully executed a similiar "update" the same way via a dataset prior to what I'm trying to do here.
    Why isn't the backend datasource being updated? I do not get any errors during the update statement execpt for the -1 for the records affected?

    I shortened the package spec to the following:
    <code>
    PROCEDURE proc_prUpdate
              p_CALLID IN CALL.CALLID%TYPE,
              p_STANDARD IN CALL.STANDARD%TYPE
    </code>
    I shortened the package body to the following:
    <code>
    PROCEDURE proc_prUpdate
              p_CALLID IN CALL.CALLID%TYPE,
              p_STANDARD IN CALL.STANDARD%TYPE
         AS
         BEGIN
              update CALL set      
              STANDARD = p_STANDARD
              where CALLID = p_CALLID;
         END;
    </code>
    When I execute the update statement from the associated data adapter, it updates the db correctly, but still gives me a -1 for the records affected.
    When I execute the exact same sql with the record inside a strongly typed dataset, it doesn't update and I still get the -1 for the records affected.
    While debugging, the following output is shown for the parameter list:
    ?daORA.UpdateCommand.Parameters.Item(0)
    {Oracle.DataAccess.Client.OracleParameter}
    ArrayBindSize: Nothing
    ArrayBindStatus: Nothing
    CollectionType: None
    DbType: Decimal
    Direction: Input
    IsNullable: False
    Offset: 0
    OracleDbType: Decimal
    ParameterName: "P_CALLID"
    Precision: 0
    Scale: 0
    Size: 0
    SourceColumn: "P_CALLID"
    SourceVersion: Original
    Status: Success
    Value: 8612967 {Long}
    ?daORA.UpdateCommand.Parameters.Item(1)
    {Oracle.DataAccess.Client.OracleParameter}
    ArrayBindSize: Nothing
    ArrayBindStatus: Nothing
    CollectionType: None
    DbType: String
    Direction: Input
    IsNullable: False
    Offset: 0
    OracleDbType: Varchar2
    ParameterName: "P_STANDARD"
    Precision: 0
    Scale: 0
    Size: 0
    SourceColumn: "P_STANDARD"
    SourceVersion: Current
    Status: Success
    Value: "c" {String}
    ?ds.Tables(0).Rows(0).RowState
    Modified
    Two questions:
    Even though it updates successfully in the first iteration, how come I get the -1 for the records affected?
    In the second iteration, how come it is not updating the backend datasource and how come I still get the -1 for the records affected? You can see that the rowstate is set to modified.
    Is there a problem with the ODP.Net data provider not being able to update a backend datasource with values inside of a datatable during a "da.update" statement?
    With MS SQL Server data provider, it updates the data flawlessly when I put the tables inside of a MS SQL Server.

  • Update problem from a dataset with ODT.

    I'm having a problem updating a row on a backend database using a dataset which contains the datacolumns as parameters with a TableMapping object. I'm using this in conjunction with the ODT.net tool.
    I've used this technique hundreds of times with a SQL Server backend, with no problems whatsoever. I'm not doing anything different.
    Here is the SQL I'm executing:
    <code>
    PROCEDURE proc_prUpdate
              p_CALLID IN CALL.CALLID%TYPE,
              p_STARTTIME IN CALL.STARTTIME%TYPE,
              p_STANDARD IN CALL.STANDARD%TYPE,
              p_DURATION IN CALL.DURATION%TYPE,
              p_VOYCALLID IN CALL.VOYCALLID%TYPE,
              p_LESID IN CALL.LESID%TYPE,
              p_SERVICETYPE IN CALL.SERVICETYPE%TYPE,
              p_MESCATEGORY IN CALL.MESCATEGORY%TYPE,
              p_MOBILE IN CALL.MOBILE%TYPE,
              p_REGIONID IN CALL.REGIONID%TYPE,
              p_TXCHANNEL IN CALL.TXCHANNEL%TYPE,
              p_RXCHANNEL IN CALL.RXCHANNEL%TYPE,
              p_SPOTBEAM IN CALL.SPOTBEAM%TYPE,
              p_TERMINALID IN CALL.TERMINALID%TYPE,
              p_RETURNID IN CALL.RETURNID%TYPE,
              p_TELEPHONENUMBER IN CALL.TELEPHONENUMBER%TYPE,
              p_PID IN CALL.PID%TYPE,
              p_TIMEDURATION IN CALL.TIMEDURATION%TYPE,
              p_LESNAME IN CALL.LESNAME%TYPE,
              p_MESNAME IN CALL.MESNAME%TYPE,
              p_CITY IN CALL.CITY%TYPE,
              p_COUNTRY IN CALL.COUNTRY%TYPE,
              p_TARGETID IN CALL.TARGETID%TYPE,
              p_MESID IN CALL.MESID%TYPE,
              p_DBSERVERID IN CALL.DBSERVERID%TYPE
         AS
         BEGIN
              update CALL set      
              STARTTIME = p_STARTTIME, STANDARD = p_STANDARD, DURATION = p_DURATION, VOYCALLID = p_VOYCALLID, LESID = p_LESID, SERVICETYPE = p_SERVICETYPE, MESCATEGORY = p_MESCATEGORY, MOBILE = p_MOBILE, REGIONID = p_REGIONID, TXCHANNEL = p_TXCHANNEL, RXCHANNEL = p_RXCHANNEL, SPOTBEAM = p_SPOTBEAM, TERMINALID = p_TERMINALID, RETURNID = p_RETURNID, TELEPHONENUMBER = p_TELEPHONENUMBER, PID = p_PID, TIMEDURATION = p_TIMEDURATION, LESNAME = p_LESNAME, MESNAME = p_MESNAME, CITY = p_CITY, COUNTRY = p_COUNTRY, TARGETID = p_TARGETID, MESID = p_MESID, DBSERVERID = p_DBSERVERID
              where CALLID = p_CALLID;
         END;
    </code>
    The following is in the generated code for the DataAdapter. Here are all the parameters for the update command:
    <code>
    Dim OracleParameter29 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter30 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter31 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter32 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter33 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter34 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter35 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter36 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter37 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter38 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter39 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter40 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter41 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter42 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter43 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter44 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter45 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter46 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter47 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter48 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter49 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter50 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter51 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter52 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParameter
    Dim OracleParameter53 As Oracle.DataAccess.Client.OracleParameter = New Oracle.DataAccess.Client.OracleParamete
    </code>
    The following is the code for the parameter list in the generated code:
    <code>
    Me.updateOracleCommand1.CommandText = "CALL_PKG.PROC_PRUPDATE"
    Me.updateOracleCommand1.CommandType = System.Data.CommandType.StoredProcedure
    Me.updateOracleCommand1.Connection = Me.oracleConnection1
    OracleParameter29.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter29.ParameterName = "P_CALLID"
    OracleParameter29.SourceColumn = "P_CALLID"
    OracleParameter30.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Date
    OracleParameter30.ParameterName = "P_STARTTIME"
    OracleParameter30.SourceColumn = "P_STARTTIME"
    OracleParameter31.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter31.ParameterName = "P_STANDARD"
    OracleParameter31.SourceColumn = "P_STANDARD"
    OracleParameter32.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter32.ParameterName = "P_DURATION"
    OracleParameter32.SourceColumn = "P_DURATION"
    OracleParameter33.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter33.ParameterName = "P_VOYCALLID"
    OracleParameter33.SourceColumn = "P_VOYCALLID"
    OracleParameter34.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter34.ParameterName = "P_LESID"
    OracleParameter34.SourceColumn = "P_LESID"
    OracleParameter35.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter35.ParameterName = "P_SERVICETYPE"
    OracleParameter35.SourceColumn = "P_SERVICETYPE"
    OracleParameter36.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter36.ParameterName = "P_MESCATEGORY"
    OracleParameter36.SourceColumn = "P_MESCATEGORY"
    OracleParameter37.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter37.ParameterName = "P_MOBILE"
    OracleParameter37.SourceColumn = "P_MOBILE"
    OracleParameter38.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter38.ParameterName = "P_REGIONID"
    OracleParameter38.SourceColumn = "P_REGIONID"
    OracleParameter39.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter39.ParameterName = "P_TXCHANNEL"
    OracleParameter39.SourceColumn = "P_TXCHANNEL"
    OracleParameter40.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter40.ParameterName = "P_RXCHANNEL"
    OracleParameter40.SourceColumn = "P_RXCHANNEL"
    OracleParameter41.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter41.ParameterName = "P_SPOTBEAM"
    OracleParameter41.SourceColumn = "P_SPOTBEAM"
    OracleParameter42.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter42.ParameterName = "P_TERMINALID"
    OracleParameter42.SourceColumn = "P_TERMINALID"
    OracleParameter43.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter43.ParameterName = "P_RETURNID"
    OracleParameter43.SourceColumn = "P_RETURNID"
    OracleParameter44.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter44.ParameterName = "P_TELEPHONENUMBER"
    OracleParameter44.SourceColumn = "P_TELEPHONENUMBER"
    OracleParameter45.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter45.ParameterName = "P_PID"
    OracleParameter45.SourceColumn = "P_PID"
    OracleParameter46.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter46.ParameterName = "P_TIMEDURATION"
    OracleParameter46.SourceColumn = "P_TIMEDURATION"
    OracleParameter47.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter47.ParameterName = "P_LESNAME"
    OracleParameter47.SourceColumn = "P_LESNAME"
    OracleParameter48.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter48.ParameterName = "P_MESNAME"
    OracleParameter48.SourceColumn = "P_MESNAME"
    OracleParameter49.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter49.ParameterName = "P_CITY"
    OracleParameter49.SourceColumn = "P_CITY"
    OracleParameter50.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2
    OracleParameter50.ParameterName = "P_COUNTRY"
    OracleParameter50.SourceColumn = "P_COUNTRY"
    OracleParameter51.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter51.ParameterName = "P_TARGETID"
    OracleParameter51.SourceColumn = "P_TARGETID"
    OracleParameter52.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Char
    OracleParameter52.ParameterName = "P_MESID"
    OracleParameter52.SourceColumn = "P_MESID"
    OracleParameter53.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal
    OracleParameter53.ParameterName = "P_DBSERVERID"
    OracleParameter53.SourceColumn = "P_DBSERVERID"
    Me.updateOracleCommand1.Parameters.Add(OracleParameter29)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter30)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter31)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter32)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter33)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter34)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter35)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter36)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter37)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter38)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter39)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter40)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter41)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter42)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter43)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter44)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter45)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter46)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter47)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter48)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter49)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter50)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter51)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter52)
    Me.updateOracleCommand1.Parameters.Add(OracleParameter53)
    </code>
    Here is the code I'm running to try the update:
    <code>
    OracleDataAdapter1.TableMappings.Add("Table", "CALL")
    OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value = Call11._Call.Item(0).CALLID
    OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value = Call11._Call.Item(0).STANDARD
    Call11._Call.Item(0).STARTTIME = DataGrid1.Item(0, 1)
    Call11._Call.Item(0).STANDARD = DataGrid1.Item(0, 2)
    Call11._Call.Item(0).DURATION = DataGrid1.Item(0, 3)
    Call11._Call.Item(0).LESID = DataGrid1.Item(0, 4)
    Call11._Call.Item(0).SERVICETYPE = DataGrid1.Item(0, 5)
    Call11._Call.Item(0).MESCATEGORY = DataGrid1.Item(0, 6)
    Call11._Call.Item(0).MOBILE = DataGrid1.Item(0, 7)
    Call11._Call.Item(0).REGIONID = DataGrid1.Item(0, 8)
    Call11._Call.Item(0).MESID = DataGrid1.Item(0, 22)
    Call11._Call.Item(0).CALLID = Convert.ToInt32(TextBox1.Text)
    OracleDataAdapter1.Update(Call11)
    </code>
    I shouldn't need to add the above lines:
    <code>
    OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value = Call11._Call.Item(0).CALLID
    OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value = Call11._Call.Item(0).STANDARD
    </code>
    , but I added them to show you the value of the parms going in.
    When debugging, the following is my output:
    ?Call11._Call.Item(0).RowState
    Modified
    ?Call11._Call.Rows.Count
    1
    You can see that the rowstate is set to "Modified" and the rowcount is 1
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value
    8612967 {Long}
    [Long]: 8612967 {Long}
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value
    "B" {String}
    String: "B"
    The above, are the values of the first & third parms before the "Update" statement is executed.
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(0).Value
    {System.DBNull}
    [System.DBNull]: {System.DBNull}
    ?OracleDataAdapter1.UpdateCommand.Parameters.Item(2).Value
    {System.DBNull}
    [System.DBNull]: {System.DBNull}
    The above are the values of the first & third parms after the "Update" statement is executed.
    <code>
    OracleDataAdapter1.Update(Call11)
    </code>
    Notice the values are NULL. why???
    Below, is the value of my TableMapping object:
    ?OracleDataAdapter1.TableMappings.Count
    1
    ?OracleDataAdapter1.TableMappings.Item(0)
    {System.Data.Common.DataTableMapping}
    ColumnMappings: {System.Data.Common.DataColumnMappingCollection}
    DataSetTable: "CALL"
    SourceTable: "Table"
    The datatable name of the strongly typed dataset I am using is "CALL".
    When I change the update statement from:
    <code>
    OracleDataAdapter1.Update(Call11)
    </code>
    to
    <code>
    OracleDataAdapter1.UpdateCommand.ExecuteNonQuery()
    </code>
    the update works (using the latter), but returns a -1 for the records affected (-1 typically means the command can't decipher the action of the command that just took place).
    I might add that I successfully executed a similiar "update" the same way via a dataset prior to what I'm trying to do here.
    Why isn't the backend datasource being updated? I do not get any errors during the update statement execpt for the -1 for the records affected?

    I shortened the package spec to the following:
    <code>
    PROCEDURE proc_prUpdate
              p_CALLID IN CALL.CALLID%TYPE,
              p_STANDARD IN CALL.STANDARD%TYPE
    </code>
    I shortened the package body to the following:
    <code>
    PROCEDURE proc_prUpdate
              p_CALLID IN CALL.CALLID%TYPE,
              p_STANDARD IN CALL.STANDARD%TYPE
         AS
         BEGIN
              update CALL set      
              STANDARD = p_STANDARD
              where CALLID = p_CALLID;
         END;
    </code>
    When I execute the update statement from the associated data adapter, it updates the db correctly, but still gives me a -1 for the records affected.
    When I execute the exact same sql with the record inside a strongly typed dataset, it doesn't update and I still get the -1 for the records affected.
    While debugging, the following output is shown for the parameter list:
    ?daORA.UpdateCommand.Parameters.Item(0)
    {Oracle.DataAccess.Client.OracleParameter}
    ArrayBindSize: Nothing
    ArrayBindStatus: Nothing
    CollectionType: None
    DbType: Decimal
    Direction: Input
    IsNullable: False
    Offset: 0
    OracleDbType: Decimal
    ParameterName: "P_CALLID"
    Precision: 0
    Scale: 0
    Size: 0
    SourceColumn: "P_CALLID"
    SourceVersion: Original
    Status: Success
    Value: 8612967 {Long}
    ?daORA.UpdateCommand.Parameters.Item(1)
    {Oracle.DataAccess.Client.OracleParameter}
    ArrayBindSize: Nothing
    ArrayBindStatus: Nothing
    CollectionType: None
    DbType: String
    Direction: Input
    IsNullable: False
    Offset: 0
    OracleDbType: Varchar2
    ParameterName: "P_STANDARD"
    Precision: 0
    Scale: 0
    Size: 0
    SourceColumn: "P_STANDARD"
    SourceVersion: Current
    Status: Success
    Value: "c" {String}
    ?ds.Tables(0).Rows(0).RowState
    Modified
    Two questions:
    Even though it updates successfully in the first iteration, how come I get the -1 for the records affected?
    In the second iteration, how come it is not updating the backend datasource and how come I still get the -1 for the records affected? You can see that the rowstate is set to modified.
    Is there a problem with the ODP.Net data provider not being able to update a backend datasource with values inside of a datatable during a "da.update" statement?
    With MS SQL Server data provider, it updates the data flawlessly when I put the tables inside of a MS SQL Server.

Maybe you are looking for

  • Am I allowed to install flash on more than one computer?

    I have the student edition of adobe flash cs3 and I currently have it installed on my desktop. I was wondering if it is legal to also install it on my labtop. It is for personal use, I don't know if that changes anything. I'm sure this is somewhere o

  • Slow Select Query - Where clause contains Seconday index field +other flds

    Hi friends, The below query is taking about an Hour to execute in production server when there are about 6 Million records in PLAF table. I have verified the trace in ST05 and the correct secondary index (Material Matnr + Plant Plwrk) is being select

  • My audio spontaneously stopped working

    Hey everyone, I've been recently editing together a feature film and had several different timeline sequences for different scenes (one had scenes 1-9, another 10-14, etc.) I opted to combine two sequences as they were just about locked and copy/past

  • "The java class is not found:" post clone

    Hi. I've just cloned an 11.5.10.2 environment from one AIX5.2 server running 9.2.0.7 to another server at the same AIX and RDBMS level. After running the clone steps, the application was automatically started and I was able to access it via Self Serv

  • C-2-03 update

    hi any new update available for nokia c2-03 after 7.63