PDA

View Full Version : مشکل درimport کردن یه فایل excel داخل جدول اوراکل



azadeh_s
سه شنبه 18 آذر 1393, 12:50 عصر
سلام

من یه فایل اکسل تک ستونی دارم که میخام محتویاتشو داخل چدول اوراکلم (11g)بریزم فایلمو با پسوند csv ذخیره کردم ,تو enterprise manager قسمت data movement بعدشم load data from user files رو انتخاب کردم
مرحله یک:126423

مرحله دو:126424

تو مرحله دو آدرس فایل csv رو میدم من پیش datafile دیتابیسم کپی کردم نمی دونم محلش درسته یا نه؟!

مرحله سوم:126425

مرحله چهارم:126426

تو این مرحله فقط field index فیلدی رو که میخامو یک می کنم مال بقیه رو پاک می کنم
مرحله پنجم:126427

مرحله ششم:126428(پیش فرضا رو قبول کردم)

مرحله هفتم:126429
مرحله آخر:126430

حالا که submit job رو میزنم میگه که successed شد ولی هیچ رکوردی به جدولم اضافه نمی شه!
مشکل از کجاست؟

alireza586
چهارشنبه 19 آذر 1393, 12:44 عصر
سلام
شما میتونید فایل excel را ببرید داخل acces و توسط ODBC اطلاعات را بریزید داخل دیتابیس اوراکل تون

azadeh_s
چهارشنبه 19 آذر 1393, 13:40 عصر
چه کاریه؟!
با این روش وقتی به یه جدول تک ستونی import می کنم رکوردا اضافه میشن ولی جدول اصلی من چند ستونیه
مشکل از مرحله چهارمه.من ایندکس بقیه فیلدارو پاک می کنم و ایندکس فیلدی که میخامو یک می کنم ولی در نهایت هیچ اتفاقی نمیفته!:ناراحت:

مهدی نان شکری
چهارشنبه 19 آذر 1393, 17:08 عصر
با سلام
نیازی نیست شما فایل رو به مسیر datafile کپی کنید.
همچنین در مرحله 4 چرا پسوند فایل را csv نمایش می دهد در حالی که شما cvs تایپ نمودید؟
همچنین در مرحله preview content فقط چار عدد که با خط تیره جدا شده است نمایش داده می شود در حالی که در لیست فیلد ها تعداد بیشتری وجود دارد؟ آیا Character Delimiters را درست وارد کردید؟
مراحلتان درست است ملاحظه فرمایید که آیا جاب مورد نظر اجرا شده یا نه؟ وضعیتش چی هست؟
در ضمن بهتر است با ابزار های دیگری این کار را انجام دهید.
مانند PLSQL developer
موفق باشید.

azadeh_s
پنج شنبه 20 آذر 1393, 08:36 صبح
سلام
نه پسوند فایل csv هست ویرایشش کردم اشتباه تایپی بود
این 4 تا عدد که با خط تیره جدا شدن محتویات یک فیلدن
جدول اکسل من تک ستونیه ولی جدول اوراکلم چند ستونیه
تو مرحله ای که فیلدای جدول اوراکلمو آورده زیرش نوشته

tip:the field index is the order in which the field appears in the datafile record
leave the field index blank if no data is to ne loaded into a tbale column
منم فقط فیلدی رو که میخام اطلاعات بهش اضافه بشه رو یک می کنم بقیه رو خالی میذارم
126599
126600
یه فیلد از جدول اوراکلمم هست که تو صفحه بعدیه ولی وقتی فیلد اینکس اونو خالی میذارم خطا میده
126601
مجبور میشم یه عددی بهش بدمو برم مرحله بعدی.
البته تو این مرحله انتخاب فیلدا بالای فیلدا نوشته که

ajust the field index for each column or delete it to load no data into that
column you can specify additional attributes for each column by clicking the edit column
یه دکمه edit attributes داره که وقتی اونو میزنم این صفحه باز میشه
126602
در مورد jobهم میگه که با موفقیت انجام شد ولی تو فایل log مینویسه که هیچ رکوردی اضافه نشده.
من تو لینوکس از اوراکل استفاده می کنم PLSQL developer تو لینوکس اجرا میشه؟
اگه آره از کجا می تونم دانلودش کنم؟

مهدی نان شکری
جمعه 21 آذر 1393, 16:14 عصر
با سلام
من عکس ها رو نتونستم ببینم خطای مسیر می ده.
ولی در مورد ایندکس باید بگم شما فقط کافیه ایندکس ستون هایی رو که نمی خواهید رو خالی کنید. و ایندکس بقیه فیلد ها معادل ایندکس همان فیلد در فایل CSV باشد. به عبارتی اگر فایلتان مقادیر زیر را داشته باشد
id,name,lastname
و شما تمایل داشته باشید فقط فیلد nameرا داشته باشید کافی است ایندکس آن را معادل 2 قرار دهید چون دومین ستون از فایل را باید به آن واریز نماید و بقیه ایندکس ها را خالی کنید.
همچنین دقت کنید جدا کننده فیلد ها و رکورد ها را درست انتخاب می کنید. همچنین به نظر من اگر ایجاد جدول را به خود ویزارد محول کنید برخی مشکلات را می توانید رد یابی نمایید.
در ضمن دقت نمایید که اسکیمای جداول را درست انتخاب می کنید.
به عنوان مثال ممکن است جدول test هم در اسکیمای ُSystem و هم در اسکیمای Scott باشد و شما دقت نمایید که اینسرت و سلکت هر دو از یک اسکیما انجام می شود.
به نظر من به جداکننده هاCharacter Delimiters دقت نمایید.

اگر هم می توانید فایلتان را ارسال نمایید.
موفق باشید

azadeh_s
دوشنبه 24 آذر 1393, 09:41 صبح
منم همین کارو کردم فایلم یه فیلد داره بنابراین تو این ویزارد تو مرحله انتخاب فیلدا فقط فیلدی روکه میخام اطلاعات داشته باشه رویک می کنم بقیه رو پاک می کنم(فیلدای جدول من زیادن برا همین تو دو صفحه میاره تو صفحه اول با پاک کردن فیلد ایندکسا هیچ اتفاقی نمیفته ولی تو صفحه دوم خطا میده)
در ضمن عکسا رو هم درست کردم

مهدی نان شکری
سه شنبه 25 آذر 1393, 17:28 عصر
ّبا سلام
من باید فایلتون رو داشته باشم ظاهرا مشکل خاصی نیست.

حال شما از Sql loader استفاده کنید.
برای این کار باید ابتدا یک فایل کنترل درست کنید.




$ cat sqlldr.ctl
load data
infile '/home/nanshekari/datafile.csv'
into table test
fields terminated by ","
( CRM01Serial )


بعد دستور زیر را اجرا کنید



$ sqlldr scott/tiger control=/home/nanshekari/ sqlldr.ctl

فایل لاگ در مسیر datafile هم اسم با ایشون درست می شود.

لطفا دقت کنید فیلد های دیگر جدول test شما Not null نباشند.

اگر خظا می گیرید لطفا مطرح نمایید

azadeh_s
چهارشنبه 26 آذر 1393, 15:39 عصر
مشکلم با SQLLDR حل میشه همون موقع اون کارو کردم ,میخاستم بدونم مشکل این ویزاد چیه؟آخه چرا INSERT نمی کنه؟!
ممنون از راهنماییتون