sql - 如何处理 pl/sql block 中的编译时异常?

标签 sql oracle plsql oracle10g

实际上这是一个愚蠢的问题,因为为什么你会在代码中允许编译时异常,但我的情况有些不同。

实际上,我正在编写一个 pl/sql block ,其中在运行时获取表名,然后在查询中使用该表名,其中我有一个 where 子句“wheremaker ='AUTO_MAST_MAK'”.. 现在问题是在某些表中“maker”列不可用,因此该 block 未编译。

任何人都可以帮助我解决我的问题吗?或者有任何建议“我应该改变解决问题的方法吗”

最佳答案

动态 PL/SQL 可以处理编译错误:

declare
    compile_error exception;
    pragma exception_init(compile_error, -06550);
begin
    execute immediate q'<
        begin
            does not compile
        end;    
    >';
exception when compile_error then
    dbms_output.put_line('PL/SQL Block did not compile.');
end;
/

关于sql - 如何处理 pl/sql block 中的编译时异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21772118/

相关文章:

mysql - 挣扎于 SQL 查询

oracle - Oracle中的ADMIN选项和GRANT选项有什么区别

java - PL/SQL 过程中的长 Activity session

sql - 仅更新 Pl/SQL 中日期时间字段的日期

c# - 此代码中返回相同结果但不同 SQL 的 LINQ 方法的执行顺序。里面到底发生了什么?

mysql - 选择新闻,加入多个标签

sql - 命名管道提供程序无法打开与 SQL Server 1231 的连接

spring - 使用simplejdbccall时如何在spring中关闭refcursor

Oracle:函数的全局命名空间限定符?

oracle - pls_integer 和 binary_integer 有什么区别?