हमारे SVN-कोड भंडार में, मैं कुछ लाइनों को हटानेक्या यह पीएल/एसक्यूएल कंपाइलर में एक बग है?
create or replace package tq84 as
return varchar2(10);
end tq84;
/
करने पर निर्भर करता एक पैकेज विनिर्देश कि -After में आए मुझे ऐसा लगता है कि इस तरह के एक विनिर्देश भावना की बहुत नहीं है और इसलिए बिल्कुल संकलित नहीं होना चाहिए। लेकिन शायद, मुझे स्पष्ट दिखाई नहीं दे रहा है, तो: क्या यह वास्तव में एक बग है?
completness के लिए 'खातिर:
me @ xxx.yyy.zz > select * from v$version;
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
NLSRTL Version 10.2.0.4.0 - Production
संपादित: यह सुझाव दिया गया है कि विनिर्देश return
ऊपर दिए गए के रूप में में कीवर्ड लेकिन एक (पैकेज) अलग-अलग नहीं है। लेकिन यह मामला होने के लिए नहीं लगता है के बाद से निम्नलिखित समान रूप से ठीक संकलित:
create or replace package tq84 as
return varchar2(10);
return number;
return date;
end tq84;
/
और स्पष्ट रूप से, संकलक ने मुझे बताया कि मैं एक ही चर कई बार घोषित करना चाहिए।
संपादित 2: JOTN, सही निश्चित रूप से है, और return
एक चर रहा है, और इसके अलावा, संकलक अग्रिम नहीं बताता है, अगर एक ही नाम के साथ एक चर दो बार या उससे अधिक घोषित किया जाता है, बजाय , यह रनटाइम पर्यावरण है, जो करता है।
तो, इस बात को ध्यान में साथ, यह संभव तरह
create or replace package return as
subtype return is varchar2(10);
end return;
/
create or replace package tq84 as
constant constant
return . return := 'return';
function function
return return . return;
end tq84;
/
जो अजीब लग रहा है, कम से कम पहली नजर में कुछ संकलित करने के लिए है।
तो फिर, मुझे लगता है, यह एक संकलक बग नहीं है क्योंकिreturn
एक चर नाम के रूप में अनुमति दी है, लेकिन फिर, यह अगर संकलक कम से कम एक चेतावनी देना चाहिए अगर एक ही नाम के साथ एक चर रहा है विवादास्पद है कई बार घोषित किया।
मैंने अभी चेतावनी दी कि कैसे चेतावनियां चालू करें। – JOTN
यह एक बग नहीं है ... इसकी एक विशेषता है;) – guigui42