'||' निश्चित रूप से ओरेकल में काम करता है, हालांकि स्पष्ट रूप से SQL सर्वर नहीं है।
से पहले:
sql-shell-command < sql-file.sql
आप SQL स्क्रिप्ट अप फिक्सिंग कर रहे हैं, मैं निम्नलिखित समाधान पर विचार करेंगे: (SQL Dialects Reference जो लोग हमें के बाद आने के लिए, यहाँ एसक्यूएल के लिए एक rosetta पत्थर है) (एसक्यूएल-फ़ाइल '+' ऑपरेटरों)
के बाद:
ansi-sql-shell-command < sql-file.sql
sed -e 's/||/\+/' < sql-file.sql | ms-sql-shell-command
(एसक्यूएल-फाइल में '||' ऑपरेटर हैं, आपको अपनी फाइलों को कन्वर्ट करना होगा)
विचार यह है कि आप एक प्रारूप में एसक्यूएल के साथ शुरू करते हैं, और विशेष मामले के लिए, आप उस पर एक फ़िल्टर चलाते हैं इसे दूसरे प्रारूप में बदल दें। सैद्धांतिक रूप से, आप सभी '+' es को '||' में बदल सकते हैं, लेकिन चूंकि उनमें से एक अच्छा अनुपात स्ट्रिंग-कॉन्सटेनेशन के बजाय संख्यात्मक-जोड़ हो सकता है, यह भी काम करने की संभावना नहीं है।
आपके फ़िल्टर की जटिलता आप जो कर रहे हैं उस पर निर्भर करती है। यदि आपके SQL में मनमाने ढंग से डेटा है, तो आपको तारों में प्रतिस्थापन से बचने के लिए इसे प्राप्त करना होगा। लेकिन अगर आप विचार स्थापित कर रहे हैं तो यह शायद ठीक रहेगा।
आप उन तकनीकों में एक ही तकनीक का उपयोग कर सकते हैं जहां एसक्यूएल स्ट्रिंग्स में है - इसे एक फॉर्म से दूसरे रूप में बदलने के लिए प्रोग्राम में एक फ़ंक्शन लिखें।
सभी डेटाबेस में एक ही वाक्यविन्यास क्यों होना चाहिए? अगर वे सभी एक जैसे थे, तो केवल एक ही होगा। आवेदन भाषाओं में सभी अलग वाक्यविन्यास हैं? –
सभी सी संकलक एक ही वाक्यविन्यास को पार्स करते हैं, एसक्यूएल पार्सर्स को ऐसा क्यों नहीं करना चाहिए? – ijw
एसक्यूएल सर्वर और साइबेस टीएसक्यूएल भाषा का उपयोग करते हैं और ओरेकल पीएल/एसक्यूएल भाषा का उपयोग करता है। टीएसक्यूएल पीएल/एसक्यूएल से अलग है। –