为了账号安全,请及时绑定邮箱和手机立即绑定

oracle 如下过程中,报错:错误:PL/SQL: ORA-00942: 表或视图不存在

oracle 如下过程中,报错:错误:PL/SQL: ORA-00942: 表或视图不存在

慕斯709654 2023-04-09 13:09:03
create or replace procedure pro_1 asv_sql varchar2(1000);beginv_sql := 'create table testtab ( coll int )';Execute immediate v_sql;Insert Into testtab Values(1);commit;end;而如下过程又可以创建表:testtab,这是为什么。create or replace procedure pro_1 asv_sql varchar2(1000);beginv_sql := 'create table testtab ( coll int )';Execute immediate v_sql;end;
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

你要弄清楚oracle执行存储过程的整个流程就明白了。
这个原因很清楚就是编译的时候oracle会发现你insert的表不存在,于是报错。
如果你想让他执行,就把insert也写成动态的,oracle就不会检验动态语句内部的语法、表是否存在等异常了。

查看完整回答
反对 回复 2023-04-12
?
ibeautiful

TA贡献1993条经验 获得超5个赞

可能是要将你操作的用户解锁,语句是:
alter user 用户名 account unlock;

查看完整回答
反对 回复 2023-04-12
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信