Oracle SQL Developer zablokowane wyszukiwanie?

0

Dzień dobry,
mam problem z bazą danych. Najprostsze zapytania nie przynoszą rezultatu.

pytanie
select imie1 from osoby where nazwisko = 'lis';

odpowiedź bazy danych
no rows selected

takie dane w bazie na pewno istnieją a zapytanie zdaje się być poprawne i zdecydowanie bardzo proste. Dlaczego więc nie zwraca żadnego rezultatu? Możliwe, że oracle 11g ma jakieś blokady przed zapytaniami? Jak to ewentualnie odszukać i ustawić?

0

A jesteś na 100% pewien, że jest nazwisko 'lis' a nie, np 'lis ' albo 'lis
' (tak jak z enterem ... etc. ) ?

Spróbuj:

select imie1 from osoby where nazwisko LIKE '%lis%';

Ps. składnia dla SQL Server .. zakładam, że to proste zapytanie sie nie będzie różniło dla Oracle.

0

Jestem zdecydowanie o tym przekonany. To nie jest moja baza, tylko zaimportowana z uczelni, więc tam na bank jest wszystko dobrze. Problem w tym, że może są jakieś ustawienia, które coś blokują. Być może coś pominąłem przy instalacji serwera u siebie na kompie i dlatego teraz jest problem. Co więcej inne zapytania typu select działają, więc nie mam pojęcia dlaczego raz działa, a raz nie. Już patrzyłem na wszystko, indeksy na tabelach, kodowanie znaków, rodzaj pola (varchar2) itp.

select imie1 from osoby where plec = 'M';

12 rows selected

0

Jak pominąłeś ? Jeśli jedne "Selcty" Ci działają, a inne nie ... to nie może być problem serwera a zapytań właśnie.

Sprawdziłeś to co powyżej napisałem + opcję o której wspomniał abrakadaber ?
Ps. Czy przy tym zapytaniu z "płec" wylistowało Ci tego "lisa" ?

0

Sprawdziłem obie opcje i brak rezultatów. Przy płci wyskakuje elegancko.

0

Możliwe, że masz nazwisko typu CHAR z paddingiem spacjami. Co zwraca Oracle dla rekordu z nazwiskiem lis ?

select nazwisko, dump(nazwisko), length(nazwisko) from osoby;
0

Got
Typ=1 Len=3: 71,111,116
3

31 rows selected

ale Lis no rows selected

0

A weź no Paine dorzuć do tego zapytania nazwisko:

select imie1, nazwisko from osoby where plec = 'M'

I skopiuj zawarotść komórki nazwisko dla lisa, i wklej to w warunku WHERE orginalnego zapytania i sprawdź czy Ci zwróci wynik.

select imie1 from osoby where nazwisko = 'ctrl + v '
0

Z wklejeniem zadziałało, czy możliwe żeby przy imporcie wkradły się jakieś białe znaki? Ewentualnie inne przyczyny?

2

No to teraz się pobaw ... musisz wyczaić czy masz jakieś specjalne znaki w tej komórce .. a może l "L" to wcale nie L ? ;) A może to duże "i" I .. albo | kreska ;)
Sprawdź długość ciągu LEN .. jeśli masz 3 znaki to znaczy że coś z tym L jest nie teges, wtedy sprawdź kod ASCII dla 1 znaku:
itp. itd.

0

OK, czyli wszytko jasne :) Dzięki wielkie za pomoc :) biorę się do roboty

1 użytkowników online, w tym zalogowanych: 0, gości: 1