błąd ORA-01722
p_pilkaWYTNIJTO@poczta.onet.pl - 13-07-2007 00:01
błąd ORA-01722
Przy próbie wyliczenia numeru NRB w następującym wyrażeniu SQL: TO_CHAR(98-MOD(TO_NUMBER(TRIM( B.BNK_ID_NBR) || TRIM( B.BANK_ACCOUNT_NBR) || TO_CHAR(TRIM( B.BILL_SOURCE_ID),'0000') || TO_CHAR(TRIM( A.CUST_ID),'00000000') || '252100'),97),'00') || TRIM( B.BNK_ID_NBR) || TRIM( B.BANK_ACCOUNT_NBR) || TO_CHAR(TRIM( B.BILL_SOURCE_ID),'0000') || TO_CHAR(TRIM ( A.CUST_ID),'00000000')
wyskakuje mi błąd konwersji do formatu numerycznego (ORA-01722) i zupełnie nie wiem dlaczego. Wszystkie pola wykorzystywane wewnatrz zapytania są typu CHAR.
Czy ktos mógłby mi powiedzieć dlaczego takk się dzieje? Z góry dziękuję za wszelka pomoc
Pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
nawiiwan@gazeta.pl - 13-07-2007 00:01
=?iso-8859-2?B?UmU6IGKzsWQgT1JBLTAxNzIy?=
Hej, zobacz w ten sposób: select TO_CHAR ( 98-MOD ( TO_NUMBER ( TRIM ( '12401154' ) || TRIM ( '1111' ) || ( TRIM ( '0000' ) ) || ( TRIM ( '21497704' ) ) || '252100') ,97 ) ,'00' ) || TRIM ( '12401154' ) || TRIM ( '1111' ) || TO_CHAR ( TRIM ( '0000' ),'0000' ) || TO_CHAR ( TRIM ( '21497704' ) ,'00000000' ) from dual
Ogólnie zauwazyłem, że to_char||to_char dodaje spację pomiędzy.
Pozdrawiam, Maciek
Thomas Olszewicki - 13-07-2007 00:01
=?iso-8859-2?B?UmU6IGKzsWQgT1JBLTAxNzIy?=
On Jul 12, 5:45 am, p_pilkaWYTNI...@poczta.onet.pl wrote: > Przy próbie wyliczenia numeru NRB w następującym wyrażeniu SQL: > TO_CHAR(98-MOD(TO_NUMBER(TRIM( B.BNK_ID_NBR) || TRIM( B.BANK_ACCOUNT_NBR)|| > TO_CHAR(TRIM( B.BILL_SOURCE_ID),'0000') || TO_CHAR(TRIM( > A.CUST_ID),'00000000') || '252100'),97),'00') || TRIM( B.BNK_ID_NBR) || TRIM( > B.BANK_ACCOUNT_NBR) || TO_CHAR(TRIM( B.BILL_SOURCE_ID),'0000') || TO_CHAR(TRIM > ( A.CUST_ID),'00000000') > > wyskakuje mi błąd konwersji do formatu numerycznego (ORA-01722) i zupełnie nie > wiem dlaczego. Wszystkie pola wykorzystywane wewnatrz zapytania są typuCHAR. > > Czy ktos mógłby mi powiedzieć dlaczego takk się dzieje? Z góry dziękuję za > wszelka pomoc > > Pozdrawiam > > -- > Wysłano z serwisu OnetNiusy:http://niusy.onet.pl
Robisz niebezpieczna konversje TO_CHAR(<string>,<format String>) Jezeli <string> jest dluzszy niz <format String> to resultat jest '#######'. To dodane do innych stringow powoduja ze result string nie moze byc zamieniony na numer. Przyklad: select to_char('12222','00000') from dual; TO_CHAR('12222','00000') ------------------------ 12222 Ale: select to_char('12222','0000') from dual;
TO_CHAR('12222','0000') ----------------------- #####
HTH Thomas
p_pilka@poczta.onet.pl - 13-07-2007 00:01
Dzięki za podpowiedź - rzeczywiście błąd był spowodowany przez te spacje dodawane w środku wyrażenia - ale dlaczego tak się działo na to nie znalazłem odpowiedzi... W każdym razie udało się i jeszcze raz dzięki za podpowiedź
Pozdrawiam
> Hej, > zobacz w ten sposób: > select TO_CHAR > * ( > * 98-MOD > * * *( > * * *TO_NUMBER > * * * * ( > * * * * TRIM ( '12401154' ) > * * * * || TRIM ( '1111' ) > * * * * || ( TRIM ( '0000' ) *) > * * * * || *( TRIM ( '21497704' ) ) > * * * * || '252100') > * * * * ,97 ) > * * *,'00' > * ) > * || TRIM ( '12401154' ) > * || TRIM ( '1111' ) > * || TO_CHAR ( TRIM ( '0000' ),'0000' ) > * || TO_CHAR ( TRIM ( '21497704' ) ,'00000000' ) > from dual > > Ogólnie zauwazyłem, że to_char||to_char dodaje spację pomiędzy. > > Pozdrawiam, > Maciek >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Ms SQL Server 2000 i błąd przy nie wypełnionej wartościo w polusmalldatetime
[SUBIEKT] Katastrofalny błąd - padła baza danych lub serwer SQL
=?iso-8859-2?q?ORA-12528:_TNS:nas=B3uch:_nowe_po=B3=B1czenia_s=B1_blo kowane_przez_wszystkie?=
PostgreSQL Windopws XP SP2 - blad podczas instalacji
Microsoft visual C++ runtime error instalacja coreldraw9 BLAD :(
DBDesigner4 - czy ktoś wie gdzie popełniam bład ?
PgSQL i funkcja dajaca "autoincrement" - blad
load data infile - blad - Mysql
Oracle blad naruszono wiezy unikatowe
[MS SQL] gdzie leży błąd...?
zanotowane.pldoc.pisz.plpdf.pisz.ploefg.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 |
|