Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не загружаются данные 
:(
    Опции темы
Вася2
Дата 7.2.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 3.12.2006

Репутация: нет
Всего: нет



Хэллоу уважаемые
Возникла неожиданная проблема: есть файл с данными для уже существующей таблицы (база в 10g enterprise). При попытке запустить сам файл или его текст в SQL*Plus и Toad вываливается

ORA-00900: неверно предложение на языке SQL

вот текст файла
Код

LOAD DATA
INFILE *
 INTO TABLE GOODS
Fields terminated by ";" Optionally enclosed by '"'
(
  ID NULLIF (ID="NULL"),
  NAME,
  PRICE NULLIF (PRICE="NULL"),
  IMAGE,
  DETAILS
)
BEGINDATA
1;"Ball";20;"ball.jpg";"You can play football with it!"
2;"Tennis racket";30;"racket.jpg";"Let`s have some tennis!"
3;"Nikon 8Mpx camera";750;"camera.jpg";"8 Mpx, USB and TV ports, with a wide-screen objective and tripod"
4;"Nokia mobile phone";200;"mobile.jpg";"New Nokia phone with 3 Mpx camera, Web 2.0 support and termonuclear batteries"
5;"CRT monitor";300;"monitor.jpg";"Old-school CRT monitor with an unbeatable background radiation!"
6;"Camera objective";150;"objective.jpg";"Wide-screen telescopic objective"
7;"Chinese plate";25;"plate.jpg";"You can deploy your food on it!"
8;"Sugar bowl";30;"sugar bowl.jpg";"Universal, multi-purpose transformable sugar-bowl"



В чём может быть дело?
PM MAIL   Вверх
Тиль
Дата 8.2.2007, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 27.2.2006

Репутация: нет
Всего: нет



А ты чем грузишь? SQL LOADERом?
--------------------
Казалось нам пипец, оказалось что не казалось
PM MAIL   Вверх
Вася2
Дата 8.2.2007, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 3.12.2006

Репутация: нет
Всего: нет



пробовал по-разному: писал текст непосредственно в SQL*Plus и Toad,  загружал файл с текстом в SQL*Plus (@), пытался через команды sqlldr и sqlload - всё равно нихрена не получается.... smile 
PM MAIL   Вверх
Тиль
Дата 8.2.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 27.2.2006

Репутация: нет
Всего: нет



Я пробовал sqlldr-все получилось.Попробуй по моему:
1. Готовишь файл file.ctl
Код

load data
INFILE "c:\import\file.txt"
INTO TABLE TEST
FIELDS TERMINATED BY ';'
(  ID NULLIF,  NAME, PRICE NULLIF, IMAGE, DETAILS)

ID NULLIF и PRICE NULLIF попробуй переименуй в ID_NULLIF и PRICE_NULLIF-может пробелы не понимать. Также посмотри типы данных в таблице и загружаемые значения.
2. Пишешь батник
Код

set nls_lang=AMERICAN_AMERICA.CL8MSWIN1251
sqlldr.exe userid=user/password@alias(из тнс-ки) control="c:\import\file.ctl"  errors=10000(большое число не ставь) bad=file.bad

Так вроде должно работать
--------------------
Казалось нам пипец, оказалось что не казалось
PM MAIL   Вверх
-Сергей-
Дата 17.7.2007, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 2.8.2003
Где: Россия

Репутация: нет
Всего: 1



У меня подобная проблема. Юзаю sqlldr.

Код

sqlldr.exe userid=user/password@alias control=BLOBS.ctl errors=100 bad=BLOBS.bad discard=BLOBS.dis

файл BLOBS.ctl
Код

LOAD DATA

INFILE *

INTO TABLE docpatterns

FIELDS TERMINATED BY ','
( id, PATERN_BODY )

BEGINDATA
462,Заявка.dot


А в ответ получаю: SQL*Loader-00601 For INSERT option, table must be empty. 
В матчасти почитал:
Цитата

SQL*Loader-00601 For INSERT option, table must be empty. Error on table string

Cause: A non-empty table is being loaded with the INSERT option.

Action: Use the REPLACE keyword to empty the old table and store the new data in its place. Use the APPEND keyword to leave the table's contents intact and add the new data to it.

Ну и сделал как написано:
Код

sqlldr.exe userid=user/password@alias control=BLOBS.ctl errors=100 bad=BLOBS.bad discard=BLOBS.dis keyword=replace

В ответ получаю: LRM-00101 unknown parameter name 'replace' и SQL*Loader-00100 Syntax error on command-line

Уже не знаю что делать. Может есть другой способ загрузки данных, с помощью SQL скрипта?
Мне подсказали про какие-то локаторы BLOB или BFILE. Но я мало что понял...

Это сообщение отредактировал(а) -Сергей- - 17.7.2007, 08:19
--------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет".
PM MAIL WWW ICQ MSN   Вверх
tvik
Дата 17.7.2007, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.10.2006

Репутация: нет
Всего: нет



попробу вместо append trancate - удаяет все имеющиеся в таблице записи и вставляет новые
PM MAIL   Вверх
-Сергей-
Дата 17.7.2007, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 2.8.2003
Где: Россия

Репутация: нет
Всего: 1



tvik, непонял, подробней можно?
--------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет".
PM MAIL WWW ICQ MSN   Вверх
DimW
Дата 17.7.2007, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(Вася2 @  7.2.2007,  20:48 Найти цитируемый пост)

LOAD DATA
INFILE *
 INTO TABLE GOODS
Fields terminated by ";" Optionally enclosed by '"'
(
  ID NULLIF (ID="NULL"),
  NAME,
  PRICE NULLIF (PRICE="NULL"),
  IMAGE,
  DETAILS
)


NULLIF имеет 2 параметра, отсуда ее нужно было записать так:

ID "NULLIF (:ID, 555)",        (как вариант)

желательно поставить кавычки и перед именем поля поставить двоеточие, т.е. имеется ввиду параметр который приходит.

как пример могу кинуть то что у меня точно работает, файл agent.ctl:

Код

LOAD DATA
INFILE "agent.csv"  - имя файла с данными (лежит в одной директории)
APPEND - добавить к сушествующим данным в таблице

INTO TABLE TEMP_AGENCY_UPLOAD
FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
(
reference_code, 
first_name, 
middle_name, 
surname, 
sex, 
registration_no,
appointment_date "TO_DATE(:appointment_date, 'DD.MM.YYYY')",
date_of_birth "TO_DATE(:date_of_birth, 'DD.MM.YYYY')", 
place_of_birth "SUBSTR( :place_of_birth, 1, 50 )"
)


и сам запуск из бат-файла.

Код

sqlldr userid=customer/customer@opus03 control=agent.ctl
pause

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0940 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.