ďťż
 
oracle, wykrywanie typów danych w Varchar2 ďťż
 
oracle, wykrywanie typów danych w Varchar2
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

oracle, wykrywanie typów danych w Varchar2



allerune - 13-11-2006 00:44
oracle, wykrywanie typów danych w Varchar2
  Witam
Mam proste zadanie, muszę napisać Selecta, który wylistuje wszystkie
wiersze, gdzie wartość pola typu varchar2, które sprawdzam jest nullem lub
jest liczbą. to_number się wysypuje w przypadku gdy pole nie jest liczbą.
Jak to zrobić? Szukam po googlach od 2 godzin i na nic ciekawego nie
trafiłem. Dodam jeszcze że jest to Oracle 9, więc wyrażenia regularne z
10g które znam nie działają :-/

ps. dlaczego przy warunku IS IN ('0','1'...'9', NULL) zwraca mi także
wiersze zawierające jedną spację (nie jest ona ani cyfrą ani nullem)?

dzięki za pomoc :)
allerune





dzibus - 13-11-2006 00:44

  allerune wrote:
> Witam
> Mam proste zadanie, muszę napisać Selecta, który wylistuje wszystkie
> wiersze, gdzie wartość pola typu varchar2, które sprawdzam jest nullem lub
> jest liczbą. to_number się wysypuje w przypadku gdy pole nie jest liczbą.
> Jak to zrobić? Szukam po googlach od 2 godzin i na nic ciekawego nie
> trafiłem. Dodam jeszcze że jest to Oracle 9, więc wyrażenia regularne z
> 10g które znam nie działają :-/
>
> ps. dlaczego przy warunku IS IN ('0','1'...'9', NULL) zwraca mi także
> wiersze zawierające jedną spację (nie jest ona ani cyfrą ani nullem)?
>
> dzięki za pomoc :)
> allerune
>
Witaj.

Sprobuj :

WHERE kolumna BETWEEN 1 AND 9 OR kolumna IS NULL;

Pozdrawiam




ThomasO@cpas.com - 13-11-2006 00:44

 
allerune wrote:
> Witam
> Mam proste zadanie, muszę napisać Selecta, który wylistuje wszystkie
> wiersze, gdzie wartość pola typu varchar2, które sprawdzam jest nullem lub
> jest liczbą. to_number się wysypuje w przypadku gdy pole nie jest liczbą.
> Jak to zrobić? Szukam po googlach od 2 godzin i na nic ciekawego nie
> trafiłem. Dodam jeszcze że jest to Oracle 9, więc wyrażenia regularne z
> 10g które znam nie działają :-/
>
> ps. dlaczego przy warunku IS IN ('0','1'...'9', NULL) zwraca mi także
> wiersze zawierające jedną spację (nie jest ona ani cyfrą ani nullem)?
>
> dzięki za pomoc :)
> allerune
Sproboj:
(nie sprawdzone)
CREATE OR REPLACE FUNCTION IS_NUMBER_OR_NULL( cPole VARCHAR2 ) RETURN
VARCHAR2 AS
cRtn VARCHAR2(1);
nAny NUMBER;
BEGIN
cRtn := 'N';
IF cPole IS NULL THEN
cRtn := 'Y';
ELSE
BEGIN
nAny := TO_NUMBER(cPole);
cRtn := 'Y';
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END IF;
RETURN cRtn;
END;

Pozniej w select statement:
SELECT ... FROM ... WHERE IS_NUMBER_OR_NULL(<column name>)='Y';

Moze nie najprostszy sposob, ale nic innego nie przyszlo mi do glowy o
11 w nocy.
Thomas




Adamm - 13-11-2006 00:47

  Użytkownik "allerune" <akcesoria@hurtgsm.mpa.pl> napisał w wiadomości
news:9bda4a7b6c44ef7495982af59ced3e02@news.home.ne t.pl...
> Witam
> Mam proste zadanie, muszę napisać Selecta, który wylistuje wszystkie
> wiersze, gdzie wartość pola typu varchar2, które sprawdzam jest nullem lub
> jest liczbą. to_number się wysypuje w przypadku gdy pole nie jest liczbą.
> Jak to zrobić? Szukam po googlach od 2 godzin i na nic ciekawego nie
> trafiłem. Dodam jeszcze że jest to Oracle 9, więc wyrażenia regularne z
> 10g które znam nie działają :-/
>
> ps. dlaczego przy warunku IS IN ('0','1'...'9', NULL) zwraca mi także
> wiersze zawierające jedną spację (nie jest ona ani cyfrą ani nullem)?
>
> dzięki za pomoc :)
> allerune
>

select *
from tabela
where translate (pole , '1234567890','') is null

Pozdrawiam
Adam





kamilgrzeszczuk@sen-sys.pl - 13-11-2006 00:48

 
> Mam proste zadanie, muszę napisać Selecta, który wylistuje wszystkie
> wiersze, gdzie wartość pola typu varchar2, które sprawdzam jest nullem lub
> jest liczbą. to_number się wysypuje w przypadku gdy pole nie jest liczbą.
> Jak to zrobić? Szukam po googlach od 2 godzin i na nic ciekawego nie
> trafiłem. Dodam jeszcze że jest to Oracle 9, więc wyrażenia regularne z
> 10g które znam nie działają :-/

Przeczytaj ten artykul
http://www.oracle.com/technology/ora...o44asktom.html

Pozdrawiam
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= Oracle 19g +Insert +Insert +Insert... [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com