2017-05-30 65 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执行中的下一行将被移至。