Avatar billede bhn.314 Nybegynder
18. maj 2001 - 14:14 Der er 22 kommentarer og
1 løsning

ALTER TABLE person DROP alder

Vi vil gerne slette attributten alder fra relationen Person. Men hvad er Oracle\'s syntaks. SQL standard er jo bare:

ALTER TABLE person DROP alder;
Avatar billede psv Nybegynder
18. maj 2001 - 14:18 #1
alter table PERSON drop column alder;
Avatar billede psv Nybegynder
18. maj 2001 - 14:19 #2
BTW: Virker kun fra Oracle 8i. I 8.0 kan man ikke droppe et felt i en tabel!
Avatar billede bhn.314 Nybegynder
18. maj 2001 - 14:23 #3
Vi kører på Oracle 8i, har prøvet det du foreslår, men virker ikke, får følgende fejl:

COMPATIBLE parameter needs to be 8.1.0.0.0 or greater
Avatar billede psv Nybegynder
18. maj 2001 - 14:33 #4
Hvilken version er din klient?

Avatar billede bhn.314 Nybegynder
18. maj 2001 - 14:36 #5
Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production
With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 - Production
Avatar billede psv Nybegynder
18. maj 2001 - 14:39 #6
Er det ikke det SQL*Plus siger om databasen?

SQL*Plus: Release 8.1.7.0.0 - Production on Fre Maj 18 14:35:44 2001

(c) Copyright 2000 Oracle Corporation.  All rights reserved.


Forbindelse er oprettet til :
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production

Det øverste er versionen af SQL*Plus og dermed din klientversion ;-)
Dvs. Jeg har en 8.1.7 klient mod en 8.1.6 database!
Avatar billede Slettet bruger
18. maj 2001 - 14:41 #7
\'Compatible\' er en parameter, som du kan sætte i din init.ora fil. Ret den til det krævede og genstart.
Avatar billede Slettet bruger
18. maj 2001 - 14:42 #8
Eksempel:

compatible = 8.1.0
Avatar billede bhn.314 Nybegynder
18. maj 2001 - 14:42 #9
okey vi sender lige klienten

SQL*Plus: Release 8.1.5.0.0 - Production on Fre Maj 18 10:19:09 2001
Avatar billede psv Nybegynder
18. maj 2001 - 15:08 #10
Jeg tror du skal følge joern_h\'s løsning :-)
Avatar billede bhn.314 Nybegynder
18. maj 2001 - 15:41 #11
vi kan ikke finde init.ora filen kan du ikke give os stien....vi er nybegyndere!!!!og vi bruger en af vores venners login. ;-)
Avatar billede psv Nybegynder
18. maj 2001 - 15:43 #12
Hvis I er \"nybegyndere\" har i vel heller ikke rettigheder til at læave shutdown/startup efter i har rettet initXXXX.ora og så kan det være lige meget :-)

C:\\oracle\\ora81\\database\\initXXXX.ora

er et godt bud hvis det er en NT server...
Avatar billede psv Nybegynder
18. maj 2001 - 15:44 #13
XXXX er SID\'en på den database i vil pille i!
Avatar billede teepee Nybegynder
18. maj 2001 - 15:49 #14
Jeg synes at det ser ud som om at det er en relation du vil fjerne, eller en del af en relation. Hvordan skal det forstås?
Avatar billede bhn.314 Nybegynder
18. maj 2001 - 16:16 #15
vi vil ikke slette en relation, men en attribut i relationen, og det volder os store problemer! Der er data i den kolonne vi vil slette, og der er ikke tale om fremmednøgler
Avatar billede bhn.314 Nybegynder
18. maj 2001 - 16:18 #16
Stien C:\\oracle\\ora81\\database\\... findes ikke. det skal nævnes at den oracle database vi arbejder på ligger på datalogi RUC, mens vi sidder på IT-C og har forbindelse via JDBC
Avatar billede pnielsen Nybegynder
19. maj 2001 - 01:03 #17
Med andre ord... i kan ikke få lov til at sætte compatible op!

Så kan i jo lave en create table person2 as select kol1,kol2 from person;
altså ikke selecte den kolonne.....
droppe person tabellen og create table person as select * from person2;

Husk lige at checke constraints hvis der er nogen ;-)
Avatar billede lagermus Nybegynder
04. juni 2001 - 22:39 #18
Pnielsen har ret man kan ikke få lov til at slette en kolonne i en eksisterende tabel. Man kan ændre datatyper...
Avatar billede bhn.314 Nybegynder
05. juni 2001 - 10:45 #19
Hmmm
Avatar billede Slettet bruger
05. juni 2001 - 22:06 #20
lagermus -> Hvad mener du med at man ikke kan droppe en column?

Det kan man da godt.
Avatar billede lagermus Nybegynder
06. juni 2001 - 00:20 #21
>> bhn.314 ja, jeg forstår undren... rode op i en afsluttet sag med en ubrugelig kommentar...

>>joern h

Jeg vil nu alligevel lige forsvare mig lidt... I følge min kilde (lærebog) og efter egen test kan jeg ikke slette en kolonne fra en tabel. Om den så er tom eller ej. Dette er testet i SQL*Plus 3.3.

Men du skriver man kan... Jeg vil meget gerne lære noget ! Hvordan gør jeg? Lagermusen
Avatar billede Slettet bruger
06. juni 2001 - 09:26 #22
lagermus --> Hermed forsøg fra en Oracle8i (release 2) database:

RSCHINA3> conn rsjapan3/rsjapan3@stibotest2
Connected.
RSCHINA3>  create table droptest (felt1 number, felt2 varchar2(40));

Table created.

RSCHINA3> insert into droptest values (1, \'1\');

1 row created.

RSCHINA3> insert into droptest values (2, \'22\');

1 row created.

RSCHINA3> commit;

Commit complete.

RSCHINA3> alter table droptest drop column felt2;

Table altered.

RSCHINA3> desc droptest
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
FELT1                                              NUMBER

RSCHINA3>
Avatar billede lagermus Nybegynder
07. juni 2001 - 20:09 #23
joern h --> OK, det kan man jo godt i Oracle8i...

Syntaks mæssigt har jeg prøvet det samme i SQL, men dette under Oracle7 ! Forklaringen ligger jo nok heri.

Jeg arbejder pt i en ældre version, da mit uddannelsessted ikke har nyere...

Jeg beklager at skulle føre dette på banen, når jeg tilsyndeladende er sat tilbage rent versionsmæssigt :-) Men tak for tippet da!
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