الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

.dat files

مغلق
بدأه dream_land_78 في 27 أكتوبر 2002 · 11 رد · 1,178 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف ممكن احضر بيانات مخزنة بملف من نوع dat

الى جدول موجود بالاوراكل

و شكرا:)

#2

ماذا تقصد بكلمة Dat Files? هل تقصد ال Oracle Data Files أم تقصد ملفات محسوسة على جهازك بإمتداد .dat? على العموم، لو كنت تقصد ملفات بيانات الاوراكل Oracle DATA Files فهي تكون متضمنة في ال Tablespace ولا يمكن رؤيتها مفردة، لذا عليك بعملية التصدير أولا وتحويلها ملفات محسوسة، ثم نقل الملف الى الجهاز الذي تريد الاستيراد عليه والقيام بعملية الاستيراد

#3

في البداية شكرا على التعاون

المهم ... انا قصدي انو عندي ملف امتداده dat و بيحتوي على اسطر من البيانات اللتي اريد نقلها الى جدول في الاوراكل

بس مش عارفة الطريقة بالزبط

عموما انا فتت على موقع ask tom

و بحثت فيه و شفت اشياء بس ما فهمتها كتيير و من ضمنها اشي اسمو

sqlloader

ما باعرف شو هو و كيف بيستخدم

ارجو الافادة

و شكرا

#4

أولا وقبل كل شيء أختي، آسف على مخاطبتك بضمير المذكر :P

بس كمان ما شرحتي ايه هي هيئة ملف المصدر، هل هو أسكي ASCI أم ماذا. يبدو لي من طرحك انك تقصدي تحميل ملفات الاسكي على القاعدة، وهو موضوع قمت زماااااان بشرحه، بس ما متاكد ما إذا كان موجود على قاعدة بيانات الم لأ، على العموم فال SQL LOADER هي احدى أدوات الاوراكل التي تقوم بقراءة الملفات وتحميلها في قاعدة البيانات. أرجو ان تضعي هيئة الملف، واسم وتفصيل ملف البيانات لديك في قاعدة البيانات حتى اقوم بإتخاذه كمثال للشرح، وأعتقد ان من الافضل ان ترسلي الملف المصدركاملا على عنواني البريدي حتى اقوم بعمل تجربة كاملة قبل طرح الموضوع، عنواني واضح للكل

sunni_azaem@hotmail.com

موفقة ان شاء الله

#5

السلام عليكم يا ... سني (هدا هو اسمك و لا لقبك )

عموما انا مش عارفة شو اسمك علشان اخاطبك فيه

و شكرا كتيير للرد علي في المنتدى و شكرا كتيير على روحك المرحة

المهم الملف اسمو collect.dat

و البيانات التي فيه كالتالي و هي ليست assci

هي بيانات عادية و اريد نقلها الى جدول اسمه مثلا collect data

