» »

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?

btree ::

poskusi , zamenjat s .

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?

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.
Zbogom in hvala za vse ribe

Mati ::

ok hvala

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.

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

WarpedGone ::

Um, kaj pa da lepo direkt v bazi updataš podatke?
Zbogom in hvala za vse ribe

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.

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.
Zbogom in hvala za vse ribe

Mati ::

Ok bom poiskusil.
Hvala.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL vprasanje (strani: 1 2 )

Oddelek: Programiranje
687886 (4565) BivšiUser2
»

PostgreSQL pomoč

Oddelek: Programiranje
162363 (1856) Mato989
»

SQL težava

Oddelek: Programiranje
364573 (3855) joseti
»

MSSQL začetnik

Oddelek: Programiranje
111634 (1419) nightrage
»

[T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?

Oddelek: Programiranje
162768 (2486) dmok

Več podobnih tem