PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apakah ada cara untuk mengeksekusi kueri di dalam nilai string (seperti eval) di PostgreSQL?

Jika pernyataan yang Anda coba "eval" selalu mengembalikan tipe data yang sama, Anda bisa menulis fungsi eval() yang menggunakan EXECUTE yang disebutkan oleh Grzegorz.

create or replace function eval(expression text) returns integer
as
$body$
declare
  result integer;
begin
  execute expression into result;
  return result;
end;
$body$
language plpgsql

Kemudian Anda bisa melakukan sesuatu seperti

SELECT eval('select 41') + 1;

Namun pendekatan ini tidak akan berhasil jika pernyataan dinamis Anda menampilkan sesuatu yang berbeda untuk setiap ekspresi yang ingin Anda evaluasi.

Juga ingat bahwa ini membuka risiko keamanan yang besar dengan menjalankan pernyataan sewenang-wenang. Jika itu masalah tergantung pada lingkungan Anda. Jika itu hanya digunakan dalam sesi SQL interaktif maka itu tidak menjadi masalah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tantangan Menskalakan Database PostgreSQL Moodle

  2. Bagaimana Fungsi CONCAT() Bekerja di PostgreSQL

  3. Ubah jenis bidang varchar ke integer:tidak dapat dilemparkan secara otomatis ke tipe integer

  4. Bagaimana UNION Bekerja di PostgreSQL

  5. Membandingkan Kinerja &Harga PostgreSQL DigitalOcean – ScaleGrid vs. Database yang Dikelola DigitalOcean