How to find primary constraint column

How can i get the column names of the primary keys if i know the CONSTRAINT_NAME, and CONSTRAINT_TYPE = "P" in the user constraints of the table name.
thanx in advance
utsab

Hi,
Have you tried using the table USER_CONS_COLUMNS ?
This has information about columns in constraint definitions.
Hope this helps.
Sujatha.

Similar Messages

  • How can find out LONG column database?

    Hi,
    in my database ORA-1461 error occured
    01461, 00000, "can bind a LONG value only for insert into a LONG column
    how can find out LONG column in my database ?

    DESCRIBE
    The description for tables, views, types and synonyms contains the following information:
    each column's name
    whether or not null values are allowed (NULL or NOT NULL) for each column
    datatype of columns, for example, CHAR, DATE, LONG, LONGRAW, NUMBER, RAW, ROWID, VARCHAR2 (VARCHAR), or XMLType
    precision of columns (and scale, if any, for a numeric column)
    Extract of the link;
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch12019.htm#SQPUG040
    Secondly with reference to the error;
    Do not try to insert LONG datatypes into other types of columns.
    Hope this helps.
    Adith

  • How to find Primary Key for a particular SAP Databse Table?

    Hi Guys,
                  How to find Primary Key and foreign key  for Particular SAP Databse table ?for Ex : EKKO , EKPO , EKKN , EKBE , EKBEH  , EKET and EKETH.
    Thanks,
    Srinivas.

    Use transaction SE11 to display the table. Put the cursor on the field you want to display the check table and click 'Foreign key' push button (a key with an bottom point arrow), then it will show the check table of the foreign of a field.
    Or by just simple double click on the field, a pop-up window of all the attribute (including the foreign key and the check table if exists) will show too.
    <i><b>Please reward point for helpful answer.</b></i>
    Minami

  • How to find out the columns which has 16 digit credit card number

    Hi All,
    I have a requirement where in i need to find out the columns which has 16 digit credit number in it and create a report with owner, table name and column name.
    The issue is that the credit card number can be entered in any columns of any table of any schema. For example the credit card number can be entered in any description field(eg: The number is 4001412134642881), in that case i need to filter only the numbers and do the LUHN check to validate the credit card number.
    Please provide me a suggestion on how to scanl the values of all the columns to know the column which has credit card number.
    Regards,
    Raj.

    Tell me this - how the hell do you have a database with credit card number data and NOT know which columns of which tables contain credit card numbers? (and how on earth is this data NOT encrypted!?)
    How is what you want to do, NOT a fishing expedition to hack a database that may or may not be storing credit card details?
    And do you honestly think that we should simply trust that once you have extracted these numbers, performed a Luhn algorithm to verify these as credit card numbers, you are not going to fraudulently use these credit card numbers!?
    I have marked your posting as an attempt to hack an Oracle database for fraudulent use of credit card data. I hope that your OTN account is terminated soon and trust that your too much of a coding idiot to actually succeed in this endevour.

  • How to know primary key column name form a table name in sql query

    Suppose I only know the table name. How to get its primary key column name from the table name?
    Thanks

    Views don't have primary keys though their underlying tables might. You'd need to pick apart the view to determine where it's columns are coming from.
    You can select the text of the view in question from user_views.

  • How to update primary key column

    Hi,
    Can you suggest me best workaround/algorithm for below task:
    (Oracle 10g, Solaris OS.)
    Situation:
    Table P has primary key column "Code", child tables F1, F2, ..., F15 reference with foreign key column "P_Code" column "P.Code", and we don't know which of the child tables has data for particular "P.Code" value.
    Task:
    Change "P.Code" value from 100 to 200. So that result would be that record P[Code = 100] should be updated as:
    update P set
    Code = 200
    where Code = 100;And child tables column "P_Code" should be updated as:
    update F1, F2, .., F15 set
    P_code = 200
    where P_code = 100;The best solution would be that one very easily can repeat that task.
    Edited by: CharlesRoos on 28.12.2010 12:10

    If you are looking for reusable and repetitive solution, then may be...
    SQL> CREATE TABLE p (p_code NUMBER PRIMARY KEY);
    Table created.
    SQL> INSERT INTO p VALUES(100);
    1 row created.
    SQL> INSERT INTO p VALUES(300);
    1 row created.
    SQL> INSERT INTO p VALUES(500);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> CREATE TABLE F1 (p_code NUMBER REFERENCES p(p_code));
    Table created.
    SQL> CREATE TABLE F2 (p_code NUMBER REFERENCES p(p_code));
    Table created.
    SQL> CREATE TABLE F3 (p_code NUMBER REFERENCES p(p_code));
    Table created.
    SQL> INSERT INTO F1 VALUES(100);
    1 row created.
    SQL> INSERT INTO F3 VALUES(100);
    1 row created.
    SQL> INSERT INTO F2 VALUES(500);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> CREATE OR REPLACE PROCEDURE update_child_parent(pi_p_code_old NUMBER,
      2                                                  pi_p_code_new NUMBER) IS
      3    CURSOR table_to_update IS
      4      SELECT table_name,
      5             to_number(extractvalue(xmltype(DBMS_XMLGEN.getxml('SELECT count(*) c FROM ' ||
      6                                                               table_name ||
      7                                                               ' WHERE p_code=' ||
      8                                                               pi_p_code_old)),
      9                                    '/ROWSET/ROW/C')) cnt
    10        FROM user_tables
    11       WHERE table_name IN ('F1', 'F2', 'F3');
    12 
    13  BEGIN
    14    EXECUTE IMMEDIATE 'ALTER TABLE p DISABLE PRIMARY KEY CASCADE';
    15    UPDATE p SET p_code = pi_p_code_new WHERE p_code = pi_p_code_old;
    16    FOR i IN table_to_update LOOP
    17      IF i.cnt > 0 THEN
    18        EXECUTE IMMEDIATE 'UPDATE ' || i.table_name || ' SET p_code=' ||
    19                          pi_p_code_new || ' WHERE p_code=' || pi_p_code_old;
    20      END IF;
    21    END LOOP;
    22    EXECUTE IMMEDIATE 'ALTER TABLE p ENABLE VALIDATE PRIMARY KEY';
    23  END update_child_parent;
    24  /
    Procedure created.
    SQL> EXECUTE update_child_parent(100,200);
    PL/SQL procedure successfully completed.
    SQL> SELECT * FROM p;
        P_CODE
           200
           300
           500
    SQL> SELECT * FROM F1;
        P_CODE
           200
    SQL> SELECT * FROM F2;
        P_CODE
           500
    SQL> SELECT * FROM F3;
        P_CODE
           200
    SQL> INSERT INTO p VALUES(300);
    INSERT INTO p VALUES(300)
    ERROR at line 1:
    ORA-00001: unique constraint (HR.SYS_C005931) violated
    SQL> EXECUTE update_child_parent(500,900);
    PL/SQL procedure successfully completed.
    SQL> SELECT * FROM p;
        P_CODE
           200
           300
           900
    SQL>  SELECT * FROM F2;
        P_CODE
           900
    SQL>

  • How to modify primary key column?

    I want to modify one primary key column, But TT reported error.
    How do I modify primary key column? Thanks first.

    In TimesTen, the values in primary key columns cannot be updated (except for the trivial case where you update the value to the same value as it currently has). If you want to change the values stored in primary key columns the application must insert a new row with the new key values (and of course values for the other columns) and then delete the old row.
    Chris

  • How to find primary monitor

    Hi,
    I need to find whether frame is on Primary monitor or not. How to find out?
    Regards
    Ketan

    I am not really sure but I just did some tests and on my machine it looks as if the primary monitor is the one whose bounds start at 0,0.
    Of course I only tested with an "extended desktop" setting, where my desktop is spanned across 2 monitors. But in the case where both monitors show the same stuff it shouldn't really matter, right?
    import java.awt.GraphicsConfiguration;
    import java.awt.GraphicsDevice;
    import java.awt.GraphicsEnvironment;
    import java.awt.GridLayout;
    import java.awt.Rectangle;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    public class PrimaryMonitor
      public static void main(String[] args)
        GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] screenDevices = graphicsEnvironment.getScreenDevices();
        for(GraphicsDevice screenDevice : screenDevices)
          System.out.println(screenDevice + ", ID=" + screenDevice.getIDstring());
          GraphicsConfiguration screenConfiguration = screenDevice.getDefaultConfiguration();
          Rectangle screenBounds = screenConfiguration.getBounds();
          System.out.println(screenBounds);
          JFrame frame = new JFrame(screenDevice.getIDstring());
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setLayout(new GridLayout(0, 1));
          frame.add(new JLabel(screenDevice.getIDstring()));
          frame.add(new JLabel("" + screenBounds));
          if(screenBounds.x == 0)
            frame.add(new JLabel("Primary?"));
          frame.setBounds(screenBounds.x, screenBounds.y, 600, 200);
          frame.setVisible(true);
    }

  • How to find out the column causing the error while doing update or insert

    I'm getting the below error when attempt to update or insert a long string that is more than its defined length in the DB2. For example in table the column length is defined as 50, however from UI the data for that column is more than 50 chars.
    {color:#ff0000}**Caused by: com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -302, SQLSTAT**
    **E: 22001, SQLERRMC: null**
    **at com.ibm.db2.jcc.b.hh.b(hh.java:1369)**
    **at com.ibm.db2.jcc.b.hh.c(hh.java:1356)**{color}
    The above issue can be fixed by setting maxlength in the UI itself. However in my case, there is a backend program trying to insert or update load of records. If the exact column name causing the error is known, it will be helpful to load the data properly in the next attempt.
    I have worked around it using SQLWarning and DataTruncation, but couldn't find the solution yet.
    Any help on this issue will be really appreciated.

    Medraf wrote:
    what is validator? Is it like validation.xml in struts? Are you suggesting like defining set of validation rules in the xml and apply the same for each record before doing any update or insert in DB? If so, then I could implement this validation logic in my backend code, however it may take more time to complete the batch prcoess.
    How you implement doesn't matter.
    However given a schema generating code for such validation is trivially simple at least for field types and sizes. Relationships are harder but those can be handled via custom rules.
    Alternatively I'm looking for some kind of API in JDBC or Hibernate which gives the detailed sql exception message containing the error info like the column name and the reason for failure while update or insert. If not possible, then validation logic needs to be implemented.Having seen something similar in Oracle years ago I seriously doubt that you are going find it magically appearing in JDBC/hibernate. There might be warning on the SQLException (see the java docs for SQLException) but I wouldn't count on it. Other than that the only possibility is making some sort of call in db2 itself that tells you the error. Only problem with that is it might require the context which might not be available once you see the error (presuming, especially for performance, that you are using batch processing.)
    As a start figure out how to find out using only db2 (docs and/or db2 forums.)

  • How to find out Particular column value in DB

    Hi All,
    I have to find out Particular column value in DB .can U tell me the Query for that.

    There is one way:
    Re: How to write the Query

  • How to Find Two Matching Columns in Two Table(to create a JOIN)

    Hi Guys!
    I just wondering if it is possible to have a SQL query to find two matches columns in two table to create any type of joins?!
    Let's say I have two tables CUSTOMER + INVOICE is it possible to run a SQL query to find two join able columns without scanning the tables visually?!
    Best Regards,

    Well, there's the Data Dictionary you could query for foreign key columns/constraints.
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:661009003696

  • How to find exact error column name

    hi all ,
    My requirement is as follows .
    I am trying to add a record into temp_emp table inside plsql block ,after executing it i am getting ORA-01438: value larger than specified precision allowed for this column error .I want to find for which column the error is coming .
    In the below example i clearly know that deptno column precision is 2 and i am inserting bigger value that is why i am getting error .
    let us consider a scenario where i am trying to insert 40 colunm values into table and one column is causing the problem , how to find that column alone .
    SELECT * FROM V$VERSION
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    PL/SQL Release 11.2.0.2.0 - Production
    CORE    11.2.0.2.0    Production
    TNS for Solaris: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    CREATE  TABLE
    temp_emp
      empno  NUMBER(4),
    ename VARCHAR2(15),
    job  VARCHAR2(10),
    deptno NUMBER(2)
    DECLARE
       v_empno    NUMBER (4);
       v_ename    VARCHAR2 (15);
       v_job      VARCHAR2 (10);
       v_deptno   NUMBER (2);
    BEGIN
       INSERT INTO temp_emp
                   (empno, ename, job, deptno
            VALUES (1234, 'ABC', 'CLERK', 1000
    EXCEPTION
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line (   SQLCODE
                                || DBMS_UTILITY.format_error_backtrace
                                || SQLERRM
    END;
    /finally I want column name in the error message .
    Thanks,
    P Prakash

    Oracle does not provide the column information in the error message and I don't know of any way to do so outside of developing something convoluted. For example:
    SQL> DECLARE
      2     te_row temp_emp%ROWTYPE;
      3  BEGIN
      4
      5     te_row.empno  := 1234;
      6     te_row.ename  := 'ABC';
      7     te_row.job    := 'CLERK';
      8     te_row.deptno := 1000;
      9
    10     INSERT INTO temp_emp
    11          VALUES te_row;
    12  END;
    13  /
    DECLARE
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at line 8Also, that EXCEPTION block has a bug in it (no RAISE or RAISE_APPLICATION_ERROR).
    Edited by: Centinul on May 3, 2012 8:23 AM

  • How to find primary key?

    I am trying to impliment a load using JDBC wherein I read the table name, some column names, and associated
    column data from a file (delimited or XML). The primary key columns are in the column names / data BUT I don't
    know which columns they are (based on the file I'm reading). Even if this information was in the file, I would need to
    verify the table I'm targeting does in fact have that primary key. I can insert the records fine BUT to use the records
    to update I need to determine from the database which are the primary key columns (by name).
    Essentially I'm trying to do the following:
    insert record into table
    if fails because of duplicate primary key
    determine the primary key of the current table
    retrieve the already existing record
    modify the retrieved record using my load data
    update the already existing record in the database
    My primary concern, now, is Oracle although I'm hoping to impliment this in as portable a fashion as possible.
    Thanks.
    R.Parr
    TemporalArts
    608.833.4578
    null

    You can check the DBA_CONSTRAINTS view for that: http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_1037.htm#i1576022

  • How to find the partition column in a partitioned table

    Hi,
    I have a partition table and I need to find out what column was used to partition the table. Range partition.
    Thanks,
    Maria Sanchez

    select *
    from dba_part_key_columns

  • How to find a matching column in tables

    Hello,
    I have a need to find out a common column in all tables in database.
    For e.g. There is a database column called machine_name
    I need to know how many tables in database have this column name. Is there a straightforward way to achieve this without substantial coding?
    This is on 9i EE
    Thanks,
    R

    Tubby,
    Since op asked for:
    I have a need to find out a common column in all tables in database_*.it should be DBA_TAB_COLS. But what is more important, ALL_TAB_COLS holds not just table but also view and materialized view columns, so in general it should be:
    select  c.owner,
            c.table_name
      from  dba_tab_cols c,
            dba_objects o
      where o.owner = c.owner
        and o.object_name = c.table_name
        and o.object_type = 'TABLE'
        and c.column_name = 'MACHINE_NAME'
    /SY.

Maybe you are looking for