Tôi nghĩ những gì bạn đang nói là bạn muốn cơ sở dữ liệu phân tích cú pháp chuỗi công thức. Ví dụ, đối với Oracle, bạn có thể
- Thêm một cột vào bảng để chứa kết quả
-
Chạy một câu lệnh cập nhật sẽ gọi một hàm PL / SQL với các giá trị của các cột trong bảng và văn bản của công thức
cập nhật {table} set Formula_result =fn_calc_result (col1, col2, Formula_column);
Hàm PL / SQL sẽ tạo một chuỗi bằng cách thay thế "col1" và "col2", v.v. bằng các giá trị thực của các cột đó. Bạn có thể làm điều đó với các cuộc khám phá thông thường, miễn là các công thức được viết nhất quán.
Sau đó sử dụng
execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;
để tính toán kết quả và trả về nó.
Tất nhiên, bạn cũng có thể viết trình phân tích cú pháp của riêng mình. Nếu bạn quyết định đi theo cách đó, đừng quên xử lý ưu tiên hoạt động, dấu ngoặc đơn, v.v.