2012-04-05 12 views
28

मैं इस प्रक्रिया है:में और बाहर के साथ Oracle में एक संग्रहीत प्रक्रिया कॉलिंग पैरामीटर

DECLARE 
    amount NUMBER; 
BEGIN 
    PROC1(1000001, amount); 
    dbms_output.put_line(amount); 
END; 

BTW मैं के लिए DreamCoder का उपयोग करें: जब मैं इसे इस तरह से चलाने के

CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER) 
AS BEGIN 
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr; 
END; 

तो यह पूरी तरह से कुछ भी नहीं देता है आकाशवाणी। क्या प्रक्रिया के साथ या जिस तरह से मैं इसे कॉल करता हूं, उसके साथ कोई समस्या है? INVOICE_NR के साथ INVOICE_NR के साथ 1000001 के बराबर एक प्रविष्टि है।

+2

यदि आप "dbms_output.put_line ('output test') end शुरू करते हैं;" क्या आप आउटपुट देखते हैं? यह प्रक्रिया और इसे कॉल करने का तरीका पूरी तरह से सही है। – arturro

+0

मैं इसे इस तरह से चलाता हूं लेकिन मुझे आउटपुट नहीं दिखाई देता है। क्या यह संभव है कि DreamCoder put_line() के आउटपुट को प्रदर्शित न करे? – RegedUser00x

+0

नहीं मैंने 'BEGIN dbms_output.put_line ('hi') के साथ प्रयास किया; अंत; 'और यह कुछ भी नहीं दिखाता है। – RegedUser00x

उत्तर

1

मेनू टूल पर जाएं -> एसक्यूएल आउटपुट, पीएल/एसक्यूएल कथन चलाएं, आउटपुट एसक्यूएल आउटपुट पैनल पर दिखाया जाएगा।

34

यदि आप पूरे कोड से पहले सर्वर आउटपुट को ऑन मोड में सेट करते हैं, तो यह काम करता है, अन्यथा put_line() काम नहीं करेगा। कोशिश करो!

कोड है,

set serveroutput on; 
CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER) 
AS BEGIN 
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr; 
END; 

और फिर फ़ंक्शन को कॉल के रूप में यह है:

DECLARE 
amount NUMBER; 
BEGIN 
PROC1(1000001, amount); 
dbms_output.put_line(amount); 
END; 
2

मैं था ही समस्या एक ट्रिगर का इस्तेमाल किया, और कहा कि ट्रिगर में मैं एक प्रक्रिया बुलाया जो 2 आउट वैरिएबल में कुछ मानों की गणना करता है। जब मैंने ट्रिगर बॉडी में नतीजे मुद्रित करने की कोशिश की, तो स्क्रीन पर कुछ भी नहीं, लेकिन फिर मैंने इस समस्या को फ़ंक्शन में 2 स्थानीय चर बनाने के लिए हल किया, मुझे उनकी आवश्यकता की गणना करें और आखिरकार, उन चरों को कॉपी करें आपके आउट प्रक्रिया चर। मुझे आशा है कि यह उपयोगी होगा, सफल!