Oracle SQL Developer zablokowane wyszukiwanie?

Oracle SQL Developer zablokowane wyszukiwanie?
R8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
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ć?

BlackBad
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 454
0

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

Spróbuj:

Kopiuj
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.

R8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
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

BlackBad
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 454
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" ?

R8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

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

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
0

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

Kopiuj
select nazwisko, dump(nazwisko), length(nazwisko) from osoby;
R8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

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

31 rows selected

ale Lis no rows selected

BlackBad
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 454
0

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

Kopiuj
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.

Kopiuj
select imie1 from osoby where nazwisko = 'ctrl + v '
R8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

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

BlackBad
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 454
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.

R8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.