2013-02-21 21 views
11

मैं Oracle करने के लिए नया हूँ और मैं Oracle SQL (नहीं PL/SQL) में पाश के लिए उपयोग के बारे में अनजान हूँ।Oracle SQL में पाश के लिए

मैं क्वेरी में +1 द्वारा संख्या में वृद्धि और स्टेटमेंट्स को निष्पादित करने के लिए एक आवश्यकता थी, एसक्यूएल में लूप के लिए उपयोग करना संभव है?

+0

सेट ऑपरेशंस में "लूप के लिए" नहीं हैं। बस "वास्तविक प्रश्न" से पूछें - इनपुट/आउटपुट/वर्तमान प्रयास दिखाना सुनिश्चित करें - और सुनिश्चित करें कि शीर्षक इसे दर्शाता है। 'Plsql' टैग को हटाएं यदि यह वास्तव में * पीएल/एसक्यूएल * वर्णित नहीं है। –

+0

जैसा कि पीएसटी ने कहा, "लूप के लिए" नहीं हैं लेकिन समान प्रभाव प्राप्त करने के तरीके हैं। * कथन * निष्पादित करने का क्या मतलब है * और किस संख्या को 1 और कितनी बार बढ़ाया जाना चाहिए? –

+0

@ एबी। कैड मैं एक कस्टम वैरिएबल बनाना चाहता हूं 'i' और मैं इसे तब तक बढ़ाना चाहता हूं जब तक कि यह '5' तक पहुंच न जाए, मैं इस चर का उपयोग कुछ स्ट्रिंग में जोड़ने के लिए करना चाहता हूं। एसक्यूएल – user964147

उत्तर

25

आप मेरे दोस्त को बहुत उलझन में डाल रहे हैं। एसक्यूएल में कोई लूप नहीं है, केवल पीएल/एसक्यूएल में। यहाँ मौजूदा ओरेकल तालिका के आधार पर कुछ उदाहरण है - कॉपी/पेस्ट परिणाम देखने के लिए:

-- Numeric FOR loop -- 
set serveroutput on -->> do not use in TOAD -- 
DECLARE 
    k NUMBER:= 0; 
BEGIN 
    FOR i IN 1..10 LOOP 
    k:= k+1; 
    dbms_output.put_line(i||' '||k); 
END LOOP; 
END; 
/

-- Cursor FOR loop -- 
set serveroutput on 
DECLARE 
    CURSOR c1 IS SELECT * FROM scott.emp; 
    i NUMBER:= 0; 
BEGIN 
    FOR e_rec IN c1 LOOP 
    i:= i+1; 
    dbms_output.put_line(i||chr(9)||e_rec.empno||chr(9)||e_rec.ename); 
    END LOOP; 
END; 
/

-- SQL example to generate 10 rows -- 
SELECT 1 + LEVEL-1 idx 
    FROM dual 
CONNECT BY LEVEL <= 10 
/
3

आप निश्चित रूप से ऐसा करने में सक्षम हो जाएगा कि खंड साथ का उपयोग कर, या विश्लेषणात्मक कार्यों Oracle SQL में उपलब्ध का उपयोग करें।

कुछ प्रयास आप साधारण प्रक्रियात्मक भाषाओं में के रूप में चक्र के मामले में उनमें से कुछ भी प्राप्त करने में सक्षम हो जाएगा के साथ

। सामान्य दृष्टिकोण की तुलना में दोनों दृष्टिकोण काफी शक्तिशाली हैं।

http://www.dba-oracle.com/t_with_clause.htm

http://www.orafaq.com/node/55

यह कुछ प्रयास हालांकि की आवश्यकता है। एक ठोस उदाहरण पोस्ट करने से डरो मत।

सरल छद्म तालिका का उपयोग करना डीयूएएल भी मदद करता है।

+0

मैंने अपना प्रश्न संपादित किया है कृपया उदाहरण – user964147

+1

क्षमा करें, इसे देख नहीं सकते हैं। 'बुद्धिमान' लोगों ने सवाल बहुत जल्दी बंद कर दिया, शायद, क्योंकि वे इसे समझ में नहीं आए। – MarianP

+0

क्या आप एक और प्रश्न पोस्ट कर सकते हैं? इसे ओरेकल एसक्यूएल विश्लेषणात्मक कार्यों का उपयोग करके 'इसे कैसे करें' के रूप में फ्रेम करें? इस तरह वे इसे बंद नहीं करेंगे। – MarianP

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