Archief - [ALG]SQL Valuetype van kolom wijzigen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Duffman-

Legacy Member
Beste,

ik heb net in Oracle een database opgesteld. Uiteindelijk blijkt dat ik een veldje van het type 'number' verkeerdelijk number heb gemaakt. Eigenlijk moet dat een veldje van het type char zijn. Er zit nog geen data in de database maar als ik het veldje verwijder moet ik ook een paar references verwijderen en dat doe ik liever niet. Weten jullie misschien een ALTER instructie om de value type te veranderen?

Momenteel heb ik dit maar het lukt niet:
Code:
ALTER TABLE uitvoering
MODIFY uitv_cursus char(4);

Grtz en alvast bedankt,
Duffman-

Albireo

Legacy Member
Bedoel je met references relaties? Als een veld deel uitmaakt van een relatie dan kan je het datatype niet wijzigen zonder eerst de relaties tijdelijk te verbreken. Dan kan je ongehinder het datatype van dat veld in alle tabellen wijzigen en tenslotte weer alle relaties herstellen.

(zo gaat dat toch in MS Access, 'k heb nog nooit gewerkt met Oracle moet ik bekennen)

Svenvdb

Legacy Member
Zo doe ik het in mijn sql commando's.
Je moet maar eens proberen

cast(naamveld as varchar(255))

killgore

Legacy Member
wat geeft hij als fout eigenlijk want die code zou moeten werken.

Ik gok afgaande op je uitleg wel dat het een foreign key is?

edit: en gebruik in het vervolg een data-modeller, die genereert auto je create-queries, zodat je simpel iets kan wijzigen en alle tables kan droppen zonder last.

Duffman-

Legacy Member
ja tis een fk. Kzal straks (als ik weer op die PC zit) de juiste foutcode geven maar het lukt volgens mij inderdaad niet omdat er al relaties gelegd zijn naar het veld. Van die Data-modeller heb ik nog niet gehoord ...?

Duffman-

Legacy Member
Ik heb het kunnen oplossen. De foreign keys en dergelijke verwijderd en dan ging het wel.

Nu zit ik wel met een ander probleem. Wanneer ik deze sql:
Code:
CREATE TABLE inschrijving
(inschr_cursist number(4,0) CONSTRAINT fk_inschr_cursist REFERENCES medewerkers(MED_NUMMER),
inschr_cursus char(4) CONSTRAINT fk_inschr_cursus REFERENCES uitvoering(uitv_cursus),
inschr_begindatum date CONSTRAINT fk_inschr_begindatum REFERENCES uitvoering(uitv_begindatum),
evaluatie number(1),
CONSTRAINT pk_inschrijving PRIMARY KEY (inschr_cursist,inschr_cursus,inschr_begindatum));
uitvoer, krijg ik volgende fout:


ORA-02270: no matching unique or primary key for this column-list

(als ik de laatste regel wegdoe, die van constraint pk_... dan krijg ik nog steds dezelfde error.)

tha_rippa1be

Legacy Member
Ook aan het studeren zie ik :) (Jeroen, degene met de stekkerblok)

Effe ge-Googled en het blijkt dat ge ergens naar een primary key verwijst die niet bestaat. (ge moet de fout dus gaan zoeken in u REFERENCES delen)

btw, waarom "NUMBER(4,0)" zetten? Is NUMBER(4) dan niet hetzelfde (geen decimalen)?

Tot de maandag ;)

Duffman-

Legacy Member
tha_rippa1be zei:
Ook aan het studeren zie ik :) (Jeroen, degene met de stekkerblok)

Effe ge-Googled en het blijkt dat ge ergens naar een primary key verwijst die niet bestaat. (ge moet de fout dus gaan zoeken in u REFERENCES delen)

btw, waarom "NUMBER(4,0)" zetten? Is NUMBER(4) dan niet hetzelfde (geen decimalen)?

Tot de maandag ;)
Jaja, druk bezig met studeren (netwerkarchitectuur viel wel tegen maar ik ben er eindelijk doorgeraakt. :p allé, het deel van na de test tijdens de laatste les moet ik nog doen.)
Ik heb ondertussen de oefeningen van rel. databanken afgemaakt.
Die number(4,0) is inderdaad hetzelfde als number(4) maar voor de zekerheid heb ik die ',0' er toch maar aan toegevoegd omdat ik niet echt wist waar de fout lag. Ondertussen heb ik de fout wel gevonden.
Als je problemen hebt met de oefening, kan je mij dat altijd laten weten via pm/mail en misschien kan ik dan wel helpen maarja ... misschien ook ni :unsure:

Grtz,
Duffman

ps: tot maandag vriend met de stekkerblok :D
En weet ge trouwens wie ik ben? ^^

jodeman

Legacy Member
Beste site op heel den internet is techonthenet.
Daar vindt je alles van oracle sql.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan