Forum » Programiranje » Težava pri uvozo v SQL bazo (varchar to numeric)
Težava pri uvozo v SQL bazo (varchar to numeric)
Mati ::
Imam sledečo težavo.
S programom Toad for SQL uvažam database iz xls file.
Pri numerični vrednosti za težo (recimo 1, 2, 5,1...)se pojavlja težava, da pljune error če je ničla (0) prvi znak.
Torej pri težah pod 1 (recimo 0,01).
Napiše error converting data type varchar to numeric.
Bi kdo vedel v čem je lahko problem? Zakaj jemlje ničlo, kot varchar?
S programom Toad for SQL uvažam database iz xls file.
Pri numerični vrednosti za težo (recimo 1, 2, 5,1...)se pojavlja težava, da pljune error če je ničla (0) prvi znak.
Torej pri težah pod 1 (recimo 0,01).
Napiše error converting data type varchar to numeric.
Bi kdo vedel v čem je lahko problem? Zakaj jemlje ničlo, kot varchar?
Mati ::
Sem že pa nič ne pomaga.
Verjetno je napaka, da tista števila z ničlo od spredaj excel ne smatra, kot numerično vrednost, ker jih niti ne sešteve, ko jih označujem.
Kako lahko prepričam excel, da spremeni to vrednost v numeric?
Verjetno je napaka, da tista števila z ničlo od spredaj excel ne smatra, kot numerično vrednost, ker jih niti ne sešteve, ko jih označujem.
Kako lahko prepričam excel, da spremeni to vrednost v numeric?
WarpedGone ::
Predlagam da Toad brcneš skozi okno in v excelu na hitro spesniš ustrezne inserte za tvoje podatke.
Na začetek dodaš nov stolpec z "INSERT INTO (polje1, polje2, ...) VALUES ("
Med posamezne stolpce vrineš nov stolpec z "," in na koncu dodaš še stolpec z ");".
Vse skupaj preko clipboarda preneseš v urejevalnik teksta (notepad, ...) in tabulatorje zamenjaš s praznim nizom. To ni vedno nujno, a polepša končni izgled. Rezultat shraniš kot navadno SQL skripto, katero spustiš v SQLPlus, itd. brez težav.
Če maš v stolpcih kakšne posebne sorte vrednosti, moraš seveda dodati ustrezno formatiranje v INSERT stavke. Npr. pred in za stinge dodaš enojni narekovaj, vejico v decimalnih vrednostih zamenjaš s piko, pred datume dodaš "TO_DATE(',", za datume "', 'DD.MM.YYYY')," itd.
Sprobano ničkolikokrat. Deluje tudi nad več 10k zapisi. Če dela narobe vsaj točno veš zakaj.
Na začetek dodaš nov stolpec z "INSERT INTO (polje1, polje2, ...) VALUES ("
Med posamezne stolpce vrineš nov stolpec z "," in na koncu dodaš še stolpec z ");".
Vse skupaj preko clipboarda preneseš v urejevalnik teksta (notepad, ...) in tabulatorje zamenjaš s praznim nizom. To ni vedno nujno, a polepša končni izgled. Rezultat shraniš kot navadno SQL skripto, katero spustiš v SQLPlus, itd. brez težav.
Če maš v stolpcih kakšne posebne sorte vrednosti, moraš seveda dodati ustrezno formatiranje v INSERT stavke. Npr. pred in za stinge dodaš enojni narekovaj, vejico v decimalnih vrednostih zamenjaš s piko, pred datume dodaš "TO_DATE(',", za datume "', 'DD.MM.YYYY')," itd.
Sprobano ničkolikokrat. Deluje tudi nad več 10k zapisi. Če dela narobe vsaj točno veš zakaj.
Zbogom in hvala za vse ribe
Mati ::
Še eno vprašanje.
Kako bi naredil s toadom (vem, da je warped rekel, da se ga losam...), da exportam ene podatke in jim v excelu vsem spremenim 0 v 20, potem pa nazaj importam?
Problem je, da exportam primary key in vat, v xls lepo vat spremenim iz 0 v 20, ko pa importam nazaj, pa seveda noče spravit nič noter, ker mi javi primary key error, ker ga ne sme zapisat dvakrat.
Upam, da razumete.
Kako bi naredil s toadom (vem, da je warped rekel, da se ga losam...), da exportam ene podatke in jim v excelu vsem spremenim 0 v 20, potem pa nazaj importam?
Problem je, da exportam primary key in vat, v xls lepo vat spremenim iz 0 v 20, ko pa importam nazaj, pa seveda noče spravit nič noter, ker mi javi primary key error, ker ga ne sme zapisat dvakrat.
Upam, da razumete.
Mati ::
Ok našel eno rešitev, vendar ne vem če je to res edini način.
Ustvaril sem enako tabelo, kot tisto katero želim update-at.
Exportiral sem podatke, jih spremenil in uvozil v to novo tabelo.
Nato sem original izbrisal in novo poimenoval, tako kot je bila original.
Dela, vendar imam slab občutek, ko brišem tabele....
Ustvaril sem enako tabelo, kot tisto katero želim update-at.
Exportiral sem podatke, jih spremenil in uvozil v to novo tabelo.
Nato sem original izbrisal in novo poimenoval, tako kot je bila original.
Dela, vendar imam slab občutek, ko brišem tabele....
Mati ::
Warped, a lahko v bazi direkt kopiraš podatke, kot v excelu itd?
Ali pa funkcija find - replace iz excela bi bila tudi zelo primerna.
Za spremenit imam okoli 5500 celic. Recimo v ene 300 celicah spremenit vse vprašaje v kubične trojke...
Ne obvladam pa jezika SQl, da bi napisal scripto.
Ali pa funkcija find - replace iz excela bi bila tudi zelo primerna.
Za spremenit imam okoli 5500 celic. Recimo v ene 300 celicah spremenit vse vprašaje v kubične trojke...
Ne obvladam pa jezika SQl, da bi napisal scripto.
WarpedGone ::
Sedah razumem zakaj imaš probleme :)
Ja, v bazi lahko "mučkaš" in premetavaš podatke z SQL ukazi, kot ti srce poželi, a je seveda treba poznat vsaj osnovno filozofijo SQLa.
Če obstaja realna možnost, da se boš tudi v prihodnosti še ubadal s temi zadevami ti močno priporočam, da si vzameš 2 uri časa in greš čez kak osnovni tutorial za SQL. Stvar je vesoljska dokler jo gledaš od zunaj skozi okno. Ko jo pa pobliže spoznaš je pa skorajda trivijalna. Bistveno močnejša od vseh Find/Replace mahinacij, katere premore Excel (brez pisanja Macrojev oz. VBA skript - tuki sta verjetno nekje tam/tam).
Lahko bi ti tut jaz tule špilal učitelja a se bom skromno umaknil. Poišči najbol simpl tutorial in začni z njim. 99,9% zadev se postori z najbol osnovnimi zadevami. Med njimi je tudi to kar omenjaš - enostavna sprememba nekih vrednosti v odvisnosti od trenutnih vrendosti.
Ja, v bazi lahko "mučkaš" in premetavaš podatke z SQL ukazi, kot ti srce poželi, a je seveda treba poznat vsaj osnovno filozofijo SQLa.
Če obstaja realna možnost, da se boš tudi v prihodnosti še ubadal s temi zadevami ti močno priporočam, da si vzameš 2 uri časa in greš čez kak osnovni tutorial za SQL. Stvar je vesoljska dokler jo gledaš od zunaj skozi okno. Ko jo pa pobliže spoznaš je pa skorajda trivijalna. Bistveno močnejša od vseh Find/Replace mahinacij, katere premore Excel (brez pisanja Macrojev oz. VBA skript - tuki sta verjetno nekje tam/tam).
Lahko bi ti tut jaz tule špilal učitelja a se bom skromno umaknil. Poišči najbol simpl tutorial in začni z njim. 99,9% zadev se postori z najbol osnovnimi zadevami. Med njimi je tudi to kar omenjaš - enostavna sprememba nekih vrednosti v odvisnosti od trenutnih vrendosti.
Zbogom in hvala za vse ribe
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL vprasanje (strani: 1 2 )Oddelek: Programiranje | 8347 (5026) | BivšiUser2 |
» | PostgreSQL pomočOddelek: Programiranje | 2505 (1998) | Mato989 |
» | SQL težavaOddelek: Programiranje | 5162 (4444) | joseti |
» | MSSQL začetnikOddelek: Programiranje | 1749 (1534) | nightrage |
» | [T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?Oddelek: Programiranje | 2894 (2612) | dmok |