2012-07-23 8 views
9

मैं एक एमएसएसएलएल स्क्रिप्ट को ओरेकल में परिवर्तित कर रहा हूं, और मैं टेबल नाम या कॉलम के स्थान पर एक चर का उपयोग करने के लिए वाक्यविन्यास को समझने में सक्षम नहीं हूं।ओरेकल एसक्यूएल: तालिका नामों के स्थान पर उपयोग किए जाने वाले चर

set serveroutput on format wrapped; 
declare 
    VR_TABLE VARCHAR2(256); 
    VR_UPDATE VARCHAR2(256); 
begin 
    VR_TABLE :='SYSTEM_STATUS'; 
    EXECUTE IMMEDIATE 'select UPDATE_VERSION INTO VR_UPDATE from ' || VR_TABLE || 'where rownum < 2 ;' 
end; 

कहाँ VR_TABLE चर तालिका नाम है कि प्रत्येक यात्रा बदल जाओ जाएगा:

यहाँ एक सरल उदाहरण मैं तो मैं बेहतर वाक्य रचना को समझ सकता हूँ Oracle SQL डेवलपर में काम करने के लिए कोशिश किया गया है वह यह है कि लूप का। क्या कोई यह बता सकता है कि मैं क्या गलत कर रहा हूं, या मुझे उस साइट से लिंक करें जो मेरे पढ़ने के लिए उपयोगी होगा? मैंने इस पर कुछ ट्यूटोरियल पढ़े हैं, लेकिन मेरे पास अब तक कोई भाग्य नहीं है।

उत्तर

15
  1. आप तालिका नाम और बाद WHERE खंड
  2. INTO जरूरतों EXECUTE IMMEDIATE का हिस्सा है, गतिशील एसक्यूएल बयान का हिस्सा नहीं होने के लिए जो अंतरिक्ष की आवश्यकता है।
  3. गतिशील एसक्यूएल बयान पीछे अर्धविराम
  4. EXECUTE IMMEDIATE बयान अर्धविराम

उन एक साथ लाना साथ समाप्त होना चाहिए नहीं होना चाहिए, कुछ इस तरह काम करना चाहिए

declare 
    VR_TABLE VARCHAR2(256); 
    VR_UPDATE VARCHAR2(256); 
begin 
    VR_TABLE :='SYSTEM_STATUS'; 
    EXECUTE IMMEDIATE 'select UPDATE_VERSION from ' || VR_TABLE || ' where rownum < 2' 
       INTO VR_UPDATE; 
end; 
बेशक

, के बाद से आप VR_UPDATE के साथ कुछ भी नहीं कर रहे हैं, यह अनाम ब्लॉक निष्पादित होने पर कुछ भी प्रदर्शित नहीं किया जाएगा।

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