إعدادات SQLPlus لإنشاء ملف بيانات مفصول بعلامات جدولة
سؤال
هل لدى أي شخص مجموعة جيدة من توجيهات تكوين sqlplus للمساعدة في تحويل استعلام SQL معين إلى مخرجات مفصولة بعلامات تبويب بشكل جيد لسحبها إلى جدول بيانات أو مزيد من المعالجة؟
المحلول
تحقق من وثائق أوراكل:
يمكنك إنشاء علامة تبويب في Oracle باستخدام قيمة ASCII لعلامة التبويب 9 والدالة chr:
select chr(9) from dual;
نصائح أخرى
كما أشار جوستين في الرابط الخاص به، باستخدام set colsep
يقوم أمر SQLPlus بحفظ كتابة فاصل لكل عمود.
لكن بالنسبة للمحدد بعلامات جدولة، set colsep Chr(9)
لن ينجح.
بالنسبة لنظام التشغيل UNIX أو LINUX، استخدم set colsep ' '
مع كون المسافة بين علامات الاقتباس المفردة علامة تبويب مكتوبة.
بالنسبة لنظام التشغيل Windows، استخدم هذه الإعدادات:
col TAB# new_value TAB NOPRINT
select chr(9) TAB# from dual;
set colsep "&TAB"
select * from table;
أحد النصوص المحددة التي سرقتها في أكثر من مناسبة يأتي من سلسلة رسائل AskTom استخراج البيانات إلى ملف مسطح.إذا كنت بحاجة إلى ملف ثابت سريع وقذر من SQL*Plus.أميل إلى تفضيل وظيفة DUMP_CSV التي نشرها توم سابقًا في هذا الموضوع لأي نوع من العمليات المستمرة.
عندي حل غبيعملت بشكل جيد للغاية.
حل
SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ...
FROM table
المبدأ وراء
في الواقع، إنها مجرد أ تسلسل السلسلة.
مركز حقوق الإنسان(9) -> '\ر'
العمود 1 || CHR (9) || العمود 2 -> كونكات (عمود 1، ' '، عمود 2)