पी एल/एसक्यूएल समारोह में लौटने के लिए एक ग्राहक के नाम दिए गए आदेश आईडी

0

सवाल

/बनाएँ एक पी एल/एसक्यूएल समारोह get_customer_name है कि रिटर्न ग्राहक के नाम दिए गए आदेश आईडी./

/जब मैं समारोह कॉल प्राप्त मैं ग्राहक आईडी परिणाम के रूप में. समारोह वापस आ जाना चाहिए ग्राहक का नाम. मैं क्या कर रहा हूँ याद आ रही है?/

--Oracle पी एल/एसक्यूएल समारोह:--

CREATE OR REPLACE FUNCTION get_customer_name(cust_id IN VARCHAR)
RETURN NUMBER
IS 
cname VARCHAR2 (50);
BEGIN
    SELECT customer_id INTO cname FROM s_order_t o WHERE o.order_id = cust_id;
    RETURN cname;
    EXCEPTION
    WHEN no_data_found THEN
    DBMS_OUTPUT.PUT_LINE('NO SUCH EMPLOYEE');
RETURN -1;
END;

/लिखने के एक गुमनाम पी एल/एसक्यूएल प्रोग्राम को कॉल करने के लिए इस समारोह के साथ कुछ आदेश आईडी के रूप में इनपुट, और बाहर प्रिंट का परिणाम है./ - समारोह के लिए कॉल:--

DECLARE
cname VARCHAR2 (50);
BEGIN
    cname := get_customer_name (1010);
    DBMS_OUTPUT.PUT_LINE (cname);
END;
oracle
2021-11-23 18:52:27
1

सबसे अच्छा जवाब

0

आप नहीं कर रहे हैं outputting ग्राहक के नाम; आप शायद करने के लिए की जरूरत JOIN करने के लिए एक customers मेज और name स्तंभ (यह मानते हुए कि वे क्या कर रहे हैं कहा जाता है):

CREATE OR REPLACE FUNCTION get_customer_name(
  cust_id IN S_ORDER_T.ORDER_ID%TYPE
) RETURN CUSTOMERS.NAME%TYPE
IS 
  cname CUSTOMERS.NAME%TYPE;
BEGIN
  SELECT name
  INTO   cname
  FROM   s_order_t o
         INNER JOIN customers c
         ON (o.customer_id = c.id)
  WHERE o.order_id = cust_id;

  RETURN cname;
EXCEPTION
  WHEN no_data_found THEN
    RETURN NULL;
END;
/

के लिए नमूना डेटा:

CREATE TABLE IF NOT EXISTS customers (
  id INTEGER PRIMARY KEY,
  name VARCHAR2(20)
);

CREATE TABLE IF NOT EXISTS s_order_t (
  order_id INTEGER PRIMARY KEY,
  customer_id REFERENCES customers
);

INSERT IGNORE INTO customers VALUES (1, 'Alice');
INSERT IGNORE INTO s_order_t VALUES (1010, 1);

तो:

DECLARE
  cname CUSTOMERS.NAME%TYPE;
BEGIN
  cname := get_customer_name (1010);
  DBMS_OUTPUT.PUT_LINE (cname);
END;
/

Outputs:

Alice

db<>बेला यहाँ

2021-11-23 21:57:59

धन्यवाद. यह काम किया है के साथ कुछ मामूली परिवर्तन.
Chuck

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में