و هي بيانات ناتجة عن ساعة دوام و مطلوب مني اني افهم النظام و اربطو مع البرنامج الذي يريدوني ان اعملو على الاوراكل ..علشان يوظفوني :(

و يا عالم ...

المهم هدا شكل الملف

00000A00102100608000000245454

00000B00202100614300000245454

00000A00102100613470000245454

00000B00202100615000000245454

00000A00102100608000000012444

[collect.dat]

ColNameHeader=False

Format=FixedLength

MaxScanRows=0

CharacterSet=OEM

Col1="non" Integer Width 5

Col2="case" Char Width 1

Col3="case_n" Integer Width 3

Col4="year" integer Width 2

Col5="month" Integer Width 2

Col6="day" Integer Width 2

Col7="hour" integer Width 2

Col8="min" integer Width 2

Col9="non2" Char Width 2

Col10="badge" integer Width 8

و شكرا للتعاون

و على فكرة انا حاولت ابعتنلك على ايميلك بس ما مشي الحال باظن انك كاتبو غلط

#6

آسف، صحيح، عنواني ما مظبوط، والصحيح هو

sunni_azayem@hotmail.com

والسني هو اسمي الحقيقي، ان شاء الله ح اضع الحل كامل بإذن الله اليوم مساء، لأني بالمكتب دلوقت

#7

السلام عليكم

كيف الحال ؟؟؟

شو صار معك ..

انا من يومها باستنى الرد بس ما وصلني

و كل مرة باحاول ابعت فيها ايميل ما كان يزبط

و انت ما رجعت رديت عليا

إن شاء الله التاخير لخير

و عموما شكرا

#8

عن طرق SQL LOADER وهو برناج موجود مع اوراكل

sqlldr72 userid=USERNAME/PASSWARD@PROD control=hand.ctl log=finger.log

بالنسبة للCONTROL

HAND.CTL

Load Data

INFILE HANDP.DAT

INTO TABLE MYTABLE

TRUNCATE

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

(FELD1.FELD2,FELD3)

يجب ان تكون FELD1,FELD2,FELD3 اسماء فيلدات MYTABLE

وهذه الكوما COMMA الموجودة بعد لاغ يمكن ان تكون اي شي اخر ممكن مسافة ممكن نجمة اي شى بستكون البيانات فيDAT FILE نفسها فمثلا لوكانت COMMA

AAJHGHG,14514,GFDS4454

HFGFDF,545DF,HFDGH

#9

شكرا كتيير اخي ابو خلف

بس معلش و لو بدي اغلبك شوية

لاني ما باعرف كتيير في الاوراكل

بس اذا ممكن الخطوات بالزبط ... يعني مثلا انت حكيت انو

sql loader

عبارة عن اشي موجود طيب كيف اوصلو

و الاداه hand .ctl

و الكود اللي كتبتو وين احطو ..

معلش اذا راح اغلبك بس عن جد ضروري كتيير اعرف

و شكرا كتيير

#10

ال SQL LOADER برنامج لنقل الملفات من DAT FILES الى ملفات في الاوراكل

وهو موجود في BIN

ORAWIN954BINSQLLDR72.EXE

وهو برنامج ينزل مع البيرسونال مع مجموعة من ال DLL'S FILE واذا لم يكن لديك فيمكن نسخه

ولتشغيله يجب كتابة التالي اما في BATCH FILE او داخل فورم في الديفلوبر والاسهل داخل BATCH FILE

في مثلا مجلد MYFOLDER

CREATE BATH FILE AND WRITE THIS STATMENT INSIDE

sqlldr72 userid=USERID/PASSWARD@STRING

control=hand.ctl log=finger.log direct=true

1 -USERID= اسم المستخدم مثلا SCOTT والباسورد مثلا TIGER

وال STRING اذا كان لديك DATABASE على SERVER

2- CONTROL اعمل CREATE لملف امتداده CTL

اي افتح من القائمة NEW ---->TEXT DOCUMENT

واكتب داخله

Load Data

INFILE HANDP.DAT

INTO TABLE txt_data

TRUNCATE

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

(sno,pin_code,p_date DATE "mm/dd/yyyy",p_time)

HANDP.DAT اسم الملف المراد تحميل الداتا منه

TXT_DATA اسم الTABLE في اوراكل المراد تحميل الداتا اليه

FIELDS TERMINATED BY ',' اي ان الفواصل بين البيانات في الملف المراد اخذ البيانات منه هو الCOMMA

(sno,pin_code,p_date DATE "mm/dd/yyyy",p_time)

اسماء الفيلدات في الاوراكل في TABLE المراد نقل البيانات اليه ( TXT_DATA )

اي انه عندما اعمل DESC TXT_DATA;

من SQL PLUS

تكون المخرجات

NUMBER SNO

NUMBER PIN_CODE

P_DATE DATE

VARCHAR2 P_TIME

ومن ثم اخزن الملف مثلا بالاسم الموجود في الجملة السابقة HAND.CTL

ومن تحت اسم الملف اختار كافة الملفات

LOG وهو الملف الذي يتم تخزين بياتا عملية النقل ( اي اسم .LOG (

#11

مرحبا

بس معلش فضل عندي سؤال و هو لو كانت الفواصل بين الحقول في الملف

مش comma

يعني انو ما في فواصل بين الحقول مثل

00000B00202100614300000245454

00000A00102100613470000245454

00000B00202100615000000245454

كيف هو راح يعرف انو من الحرف الاول للحرف الخامس عبارة عن حقل رقم 1

و من الحرف الخامس للسابع حقل رقم 2

و هكذا

و كمان عندي سؤال .. انت ذاكر اشي اسمو log في الاخر

شو هدا وشو فايدتو

و شكرا

#12

يمكنك استخدام الامر POSITION في هذه الحالة، فمن الواضح ان الحقول عندك كالآتي،

الحقل الاول من 1 الى 5 (بطول 5)

الحقل الثاني الخانة السادسة (بطول 1)

الحقل الثالث من 7 الى 9 (بطول 3)

الحقل الرابع من 10 الى 11 (بطول 2)

الحقل الخامس من 12 الى 13 (بطول 2)

الحقل السادس من 14 الى 15 (بطول 2)

الحقل السابع من 16 الى 17 (بطول 2)

الحقل الثامن من 18 الى 19 (بطول 2)

الحقل التاسع من 20 الى 21 (بطول 2)

الحقل العاشر والاخير من 22 الى 29 (بطول 8)

ويمكنك في هذه الحالة الاستعاضة عن الفواصل بهذه التعريفات في الكونترول فايل وكالآتي

Col1 position(1:5) Integer,

Col2 position(6:6) Char,

Col3 position(7:9) Integer,

Col4 position(10:11) integer,

Col5 position(12:13) Integer,

Col6 position(14:15) Integer,

Col7 position(16:17) integer,

Col8 position(18:19) integer,

Col9 position(20:21) Char,

Col10 position(22:29) integer

لاحظ انني لم استخدم مسميات الحقول التي قمت انت بتسميتها، وذلك لتحفظي على هذه المسميات التي لا افضل استخدامها، اذ ان بعضها كلمات معروفة بالنسبة للأوراكل، ويفضل عدم استخدامها كأسماء لحقول أو متغيرات بل عليك بناء اسماء من عندك، وعليك ان تستبدل هذه المسميات بغيرها (المسميات المقبولة في قائمتك هي case_n,non2,badge فقط، والبقية يجب تغييرها)

هذا الموضوع مغلق.

مواضيع مشابهة