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

Cập nhật một bảng trong Oracle nếu bất kỳ giá trị trường nào là rỗng và xác định rằng cập nhật thành công

Bạn có thể cần cập nhật các trường cụ thể của bảng hoặc tất cả các trường nếu giá trị của chúng chỉ bằng rỗng, nếu không thì không cần cập nhật bất kỳ trường nào. Dưới đây là quy trình ví dụ cho cùng mục đích được viết trên bảng HR.E Employees:TẠO HOẶC THAY THẾ THỦ TỤC HR.UpdateEmpIfNull (PN_EMPLOYEE_ID IN NUMBER, PV_FIRST_NAME IN VARCHAR2, PV_LAST_NAME IN VARCHAR2, PV_EMAIL IN VARCHAR_JOB IN VARCHAR2, PV_PHONEATE_NUMBER IN VARCHAR2, PN_SALARY IN NUMBER, PV_Success OUT VARCHAR2) LÀ n_độ dài NUMBER; n_length2 NUMBER; BEGIN CHỌN CHIỀU DÀI (FIRST_NAME || LAST_NAME || EMAIL || PHONE_NUMBER || HIRE_DATE || JOB_ID || SALARY) VÀO n_length TỪ HR.EMPLOYEES WHERE EMPLOYEE_ID =PN_EMPLOYEE_ID; CẬP NHẬT HR.EMPLOYEES SET FIRST_NAME =DECODE (FIRST_NAME, NULL, PV_FIRST_NAME, FIRST_NAME), LAST_NAME =DECODE (LAST_NAME, NULL, pv_LAST_NAME, LAST_NAME), EMAIL =DECODE (EMAIL, NULL, pv_EMAIL, EMAIL), PHONE_NUMBER NULL, pv_PHONE_NUMBER, PHONE_NUMBER), HIRE_DATE =DECODE (HIRE_DATE, NULL, pD_HIRE_DATE, HIRE_DATE), JOB_ID =DECODE (JOB_ID, NULL, pV_JOB_ID, JOB_ID), SALARY =DECODEARY, SALARY_SYARY, WHID_SALARY =DECODEARY, PIDALLO, NPLO, WHĐ, WHĐ / * Sử dụng truy vấn dưới đây để xác định xem cập nhật thành công hay không, chúng tôi không thể sử dụng ở đây sql% rowcount hoặc sql% found để xác định vì nếu id nhân viên là chính xác thì nó sẽ luôn hiển thị cập nhật thành công nhưng chúng tôi cần xác định xem có trường nào không giá trị đã cập nhật hay chưa * / SELECT LENGTH (FIRST_NAME || LAST_NAME || EMAIL || PHONE_NUMBER || HIRE_DATE || JOB_ID || SALARY) VÀO n_length2 TỪ HR.EMPLOYEES WHERE EMPLOYEE_ID =PN_EMPLOYEE_ID; NẾU n_length2> n_length THEN --- Lưu Thay đổi. LÀM; Pv_Success:='Y'; QUAY LĂN KHỬ MÙI; pv_success:='N'; KẾT THÚC NẾU; NGOẠI LỆ KHI NGƯỜI KHÁC THÌ Pv_Success:='N'; ROLLBACK; HẾT; /
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chế độ xem vật chất hóa so với Bảng:Ưu điểm là gì?

  2. Làm cách nào để chia một cột varchar thành nhiều giá trị trong SQL?

  3. SQL Oracle LEFT JOIN và lỗi SUBQUERY:ORA-00905:thiếu từ khóa

  4. Cách chạy Opatch ở dạng không tương tác

  5. Cách sử dụng hàm Coalesce trong Oracle