2009-04-28 16 views
6

मैं लिखने:ORACLE आदेशों में निरंतर न्यूलाइन वर्णों की अनुमति क्यों नहीं देता है?

  • : टेबल व्यक्ति बनाएं (
  • : नाम CHAR (10),
  • :
  • : एसएसएन पूर्णांक);

और एक फ़ाइल "a.sql" पर सहेजें (कोलन लाइन की शुरुआत का प्रतिनिधित्व, वास्तविक कोड में नहीं है।)

मैं तो एसक्यूएल में "@a" टाइप करके यह चलाते हैं * प्लस कमांड प्रॉम्प्ट, यह मुझे बताएगा कि "एसएसएन" से शुरू होने वाली रेखा को कमांड के रूप में पहचाना नहीं गया है, और इसे अनदेखा किया जाता है।

जो मैं इकट्ठा करता हूं, ऐसा लगता है कि एसकप्लस एक कमांड को समाप्त करता है यदि यह पंक्ति में कई नए अक्षरों का सामना करता है। क्या यह एक सटीक बयान है? यदि हां, तो क्या किसी को पता है कि यह आवश्यक है या क्यों ऐसा करना चुनता है?

उत्तर

15

मुझे क्यों पता नहीं है, लेकिन एक पूरी तरह खाली रेखा एसक्यूएल * प्लस में एक कमांड को समाप्त करती है।

the SQL*Plus docs से

उद्धरण:

एक एसक्यूएल कमान समाप्त: आप तीन तरीकों में से एक में किसी SQL आदेश समाप्त कर सकते हैं:

  • अर्धविराम; स्लैश के साथ
  • () (/) एक लाइन पर
  • रिक्त रेखा

तुम भी बदल सकते हैं कैसे रिक्त लाइनों सेट SQLBLANKLINES साथ व्यवहार कर रहे

SQLBL [ANKLINES] {पर | रवाना} चाहे

नियंत्रण एसक्यूएल * प्लस किसी SQL आदेश या स्क्रिप्ट के भीतर रिक्त लाइनों अनुमति देता है। एसक्यूएल कमांड या स्क्रिप्ट के हिस्से के रूप में रिक्त रेखाएं और नई लाइनों को व्याख्या करता है। बंद, डिफ़ॉल्ट मान, SQL कमांड या स्क्रिप्ट या स्क्रिप्ट में रिक्त रेखाएं या नई लाइनों की अनुमति नहीं देता है।

SQL आदेश चलाने के बिना SQL कमांड प्रविष्टि को रोकने के लिए BLOCKTERMINATOR दर्ज करें। SQL कमांड प्रविष्टि को रोकने और SQL कथन चलाने के लिए SQLTERMINATOR वर्ण दर्ज करें।

5

डिफ़ॉल्ट रूप से, SQLPlus एक खाली पंक्ति दर्ज होने पर एक कथन समाप्त (लेकिन निष्पादित नहीं) करता है। यह हमेशा यह किया है। यह शायद स्क्रीन संपादकों और क्वेरी उपकरण से पहले के दिनों में एक अच्छा विचार की तरह लग रहा था।

आप

जो मामले में आप सिर्फ एक पूर्ण विराम समाप्त करने के लिए (लेकिन अमल नहीं) ने एक बयान के साथ एक पंक्ति में प्रवेश के लिए होगा पर

सेट SQLBLANKLINES साथ कि डिफ़ॉल्ट व्यवहार बदल सकते हैं।

0

लेकिन अगर आप एक varchar2 या एक CLOB क्षेत्र में बहु पाठ डालने के लिए इच्छुक हैं, तो आप chr (10)

insert into t values ('Hello,'||chr(10)||chr(10)||' How are you?'); 

insert into t values (
'Hello, 

How are you'); 

का उपयोग कर सकते कारणों के लिए ऊपर बताया गया है काम नहीं करेगा।

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

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