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

Làm thế nào để lập trình tên bảng trong PL / SQL?

Để trả lời câu hỏi của mình, bạn phải sử dụng execute immediate và tạo câu lệnh của bạn một cách động.

create or replace procedure hire_employee (
        emp_id IN INTEGER
      , name IN VARCHAR2
      , country IN VARCHAR2 ) is

   -- maximum length of an object name in Oracle is 30
   l_table_name varchar2(30) := 'employees_' || country;

begin
    execute immediate 'insert into ' || l_table_name
                       || ' values (:1, :2, 1000)'
      using emp_id, name;
end hire_employee;

Tuy nhiên, đây là một cách lưu trữ dữ liệu quá phức tạp. Nếu bạn muốn chọn tất cả dữ liệu bạn phải kết hợp số lượng lớn các bảng.

Sẽ tốt hơn nhiều nếu chuẩn hóa cơ sở dữ liệu đúng cách và thêm quốc gia vào employees bảng.

Một cái gì đó như sau:

create table employees (
    emp_id number(16)
  , country varchar2(3) -- ISO codes
  , name varchar2(4000) -- maximum who knows what name people might have
  , < other_columns >
  , constraint pk_employees primary key ( emp_id )
    );

Sau đó, thủ tục của bạn trở thành một câu lệnh chèn rất đơn giản:

create or replace procedure hire_employee (
       emp_id in integer
     , name in varchar2
     , country in varchar2 ) is

    insert into employees
    values ( emp_id, country, name, 1000 );

end hire_employee;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nối hoặc đính kèm một đối tượng json bên trong một đối tượng json đối tượng json khác với plsql

  2. Oracle Trước khi Chèn HOẶC Cập nhật Ví dụ về trình kích hoạt

  3. Cách loại bỏ phần đệm bên phải cho tên ngày trong Oracle

  4. Phù hợp với một nhóm có thể tồn tại hoặc có thể không tồn tại

  5. Lấy min () của cột đếm (*)