他不执行该程序。第一步失败。甲骨文
Posted
技术标签:
【中文标题】他不执行该程序。第一步失败。甲骨文【英文标题】:He does not perform the procedure. Fail in first step. Oracle 【发布时间】:2019-08-02 11:43:22 【问题描述】:我在 oracle 中创建了删除我的表并从我的视图创建同一个表的过程。但是我在运行这个程序时遇到了一些问题。删除表的第一步有效,但复制它不起作用。
这是一个很好的程序吗?
create or replace PROCEDURE transfer_table (table_name IN VARCHAR2,tableFrom IN VARCHAR2) IS
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE ' || table_name;
EXECUTE IMMEDIATE 'CREATE TABLE ' || table_name || ' AS SELECT * FROM ' || tableFrom;
commit;
END transfer_table;
接下来我单击此过程并更改变量,然后查看并单击确定,但只有删除表的第一步有效。我做错了什么?
【问题讨论】:
否,但没有创建表:/ 可能是凭证问题。 可能是一个简单的错字?名为 AUTOMAT_CENY_ODTW 的表或视图真的存在吗? (顺便说一下,提交和回滚对 CREATE 和 DROP 等 DDL 命令没有影响。) 查看物化视图。 【参考方案1】:如果您创建的表不存在,我认为您需要捕获错误。
create or replace PROCEDURE transfer_table (table_name IN VARCHAR2,tableFrom IN VARCHAR2) IS
BEGIN
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE ' || table_name;
EXCEPTION WHEN OTHERS THEN
NULL;
END;
EXECUTE IMMEDIATE 'CREATE TABLE ' || table_name || ' AS SELECT * FROM ' || tableFrom;
commit;
END transfer_table;
【讨论】:
以上是关于他不执行该程序。第一步失败。甲骨文的主要内容,如果未能解决你的问题,请参考以下文章
安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
顺序执行多条sql,一条执行失败则所有都执行失败;例如第一条成功,第二条失败的话,第一条也失败!急!