Deadlock issue in while inserting in oracle table.

I have written a procedure which copy data in to oracle tables.Other user can also start inserting in that table so to prevent these intervention.
i have applied locks on these two tables and assume that my procedure will wait for other users to finish and it will apply lock on the tables and other users will now wait till this procedure finishes.
My Procedure looks like:--
lock table table1 in exclusive mode;
lock table table2 in exclusive mode;
update table1 set where rownum < x;
forall .....insert in table 2.
commit;
EXCEPTION
WHEN OTHERS THEN
dbms_printline(SQLERRM)
commit;
END;
But my problem is i am still receiving oracle error as below and the above procedure fails in between:-
ORA-00060: deadlock detected while waiting for resource
Any hint ??
Can we get this error if i execute a SELECT statement on some table which is not locked by me and some other other is updating/deletig/inserting in that table ?
*Select statement is without update clause.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

user620101 wrote:
I have written a procedure which copy data in to oracle tables.Other user can also start inserting in that table so to prevent these intervention.
i have applied locks on these two tables and assume that my procedure will wait for other users to finish and it will apply lock on the tables and other users will now wait till this procedure finishes.
My Procedure looks like:--
lock table table1 in exclusive mode;
lock table table2 in exclusive mode;
update table1 set where rownum < x;
forall .....insert in table 2.
commit;
EXCEPTION
WHEN OTHERS THEN
dbms_printline(SQLERRM)
commit;
END;
But my problem is i am still receiving oracle error as below and the above procedure fails in between:-
ORA-00060: deadlock detected while waiting for resource
Any hint ??But if you successfully lock TABLE1 (in session #1) and another session (session #2) is holding a lock against TABLE2 (say it's currently updating a row) then session #1 has to wait when you issue the Lock table command for table2. So session #1 is waiting, and then session #2 tries to do ANY modification to TABLE1 (which session #1 still has locked, and is still waiting to obtain the lock on TABLE2)... whamo, deadlock.
user620101 wrote:
Can we get this error if i execute a SELECT statement on some table which is not locked by me and some other other is updating/deletig/inserting in that table ?
*Select statement is without update clause.No, writes (and locks) do not block reads. So a simple select statement (unless you issued a FOR UPDATE clause) would not cause this issue.
What does your actual code look like, and what are you actually attempting to do? Why do you think you need to lock the tables, is this a one time operation, a continual operation of the system? Please explain in much more detail what you've got going on here.

Similar Messages

  • Problem while inserting into a table which has ManyToOne relation

    Problem while inserting into a table *(Files)* which has ManyToOne relation with another table *(Folder)* involving a attribute both in primary key as well as in foreign key in JPA 1.0.
    Relevent Code
    Entities:
    public class Files implements Serializable {
    @EmbeddedId
    protected FilesPK filesPK;
    private String filename;
    @JoinColumns({
    @JoinColumn(name = "folder_id", referencedColumnName = "folder_id"),
    @JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false)})
    @ManyToOne(optional = false)
    private Folders folders;
    public class FilesPK implements Serializable {
    private int fileId;
    private int uid;
    public class Folders implements Serializable {
    @EmbeddedId
    protected FoldersPK foldersPK;
    private String folderName;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "folders")
    private Collection<Files> filesCollection;
    @JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Users users;
    public class FoldersPK implements Serializable {
    private int folderId;
    private int uid;
    public class Users implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer uid;
    private String username;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "users")
    private Collection<Folders> foldersCollection;
    I left out @Basic & @Column annotations for sake of less code.
    EJB method
    public void insertFile(String fileName, int folderID, int uid){
    FilesPK pk = new FilesPK();
    pk.setUid(uid);
    Files file = new Files();
    file.setFilename(fileName);
    file.setFilesPK(pk);
    FoldersPK folderPk = new FoldersPK(folderID, uid);
         // My understanding that it should automatically handle folderId in files table,
    // but it is not…
    file.setFolders(em.find(Folders.class, folderPk));
    em.persist(file);
    It is giving error:
    Internal Exception: java.sql.SQLException: Field 'folderid' doesn't have a default value_
    Error Code: 1364
    Call: INSERT INTO files (filename, uid, fileid) VALUES (?, ?, ?)_
    _       bind => [hello.txt, 1, 0]_
    It is not even considering folderId while inserting into db.
    However it works fine when I add folderId variable in Files entity and changed insertFile like this:
    public void insertFile(String fileName, int folderID, int uid){
    FilesPK pk = new FilesPK();
    pk.setUid(uid);
    Files file = new Files();
    file.setFilename(fileName);
    file.setFilesPK(pk);
    file.setFolderId(folderId) // added line
    FoldersPK folderPk = new FoldersPK(folderID, uid);
    file.setFolders(em.find(Folders.class, folderPk));
    em.persist(file);
    My question is that is this behavior expected or it is a bug.
    Is it required to add "column_name" variable separately even when an entity has reference to ManyToOne mapping foreign Entity ?
    I used Mysql 5.1 for database, then generate entities using toplink, JPA 1.0, glassfish v2.1.
    I've also tested this using eclipselink and got same error.
    Please provide some pointers.
    Thanks

    Hello,
    What version of EclipseLink did you try? This looks like bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=280436 that was fixed in EclipseLink 2.0, so please try a later version.
    You can also try working around the problem by making both fields writable through the reference mapping.
    Best Regards,
    Chris

  • How to extract data from xml and insert into Oracle table

    Hi,
    I have a large xml file. which will have hundreds of the following transaction tags having column names and there values.
    There is a table one of the schema with coulums "actualCostRate","billRate"....etc.
    I need to extract the values of these columns and insert into the table
    <Transaction actualCostRate="0" billRate="0" chargeable="1" clientID="NikuUK" chargeCode="LCOCD1" externalID="L-RESCODE_UK1-PROJ_UK_CNT_GBP-37289-8" importStatus="N" projectID="TESTPROJ" resourceID="admin" transactionDate="2002-02-12" transactionType="L" units="11" taskID="5017601" inputTypeCode="SALES" groupId="123" voucherNumber="ABCVDD" transactionClass="ABCD"/>
    <Transaction actualCostRate="0" billRate="0" chargeable="1" clientID="NikuEU" chargeCode="LCOCD1" externalID="L-RESCODE_US1-PROJ_EU_STD2-37291-4" importStatus="N" projectID="TESTPROJ" resourceID="admin" transactionDate="2002-02-04" transactionType="L" units="4" taskID="5017601" inputTypeCode="SALES" groupId="124" voucherNumber="EEE222" transactionClass="DEFG"/>

    Re: Insert from XML to relational table
    http://www.google.ae/search?hl=ar&q=extract+data+from+xml+and+insert+into+Oracle+table+&btnG=%D8%A8%D8%AD%D8%AB+Google&meta=

  • ORA-00600: internal error code while inserting data in table

    hi gems..
    i am getting the below error while inserting data in a table...
    *ORA-00600: internal error code, arguments: [kqd-objerror$ ] , , [0], [98], [BIN$sm1O+fYhF1jgRAAhKNYyZA==$0], [], [], [], [], [], [], []*
    i can select the table absolutely but cant insert datas(but this is the schema owner and so datas should get inserted)
    i have checked the alert.log...the entries in last few lines are like this:
    <msg time='2011-11-25T03:08:55.763+05:30' org_id='oracle' comp_id='clients'
    type='UNKNOWN' level='16' host_id='ICS167DOR'
    host_addr='10.184.134.139'>
    <txt>Directory does not exist for read/write [oracle/ora11g/app/ora11g/product/11.2.0/dbhome_1/log] [oracle/ora11g/app/ora11g/product/11.2.0/dbhome_1/log/diag/clients]
    </txt>
    </msg>
    please help...thanks in advance
    Edited by: user12780416 on Nov 25, 2011 3:29 AM

    hi...
    finally i got the solution...i know that this problem may occur due to some other reasons also for different users...but the problem which caused the developers facing the error in this case is below:
    they faced the error while importing the dumps in the server. at the same time the application developers told that they can select the tables but cannot insert any datas.
    after listenning to this, i assumed that this may be a space problem with the system tablespace as it is responsible for storing the data dictionary.
    i asked for the free spaces for the system tablespace and got the reason. It has only 0.2% left.
    i told them to issue the resize command for the system01.dbf datafile(allocated 2GB more) and the problem got resolved.
    Hope this helps..thanks

  • Taking More Time while inserting into the table (With foriegn key)

    Hi All,
    I am facing problem while inserting the values into the master table.
    The problem,
    Table A -- User Master Table (Reg No, Name, etc)
    Table B -- Transaction Table (Foreign key reference with Table A).
    While inserting the data's in Table B, i need to insert the reg no also in table B which is mandatory. I followed the logic which is mentioned in the SRDemo.
    While inserting we need to query the Table A first to have the values in TableABean.java.
    final TableA tableA= (TableA )uow.executeQuery("findUser",TableA .class, regNo);
    Then, we need to create the instance for TableB
    TableB tableB= (TableB)uow.newInstance(TableB.class);
    tableB.setID(bean.getID);
    tableA.addTableB(tableB); --- this is for to insert the regNo of TableA in TableB.. This line is executing the query "select * from TableB where RegNo = <tableA.getRegNo>".
    This query is taking too much time if values are more in the TableB for that particular registrationNo. Because of this its taking more time to insert into the TableB.
    For Ex: TableA -- regNo : 101...having less entry in TableB means...inserting record is taking less than 1 sec
    regNo : 102...having more entry in TableB means...inserting record is taking more than 2 sec
    Time delay is there for different users when they enter transaction in TableB.
    I need to avoid this since in future it will take more time...from 2 sec to 10 sec, if volume of data increases mean.
    Please help me to resolve this issue...I am facing it now in production.
    Thanks & Regards
    VB

    Hello,
    Looks like you have a 1:M relationship from TableA to TableB, with a 1:1 back pointer from TableB to TableA. If triggering the 1:M relationship is causing you delays that you want to avoid there might be two quick ways I can see:
    1) Don't map it. Leave the TableA->TableB 1:M unmapped, and instead just query for relationship when you do need it. This means you do not need to call tableA.addTableB(tableB), and instead only need to call tableB.setTableA(tableA), so that the TableB->TableA relation gets set. Might not be the best option, but it depends on your application's usage. It does allow you to potentially page the TableB results or add other query query performance options when you do need the data though.
    2) You are currently using Lazy loading for the TableA->TableB relationship - if it is untriggered, don't bother calling tableA.addTableB(tableB), and instead only need to call tableB.setTableA(tableA). This of course requires using TopLink api to a) verify the collection is an IndirectCollection type, and b) that it is hasn't been triggered. If it has been triggered, you will still need to call tableA.addTableB(tableB), but it won't result in a query. Check out the oracle.toplink.indirection.IndirectContainer class and it's isInstantiated() method. This can cause problems though in highly concurrent environments, as other threads may have triggered the indirection before you commit your transaction, so that the A->B collection is not up to date - this might require refreshing the TableA if so.
    Change tracking would probably be the best option to use here, and is described in the EclipseLink wiki:
    http://wiki.eclipse.org/Introduction_to_EclipseLink_Transactions_(ELUG)#Attribute_Change_Tracking_Policy
    Best Regards,
    Chris

  • Jython error while updating a oracle table based on file count

    Hi,
    i have jython procedure for counting counting records in a flat file
    Here is the code(took from odiexperts) modified and am getting errors, somebody take a look and let me know what is the sql exception in this code
    COMMAND on target: Jython
    Command on source : Oracle --and specified the logical schema
    Without connecting to the database using the jdbc connection i can see the output successfully, but i want to update the oracle table with count. any help is greatly appreciated
    ---------------------------------Error-----------------------------
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 45, in ?
    java.sql.SQLException: ORA-00936: missing expression
    ---------------------------------------Code--------------------------------------------------
    import java.sql.Connection
    import java.sql.Statement
    import java.sql.DriverManager
    import java.sql.ResultSet
    import java.sql.ResultSetMetaData
    import os
    import string
    import java.sql as sql
    import java.lang as lang
    import re
    filesrc = open('c:\mm\xyz.csv','r')
    first=filesrc.readline()
    lines = 0
    while first:
    #get the no of lines in the file
    lines += 1
    first=filesrc.readline()
    #print lines
    ## THE ABOVE PART OF THE PROGRAM IS TO COUNT THE NUMBER OF LINES
    ## AND STORE IT INTO THE VARIABLE `LINES `
    def intWithCommas(x):
    if type(x) not in [type(0), type(0L)]:
    raise TypeError("Parameter must be an integer.")
    if x < 0:
    return '-' + intWithCommas(-x)
    result = ''
    while x >= 1000:
    x, r = divmod(x, 1000)
    result = ",%03d%s" % (r, result)
    return "%d%s" % (x, result)
    ## THE ABOVE PROGRAM IS TO DISPLAY THE NUMBERS
    sourceConnection = odiRef.getJDBCConnection("SRC")
    sqlstring = sourceConnection.createStatement()
    sqlstmt="update tab1 set tot_coll_amt = to_number( "#lines ") where load_audit_key=418507"
    sqlstring.executeQuery(sqlstmt)
    sourceConnection.close()
    s0=' \n\nThe Number of Lines in the File are ->> '
    s1=str(intWithCommas(lines))
    s2=' \n\nand the First Line of the File is ->> '
    filesrc.seek(0)
    s3=str(filesrc.readline())
    final=s0 + s1 + s2 + s3
    filesrc.close()
    raise final

    i changed as you adviced ankit
    am getting the following error now
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 37, in ?
    java.sql.SQLException: ORA-00911: invalid character
    here is the modified code
    sourceConnection = odiRef.getJDBCConnection("SRC")
    sqlstring = sourceConnection.createStatement()
    sqlstmt="update tab1 set tot_coll_amt = to_number('#lines') where load_audit_key=418507;"
    result=sqlstring.executeUpdate(sqlstmt)
    sourceConnection.close()
    Any ideas
    Edited by: Sunny on Dec 3, 2010 1:04 PM

  • Best Practice to fetch SQL Server data and Insert into Oracle Tables

    Hello,
    I want to read sqlserver data everry half an hour and write into oracle tables ( in two different databases). What is the best practice for doing this?
    We do not have any database dblinks from oracle to sqlserver and vice versa.
    Any help is highly appreciable?
    Thanks

    Well, that's easy:
    use a TimerTask to do the following every half an hour:
    - open a connection to sql server
    - open two connections to the oracle databases
    - for each row you read from the sql server, do the inserts into the oracle databases
    - commit
    - close all connections

  • Weird behaviour while inserting in a table

    Hi All,
    I am coming across a wierd problem.
    We are using Oracle 10.2.0.3.0.
    There is a collection system where by we give snapshot of the entire database in a pre-requisite format.
    Recently a strange thing is happenning.
    When we try to insert into a table data for 3 Lac individual (1 row per customer shud be inserted) customers from 12 different tables, it inserts more than 4 million rows.
    Another observation is that for one account there are 39,98,300 rows and rest has data for some customers and not all.
    When i printed the count of the select query, it returned exactly 3 Lac rows.
    But when i run the proc from SQL prompt, it inserted exactly 3 Lac rows.
    Has anyone come across such a problem.
    Thanks in advance.
    Ameya.

    Ameya wrote:
    I am coming across a wierd problem.Problems are always weird,interesting etc until you know how to fix them.
    Recently a strange thing is happenning.Since when, was there a change in your code, table re-org, some objects/code dropped etc.
    When we try to insert into a table data for 3 Lac individual (1 row per customer shud be inserted) customers from 12 different tables, it inserts more than 4 million rows.How do you define individual customer, do you have unique constraint on the table, what is your business rule for unique customer identification etc.?
    Does your 12 different tables same structure or 12 different structures.
    What process inserts data - list the code.
    Another observation is that for one account there are 39,98,300 rows and rest has data for some customers and not all.
    When i printed the count of the select query, it returned exactly 3 Lac rows.Your code ?
    But when i run the proc from SQL prompt, it inserted exactly 3 Lac rows.can you recreate problem using some sample representative code.
    SS

  • Parsing XML file & insert into Oracle Tables

    Hi,
    Following is a sample xml file which is an input for a oracle procedure :
    <Sales ID="1" CreatedDate="16-Jan-2007" CreatedTime="16:09:40">
    <Customer ID="1" Name="Scott" Address="City1">
         <Order ID="1" Date="15-Jan-2007" TotItems="2" Value="200">
              <Item ID="01" Name="Chocolate" Qty="2" Amount="80" />
              <Item ID="03" Name="Biscuit" Qty="5" Amount="120" />
         </Order>
    </Customer>
    <Customer ID="2" Name="Tiger" Address="City2">
         <Order ID="1" Date="15-Jan-2007" TotItems="1" Value="500">
              <Item ID="01" Name="Pizza" Qty="3" Amount="500" />
         </Order>
    </Customer>
    <User ID="ABC" Name="TestUser" LastLogin="16-Jan-2007" />
    <City Code="NY" Name="New York" />
    <City Code="NJ" Name="New Jersy" />
    </Sales>
    I have individual tables for Sales, Customer, Order, Item, User & City tags with proper referential constraints. I have to parse the xml & have to insert the corresponsing tables for each & every tag if the ID in individual tag does not exists in the table. If the ID already exist, then, I have to update other attributes in the table for the corresponding ID.
    Can anyone suggest me the simplest way to perform the above said scenario?

    Dera Michael,
    Sorry for the confusing previous reply. I went through your solution again and tried for my XML File.
    I have stored the XML File in table XXLF_DS_XML.Should I make use of the table in the below query.
    Here is my SQL Query erroring Out
    SQL> SELECT EXTRACTVALUE(s.COLUMN_VALUE,
    2 '/Header@orderID') ID
    3 ,EXTRACTVALUE(c.COLUMN_VALUE,
    4 '/Detail@lineNumber') lienum
    5 ,EXTRACTVALUE(t.COLUMN_VALUE,
    6 '/Detail/Tax@currency') currency
    7 ,EXTRACTVALUE(t.COLUMN_VALUE,
    8 '/Detail/Tax/Money') customer_name
    9 FROM TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE('- <Recordset>
    10 - <Header dueDate="2007-01-17T16:09:05" orderDate="2004-01-17" orderID="0009" transactionID="1389"
    type="new">
    11 <KeyIndex>2</KeyIndex>
    12 - <BillTo>
    13 - <Address addressID="5619" isoCountryCode="US">
    14 <Name>fMat</Name>
    15 - <PostalAddress name="default">
    16 <Street>34545</Street>
    17 <City>dfgfg</City>
    18 <State>AZ</State>
    19 <PostalCode>85086-1693</PostalCode>
    20 <County>Maricopa</County>
    21 <Country>US</Country>
    22 </PostalAddress>
    23 <Email name="default">[email protected]</Email>
    24 </Address>
    25 </BillTo>
    26 <PromotionCode />
    27 - <SubTotal>
    28 <Money currency="USD">32.49</Money>
    29 </SubTotal>
    30 - <Tax>
    31 <Money currency="USD">2.32</Money>
    32 <Description />
    33 </Tax>
    34 - <Shipping>
    35 <Money currency="USD">8.95</Money>
    36 <Description />
    37 </Shipping>
    38 </Header>
    39 - <Detail lineNumber="1" quantity="1">
    40 - <ItemDetail>
    41 - <UnitPrice>
    42 <Money currency="USD">29.99</Money>
    43 </UnitPrice>
    44 <ShortName>Little;reg; pxxxx® Learning System</ShortName>
    45 </ItemDetail>
    46 - <Tax>
    47 <Money currency="USD">1.68</Money>
    48 <Description />
    49 - <TaxDetail category="sales">
    50 - <TaxAmount>
    51 <Money currency="USD">1.68</Money>
    52 </TaxAmount>
    53 <TaxLocation>AZ</TaxLocation>
    54 </TaxDetail>
    55 </Tax>
    56 </Detail>
    57 - <Detail lineNumber="2" quantity="1">
    58 - <ItemDetail>
    59 - <UnitPrice>
    60 <Money currency="USD">29.99</Money>
    61 </UnitPrice>
    62 <ShortName>Little;reg; pxxxx® Learning System</ShortName>
    63 </ItemDetail>
    64 - <Tax>
    65 <Money currency="USD">1.68</Money>
    66 <Description />
    67 - <TaxDetail category="sales">
    68 - <TaxAmount>
    69 <Money currency="USD">1.68</Money>
    70 </TaxAmount>
    71 <TaxLocation>AZ</TaxLocation>
    72 </TaxDetail>
    73 </Tax>
    74 - <Tax>
    75 <Money currency="USD">0.68</Money>
    76 <Description />
    77 - <TaxDetail category="sales">
    78 - <TaxAmount>
    79 <Money currency="USD">0.68</Money>
    80 </TaxAmount>
    81 <TaxLocation>DISTRICT</TaxLocation>
    82 </TaxDetail>
    83 </Tax>
    84 </Detail>
    85 </Recordset>'),'/Recordset/Header'))) s
    86 ,TABLE(XMLSEQUENCE(EXTRACT(c.COLUMN_VALUE,
    87 '/Recordset/Detail'))) c
    88 ,TABLE(XMLSEQUENCE(EXTRACT(t.COLUMN_VALUE,
    89 '/Recordset/Detail/Tax'))) t
    90 /
    ,TABLE(XMLSEQUENCE(EXTRACT(c.COLUMN_VALUE,
    ERROR at line 86:
    ORA-00904: "C"."COLUMN_VALUE": invalid identifier
    Here is my XML Data
    <Recordset>
    <Header dueDate="2007-01-17T16:09:05" orderDate="2004-01-17" orderID="0009" transactionID="1389"
    type="new">
    <KeyIndex>2</KeyIndex>
    <BillTo>
    <Address addressID="5619" isoCountryCode="US">
    <Name>fMat</Name>
    <PostalAddress name="default">
    <Street>34545 </Street>
    <City>dfgfg</City>
    <State>AZ</State>
    <PostalCode>85086-1693</PostalCode>
    <County>Maricopa</County>
    <Country>US</Country>
    </PostalAddress>
    <Email name="default">[email protected]</Email>
    </Address>
    </BillTo>
    <PromotionCode/>
    <SubTotal>
    <Money currency="USD">32.49</Money>
    </SubTotal>
    <Tax>
    <Money currency="USD">2.32</Money>
    <Description/>
    </Tax>
    <Shipping>
    <Money currency="USD">8.95</Money>
    <Description/>
    </Shipping>
    </Header>
    <Detail lineNumber="1" quantity="1">
    <ItemDetail>
    <UnitPrice>
    <Money currency="USD">29.99</Money>
    </UnitPrice>
    <ShortName>Little;reg; pxxxx® Learning System </ShortName>
    </ItemDetail>
    <Tax>
    <Money currency="USD">1.68</Money>
    <Description/>
    <TaxDetail category="sales">
    <TaxAmount>
    <Money currency="USD">1.68</Money>
    </TaxAmount>
    <TaxLocation>AZ</TaxLocation>
    </TaxDetail>
    </Tax>
    </Detail>
    <Detail lineNumber="2" quantity="1">
    <ItemDetail>
    <UnitPrice>
    <Money currency="USD">29.99</Money>
    </UnitPrice>
    <ShortName>Little;reg; pxxxx® Learning System </ShortName>
    </ItemDetail>
    <Tax>
    <Money currency="USD">1.68</Money>
    <Description/>
    <TaxDetail category="sales">
    <TaxAmount>
    <Money currency="USD">1.68</Money>
    </TaxAmount>
    <TaxLocation>AZ</TaxLocation>
    </TaxDetail>
    </Tax>
    <Tax>
    <Money currency="USD">0.68</Money>
    <Description/>
    <TaxDetail category="sales">
    <TaxAmount>
    <Money currency="USD">0.68</Money>
    </TaxAmount>
    <TaxLocation>DISTRICT</TaxLocation>
    </TaxDetail>
    </Tax>
    </Detail>
    </Recordset>
    Thanks

  • Can select, but cannot insert into oracle tables using php.

    I am having trouble inserting data into a tables in oracle using PHP. I can insert into the tables using baninst1, but nothing else. I can't even insert using the tables' owner. Every time I try I get the ORA-00492 error of table or view does not exist. However, I can run a select statement just fine. So far, baninst1 is the only user that can actually do inserts. I've triple checked all the table grants and everything is fine. Also, I can copy/paste the exact insert statement into SQL*Plus and it works with the correct user. It doesn't have to be baninst1. I've tried everything I can think of. I've tried putting the table name in quotes, adding the schema name to the table, checking public synonyms, but everything appears to be ok. I would greatly appreciate any suggestions others may have.
    I'm using PHP 5.2.3 with an oracle 9i DB.

    Here is the code that doesn't work. It works only with baninst1, no other username will work and all I do is change the my_username/my_password to something different. This is one example function where I try to do an insert, but it doesn't work on any of the tables I try.
    Thanks for looking.
    class Oracle {
         private $oracleUser = "my_username";
         private $oraclePassword = "my_password";
         private $oracleDB = "MY_DB";
         private $c = null;
         function Connect() {
              if ( !($this->c = ocilogon( $this->oracleUser, $this->oraclePassword, $this->oracleDB ) ) )
                   return false;
              return true;
         function AddNewTest($testName, $course, $section, $term, $maxAttempts, $length, $startDate, $startTime, $endDate, $endTime)
              $result = "";
              if( $this->c == null )
                   $this->Connect();     
              $splitIndex = strpos($course, " ");
              $subjectCode = substr($course, 0, $splitIndex);
              $courseNumber = substr($course, $splitIndex + 1);
              $insertStatment = "insert into szbtestinfo(szbtestinfo_test_name,
                                                                szbtestinfo_course_numb,
                                                           szbtestinfo_section,
                                                                szbtestinfo_max_attempts,
                                                                szbtestinfo_length_minutes,
                                                                szbtestinfo_start,
                                                                szbtestinfo_end,
                                                                szbtestinfo_id,
                                                                szbtestinfo_subj_code,
                                                                szbtestinfo_eff_term)
                                                                values( '" . $testName .
                   "', '" . $courseNumber .
                   "', '" . $section .
                   "', " . $maxAttempts .
                   ", " . $length .
                   ", to_date('" . $startDate . " " . $startTime . "', 'MM/DD/YYYY HH24:MI')" .
                   ", to_date('" . $endDate . " " . $endTime . "', 'MM/DD/YYYY HH24:MI')" .
                   ", szsnexttest.nextval" .
                   ", '" . $subjectCode .
                   "', '" . $term . "')";
              //return $insertStatment;
              $s = OCIParse($this->c, $insertStatment);
              try
                   $result = OCIExecute($s);
              catch(exception $e)
              return $result;
         }

  • Insert or fetch  XML data so a sto insert in oracle table

    Hi
    I have the following XML structure .
    Kindly guide as I am new to using XML .
    Please provide the simplest and fastest way to extract or insert data from the below structure and insert in to oracle tables .
    <id>
    <id1> 123</id1>
    <fe>
    <fe1>1</fe1>
    <fe2>1</fe2>
    </fe>
    <a>
    <fe1>a1</fe1>
    <fe2>a2</fe2>
    </a>
    <newid>
    <atr>
    <atr1> 34</atr1>
    <atr2> 76 </atr2>
    </atr>
    <pr>
    <pr1> 34</pr1>
    <pr2> 34</pr2>
    </pr>
    </newid>
    </id >

    Use XMLTABLE to convert the xml and INSERT ALL to do a multitable insert.
    E.g.
    http://odieweblog.wordpress.com/2012/05/10/how-to-load-xml-data-into-multiple-tables/
    http://rwijk.blogspot.co.uk/2010/03/shredding-xml-into-multiple-tables-in.html

  • Avoiding duplicate records while inserting into the table

    Hi
    I tried the following insert statement , where i want to avoid the duplicate records while inserting itself
    but giving me the errror like invalid identifier, though the column exists in the table
    Please let me know Where i'm doing the mistake.
    INSERT INTO t_map tm(sn_id,o_id,txt,typ,sn_time)
       SELECT 100,
              sk.obj_id,
              sk.key_txt,
              sk.obj_typ,
              sysdate,
              FROM S_KEY sk
        WHERE     sk.obj_typ = 'AY'
              AND SYSDATE BETWEEN sk.start_date AND sk.end_date
              AND sk.obj_id IN (100170,1001054)
               and   not exists  (select 1
                                                                   FROM t_map tm1 where tm1.O_ID=tm.o_id
                                                                        and tm1.sn_id=tm.sn_id
                                                                        and tm1.txt=tm.txt
                                                                        and tm1.typ=tm.typ
                                                                        and tm1.sn_time=tm.sn_time )

    Then
    you have to join the table with alias tml where is that ?do you want like this?
    INSERT INTO t_map tm(sn_id,o_id,txt,typ,sn_time)
       SELECT 100,
              sk.obj_id,
              sk.key_txt,
              sk.obj_typ,
              sysdate,
              FROM S_KEY sk
        WHERE     sk.obj_typ = 'AY'
              AND SYSDATE BETWEEN sk.start_date AND sk.end_date
              AND sk.obj_id IN (100170,1001054)
               and   not exists  (select 1
                                                                   FROM t_map tm where sk.obj_ID=tm.o_id
                                                                        and 100=tm.sn_id
                                                                        and sk.key_txt=tm.txt
                                                                        and sk.obj_typ=tm.typ
                                                                        and sysdate=tm.sn_time )

  • Insert a oracle table from jquery/ajax

    Hi.
    i am new on apex and will like to know if can help me with my question.
    i am calling an on demmand process from jquery javascript to insert some data on oracle apex_collection (i do delete and insert on the apex collection and works fine) , but i need to insert an oracle database table directly from jquery (through an on demmand process or any other way).
    actually, i have an html page with an anonymus pl/sql which shows a list of items where user enter some values; using javascript, i call an on demmand - javascript process that will do the insert on an oracle table, but nothing happens. no data get inserted to my table
    actually i am calling the on demmand process using this on javascript, and works nice, but only on apex_collection , not on oracle database table.
                              var ajaxRequest = new htmldb_Get(null,&APP_ID.,"APPLICATION_PROCESS=ADD_PRODUCTS",&APP_PAGE_ID.);
                              ajaxRequest.add('P1_PRODUCT_ID',html_GetElement('P1_PRODUCT_ID').value);
                              ajaxRequest.add('P1_QTY',html_GetElement('P1_QTY').value);
                              ajaxResult = ajaxRequest.get();
    it is importante to mention that i am NOT SUBMITTING or refreshing the page at any time, because it will make it too slow, I think it has something to do with the problem but not sure.
    thanks in advance.
    Anthony.

    Hi Scott. thanks for your interest.
    ok, i am using Application Express 4.2.2.00.11 (Oracle Database SE 11gR2)
    i have created a HTML region Source with this code to call the Ajax Process :
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Totalizar</title>
    <script type="text/javascript">
    $(function()
            // Save the Order
            $("#Save").click
                function()
                     var ajaxRequestd = new htmldb_Get(null,&APP_ID.,"APPLICATION_PROCESS=SAVE",&APP_PAGE_ID.);
                     ajaxRequestd.add('P1_CODIGO_CLIENTE',html_GetElement('P1_CODIGO_CLIENTE').value);
                     ajaxRequestd.add('P1_TIPO_CLIENTE',html_GetElement('P1_TIPO_CLIENTE').value);
                     ajaxResult = ajaxRequestd.get();
                     alert('Order Placed !');
    </script>
    </head>
    <body>
    <div id="totals"></div>
    <p align="center" style="clear: both;">
    <button type="button" style="font-weight: bold;background-color:lightgray;margin-left:auto;margin-right:auto;display:block;margin-top:0%;margin-bottom:0%" id="Save">Place Order</button>
    </p>
    </body>
    </html>
    the Message 'Order Placed !' is displayed on the page, so it tells me that the javascript is executing (i will like to display some message or alert inside the SAVE ajax process, to make sure it executes and check values at that moment, but don't know how)
    and here is my "SAVE" on Demand process, with this settings:
          - Process Point - Run this process when request by ajax
          - Run Process - One per Page visit
    whit this source code on it:
       -- Insert into table
        insert into cab_orders(customer_id, order_total, order_timestamp, user_name)
           values(:P1_CODIGO_CLIENTE, null, systimestamp, upper(:APP_USER));
        commit;
    Remember that at this point the page has not been refresehed or submitted, maybe tis where the problem come from.
    Thanks in advance for any tip !

  • How to read ecel sheet and insert into oracle table

    hi all,
    am working on forms builder 6i. and i want , from a trigger to read from a a sheet excel file the data and insert into a table that i had aleady created.
    i whrite a code that can till now open the excel file but i cant read the data to insert it into the table.
    am using TEXT_IO.IS_OPEN to open the file
    TEXT_IO.GET_LINE to take each line
    and subst(x as variable) to read the first line , but the subsrt return nohing
    any solution??

    There's already a topic made on this: how to copy data from excel to oracle forms

  • Incorrect data value when insert into oracle table

    Would like to ask expert here, how could I insert data into oracle table where the value is 03 ? The case is like that,  the column was defined as varchar2(50) data type, and I have a csv file where the value is 03 but when load into oracle table the value become 3 instead of 03.

    user11432758 wrote:
    Would like to ask expert here, how could I insert data into oracle table where the value is 03 ? The case is like that,  the column was defined as varchar2(50) data type, and I have a csv file where the value is 03 but when load into oracle table the value become 3 instead of 03.
    implicit datatype conversion to NUMBER can result in leading zero to be eliminated.
    How do I ask a question on the forums?
    https://forums.oracle.com/message/9362002#9362002

Maybe you are looking for

  • Spotlight does not stop indexing

    I need help: Just started the brand new MacPro 2x 2.66. The long desired spotlight (I run osx 1.3.9 before) does not work. Spotlight never stop to index. It runs and runs. If I add the hard drive to privacy in the system preferences it stops, but as

  • Screensaver of Death

    Brand new 13-inch MBP, upgraded ram to 4GB and replaced the HD with the 320GH 7200RPM drive from my previous MBP. Preformed an Archive & Install of the OS, everything works great. The problem is that the Screen-Saver pref pane kills the System Prefer

  • Persistence problems wit seam/hibernate and EntityHome

    This is the scenario(using JBoss Seam 2.2 and JBoss Application Server 5.1.0.): I've got TestCases and TestSteps. One TestCase has multiple TestSteps. I have a table that displays the steps and actions like "addStep" and "deleteStep". I use rich:inpl

  • Palm Profile - LOST CONTACTS

    I've already read one post on this topic but am wondering if anyone else has had any RECENT problems relating to this. I recently got my third Palm Pre from Sprint Replacement (the other two had to be returned due to stupid AND common problems, power

  • Help on this report(sudden crash OS)

    just got mother board fixed, is this something related? Interval Since Last Panic Report:  3799 sec Panics Since Last Report:          1 Anonymous UUID:                    8F022219-65FE-40A6-8BFB-E74CF7C8AC7C Wed May 15 20:25:03 2013 panic(cpu 0 call