2009-09-11 5 views
11

Oracle SQL Developer consente di aggiornare i valori dei campi direttamente nella tabella senza dover scrivere uno script sql. Tuttavia non ti permette di impostare un valore nullo per un campo? lo script di aggiornamento che viene generato è qui sotto: UPDATE "TABLE" SET field_required = 'null' WHERE ROWID = 'AAAnnZAAFAAAGMfAAC' E ORA_ROWSCN = '14465324'come impostare un valore nullo in un campo in una tabella utilizzando lo strumento di sviluppo sql di Oracle?

Qualsiasi idea di come impostare un valore nullo a un campo nella tabella senza scrivere una dichiarazione di aggiornamento?

risposta

8

Che versione stai usando? Ho 1.5.4 adesso e funziona perfettamente. Basta fare clic sul valore e premere delete, quindi commit.

+1

Attualmente uso 1.5.4 e oggi mattina ho installato gli ultimi aggiornamenti. Ora funziona. La mia versione è 1.5.4 Build MAIN-5940 Grazie – Cshah

0

Alcuni strumenti utilizzano <ctrl+0> per immettere un valore NULL.

+1

Che non ha funzionato – Cshah

0

c'è un'impostazione in tools -> preferences -> Database -> advanced settings che consente di ripristinare la visualizzazione predefinita delle colonne NULL. Se lo imposti in bianco, probabilmente questo risolverà il tuo problema.

+0

No. Ciò commuta semplicemente il display a vuoto. Non risolve. Di seguito sono riportati gli script eseguiti quando eseguo l'aggiornamento null previsto UPDATE "DEPARTMENT" SET NAME = 'cgh' WHERE ROWID = 'AAAoA8AAFAAAHk2AAA' AND ORA_ROWSCN = '14471109' Conferma riuscito UPDATE "DEPARTMENT" SET NAME = WHERE ROWID = 'AAAoA8AAFAAAHk2AAA' AND ORA_ROWSCN = '14471114' Un errore durante il salvataggio delle modifiche nella tabella "REPARTO": Riga 1: indice colonna non valido: getValidColumnIndex. Vedo l'errore di cui sopra quando ho cancellato tutte le lettere nel campo e ho cercato di impegnare i dati – Cshah

3

Significa la modifica nella scheda dati? Basta inserire una stringa 'vuota', che in oracle è uguale a null.

Set "valore nullo Visualizza come" a (null) in Strumenti -> Preferenze -> Database -> impostazioni avanzate

create table ff (v VARCHAR2(1)); 

INSERT INTO FF VALUES ('1'); 

Seleziona tabella e selezionare la scheda dati.

Questo dimostra

V 
= 
1 

Ora fare doppio clic sul valore 1 ed eliminare il 1. Commit genera questa dichiarazione nel registro:

UPDATE "OSIVOLG"."FF" SET V = WHERE ROWID = 'AAA+zcAAFAAF9rgAAA' AND ORA_ROWSCN = '77536476584' 

che non è syntacticly un'istruzione SQL valida, ma scheda dati ora mostra.

V 
====== 
(null) 
+0

Ancora non funziona. Ho provato a eliminare un valore dalle tabelle di aiuto che sono preinstallate quando viene creato un nuovo db. Di seguito sono riportati i registri UPDATE "SYSTEM". "HELP" SET INFO = WHERE ROWID = 'AAACfmAABAAAG66AAL' E ORA_ROWSCN = '169734' Un errore durante il salvataggio delle modifiche nella tabella "SYSTEM"."HELP": Riga 12: indice colonna non valido: getValidColumnIndex – Cshah

+0

O non si dispone dei privilegi per aggiornare quella tabella o il db viene hosed. Prova ad aggiornare una tabella in uno schema utente normale. Ho appena aggiornato quella tabella nel mio DB senza problemi, ma è un utente che ha i privilegi DBA. – DCookie

+1

Questa sembra essere una specie di bug: http://forums.oracle.com/forums/thread.jspa?messageID=3314613&tstart=0 –

12

Utilizzo di SQL Developer 3.0 qui. Ciò che funziona per me è innanzitutto evidenziare la cella che voglio impostare su null. Premi due volte backspace e sposta fuori dalla cella (o fai tutto ciò che devi fare per uscire dalla modalità di modifica). Il primo backspace mette la cella in modalità di modifica e cancella il valore esistente. Il secondo backspace è dove viene impostato il valore "null" (questo non è apparentemente evidente). Configura le tue modifiche e i valori nulli verranno ora visualizzati nei dati aggiornati.

+0

Posso anche confermare che con SQL Developer 4.0, l'impostazione di un valore nullo è semplice come cancellare il contenuto della cella. Per quanto ne so, versioni come 9.0R2 sono compatibili con esso e possono essere scaricate qui: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html – chuck

+0

Brilliant , grazie. – thonnor

0

Selezionare le colonne pertinenti con il mouse (premendo CTRL per mantenere la selezione man mano che si procede), quindi premere MAIUSC + CANC. Questo ha funzionato per me