Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Parsing SQL melalui driver JDBC Oracle

Anda dapat menggunakan paket Oracle DBMS_SQL untuk mengurai pernyataan yang disimpan dalam sebuah string. Misalnya:

SQL> declare
  2    c integer;
  3    l_statement varchar2(4000) := 'insert into mytable (col) values (1,2)';
  4  begin
  5    c := dbms_sql.open_cursor;
  6    dbms_sql.parse(c,l_statement,dbms_sql.native);
  7    dbms_sql.close_cursor(c);
  8  end;
  9  /
declare
*
ERROR at line 1:
ORA-00913: too many values
ORA-06512: at "SYS.DBMS_SYS_SQL", line 824
ORA-06512: at "SYS.DBMS_SQL", line 32
ORA-06512: at line 6

Anda bisa membungkusnya menjadi fungsi tersimpan yang baru saja kembali mis. 1 jika pernyataan itu valid, 0 jika tidak valid, seperti ini:

function sql_is_valid
  ( p_statement varchar2
  ) return integer
is  
  c integer;
begin
  c := dbms_sql.open_cursor;
  dbms_sql.parse(c,p_statement,dbms_sql.native);
  dbms_sql.close_cursor(c);
  return 1;
exception
  when others then 
    return 0;
end;

Anda kemudian dapat menggunakannya seperti contoh PL/SQL ini:

:n := sql_is_valid('insert into mytable (col) values (1,2)');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghubungkan Oracle ke SQL Server dari Windows

  2. Pemicu untuk memeriksa duplikat

  3. Bagaimana cara memanggil prosedur pengembalian Oracle CURSOR di java

  4. Data Blob yang dibatasi di oracle

  5. pilih nilai kolom dinamis dari variabel tipe baris di pl sql