سؤال

ولدي ملف دفعي الذي تم إنشاؤه لقاعدة بيانات أوراكل التي أحاول الآن لاستيراد لقاعدة بيانات MySQL. لقد كان للتعامل مع جميع أنواع التناقضات بين البلدين. ملف لديه كل التواريخ كما '17 -NOV-1981 'بدلا من' 1981/11/17 'كما تتوقع الخلية.

وكان ملف دفعي الأمر على وضع ALTER الدورة nls_date_format = 'DD-MON-YYYY'؛ لتعيين تنسيق التاريخ. هل هناك ما يعادلها في الخلية لحملها على قبول التواريخ كما هو دون الحاجة إلى تعديل مجورلي الملف؟

هل كانت مفيدة؟

المحلول

وأنا لا أعتقد أنه من الممكن من دون تعديل SQL.

STR_TO_DATE يمكن استخدامها في ادخال البيانات لتحويل السلاسل، أو قد تتمكن من محاولة الأنابيب الملف من خلال <لأ href = "http://unixhelp.ed.ac.uk/CGI/man-cgi؟sed" يختلط = "نوفولو noreferrer"> الحوار الاقتصادي الاستراتيجي واستخدام التعابير المنطقية على الفور مواعيد وإعادة صياغة لهم، على سبيل المثال شيء من هذا القبيل من شأنه أن يحل محل مواعيد نقلت واحدة في تفريغ الأصلي مع المكالمات إلى str_to_date، والأنابيب ومزود تحولت مما أدى إلى الخلية ...

cat oracledump.sql |  sed "s/'[0-9][0-9]-\(JAN\|FEB\|MAR\|APR\|MAY\|JUN\|JUL\|AUG\|SEP\|OCT\|NOV\|DEC\)-[1-2][0-9][0-9][0-9]'/str_to_date(&, '%d-%b-%Y')/g" | mysql newdb
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top