Oracle संग्रहीत कार्यविधि में "AS" और "IS" के बीच क्या अंतर है?


95

मैं ओरेकल प्रक्रियाओं को कभी-कभी "एएस", और कभी-कभी "आईएस" कीवर्ड के साथ लिखता हूं।

CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...

बनाम

CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...

क्या दोनों में कोई अंतर है?


संपादित करें: स्पष्ट रूप से, दोनों के बीच कोई कार्यात्मक अंतर नहीं है, लेकिन कुछ लोग "एएस" का उपयोग करने के लिए एक सम्मेलन का पालन करते हैं जब एसपी एक पैकेज का हिस्सा होता है और "आईएस" जब यह नहीं होता है। या दूसरा तरीका 'दौर। भावहीन।


1
क्या दूसरा हमेशा एक और प्रक्रिया को इंगित नहीं करेगा जो वास्तव में कार्यक्षमता को लागू करता है?
जोएल कोएहॉर्न

1
मेरे परीक्षण में, दोनों एक ही शरीर के साथ काम कर रहे थे। एक और खरीद की ओर इशारा करने के बारे में पता नहीं।
इस्माइल

जवाबों:


66

व्हाट्सएप कोई नहीं। वे आपके कोड को अधिक पठनीय बनाने के लिए दिए गए समानार्थी हैं:

FUNCTION f IS ...

चयन के रूप में देखें v ...


54

एक मामूली अंतर ...

वे पैकेज और प्रक्रियाओं के लिए समानार्थी हैं, लेकिन कर्सर के लिए नहीं:

यह काम...

cursor test_cursor
is
select * from emp;

... लेकिन यह नहीं है:

cursor test_cursor
as
select * from emp;

4
दिलीप कृष्णमूर्ति का जवाब इसे पूरा करता है
इमाद

21

"IS" और "AS" प्रक्रियाओं और पैकेजों को बनाते समय एक पर्याय के रूप में कार्य करते हैं लेकिन किसी कर्सर, टेबल या दृश्य के लिए नहीं।


11

यहाँ एक और अंतर है (10g में, किसी भी दर पर)

एक ढीली वस्तु को देखते हुए:

CREATE TYPE someRecordType AS OBJECT
(
   SomeCol VARCHAR2(12 BYTE)
);

आप या looseतो इस ऑब्जेक्ट प्रकार की एक तालिका प्रकार बना सकते हैं ASयाIS

CREATE OR REPLACE TYPE someTableType
        IS {or AS} TABLE OF someRecordType;

हालाँकि, यदि आप पैकेज के भीतर यह एक ही तालिका प्रकार बनाते हैं, तो आपको इसका उपयोग करना होगा IS:

CREATE OR REPLACE PACKAGE SomePackage IS
    TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;

ASपैकेज का उपयोग निम्नलिखित त्रुटि पैदा करता है:

त्रुटि (2,30): PLS-00103: निम्नलिखित में से किसी एक की अपेक्षा करते समय प्रतीक "टेबल" का एनकाउंटर किया: अपारदर्शी


1

TutorialsPoint के अनुसार

स्टैंडअलोन प्रक्रिया बनाने के लिए IS कीवर्ड के बजाय AS कीवर्ड का उपयोग किया जाता है।

और पिछले उत्तरों पर विचार करते हुए,

मेरा अनुमान

AS अकेले खड़े रहने के लिए है (किसी भी ब्लॉक, सबप्रोग्राम, पैकेज के बाहर) संस्थाओं

तथा

IS एम्बेडेड (एक ब्लॉक, सबप्रोग्राम या पैकेज के भीतर) संस्थाओं के लिए है।


1

के रूप में कीवर्ड के बजाय प्रयोग किया जाता है है एक बनाने के लिए कीवर्ड स्टैंडअलोन समारोह

[एक स्टैंडअलोन संग्रहित फ़ंक्शन एक फ़ंक्शन ( एक उपप्रोग्राम जो एक एकल मान लौटाता है ) डेटाबेस में संग्रहीत होता है। नोट: एक स्टैंडअलोन संग्रहित फ़ंक्शन जिसे आप क्रिएट फंक्शन स्टेटमेंट के साथ बनाते हैं , एक फ़ंक्शन से भिन्न होता है जिसे आप PL / SQL ब्लॉक या पैकेज में घोषित और परिभाषित करते हैं। ]

अधिक स्पष्टीकरण के लिए, यह पढ़ें ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.