यदि आप "चर नामों को बदलने की आवश्यकता के बिना" की अपनी परिभाषा के प्रति पर्याप्त उदार हैं, तो आप कर सकते हैं . शानदार पीएल/एसक्यूएल नाम संकल्प पढ़ना कहता है:
<ब्लॉककोट>यदि किसी नामित पीएल/एसक्यूएल इकाई में एक पहचानकर्ता घोषित किया गया है, तो आप इस सिंटैक्स का उपयोग करके इकाई के नाम (ब्लॉक, उपप्रोग्राम, या पैकेज) के साथ इसके साधारण नाम (इसकी घोषणा में नाम) को अर्हता प्राप्त कर सकते हैं:
unit_name.simple_identifier_name
निम्न उदाहरण 20
प्रिंट करेगा उम्मीद के मुताबिक:
create table foo (a number, b number);
insert into foo values(1, 10);
insert into foo values(2, 20);
insert into foo values(3, 30);
begin
<<bar>>
declare
a number;
b number;
begin
a := 2;
select b into bar.b from foo where a = bar.a;
dbms_output.put_line(b);
end;
end;
/
परिवर्तनीय नाम नहीं बदले जाते हैं। इसके बजाय वे हम्म हैं ... अधिक योग्य :)
ध्यान दें कि निम्नलिखित काम नहीं करता है:
begin
declare
a number;
b number;
begin
a := 2;
select foo.b into b from foo where foo.a = a;
dbms_output.put_line(b);
end;
end;
/
गैर-योग्य a
. के रूप में select
. में -स्टेटमेंट को प्राथमिकता नियमों के कारण एक कॉलम के रूप में व्याख्यायित किया जाता है:
यदि SQL कथन किसी ऐसे नाम का संदर्भ देता है जो स्तंभ और स्थानीय चर या औपचारिक पैरामीटर दोनों से संबंधित है, तो स्तंभ नाम को प्राथमिकता दी जाती है।