• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sqlldr się zawiesza

Object Storage Arubacloud
0 głosów
103 wizyt
pytanie zadane 11 czerwca 2022 w SQL, bazy danych przez Antytalent Początkujący (470 p.)
edycja 11 czerwca 2022 przez Antytalent

Przy 3 tabelach ładowało bez zarzutu, przy czwartej się zawiesza mimo, że plik kontrolny jest napisany tak samo, jak dla poprzednich. Nie wywala błędu, tylko pojawia się napis "Path used: conventional" i na tym się zatrzymuje, dopiero ctrl c przerywa to działanie. Laduję za pomocą wiersza polecenia, wprowadzając

sqlldr system/(hasło) control='(url pliku kontrolnego)'

Tabela: 

CREATE TABLE produkty (
	kod NUMBER(8) CONSTRAINT produkty_pk PRIMARY KEY NOT NULL,
	cena NUMBER(5,2),
	waga_kg NUMBER(4,2),
	id_lokalu NUMBER(4),
	CONSTRAINT produkty_fk FOREIGN KEY(id_lokalu) REFERENCES lokale(id)
); 

Plik kontrolny (formatuje się tu na sql ale to notatnik i format ctl)

load data
infile 'C:\Users\ORACLE\Desktop\pliki\Tabprodukty.csv'
badfile 'produkty.bad'
discardfile 'produkty.dsc'
replace into table produkty
fields terminated by ","
(kod,cena,waga_kg,id_lokalu)

Pierwsze 2 wiersze z pliku CSV:

1000000,1199.00,63.50,48

1000001,1199.00,63.50,1

 

Podejrzewam, że wpływ na to mogą mieć dane typu number z częściami ułamkowymi, w poprzednich tabelach ich nie było

komentarz 12 czerwca 2022 przez PreZmyK Pasjonat (21,470 p.)
Sprawdź NLS_NUMERIC_CHARACTERS. Nie masz za małej precyzji do wagi? Nie przewidujesz wartości powyżej 100kg ?

1 odpowiedź

0 głosów
odpowiedź 11 czerwca 2022 przez Wiciorny Ekspert (269,710 p.)
btw, nie powinieneś używać klucza obcego z CONSTRAINT.
Czy Lokale(Id) - kolumna ma ten sam typ danych co id_lokalu w twojej tabelu czyli NUMBER(4)
Ograniczenia SQL służą do określania reguł dla danych w tabeli. Jeśli wystąpi jakiekolwiek naruszenie między ograniczeniem a akcją dotyczącą danych, akcja zostanie przerwana.
komentarz 11 czerwca 2022 przez Antytalent Początkujący (470 p.)
ten sam typ i pojemność jest
komentarz 11 czerwca 2022 przez Wiciorny Ekspert (269,710 p.)

zwróć uwagę na różnice: 
 

CREATE TABLE dbo.MyTable  
(  
  MyDecimalColumn DECIMAL(5,2)  
,MyNumericColumn NUMERIC(10,5)
  
);  
  
GO  
INSERT INTO dbo.MyTable VALUES (123, 12345.12);  
GO  
SELECT MyDecimalColumn, MyNumericColumn  
FROM dbo.MyTable;

w częsci decymalnej dla obu wyniki beda inne : 
 

MyDecimalColumn                         MyNumericColumn  
--------------------------------------- ---------------------------------------  
123.00                                  12345.12000  
  
(1 row(s) affected)  
  

 

Podobne pytania

0 głosów
2 odpowiedzi 251 wizyt
pytanie zadane 18 kwietnia 2021 w Sprzęt komputerowy przez oscarzasty Nowicjusz (220 p.)
+1 głos
2 odpowiedzi 365 wizyt
0 głosów
1 odpowiedź 347 wizyt
pytanie zadane 14 grudnia 2020 w Systemy operacyjne, programy przez EdeX Mądrala (5,110 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...