2017-05-30 61 views
0

我正在生成一個動態查詢字符串,我只想在無效查詢(有效語法)時執行它。否則,我想跳過該查詢並繼續執行pl sql。如何做呢?檢查動態生成的查詢的有效性

+1

用'BEGIN ... EXCEPTION ... END; \ –

+0

把它括起來''DBMS_SQL.PARSE()'](https://docs.oracle.com/cd/B28359_01/appdev.111 /b28419/d_sql.htm#i997676),如果語法有效,它將執行語義檢查並**執行SQL。 –

+0

如果在循環中檢查到大量的查詢,它是否會減慢執行速度? – Akhil

回答

1

用另一個BEGIN..EXCEPTION..END查詢執行的嵌套; 。例外情況下,處理「當其他人」。如果有任何語法錯誤,它將在異常塊中被捕獲,並且在pl/sql執行中的下一行將被移至。