Oracle SQL Developer zablokowane wyszukiwanie?

Odpowiedz Nowy wątek
2019-05-15 11:53
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ć?

Pozostało 580 znaków

2019-05-15 12:02
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.

1. nie będzie, 2. ja bym dorzucił jeszcze LOWER na polu nazwisko - abrakadaber 2019-05-15 12:20

Pozostało 580 znaków

2019-05-15 12:25
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

Pozostało 580 znaków

2019-05-15 12:30
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" ?

Pozostało 580 znaków

2019-05-15 12:37
0

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

Pozostało 580 znaków

2019-05-15 12:43
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;
edytowany 2x, ostatnio: yarel, 2019-05-15 12:44
Z 1 postu wynika, że zwraca "no rows selected" - chociaz ja też sądzę, że to musi być coś z "ukrytymi" znakami - BlackBad 2019-05-15 12:45
Mój błąd przy copy&paste, zedytowane :) - yarel 2019-05-15 12:47

Pozostało 580 znaków

2019-05-15 12:45
0

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

31 rows selected

ale Lis no rows selected

edytowany 1x, ostatnio: rav89, 2019-05-15 12:46
A dla tego lisa ? - yarel 2019-05-15 12:46
No ale jak robisz selecta z osoby, bez warunku WHERE, to jakie dane Ci zwraca dla tego rekordu? (Chodzi o ten 1 rekord spośród 31 wybranych). - yarel 2019-05-15 12:50
LIS Typ=1 Len=3: 76,73,83 3 - rav89 2019-05-15 12:58
no to teraz: select * from osoby where nazwisko='LIS'; - yarel 2019-05-15 13:02
rekord się zwraca - rav89 2019-05-15 13:09

Pozostało 580 znaków

2019-05-15 12:49
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 '

Pozostało 580 znaków

2019-05-15 12:57
0

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

Pozostało 580 znaków

2019-05-15 13:03

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.

Pozostało 580 znaków

2019-05-15 13:10
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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