Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle के JDBC ड्राइवर के माध्यम से SQL को पार्स करें

आप एक स्ट्रिंग में रखे गए कथन को पार्स करने के लिए Oracle DBMS_SQL पैकेज का उपयोग कर सकते हैं। उदाहरण के लिए:

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

आप इसे एक संग्रहीत फ़ंक्शन में लपेट सकते हैं जो अभी लौटा है उदा। 1 यदि कथन मान्य था, 0 यदि अमान्य है, तो इस तरह:

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;

फिर आप इसे PL/SQL उदाहरण की तरह उपयोग कर सकते हैं:

: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. क्या उपयोग के बाद DbCommand का निपटान करना आवश्यक है?

  2. प्रो * सी क्वेरी में एक परिवर्तनीय अभिव्यक्ति सूची कैसे निर्दिष्ट करें?

  3. टॉमकैट जेडीबीसी कनेक्शन पूल - रोलबैक परित्यक्त लेनदेन

  4. 12c अनुकूली योजनाएं

  5. ऑरैकल डेटाबेस में टेबल ड्रॉप कॉलम बदलें