24. maj 2005 - 10:13Der er
4 kommentarer og 1 løsning
sql forespørgsel hjælp
er der nogen måde hvor jeg kan få fat i alle oplysninger om en database, ment på den måde at jek kan få fat i tabelnavne,definitioner, primærnøgler, fremmednøgler osv?
jeg har to udtryk jeg har leget lidt med men ingen af dem får alle oplysninger ud på en gang. Kan man eventuelt kombinere dem og i dette tilfælde hvordan?
udtryk 1: SELECT dcc.table_name TabelTitel, dcc.column_name FeltDefTitel, dtc.column_id Ordinal_Position, dtc.data_type DataType, dtc.Data_Length Length, dtc.Data_Precision Precision, dtc.Data_Scale Scale, dcc.comments FeltInfo FROM user_col_comments dcc, user_tab_columns dtc, user_tab_comments utc WHERE dcc.table_name = dtc.table_name AND dcc.column_name = dtc.column_name AND dcc.table_name = utc.table_name AND utc.table_type = 'TABLE' ORDER BY dtc.table_name, dtc.column_id
udtryk 2: SELECT uc.r_constraint_name AS pk_constraint, uccp.table_name AS parent_table, uccp.column_name AS parent_column, uc.constraint_name AS fk_constraint, uccf.table_name AS child_table, uccf.column_name AS child_column FROM user_constraints uc, user_cons_columns uccp, user_cons_columns uccf WHERE uc.table_name = UPPER ('&tablename') AND uc.constraint_type = 'R' AND uc.r_constraint_name = uccp.constraint_name AND uc.constraint_name = uccf.constraint_name
hvor &tablename i udtryk 2 gerne skulle være alle tabellerne
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
24. maj 2005 - 18:36#1
Jamen - hvorfor skal det lige præcist være eet udtryk. I givet fald, hvilke kolonner skulle der så være?
En tabel kan jo have mange fremmednøgler. Skulle der så være kolonner FREMMEDNØGLE_1, FREMMEDNØGLE_2, ..., FREMEDNØGLE_3.
Du er godt på vej, med de udtryk du har.
I Oracle 9i og 10g kan du også kigge på hvad du kan få ud af at bruge DBMS_METADATA:
det skal også være kompatibelt med oracle 8. Men oplysningerne jeg skal have ud er som følgende: <tabel> <titel>XXXX</titel> <posttype>Fast</posttype> <feltdef> <titel>XXXX</titel> <datatype>num</datatype> <bredde>8</bredde> <feltinfo>XXXX</feltinfo> <feltfunk>XXXX</feltfunk> </feltdef> <feltdef> <titel>XXXX</titel> <datatype>date</datatype> <bredde>8</bredde> <feltinfo>XXXX</feltinfo> </feltdef> <pn> <titel>XXXX</titel> </pn> <fn> <titel>XXXX</titel> <fremmedtabel> <titel>XXX</titel> <titel>XXX</titel> </fremmedtabel> </fn> <tabelinfo>Tabel med oplysninger</tabelinfo> </tabel>
det er målet. Så hvis udtrykket kan samles så man får alle oplysninger på en gang.
som ovenstående, og udtryk 2 er blevet: select pk.table_name parent_table_name, pk.constraint_name pkey_constraint, fk.table_name child_table_name, fk.constraint_name fkey_constraint, fk.r_constraint_name from user_constraints pk, user_constraints fk where pk.constraint_name = fk.r_constraint_name and pk.constraint_type='P' and fk.constraint_type='R'
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.