Avatar billede josephine2 Nybegynder
04. november 2001 - 06:30 Der er 2 løsninger

Problem med oprettelse af typer/objecter i Oracle 8i PE

Jeg forsøger, at oprette nogle objecter i et script.
Eks. Create or replace type addr as object (gade varchar( 20 ),.....); /    osv.
Jeg bruger notepad og kalder så scriptet fra SQL+ med @c:\\sti;.
Problemet er så, at 2. gang jeg kører scriptet er typerne/objekterne jo allerede oprettet og jeg får en fejlmeddelse \"ORA-02303: kan ikke droppe eller erstatte en type med type- eller
tabelafhængigheder\". Hvad gør jeg forkert, jeg bør vel kunne replace mine typer/objecter igen eller hvad ??
Jeg her meget brug for at kunne afvikle et script og så se resultatet (jeg er ny i Oracle miljøet - og skal prøve mig lidt frem) ??
Alternativ: kan jeg slå fejlmeddelsen fra  ??
Jeg har også det problem nu, at jeg får så lang en fejlmeddelse når jeg kører mit script, at jeg ikke kan se starten - er der en pause/step back funktion når scriptet er kørt ??
Er der en kommando hvor jeg kan se alt hvad jeg har oprettet af typer og tabeller ?? Og er det muligt at definere sine typer/tabeller/objekter til et bestemt schema under oprettelsen ?

På forhånd MANGE tak.

Avatar billede pgroen Nybegynder
04. november 2001 - 10:15 #1
Det som fejlmeddelelsen forsøger at gøre opmærksom på, er at der eksisterer objekter, der er baseret på den type du forsøger at ændre.

Måske er problemet, at dit script først laver typen, og dernæst måske anvender denne type, f.eks i en tabeldefinition ?
- Hvis det er tilfældet, kommer du ud over problemet, ved at droppe tabellen, create/replace typen og dernæst oprette tabellen igen...

Du kan se alle dine objekter i USER_OBJECTS, fx.
SELECT object_type, object_name
  FROM user_objects;

Og du kan sagtens oprette objekter i \'fremmede\' schemaer ved at prefixe objektnavnet med schemanavnet, fx.
CREATE TABLE scott.test (n NUMBER);
Avatar billede pnielsen Nybegynder
23. november 2001 - 03:36 #2
umiddelbart kan du ikke bare erstate selv-predefineret objecter med en replace,
hvis de er i brug!
Der siger vel egentligt sig selv.

Men det du spørger efeter er vel bare en spool ?
det vil sige at du får output ud i en fil, når du kører dit script .....

f.eks:
sqlplus> spool c:\\test.trc
sqlplus> @c:\\script.sql
bla bla bla

sqlplus> spool off


Kig i test.trc og du er godt på vej....

;-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester