2008-12-24 13 views
26

क्या किसी को किसी प्रोग्राम, उपयोगिता, या कुछ प्रोग्रामेटिक लाइब्रेरी के बारे में पता है, अधिमानतः लिनक्स के लिए, जो एक गैर-प्रारूपित SQL स्ट्रिंग और सुंदर प्रिंट करता है?एसक्यूएल स्ट्रिंग फॉर्मेटर

उदाहरण के लिए मैं निम्नलिखित

select * from users where name = 'Paul' 

इस

select * 
from users 
where 
    name = 'Paul' 

वही प्रारूपण महत्वपूर्ण नहीं है की तरह कुछ करने के लिए परिवर्तित किया जाना चाहते हैं। मुझे बस एक बड़ी SQL स्ट्रिंग लेने के लिए कुछ चाहिए और इसे और अधिक पठनीय में विभाजित करें।

उत्तर

8

http://www.sqlinform.com/

यह उपकरण एसक्यूएल कोड reformats। मैंने इसे शानदार परिणामों के साथ उपयोग किया है। यह एक वेबपैप के रूप में मुफ़्त है और इसके साथ एक डाउनलोड करने योग्य संस्करण भी है।

+1

संवेदनशील डेटा में पेस्ट करते समय इस तरह के वेब ऐप्स से सावधान रहें। क्या आपको विश्वास है कि यह उस डेटा की एक प्रति नहीं रख रहा है? –

+0

उनके पास एक मुफ्त ऑनलाइन फॉर्मेटर भी है – Guido

0

यह नहीं कि मैं इस उद्देश्य के लिए (अपेक्षाकृत बड़ा) पैसा खर्च करने की सलाह देता हूं, लेकिन Toad में एक सुविधा है जो वास्तव में आप चाहते हैं।

इसमें विकल्पों का एक समूह शामिल है जो आपको यह सेट करने की इजाजत देता है कि आप अपने एसक्यूएल स्वरूपित (अलग-अलग लाइनों पर सभी कॉलम इत्यादि) कैसे चाहते हैं। बहुत अच्छा, लेकिन केवल तभी जब आप पहले ही टोड प्राप्त कर चुके हैं। मुझे पता है कि ओरेकल संस्करण यह करता है, लेकिन मुझे लगता है कि SQL सर्वर या अन्य संस्करण भी होंगे।

3

मुझे http://www.dpriver.com का उपयोग करने का आनंद मिलता है - यह SQL सर्वर प्रबंधन स्टूडियो में एक अच्छा ऐड-इन है।

+2

एक पालतू शिखर - एसएसएमएस के पास कोड स्वरूपण क्यों नहीं है? –

8

fsqlf (http://sourceforge.net/projects/fsqlf/) एसक्यूएल प्रारूपित करने के लिए एक कमांड लाइन या जीयूआई प्रोग्राम, ओपन सोर्स है। यह एक formatting.conf फ़ाइल रखने का समर्थन करता है जो आपको अंतिम उत्पाद दिखने में बहुत लचीलापन देता है।

उदाहरण:

☺ [[email protected]:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT 
    f1 
, f2 
, fname 
, lName 
FROM tblName 
WHERE f1=true 
AND fname is not null 
ORDER BY lName asc 
☺ [[email protected]:~] 
$ vim formatting.conf # 2 character change 
☺ [[email protected]:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT 
f1 , 
f2 , 
fname , 
lName 
FROM tblName 
WHERE f1=true 
AND fname is not null 
ORDER BY lName asc 
☺ [[email protected]:~] 
$ vim formatting.conf # 1 character change 
☺ [[email protected]:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT 
f1 , f2 , fname , lName 
FROM tblName 
WHERE f1=true 
AND fname is not null 
ORDER BY lName asc 
☺ [[email protected]:~] 
$ 
+2

यह सबसे अच्छा जवाब है! क्योंकि आप किसी तीसरे पक्ष की वेबसाइट या मालिकाना उपकरण का उपयोग किए बिना ओपन सोर्स टूल के साथ अपनी मशीन पर एसक्यूएल प्रश्नों को प्रारूपित कर सकते हैं! छायादार डेटा प्रतिधारण और गोपनीयता नीतियों के साथ! – bitek

33

चेक बाहर sqlparse। यह एक पायथन मॉड्यूल है जो sqlformat कमांड स्थापित करता है। प्रयोग, सरल है, उदा .:

sqlformat --reindent --keywords upper --identifiers lower my_file.sql 

मैं ऊपर उल्लिखित CLI विकल्प कोशिश की, लेकिन:

  • sqlinform बाहर है, क्योंकि मैं एक खुला स्रोत CLI आवेदन करना चाहते हैं।
  • fsqlf में केवल कुछ विशेषताएं हैं (create view उदाहरण के लिए गायब है)।

के लिए धन्यवाद sqlformat मैं भी सीखा है कि "REF" एक reserved keyword in SQL:2011 and SQL:2008 है।

+0

यह पूरी तरह से स्वरूपण (इंडेंटेशन का) मैं चाहता था, चाहे तर्क दिया गया तर्क। – Shadetheartist

संबंधित मुद्दे