PL/SQL 함수를 고객에게 주어진 이름기 위해 id

0

질문

/Create PL/SQL 함수 get_customer_name 는 반환합니다 고객의 이름을 주기 위해 ID 입니다./

/때 나는 함수를 호출을 받는 고객 ID 등의 결과입니다. 의 기능을 반환해야 합니다 고객의 이름입니다. 나는 무엇이 없는가?/

--Oracle PL/SQL 함수:--

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;

/쓰는 익명 PL/SQL 프로그램를 통화 이 함수와 함께 몇 가지기 위해 ID 를 입력으로 사용 및 인쇄용의 결과입니다./ --함수 호출:--

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

당신은 출력하는 고객의 이름은 아 JOINcustomers 테이블과를 얻 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;
/

출력:

Alice

db<>바이올린 여기에서

2021-11-23 21:57:59

감사합니다. 그것은 일부 사소한 변경합니다.
Chuck

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................