2009-09-11 15 views
11

Oracle SQL Developer pozwala aktualizować wartości pól bezpośrednio do tabeli bez potrzeby pisania skryptu sql. Jednak nie pozwala ustawić wartość pustą dla pola? skrypt aktualizacja, która zostanie wygenerowany jest poniżej: UPDATE "TABLE" SET field_required = 'null' WHERE ROWID = 'AAAnnZAAFAAAGMfAAC' AND ORA_ROWSCN = '14465324'jak ustawić wartość pustą do pola w tabeli za pomocą narzędzia programistycznego sql oracle?

Każdy pomysł jak ustawić wartość null do pola w tabeli bez pisania instrukcji aktualizacji?

Odpowiedz

8

W jakiej używacie wersji? W tej chwili mam 1.5.4 i działa idealnie. Po prostu kliknij wartość i naciśnij usuń, a następnie zatwierdz.

+1

Obecnie używam wersji 1.5.4, a dziś rano instaluję najnowsze aktualizacje. Teraz działa. Moja wersja to 1.5.4 Build MAIN-5940 Dzięki – Cshah

0

Niektóre narzędzia używają <ctrl+0> do wprowadzenia wartości NULL.

+1

To nie działało – Cshah

0

Istnieje ustawienie w tools -> preferences -> Database -> advanced settings, które pozwala zresetować domyślne wyświetlanie NULL kolumn. Jeśli ustawisz wartość pustą, która prawdopodobnie rozwiąże problem.

+0

Nie. To po prostu przełącza wyświetlanie na puste. To nie rozwiązuje. Poniżej znajdują się skrypty uruchamiane, gdy wykonuję zamierzoną aktualizację o wartości NULL AKTUALIZACJA "DEPARTMENT" SET NAZWA = "cgh" WHERE ROWID = "AAAoA8AAFAAAHk2AAA" ORA_ROWSCN = '14471109' Zlecenie pomyślnego ZAKŁADU "DZIAŁ" SET NAZWA = GDZIE ROWID = 'AAAoA8AAFAAAHk2AAA' AND ORA_ROWSCN = '14471114' Jeden błąd zapisuje zmiany w tabeli "DEPARTMENT": Wiersz 1: Nieprawidłowy indeks kolumny: getValidColumnIndex. Widzę powyższy błąd, gdy usunąłem wszystkie litery w polu i próbowałem zatwierdzić dane. – Cshah

3

Czy chodzi ci o edytowanie w zakładce danych? Wystarczy wstawić "pusty" ciąg znaków, który w oracle jest równy zeru.

Set "Display wartość null jako" do (null) w Narzędzia -> Preferencje -> Database -> ustawienia zaawansowane

create table ff (v VARCHAR2(1)); 

INSERT INTO FF VALUES ('1'); 

Wybierz tabeli, a następnie wybierz kartę danych.

To pokazuje

V 
= 
1 

Teraz kliknij dwukrotnie wartość 1 i skasować 1. Commit generuje to oświadczenie w dzienniku:

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

Które syntacticly nie jest poprawnym instrukcja SQL ale zakładka dane teraz pokazuje.

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

Nadal nie działa. Próbowałem usunąć wartość z tabel pomocy, które są preinstalowane po utworzeniu nowej bazy danych. Poniżej znajduje się dziennik AKTUALIZACJA "SYSTEM". "POMOC" USTAW INFO = GDZIE ROWID = "AAACfmAABAAAG66AAL" ORA_ROWSCN = '169734' Jeden błąd zapisuje zmiany w tabeli "SYSTEM"."POMOC": Wiersz 12: Nieprawidłowy indeks kolumny: getValidColumnIndex – Cshah

+0

Albo nie masz uprawnień do aktualizacji tej tabeli, albo twoja db jest hosed. Spróbuj zaktualizować tabelę w zwykłym schemacie użytkownika. Właśnie zaktualizowałem tę tabelę w moim DB bez problemu, ale jest to użytkownik, który ma uprawnienia DBA. – DCookie

+1

To wydaje się być pewnego rodzaju błąd: http://forums.oracle.com/forums/thread.jspa?messageID=3314613&tstart=0 –

12

Korzystanie z SQL Developer 3.0 tutaj. To, co działa przede mną, to najpierw zaznaczyć komórkę, którą chcę ustawić jako pustą. Uderz dwa razy w backspace i wyjdź z celi (lub zrób wszystko, co musisz, aby wyjść z trybu edycji). Pierwszy backspace umieszcza komórkę w trybie edycji i usuwa istniejącą wartość. Drugi backspace to miejsce, w którym ustawia się wartość "null" (, co nie jest widoczne wizualnie:). Zatwierdź zmiany, a wartości puste pojawią się teraz w odświeżonych danych.

+0

Mogę również potwierdzić, że w SQL Developer 4.0 ustawienie wartości pustej jest tak proste, jak usunięcie zawartości komórki. O ile mi wiadomo, wersje tak stare jak 9.0R2 są z nim kompatybilne i można je pobrać tutaj: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html – chuck

+0

Brilliant , Dziękuję Ci. – thonnor

0

Wybierz odpowiednie kolumny za pomocą myszy (naciskając klawisz CTRL, aby zachować wybór w bieżącej kolejności), a następnie naciskając SHIFT + DEL. To zadziałało dla mnie

Powiązane problemy