【发布时间】:2011-01-30 20:08:56
【问题描述】:
我有一个由 SQL*Plus 执行的 SQL 脚本,它需要与 Oracle 10g 和 Oracle 11g 一起运行。
该脚本为 11g 之前不存在的包提供授权:
GRANT EXECUTE ON sys.dbms_result_cache TO my_user;
我想避免 10g 上的异常,因为我想对脚本中的其他异常做出反应。
一种方法是使用Conditional Compilation 和dbms_db_version:
BEGIN
$IF dbms_db_version.ver_le_10 $THEN NULL; $ELSE
EXECUTE IMMEDIATE 'GRANT EXECUTE ON sys.dbms_result_cache TO my_user';
$END
END;
/
有没有其他方法,最好不使用PL/SQL?
【问题讨论】: