Oracle में आप किसी क्वेरी को निष्पादित करने से पहले उसे पार्स कर सकते हैं
declare
l_theCursor integer default dbms_sql.open_cursor;
begin
dbms_sql.parse( l_theCursor, 'SELECT 1 FROM DUAL', dbms_sql.native );
end;
जो वैसे भी एक अच्छा अभ्यास है क्योंकि आप उपयोगकर्ता इनपुट से अपना एसक्यूएल प्राप्त करेंगे। यदि कथन मान्य नहीं है तो आपको उचित त्रुटि संदेश प्राप्त होगा। बेशक उपरोक्त द्वारा कथन निष्पादित नहीं किया गया है।
स्टेटमेंट को पार्स करने के बाद आप कमांड_टाइप का पता लगाने के लिए v$sql को क्वेरी कर सकते हैं:
select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';
विभिन्न कमांड_टाइप इस प्रकार हैं:
2 -- सम्मिलित करें
3 -- चुनें
6 -- अद्यतन
7 -- हटाएं
189 -- विलय
आप select * from audit_actions order by action
. द्वारा पूरी सूची प्राप्त कर सकते हैं
आशा है कि यह मदद करता है :)