02. oktober 2002 - 09:54Der er
4 kommentarer og 1 løsning
hjælp til at oprette en tabel (for første gang i oracle)
Jeg er gået ind i Oracle DBA studio.
Jeg har fundet ned under: Schema Fundet: Tables Her finder jeg så nogle forskellige punkter under. Har jeg ret i at det først er når jeg udvider dem jeg får de forskellige tabelnavne? Og hvordan opretter jeg sådan en "overtabel"?
Nu vil jeg så gerne oprette en tabel med følgende felter: id, dato, true/false, talfelt, tekstfelt, notatfelt
Id skal være unikt og gerne selv kunne tælle én op for hver indsat kolonne, skal jeg have fat i datatypen "rowid"?
dato der skal default være aktuel dato
true/false der skal default være true talfelt der skal default være 99 tekstfelt skal default være "slettet" notatfelt skal være tom/null
Er der en der vil sende mig SQL sætningen for dette? evt. forklare hvad nedenstående datatyper bruges til, eller link til dette (jeg bruger oracle 8.1.7)
char varchar2 nchar nvarchar2 number date long raw long raw rowid blob clob nclob bfile urowid float
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
true/false kan ikke lade sig gøre, du må i stedet bruge en varchar2(1) eller number(1) til at håndtere dette
create table tabel1 ( id number primary key, dato date default sysdate, aktiv number(1) default 1, talfelt number default 99, tekstfelt varchar2(500) default 'slettet', notatfelt varchar2(2000));
create sequence id_seq;
create or replace trigger id_trg before insert or update on tabel1 for each row begin if :new.id is null then select id_seq.nextval into :new.id from dual; end if; end;
SCLJOt>desc tabel1; Name Null? Type ----------------------------------------- -------- ---------------------------- ID NOT NULL NUMBER DATO DATE AKTIV NUMBER(1) TALFELT NUMBER TEKSTFELT VARCHAR2(500) NOTATFELT VARCHAR2(2000)
SCLJOt>insert into tabel1 (notatfelt) values ('tester');
1 row created.
SCLJOt>select * from tabel1;
ID DATO AKTIV TALFELT ---------- --------- ---------- ---------- TEKSTFELT -------------------------------------------------------------------------------- NOTATFELT -------------------------------------------------------------------------------- 1 02-OCT-02 1 99 slettet tester
sysdate indeholder også tiden, hvorimod trunc(sysdate) afrunder til datoen. Date feltet indeholder dog stadig tiden, men i trunkeringseksemplet vil denne være 00:00:00.
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.