إعدادات SQLPlus لإنشاء ملف بيانات مفصول بعلامات جدولة

StackOverflow https://stackoverflow.com/questions/106323

  •  01-07-2019
  •  | 
  •  

سؤال

هل لدى أي شخص مجموعة جيدة من توجيهات تكوين 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)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top