PDA

View Full Version : SQL come posso fare?


texerasmo
19-09-2005, 13:52
Ciao a tutti,
DB = ORACLE

Ho un tabella con dentro i contenuti, ora devo modificare il il tipo di una colonna ovvero da varcharr a integer.

Ho pensato di fare così


Create table contenuti_app as (select * from contenuti);

delete contenuti;

alter table contenuti modify template integer.

ora come posso fare a mettere i dati da contenuti_app a contenuti?

insert into contenuti ..........

texerasmo
19-09-2005, 14:25
o meglio dovrei fare un cast da varchar a integer, forse

Killian
22-09-2005, 21:51
Create table contenuti_app as (select * from contenuti);

direi che va bene, poi (dopo aver svuotato contenuti):

insert into contenuti
(campo1, campo2,...)
select campo1, campo2,.... to_number(campoN)
from contenuti_app


dove "campoN" è quello che contiene il campo che è passato da varchar2 a number (o vuoi proprio usare il tipo integer? non ti va bene il tipo number?)

Ovviamente nell'insert visto che espliciterai le colonne (in genere è meglio farlo), l'ordine può essere qualsiasi, purchè ovviamente sia lo stesso per entrambe



PS: la funzione to_number(stringa) accetta in ingresso una stringa e la converte in numero, a patto che ciò sia possibile, altrimenti restituisce un errore