Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách viết một thủ tục PL / SQL với tham số đầu vào x và đầu vào / đầu vào của tham số x được kết hợp

Đối với tôi, có vẻ như

  • bạn nên "chuyển đổi" thủ tục tính toán mọi phần của STUDENT_ID thành chức năng
    • Tại sao? Bởi vì - như bây giờ - các thủ tục phải có tham số OUT để chúng có thể trả về những gì chúng đã tính toán. Và đó không là gì ngoài một chức năng
  • chuyển các phần thông tin cho mỗi người trong số họ
  • nhận được kết quả
  • nối phần kết quả vào STUDENT_ID cuối cùng giá trị

Một cái gì đó như thế này:

function f_name (par_name in varchar2) return varchar2 is
  retval varchar2(20);
begin
  retval := whatever code you have to find it
  return retval;
end;

function f_surname (par_surname in varchar2) return varchar2 is
  retval varchar2(20);
begin
  retval := whatever code you have to find it
  return retval;
end;

etc.

procedure student_id (par_surname in varchar2, par_name in varchar2, ...)
is
  l_student_id varchar2(30);
begin
  l_student_id := f_name   (par_name)    ||'-'||
                  f_surname(par_surname) ||'-'||
                  f_gender (par_gender)  ||'-'||
                  ...
                  f_state  (par_state);
                  
  dbms_output.put_line('Student_ID is: ' || l_student_id);
end;  

Cuối cùng, vì tất cả các chức năng và thủ tục đó giải quyết cùng một vấn đề, sẽ rất tuyệt nếu đặt tất cả chúng vào một gói .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GRANT có thể được sử dụng bên trong Thủ tục lưu trữ Oracle không?

  2. Không thể tham gia giao dịch

  3. Chọn từ bảng bằng cách chỉ biết ngày mà không có thời gian (ORACLE)

  4. Cách đọc và lưu trữ dữ liệu XML trong cơ sở dữ liệu

  5. Lỗi tạo bảng - Oracle SQL