oracle 过程与函数中创建不了临时表

oracle如下过程中,报错:错误:PL/SQL:ORA-00942:表或视图不存在createorreplaceprocedurepro_1asv_sqlvarchar... oracle 如下过程中,报错:错误:PL/SQL: ORA-00942: 表或视图不存在
create or replace procedure pro_1
as
v_sql varchar2(1000);
begin
v_sql := 'create table testtab ( coll int )';
Execute immediate v_sql;
Insert Into testtab Values(1);
commit;
end;

而如下过程又可以创建表:testtab,这是为什么。
create or replace procedure pro_1
as
v_sql varchar2(1000);
begin
v_sql := 'create table testtab ( coll int )';
Execute immediate v_sql;
end;
展开
 我来答
AskTable
2011-01-03 · TA获得超过408个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:271万
展开全部
你要弄清楚oracle执行存储过程的整个流程就明白了。
这个原因很清楚就是编译的时候oracle会发现你insert的表不存在,于是报错。
如果你想让他执行,就把insert也写成动态的,oracle就不会检验动态语句内部的语法、表是否存在等异常了。
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
娜娜琊
2011-01-03 · 超过13用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:37.3万
展开全部
可能是要将你操作的用户解锁,语句是:
alter user 用户名 account unlock;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flameleo11
2011-01-02 · TA获得超过5343个赞
知道大有可为答主
回答量:1943
采纳率:50%
帮助的人:996万
展开全部
你是不是说上面的存储过程有问题,
你上面那个建表没有问题,问题在对临时表的操作也要用动态语句,因为表是动态创建的,你写INSERT 语句编译当然会提示表不存在。
个人理解,关键是手头没有编译调试的家具,不好试验。
不过以前做存储过程,不下几万行了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5231382544
2011-01-04 · TA获得超过2746个赞
知道小有建树答主
回答量:742
采纳率:0%
帮助的人:898万
展开全部
alter user 用户名 account unlock
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式