Create Foreing Key to one table in different dataBase

Hi, I need create a reference to one table in other database. I understand that Database Link can be used to connect me to other database but when I am creating the foreing key in my table, I can see only the tables in the schemas that have my data base not the other schemas. I created a connection with database link but I do not see the form to make reference to this connection from the create table wizard. I am using Oracle 9i and the client is 9.01.01.
Thanks in advance,
Mónica Alarcón

We cannot use tables in another table to enforce data integrity. This makes a lot of sense if you think about what would happen if the remote database goes down.
If you want to do this, then you need to use replication (materilaized view) to bring the parent table's data into the locaL database.
Cheers, APC

Similar Messages

  • How to create a view between two table under different database?

    thx

    Assuming the different database is Oracle, you'll probably need to create a 'dblink'. Researching that topic should get you where you need to go.

  • How to create a view consisting of data from tables in2 different databases

    Using Oracle 10.2g
    I have 2 databases Gus and haggis on Comqdhb schema.
    glink indicates a databse link between Haggis and Gus
    In Gus there are tables student,subject,grade,school containing columns like upn...
    STUDENT
    upn
    academicYear
    SUBJECT
    subject
    GRADE
    examlevel
    grade
    SCHOOL
    sn
    In HAGGIS there are tables student,grade,teacher containing columns upn...desc below.
    STUDENT
    upn
    GRADE
    grade
    upn
    academicyear
    level
    Create view in your HAGGIS database which will join all of the exam grades together. You should have one view which will produce the following relation :
    examGrade(upn, subject, examlevel, sn, grade,academicYear)
    so I need to create a view which gets the data from both the tables in both the databases.
    create view as examGrade(upn, subject, examlevel, sn, grade,academicYear) as select s.upn
    But i am not getting how to select a column from 2 tables in different databases
    I mean if i said
    select upn from comqdhb.student@glink,comqdhb.student;
    select upn from comqdhb.student@glink,comqdhb.student
    ERROR at line 1:
    ORA-00918: column ambiguously defined
    help me out,Thank you.

    Thank you for the reply will follow up the code format
    Create views in your HAGGIS schema database which will join all of the exam grades together. You should have one view which will produce the following relation :
    examGrade(upn, subject, examlevel, sn, grade,academicYear)
    I understand that there wont be duplication when we use conditions
    If i query
    select count(upn)
    from   comqdhb.student@glink I get 9000
    but after the union
    create view examGrade(upn, subject, examlevel, sn, grade,academicYear)
    as
    select distinct s.upn as upn
    ,                  g.subject as subject
    ,                  g."LEVEL" as examlevel
    ,                  g.grade as grades
    ,                  '9364097'
    ,                  to_number(g.academicyear) as academicyear
    from             comqdhb.student s
    ,                   comqdhb.grade g
    where           s.upn=g.upn
    union
    select            s.upn
    ,                   sb.subject
    ,                   g.elevel
    ,                   g.grade
    ,                   s.acyr
    ,                   sc.sn
    from              comqdhb.subject@glink sb
    ,                   comqdhb.student@glink s
    ,                    comqdhb.gradevalues@glink g
    ,                    comqdhb.school@glink sc,
    ,                    comqdhb.studentingroup@glink sg
    ,                    comqdhb.teachinggroup@glink tg
    where            sb.sid=tg.sid
    and                tg.gid=sg.gid
    and                sg.upn=s.upn
    and                g."LEVEL"=tg.elevel
    and                s.school=sc.id
    and                sc.id=tg.id; returns
    count(upn) from exam gradeIt gets stuck actually sometimes it returns
    932002 some results.
    2:
    Another problem i am having which i am trying to solve and written up my ideas but haven't been getting the expected results.Hope you can help.Thank you.
    Information:
    =======
    All children take exams at the age of 16 called a General Certificate of SecondaryEducation (GCSE).
    They have to study and take exams in Mathematics, English and Science, and can take other subjects such as History, French, Art etc. Most students will study between 5 and 10 different subjects before taking their GCSEs.
    For each exam, a student is awarded a grade from A*, A, B,C,D,E,F,G,U,X An A* grade is the best grade achievable and an X is the worst grade.
    In order to analyze how students have performed, each grade is mapped to a numeric value as follows:
    Grade Numerical score
    A* 8
    A 7
    B 6
    C 5
    D 4
    E 3
    F 2
    G 1
    U 0
    X 0
    Now why i need this avgGCSE is because i have to create a view containing avgGCSE of the students it is used in the next question where a condition is avgGCSE is between 6.5 and 7
    In order to calculate the avgGCSE the idea is to calculate the grades of the students and map the grades to their corresponding scores/values
    add them all up and div by the total no of grades to get the avg.
    desc comqdhb.STUDENT@glink;
    STUDENT
    =======
    UPN
    FNAME
    CNAME
    DOB
    GENDER
    PREVIOUSSCHOOL
    XGCSE
    SCHOOL
    ACYR
    STUDENTINGROUP
    =============
    UPN
    GID
    STARTDATE
    ENDDATE
    GRADE
    GRADEVALUES
    ===========
    GRADE
    LEVEL
    VALUE
    I have a opinion that xgcse in STUDENT table refers to the avgGCSE which i want to calculate as when i asked my professor as to what xgcse he said that he forgot to take it out of the table and it is not necessary while creating avggcse.
    select *
    from comqdhb.student@glink
    where xgcse<6.5; Displaying a result
    returns:
    UPN FAMILYNAME COMMONNAME DATEOFBIR GENDER PREVIOUSSCHOOL XGCSE SCHOOL ACYR
    ===========================================================================
    1011 KIMBERLY ABBOT 07-JUL-79 f none 3.93500948 2 2
    select *
    from comqdhb.student@glink
    where xgcse between 6.5 and 7 and upn = 1386; Displaying a result
    returns:
    UPN FAMILYNAME COMMONNAME DATEOFBIR GENDER PREVIOUSSCHOOL XGCSE SCHOOL ACYR
    ===========================================================================
    1386 STEPHANIE AANNESSON 15-JAN-79 f none 6.88873 2 2 so if xgcse is the avgGCSE then upn 1011 has avggcse<6.5 and 1386 has avggcse >6.5
    my idea was backward strategy like so now if we find out upn 1368 has suppose xgcse(avggcse)>6.5 how to extract the avggcse for the particular upn We need to map grades from GRADEVALUES to grade in STUDENTINGROUP and map upn from studentingroup to upn in student to output the values for the corresponding grades from GRADEVALUES
    select grade
    from comqdhb.studentingroup@glink
    where upn = 1011;
    Result:
    GRADE
    =====
    D
    F
    B
    E
    C
    E
    E
    B
    8 rows selected. Mapping each grade to the corresponding value and calculating we get
    32/8=4 total(values to corresponding grades)/no of grades.
    But the xgcse for upn 1011 is 3.935 and i am getting 4!! maybe xgcse isn't avggrade but ? is the procedure by me correct for calculating avggcse
    select grade
    from comqdhb.studentingroup@glink
    where upn = 1386;
    Result:
    GRADE
    ======
    A*
    A*
    A*
    A*
    B
    A*
    A*
    A
    B
    B
    B
    11 rows selected. grade to the corresponding value and calculating we get
    79/11=7.12 total(values to corresponding grades)/no of grades.
    But the xgcse for upn 1011 is 6.88... and i am getting 7.12!!
    But another problem
    when i say
    select   g.value,g.grade
    from     comqdhb.gradevalues@glink g
    ,        comqdhb.studentingroup@glink sg
    where    g.grade=sg.grade
    and      sg.upn=1011;
    result:
    ======
    VALUE GRADE
    ===========
      100 B
      100 B
       80 C
       60 D
       40 E
       40 E
       40 E
       20 F
        6 B
        6 B
        5 C
    VALUE GRADE
    =============
        4 D
        3 E
        3 E
        3 E
        2 F
    16 rows selected.
    select   distinct g.value,g.grade
    from     comqdhb.gradevalues@glink g
    ,        comqdhb.studentingroup@glink sg
    where    g.grade=sg.grade
    and      sg.upn=1011;
    result:
    ======
    VALUE GRADE
    ============
         2 F
       100 B
         6 B
         3 E
        60 D
         5 C
         4 D
        80 C
        40 E
        20 F
    10 rows selected. I am getting only 8 for the query
    select grade
    from comqdhb.studentingroup@glink
    where upn = 1386; here its becomming 10 and also its displaying values as 100 and ...
    select distinct *
    from   comqdhb.gradevalues@glink;
    GRADEVALUES
    ===========
    LEVEL      GRADE           VALUE
    ================================
    a          A                 120
    a          B                 100
    a          C                  80
    a          D                  60
    a          E                  40
    a          F                  20
    a          U                   0
    a          X                   0
    g          A                   7
    g          A*                  8
    g          B                   6
    LEVEL      GRADE           VALUE
    ================================
    g          C                   5
    g          D                   4
    g          E                   3
    g          F                   2
    g          G                   1
    g          U                   0
    g          X                   0
    18 rows selected. I was hoping if i could map the grades and get the values and calculate avggrade by total(values)/count(values)that would be it but here there are values like 100...
    select  sum(g.value)/count(g.grade) as avggrade
    from    comqdhb.gradevalues@glink g
    ,         comqdhb.studentingroup@glink sg
    where  g.grade=sg.grade
    and     sg.upn=1386;
    avggrade
    ========
    37.4375 the avggrade cant be this big and when i map each grade i obtained for 1368 like a to 7+b to 6 so on i get avggrade 7.12
    kindly help.
    Edited by: Trooper on Dec 15, 2008 4:49 AM

  • Is it possible to display one table on different sheets?

    I'd like to use one table on different sheets.
    On these sheets are also other tables, but one should be the same on each sheet.
    Is this possible?

    You can make one table refer to (take data from) another. 
    Here is a simple example where I made a table named "Source" and duplicated the table and named is "Destination-1".
    the table "Destination-1" refers to table 1 like this:
    A1=Source :: A1
    copy cell A1 in the table "Destination-1" , then select ALL cells using the menu item "Edit > Select All", then paste
    you may now duplicate this table to make additional "copies" as needed.  To duplicate a table, select the table, then select the menu iten "Edit > Duplicate"
    NOTE:  you should be aware that data flows FROM the table "Source" to the destination tables-- NOT the other way.

  • To compare Table in different Database

    Hi
    Is possible to compare tables in Different Database ?
    They are same tables , but data can to be different
    TIA

    May be you can try with DBMS_RECTIFIER_DIFF.DIFFERENCES

  • What is the best practice for creating primary key on fact table?

    what is the best practice for primary key on fact table?
    1. Using composite key
    2. Create a surrogate key
    3. No primary key
    In document, i can only find "From a modeling standpoint, the primary key of the fact table is usually a composite key that is made up of all of its foreign keys."
    http://download.oracle.com/docs/cd/E11882_01/server.112/e16579/logical.htm#i1006423
    I also found a relevant thread states that primary key on fact table is necessary.
    Primary Key on Fact Table.
    But, if no business requires the uniqueness of the records and there is no materilized view, do we still need primary key? is there any other bad affect if there is no primary key on fact table? and any benifits from not creating primary key?

    Well, natural combination of dimensions connected to the fact would be a natural primary key and it would be composite.
    Having an artificial PK might simplify things a bit.
    Having no PK leads to a major mess. Fact should represent a business transaction, or some general event. If you're loading data you want to be able to identify the records that are processed. Also without PK if you forget to make an unique key the access to this fact table will be slow. Plus, having no PK will mean that if you want to used different tools, like Data Modeller in Jbuilder or OWB insert / update functionality it won't function, since there's no PK. Defining a PK for every table is a good practice. Not defining PK is asking for a load of problems, from performance to functionality and data quality.
    Edited by: Cortanamo on 16.12.2010 07:12

  • Two Primary keys on one table

    We are at the end of completing a project and we ran into a last minute bug. We are using two primary keys on a table to form a unique key. The problem we have is the program hangs up and gives us the following error,
    ORA-20001: Error in DML: p_rowid=CUA, p_alt_rowid=SIT_ID, p_rowid2=, p_alt_rowid2=. ORA-01422: exact fetch returns more than requested number of rows,
    probably meaning we only have one key setup in the DML
    processing when our table has two.
    we created a process with the Primary key set up in the DML but how does the secondary key column value work and is that what it's used for,because we tryed with no success. Is there a way around this problem without having to change our table by inserting only one primary key.
    Thanks in advance.
    Garry

    I am facing a similar problem , I used the two primary keys for navigating to the form page (forms with reports) so that the form page may display distinct records.
    Its not posing any error but its not showing the value of other columns associated with that record.
    Only the columns contained in the page item in the form page , that's are used as primary keys or that have been specified in the navigation part of the report page, are being shown ,
    Like for example I have got 5 columns
    a,b,c,d,e out of which a and b are my primary keys .
    I am using these to fetch values in the form page of forms with reports.
    We can specify three keys at the most , in my case I am having two , if in place of the third key I specify some column then in the form page it displays the correct record details of the three columns specified( 2 keys and one simple column), and it doesn't displays the value of other columns.
    Please help me out of this .

  • Create a variable in one table based on a value on another.

    I have two existing tables, say TABLE1 and TABLE2.  I need to create a key variable in TABLE2 and insert values for that  variable from TABLE1 i.e. create an explicit relationship between the tables using a key variable.  There exists a relationship
    between the tables in that for each record in TABLE1 there are 28 records in TABLE2 and the records are arranged in sequential order. So:
    TABLE1 TABLE2
    REQUIREMENT
    RECORD 1 -->
    RECORDS 1 to 28 Copy key variable from RECORD1 in TABLE1 into RECORDS 1 to 28 in TABLE2
    RECORD 2 -->
    RECORDS 29 to 56 Copy key variable from RECORD2 in TABLE1 into RECORDS 29 to 56 in TABLE2
    RECORD 3 -->
    RECORDS 57 to 84 Copy key variable from RECORD3 in TABLE1 into RECORDS 57 to 84 in TABLE2
    RECORD n--> RECORDS (n-1) * 28 + 1 to n * 28
    Copy key variable from RECORD n in TABLE1 into RECORDS (n-1) * 28 + 1 to RECORDS n * 28 in TABLE2
    Please help if you can.  I am prepared to give any additional information when asked.

    TABLE1:
    USE [LFS_APRIL_2015]
    GO
    /****** Object:  Table [dbo].[HOUSING37854]    Script Date: 04/30/2015 15:52:37 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[HOUSING37854](
    [BatchNo] [float] NULL,
    [District] [float] NULL,
    [URBAN_RURAL] [float] NULL,
    [HHNUM] [float] NULL,
    [Cluster] [float] NULL,
    [Final_Result_Code] [float] NULL,
    [zBarcode] [float] NULL,
    [Person_NUMBER] [float] NULL,
    [HH1] [float] NULL,
    [HH2] [float] NULL,
    [HH6] [float] NULL,
    [HH4] [float] NULL,
    [HH3] [float] NULL,
    [HH5] [float] NULL,
    [HH7] [float] NULL,
    [HH8] [float] NULL,
    [HH9a] [float] NULL,
    [HH9b] [float] NULL,
    [HH9c] [float] NULL,
    [HH9d] [float] NULL,
    [HH9e] [float] NULL,
    [HH9f] [float] NULL,
    [HH9g] [float] NULL,
    [HH9h] [float] NULL,
    [HH9i] [float] NULL,
    [HH9j] [float] NULL,
    [HH9k] [float] NULL,
    [HH9l] [float] NULL,
    [HH9m] [float] NULL,
    [HH10a] [varchar](1) NULL,
    [HH10b] [varchar](1) NULL,
    [HH10c] [varchar](1) NULL,
    [ED_Number] [float] NULL
    ) ON [PRIMARY]
    GO
    SET ANSI_PADDING OFF
    GO
    TABLE2:
    USE [LFS_APRIL_2015]
    GO
    /****** Object:  Table [dbo].[LISTING37854]    Script Date: 04/30/2015 15:47:15 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[LISTING37854](
    [HL1] [float] NULL,
    [HL3] [float] NULL,
    [HL4] [float] NULL,
    [HL5] [float] NULL,
    [HL6] [float] NULL,
    [HL7] [float] NULL
    ) ON [PRIMARY]
    GO
    Essentially The Housing table, TABLE1, lists households and the Listing table, TABLE2, lists members of the household and there are always 28 lines in the Listings although most of them may be just a number since almost no household will have 28
    members.  The Listings that is jut a number will be deleted,  but to know where the listing for the next household starts I need to create the linking variable in Listings table.  The is absolutely no doubt that the relationship that I specified
    in the first post above is as specified.

  • Create tables in different database schemas using EJB 3 Entity Persistent

    Hi All,
    I would like to find out how to get the following tasks done using EJB 3.0 Java Entity Persistent:
    ( i ) Create tables in different schemas such as STUDENT under EDUCATION schema and table PATIENT in HOSPITAL schema. We can then reference them in SQL as EDUCATION.STUDENT and HOSPITAL.PATIENT.
    ( ii ) Reference these tables uniquely once they are created.
    There are no pre-existing tables or naming conventions that needs to be adhere to in this situation.
    I have no problem creating tables on the current schema in EJB 3.0 Java Entity Persistent.
    Any suggestions would be appreciated.
    Thanks,
    Jack

    Use the schema attribute of the Table annotation:
    package javax.persistence;
    @Target({TYPE}) @Retention(RUNTIME)
    public @interface Table
       String name( ) default "";
       String catalog( ) default "";
       String schema( ) default "";
       UniqueConstraint
    uniqueConstraints( ) default {};
    }

  • How many primary keys for one table?can we add more primary keys

    In general Table have one  primary key.is it possible to more than one primary key in a table?(ie is it possible to add more than one pirmary key in a table). Help me out.

    pls do check this link
    [http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ea0b446011d189700000e8322d00/frameset.htm|http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ea0b446011d189700000e8322d00/frameset.htm]
    All the key fields of a table must be stored together at the beginning of the table. A non-key field may not occur between two key fields.
    A maximum of 16 key fields per table is permitted. The maximum length of the table key is 255.
    If the key length is greater than 120, there are restrictions when transporting table entries. The key can only be specified up to a maximum of 120 places in a transport. If the key is larger than 120, table entries must be transported generically.

  • How to join tables from different databases (DBLink/DB connection )

    Hello,
    i have an issue and i hope you could help me to solve it. My problem is: I want to create native sql select which joins two tables from different DB (both of them are ORACLE, one of them internal, another one - external). I have found several notes and posts, but without any success. Db connection exists in dbcon table, so this part of my problem has been solved.
    I would like something like that:
    select * from table1@xxx inner join table2.
    i can not split this select into two separate ones, because both tables store over 30 mln. entries and i do not want to create any copies of them.
    Br,
    dez

    Hi,
    you might need to create a DB-Link on DB level and use EXEC SQL.
    Lots of stuff on google about this, like
    Oracle DBLink ( external database )
    Volker

  • Dealing with tables from different databases?

    Hi. I'm a newbie to Visual Studio 2012 and stuck on how to interact with different datasets.
    I am building a report that is associated with with two tables, each from a different database. The
    master_flat table with the primary key matter_number is from the first database and it contains all the columns I need that should show up in the report layout I've built. However,
    billing_table with the primary key matter_number contains a flag that I go by which I must use to determine whether each matter should come through in the reporting or not. 
    I've set the master_flat as dataset1 and the billing_table as dataset2. Now, what is the best way in Visual studio 2012 to filter by the matters that has flag "N" in dataset2?
    Thanks

    We are way out of sync.  Lets synchronize.  I'm not sure which question you are refering to.  Is it the "C# or VBnet"  question or is it the "One or two database Question".  It seem like it would be the database question since you
    should know which programming language you are using.
    Open SQL Server Management Studio (SSMS).  After login, there is an explorer where you can browse the databases, tables, and fields in the tables.  You should be able to view how you build the database.  If you right click any tables and then
    "Script Table As : Select To : New Query Editor Window".  There is an execute button to run the query.  You can aslo edit the query.  I usually test all my qeuries in SSMS before actually using them in an application.  I would get a JOIN
    SQL working in SSMS.
    If you let me know if you are using VBnet or C# I will write a simple LINQ.  Even better if you supply me the names of the columns of the two tables.
    jdweng

  • How to join tables on different databases

    In the company I work in, we've got some java applications working on two different instances which "hide" to each others (one on 10g and the other on 8i). Some decoding tables, which should common to both of them, are only present on 8i one.
    I've been told that java works 'cause it allows to connect to both of databases and then report the information on front end applications.
    The question is this: since we'll have to get reports on both of databases, is it possible to perform queries by using tools like oracle forms, oracle reports, sql developers, ... for joining the tables of the two different databases as java does? We have to get how to accede directly to the two instances for getting data from both of them for reporting activities. I remind you that we cannot use dblinks between the two databases for internal security reasons.
    Thanks in advance!

    Even java can't join between tables on two databases if the db links are not created.
    So it essentially works that it fetches the data from one db and then from another db ( using two different db connctions) and then you can utlize these data and perform some joining.
    Coming back to database world. It can be done like the usual dw approach.
    1. Connect to a third db:
    2. Get data from one database
    3. get data from other database.
    now do all the joins that you want to do

  • Give user Read-Only access to one table in a database.

    Does anyone know how to give a user account Read-only access to 1 table within a SQL Server Database using SQL Server Management Studio? I don't want the account to be able to access any other tables in the database, just the one table. I'm not a sql programmer,
    so if there is a way to do it in Sql Server Managment Studio settings that would be the best.

    Using Management Studio, I assume you already have a login and user for that person. If not,
    How to: Create a SQL Server Login http://msdn.microsoft.com/en-us/library/aa337562.aspx
    How to: Create a Database User
    http://msdn.microsoft.com/en-us/library/aa337545.aspx
    1. Then, in Object Explorer, expand the Database, expand
    Tables, right-click the table you want, and then click
    Properties. 
    2. On the Permissions page, under Users or Roles, click
    Search, then Browse, etc, until you find the user. Click
    OK until you are back to the Permissions page.
    3. In the Permission for <user>section, find the
    SELECT (that's the read permission) and click the Grant
    box. Then click OK.
    Rick Byham, Microsoft, SQL Server Books Online, Implies no warranty

  • How to host one application using different database connection on OAS?

    Hi,
    Jdeveloper - 10.1.3.4
    Application - ADF/BC
    Oracle Application Server - 10.1.3
    Above our the specifications for our application,
    We have two database schemas different for development and production therfore we have different databse connections for the two,
    we have one application which is in production and enhacements on the same application are done by the development team.
    Since we have two different schemas for developement and prduction we use different database connections for the application on development and production.
    The problem is our Model and View Controller project are same, only the database connection file changes that's why we are able to host only on application at a time on our OAS. This is probably because the URL generated by OAS for developemnt and prodyction application is same.
    Is there a way we can host two instances of the same application with two different database connections on the a single OAS.
    Thanks & Regards,
    Raksha

    Use different deployment profiles each with a different context root for your application?
    See: http://one-size-doesnt-fit-all.blogspot.com/2009/02/configuring-separate-dev-test-prod-urls.html

Maybe you are looking for

  • Mini users unite! We can figure out the DVI..

    Ok, so after my fiasco with Apple yesterday, and calling my other tech friends here in Portland at the other Mac stores here in town, I think we can figure out whats going on. The first step I think is to rule out the monitors. I've already ruled out

  • Air or Pro for work? Using 8-9 hours everyday

    Hi, I need to purchase a laptop for work but torn between a Macbook Air and Macbook Pro. I'll be using it for 8-9 hours everyday, which is a lot of use. I mostly use it for emails, word processing, Powerpoint/Excel stuff, web browsing, and streaming

  • I can't update Quicktime

    I installed Itunes + Quicktime when I try to execute Itunes says that I'm runing an old Quicktime version 7.02 and Itunes needs 7.03 or latest version. When I try to install Quicktime Standalone player I get this error: Error 1606. Could not access n

  • Is bookmark portlet available in portal R2

    Hi, I want to know whether it is possible to add bookmarks in oracle Portal if yes how. i want to add (KOL a website as portlet & Domino.doc website as portlet) and want to know if bookmarks are possible on domina.doc (portlet website). thanks, Pravi

  • Copying part of filename in Finder

    Hello Mavens, this is what I'd like to do: Enhance the Replace Text in Filename script that Apple provides with the OS in such a way that I can 1 - select a filename, as if for editing, in a folder 2 - select part of a filename (the part I want to ch