Table lock up solution in oracle 10g

The Business where I work want to create a message pop up screen to resolved locking issue with Yes /no button. The problem is that there are two forms that are updating the same database tables, what the business want to achieve is to be able to create a pop up screen supported by a new table with use userid, message etc. they want to build a form library code that check this table every so often for new message and if it finds one, then launch the new simple form.A message can be put in this form if one guy is trying to update a table that as be locked by another user, the user that locked the table can be informed instantly that he as to act.
thabk you.

You can use SELECT ... FOR UPDATE NOWAIT statement for acquiring locks on rows to be updated. If it goes through, you proceed with processing your transaction and if it fails to acquire locks then it will throw exception ORA-00054 which you can handle in exception handler to show the message that record is locked by another user.
Hope it helps!

Similar Messages

  • Nested tables and multiset operators in Oracle 10g

    Consider the following scenario:
    We have two identical relations R and S defined as:
    CREATE TABLE R(
    a INTEGER,
    b table_type)
    NESTED TABLE b STORE as b_1;
    CREATE TABLE S(
    a INTEGER,
    b table_type)
    NESTED TABLE b STORE as b_2;
    where table_typ is defined as
    CREATE TYPE table_typ AS TABLE OF VARCHAR2(8);
    Suppose we have two instances of R and S, each having one tuple as follows: R(1,table_typ('a','b')) and S(1,table_typ('b','c')).
    I would like to "merge" these two simple instances (e.g., achieve the effect of a simple SELECT * FROM R UNION SELECT * FROM S query) and obtain the following resulting instance: Result(1,table_typ('a','b','c')).
    Would this be possible in Oracle 10g? A simple UNION does not work (I got a "inconsistent datatypes: expected - got SCOTT.TABLE_TYP" error). I also took a look at the MULTISET UNION operator over nested tables available in Oracle 10g, but it doesn't seem to get me anywhere. Any help on this would be greatly appreciated.
    Thank you,
    Laura

    Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    SQL> CREATE OR REPLACE TYPE table_type AS TABLE OF VARCHAR2 (8);
      2  /
    Type created.
    SQL> CREATE TABLE r(
      2    a INTEGER,
      3    b table_type)
      4    NESTED TABLE b STORE as b_1;
    Table created.
    SQL> CREATE TABLE s(
      2    a INTEGER,
      3    b table_type)
      4    NESTED TABLE b STORE as b_2;
    Table created.
    SQL> INSERT INTO r VALUES (1, table_type ('a', 'b'));
    1 row created.
    SQL> INSERT INTO s VALUES (1, table_type ('b', 'c'));
    1 row created.
    SQL> COLUMN c FORMAT A10;
    SQL> SELECT r.a, r.b MULTISET UNION DISTINCT s.b c
      2  FROM   r, s
      3  WHERE  r.a = s.a;
             A C
             1 TABLE_TYPE('a', 'b', 'c')
    SQL>

  • Send table data through mail in oracle 10g

    Hi ,
    I am trying to send a mail through oracle 10g .
    I can send mail through utl_mail .
    The text that I need to send is data from a table .
    The table contains information about all the employees .
    Table name is person . If the employee is absent on any day without any reason there would be a row of this employee in the table person.
    There is also a column named email in this table .
    I need to write a stored procedure which will send the data about each particular employee to their respective email for all the employees in the person table .
    Can anyone please help me on this .
    Thank you.

    Try this forum thread first:
    Re: send email by procedure
    There are lots of articles on how to accomplish this taks on the web:
    -- utl_smtp example
    http://it.toolbox.com/wiki/index.php/Send_email_from_Oracle_Database
    http://www.databasejournal.com/features/oracle/article.php/3423431/Sending-e-mail-from-within-Oracle.htm
    -- From Application Express product
    http://www.oracle.com/technology/products/database/application_express/howtos/howto_workflow.html
    HTH -- Mark D Powell --

  • Migrating table from Sybase 12 to Oracle 10g

    Hi ,
    We have a situation where we have to migrate multiple Sybase databases to Oracle10g . These multiple database have same set of tables but different data in these tables on each sybase database ( data differ, based on location or region wise but same table name and structure). We want to migrate all these sybase database to Oracle 10g and in single database, which involves inserting data from multiple tables ( though they exist on different database in sybase) into single Oracle table.
    for example if we have a table 'TESTK' that exist on five different sybase database but with different region wise data. I want to bring data from these five tables( Five as they exist in five differet sybase databases) and insert them into a single oracle table 'TESTK' .
    Have anybody ever face such scenerio , what are all possible approch please suggest. Once data is inserted into oracle table i need to partitioned this oracle table as well.

    It is not quite clear whether you have multiple tables (referencing each other) in multiple sybase databases or either one table or several non connected tables in multiple sybase databases.
    In the first case of course your task is harder because you need to keep references and most probably you cannot blindly copy data from db 1, db 2 and unite them because they can have the same id's coming from different sources.
    In the second case your task of course is much easier you can simply load all your data in Oracle tables either using some interim tables (if you need to filter out duplicates) or load data straight into target tables if you are sure you haven't duplicates.
    Also another question in case 1 is whether intersection of your data is 0 rows i.e. all data are completely different in each source db or not.
    So I'm sure you can find tools for blindly moving data from sybase to Oracle, although if you need to do some more complex filtering, computation or whatever you most probably need to write it yourself.
    I'v done a few data conversion projects from one schema to another and as the requirements were quite complex the only possibility for us was to initiate a separate data conversion project and create conversion software (pl/sql packages manually).
    You can find an overview of our approach in my article "Data migration from old to new application: an experience" here http://www.gplivna.eu/papers/legacy_app_migration.htm
    Gints Plivna
    http://www.gplivna.eu

  • How many tables can i create in Oracle 10g ?

    hi every body !
    how many tables can create in oracle 10g ?
    thank you !

    Unlimited
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14237/limits003.htm

  • Insert and update same record of table using store procedure in oracle 10g

    Hi,
    I am using oracle sql developer for this.
    I have created Store procedure which run after every 30mins of interval.
    the problem is Ii need to insert data for first time of day then later that same record should update for particular field(here its plan code).
    if new field is coming (if new plan code is generated) then it should insert data and again update same for interval.
    means for each plan individual record(i.e. plan wise summary) should be there for only a day. next day new record for same plan.

    Hi,
    You should use Merge like shown below:-
    Merge into original_table a
    using second_table b
    on (a.primary_key=b.primary_key and a.primary_key........)
    when match then
    update set column_list=b.column_list
    when not match then
    isert into (column list)
    values(a.column_list)If you dont know much about merge then follow below link..
    http://www.oracle-developer.net/display.php?id=203
    http://www.oracle-base.com/articles/10g/merge-enhancements-10g.php

  • Does oracle 9i has a table like v$sql_bind_capture in Oracle 10g?

    I want to know the bind value in sql command, in 10g I can join v$sql_bind_capture to fine the value. But in 9i, there is no v$sql_bind_capture. Is there any other way I can find the bind value??

    I want to know the bind value in sql command, in 10g I can join v$sql_bind_capture to fine the value. But in 9i, there is no v$sql_bind_capture. Is there any other way I can find the bind value??Not in 9i.
    Sql trace or process dump would be the only way to extract the bind values.
    We have v$sql_bind_data view, but it's session-scope.
    ================================
    Dion Cho - Oracle Performance Storyteller
    http://dioncho.wordpress.com (english)
    http://ukja.tistory.com (korean)
    ================================

  • Error in Drop Table in Oracle 10G

    Hi All,
    When I try to drop any of the table in one of the oracle 10G database schema
    I am getting the following error.
    As for I know this error will come in PL/SQL cursor block if the exact fetch returns more than one row.
    Can any one explained the reason for this...
    Error on line 0
    DROP TABLE "TMP_GL_DATA2"
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01422: exact fetch returns more than requested number of rows
    Thanks in advance..
    Regards
    Karthik...

    Fix the error in your DDL trigger.

  • Problem with global temporary table in Oracle 10g

    Hi All,
    I face a peculiar problem in Oracle 10g with respect to Global temporary table.
    Have Oracle 10g version in Production and 11g version in UAT.
    Table_
    create global temporary table TT_TEMPGPSMANUAL
      Col_1    VARCHAR2(50),
      Col_2    VARCHAR2(500),
      Col_3    VARCHAR2(50),
      Col_4    VARCHAR2(50),
      Col_5    VARCHAR2(15),
      Col_6    VARCHAR2(20),
      Col_7    VARCHAR2(250),
      Col_8    VARCHAR2(20),
      Col_9    VARCHAR2(15),
      Col_10   VARCHAR2(20),
      Flag     NUMBER,
      Col_11   INTEGER,
      Col_12   VARCHAR2(50)
    on commit preserve rows;So this should preserve the rows inserted into this table until the session ends.
    Have a webpage in front-end where in turn, it opens another page (session is carried through) and a few rows will be inserted to this table from the webpage (through a function) on submit and the current page will be closed.
    From the parent page, if I open the sub-page data inserted in the temporary table are held and displayed (another function to fetch the values in the Global Temp table).
    The Problem in Oracle 10g (Production) is, this is not happening properly. When I close and open the sub-page, not every time I get the data stored i.e if I close and open the page 10 times, atelast 4 times the data is missed in the page (I am not getting values from temp table) randomly.
    But this does not happen in UAT (which has Oracle 11g installed) as I get the data in the webpage consistently. After passing UAT, when we rolled out to Prod, getting this issue which we are unable to get what could be the reason.
    It is very hard to debug using GTT dynamically in prod. It takes time to get Oracle 11g installed in Prod.
    Can anyone suggest?
    Regards
    Deep

    935195 wrote:
    Also, I am opening the sub-page from the parent page (through a hyperlink). Then in this case, Would session will be changed from parent to subpage? (I am not aware exactly and have the impression that, as the second page is a child, I guess it would take the same session).I'm not sure what "sub-page" or "parent page" means to you. If you're just linking from one page to another, "parent" and "child" don't really make sense since page A links to page B and B links to A quite frequently.
    Assuming that you have to log in to access the site, it is likely that the two pages share the same middle tier application session. It is unlikely that the middle tier would hold the database session from the first request open waiting to see if the user eventually requested the second page. It is theoretically possible that you could code your middle tier this way but it is extremely unlikely that you would want to do so for a variety of reasons. So, when you say "would [the] session ... be changed", it is likely that the application session would be the same for both calls but that the database session would be different.
    Justin

  • Problem with Oracle 10g Enterprise Manager DB control scheduled backup

    Hi
    DB is - Oracle Database 10g Enterprise edition-10.2.0.1.0
    OS is - Windows Server 2003, Enterprise edition, Service Pack - 2
    I have scheduled daily backup from DB control, some backup didn't completed.
    Status of backup was - "Suspended on Agent Unreachable"
    While try scheduling new backup job from DB control, it is giving error.
    Error - Connection to host as user <user_name> failed: IOException in sending Request :: Connection refused: connect
    Anyone has any clue regarding this? please help.

    Hi,
    Have a read of this thread which talks about the same issue and its solution.
    Oracle 10g EM DB console Host Preferred Credentials for Windows
    And if you are finding issues in the entering the Host credentials itself, you may need to log on as batch job. Follow thiese steps,
    +1. Go to control panel/administrative tools+
    a. click on "local security policy"
    b. click on "local policies"
    c. click on "user rights assignments"
    d. double click on "log on as a batch job"
    e. click on "add" and add the user that was entered in the "normal username" or "privileged username" section of the EM Console.
    +2. Go to the Preferences link in the EM GUI+
    a. click on Preferred Credentials (link on the left menu)
    b. under "Target Type: Host" click on "set credentials"
    c. enter the OS user who has logon as a batch job privilege into the "normal username" and "normal password" fields
    +3. Test the connection+
    a. while in the Set Credentials window, click on "Test"
    From http://www.orafaq.com/forum/t/89472/0/
    HTH
    Aman....

  • Shrinking BLOB tablespace in Oracle 10g

    Hello,
    I have table created with 32 GB in Oracle 10g with BLOB field containing images. after that I have deleted some of the images from the table but when I'm checking free space, it is show full 32 GB. But when I'm looking at Toad it shows me out of 32 GB 17 GB is free.
    my question is how to shrink/resize blob tablespace/table having BLOB field in oracle 10g 2rel ?

    Hello urgent,
    Tablespace management is not really an Oracle Spatial topic, I suppose these are georaster images?. You probably want to search and post in the more general database forums.
    The quick answer is that it is not easy. Oracle tablespaces may only be "shrunk" if the free space is at the end of the datafile at the "high water" mark. If by some wild coincidence the images you removed were indeed at the back of the datafile, then you could alter the datafile with a RESIZE command. But the odds of that being the case are incredibly low. If you really, really MUST recover that space then about the only thing to do is export the data, delete it from the tablespace, shrink the tablespace and then import the data back in. Another approach if you have the space is just move the data into another empty tablespace and then drop the original tablespace. I would guess that the salary expended for you to take everything offline and do this would be more than just buying another cheap disk. Considering that in doing your daily work you may well indeed be in this position again in a few weeks, then it makes even less sense.
    Now having said all that I have been in the situation where I MUST recover that space without taking everything offline.
    One thing you can try is to "pop" the last items off the datafile (moving them to another tablespace) identified using the query below. But this is an exercise in futility unless your resources happen to be nicely "chunked" together near the highwater mark. Oracle tends to stripe resources across the available space in the datafile. So you might find you need to move half the contents before recovering any significant amount of space.
    Cheers,
    Paul
       SELECT '
       a.owner, '
       a.segment_name, '
       a.segment_type, '
       a.block_id, '
       a.tablespace_name '
       FROM '
       dba_extents a '
       WHERE '
       a.file_id = ( '
          SELECT '
          b.file_id '
          FROM '
          dba_data_files b '
          WHERE '
          b.file_name = :p1 '
       ORDER BY '
       a.block_id DESC

  • Oracle Database Migration(Oracle 9.2.0.4 to Oracle 10g)

    I want to migrate my database from Oracle 9.2.0.4 to Oracle 10g XE, is there any method to migrate the database successfully..?
    My plan is to empty the existing database on the Oracle 10g XE then export the database from old machine(Oracle 9.2.0.4-including privilages,users,tables,etc) and import it to the new machine(Oracle 10g XE), but i was worried if I empty the existing database(Oracle 10g XE), all the tables will be gone(including Oracle 10g XE system table that do not exist in older oracle version) and after I import the database to Oracle 10g, I afraid the database will encounter any problem because I've deleted the Oracle 10g system tables.
    Anyone can give me suggestion on how to migrate the database successfully..?
    Thank you.

    What's the Edition of your Oracle 9.2 ?
    I don't think do full export/import from 9i to Oracle 10g XE is good idea. The chance you will have problem after import is very high.
    Instead, you may want to consider do schema user level exp/imp.
    Don't drop any thing belongs to SYS and SYSTEM on 10g XE. Actually you only need to drop the sample users like 'HR'

  • Table Partition on daily basis in oracle 10g

    I Want to create partition based on sysdate on daily basis.
    There will be 8 partitions. Every day data's will be get loaded into this table and everyday 8th day old data ill be get truncated.
    CREATE TABLE CUST_WALLET_BALANCE_7DAYS
    ( ID  VARCHAR2(250),
       A_DATE  VARCHAR2(11),
       LAST_PROCESS_DATE DATE,
      DD_OF_PROCESS_DATE  NUMBER(2),
      CONSTRAINT CUST_WALLET_BALANCE_7DAYS_PK PRIMARY KEY (ID,A_DATE))
      PARTITION BY RANGE (DD_OF_PROCESS_DATE)
      ( PARTITION DAY1 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE)),'DD')),
        PARTITION DAY2 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-1)),'DD')),
        PARTITION DAY3 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-2)),'DD')),
        PARTITION DAY4 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-3)),'DD')),
        PARTITION DAY5 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-4)),'DD')),
        PARTITION DAY6 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-5)),'DD')),
        PARTITION DAY7 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-6)),'DD')),
        PARTITION DAY8 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-7)),'DD'))
    THIS WONT WORKS OUT. SO PLEASE SUGGEST ME WITH BETTER SOLUTION.

    Original thread here: Table Partition on daily basis in oracle 10g
    Please do not start duplicate questions for the same topic.
    Locking this thread

  • Deadlock issue in Oracle 10g Partitioned Tables

    Hi ALL,
    I am facing an issue of Deadlock while inserting data into a partitioned table.
    I get an error "ORA-00600: Deadlock detected". when i see the trace files, following lines are appearing in them:
    "Single resource deadlock: blocking enqueue which blocks itself".
    Here is the detail of my test case:
    1. I have a list-partitioned table, with partitioning defined on some business codes.
    2. I have a query that merges data into partitioned table (actually compares unique keys between temporary table and partitioned table and then issue an insert if keys not matched, no update part).
    3. The temporary table contains transactional data against many business codes.
    3. when calling the above query from multiple (PL/SQL) sessions, i observe that when we merge data in same partition (from different sessions) than deadlock issue occurs, otherwise it is OK.
    4. Note that all sessions are executed at same time. Also note that Commit is called after each session is completed. Each session contains 2-3 more queries after the mentioned merge statement.
    Is there an issue with oracle merge/insert on same partition (from different sessions)? What is the locking mechanism for this particular case (partitioned tables)?
    My oracle version is Oracle 10g (10.2.0.4). Kindly advice.
    Thanks,
    QQ.

    Could you print the deadlock tree so we can see the type and mode of the locking. (Please use the 'code' tags - see FAQ at top right of screen - to showthe output in fixed font). can you list any SQL operated by this session that gets reported in the trace file.
    Does the table reference itself in a foreign key.
    Is this table involved in any referential integrity constraints.
    Do you have a global primary key index, or a local primary key index ?
    Are there any triggers on the table - if so do they contain autonomous transactions.
    At present the only though that springs to mind is that the merge command has to lock the target table to do the insert/update, but it also has to lock any child table. The mode of the child lock depends on whether it has a suitable index or not, and whether the child table IS also the parent table. If you have two merges to the same partition one partition may get its locks, and the other partition may be in a state where it can't get one of the locks because it's wait for the other. (This shouldn't be a self-deadlock, though, but the scenario might be heading in the right direction for a self-deadlock).
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    "The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge." (Stephen Hawking)

  • External table in Oracle 10g and Windows server 2003 problem

    I'm having a problem accessing an external table in an Oracle 10g and Windows 2003 server environment. The disk is remote (mapped) to the server. It's the usual access errors, kup-04001 or kup-04063.
    I have the [seemingly] exact same setup in an Oracle 9i and Windows 2000 server environment which works perfectly. Services run as local SYSTEM and SYSTEM has full permissions on the disk. Directories exist and so do the permissions to the directories.
    In the Oracle 10g and Windows 2003 environment, services run as local SYSTEM and SYSTEM has full permissions on the mapped disk. Directories exist and so do the permissions to the directories.
    This obviously effects mappings, deployments, etc.
    Does anyone know if something changed in either the db or the os?
    Thank you,
    Michael

    Thank you for your reply.
    Your proposal is the standard solution. As a matter of fact, that's how it is on my "old" system. Server "A" Oracle services are started by SYSTEM. Server "B" Oracle services are started by SYSTEM and is where the flat files reside. SYSTEM has full permissions on a disk local to Server "B". Database directoriies defined on Server "A" point to Server "B" remote disk. External Tables on Server "A" are defined with directories that point to Server "B" remote (mapped) disk. I have no problems with this configuration.
    I'm having a problem acheiving the same configuration with Oracle 10g and Windows 2003. I guess I'm baffled over the fact it isn't working the same way as my "old" environment. Why shouldn't it? Oracle (and you) want me to start services as a specific user. It shouldn't have to be that way unless something changed in the way the database makes calls to the os or if Microsoft slipped something in with one of it's numerous security patches.

Maybe you are looking for