Oracle 我执行了一个存储过程,产生的表里为什么是空的 没有数据
insertintoAselectfromwhere后A表为什么是空的,COMMIT(F10)是灰色的不可用状态怎么回事,commit怎么用放在哪个位置开发工具pl/sq...
insert into A select from where 后 A 表为什么是空的 ,COMMIT (F10 ) 是灰色的 不可用状态 怎么回事,commit 怎么用 放在哪个位置
开发工具 pl/sql developer
我的语句是这个
create or replace procedure up_del_order(i_orderid in varchar2) as begin
insert into order_cancel_bak (..省略.) select (..省略.) from order_cancel where order_id= i_orderid;
delete from order_cancel where order_id= i_orderid;
commit; 展开
开发工具 pl/sql developer
我的语句是这个
create or replace procedure up_del_order(i_orderid in varchar2) as begin
insert into order_cancel_bak (..省略.) select (..省略.) from order_cancel where order_id= i_orderid;
delete from order_cancel where order_id= i_orderid;
commit; 展开
3个回答
展开全部
SQL> create table mmm as select * from dba_objects where rownum<=1;
表已创建。
SQL> select count(*) from mmm;
COUNT(*)
----------
1
SQL> declare
2 i number;
3 begin
4 for i in 1..4 loop
5 insert into mmm select * from dba_objects;
6 commit;
7 end loop;
8 end;
9 /
PL/SQL 过程已成功完成。
SQL> select count(*) from mmm;
COUNT(*)
----------
364213
兄弟,问问题要把你的问题细节讲清楚啊, 一个存储过程 是什么? commit 怎么是灰色的?你用的什么软件,pl/sql dev,sql developer,toad,navicat for oracle ?
表已创建。
SQL> select count(*) from mmm;
COUNT(*)
----------
1
SQL> declare
2 i number;
3 begin
4 for i in 1..4 loop
5 insert into mmm select * from dba_objects;
6 commit;
7 end loop;
8 end;
9 /
PL/SQL 过程已成功完成。
SQL> select count(*) from mmm;
COUNT(*)
----------
364213
兄弟,问问题要把你的问题细节讲清楚啊, 一个存储过程 是什么? commit 怎么是灰色的?你用的什么软件,pl/sql dev,sql developer,toad,navicat for oracle ?
更多追问追答
追问
如上
追答
按道理过程写的是没什么问题,要sqlplus下试试看,我试了一下是可以的
SQL> create table abc(id number,name varchar2(10));
表已创建。
SQL> create table abc_bak(id number,name varchar2(10));
表已创建。
SQL> insert into abc values(1,'ab');
已创建 1 行。
SQL> insert into abc values(2,'ac');
已创建 1 行。
SQL> insert into abc values(3,'ad');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from abc;
ID NAME
---------- ----------
1 ab
2 ac
3 ad
SQL> create or replace procedure mod_abc(nid in number) as
2 begin
3 insert into abc_bak select * from abc where id=nid;
4 delete from abc where id=nid;
5 commit;
6 end;
7 /
过程已创建。
SQL> exec mod_abc(1);
PL/SQL 过程已成功完成。
SQL> select * from abc;
ID NAME
---------- ----------
2 ac
3 ad
SQL> select * from abc_bak;
ID NAME
---------- ----------
1 ab
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
今至电子科技有限公司
2024-08-23 广告
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整...
点击进入详情页
本回答由今至电子科技有限公司提供
展开全部
insert into A
select * from B
where ------;
commit;
首先表A和表B的结构必须是一致的,而且表B中有数据。
select * from B
where ------;
commit;
首先表A和表B的结构必须是一致的,而且表B中有数据。
更多追问追答
追问
我的没错就是 你的 格式 但是 表A 是空的 没有数据 怎么回事
追答
SQL> create or replace procedure mod_abc(nid in number) as
2 begin
3 insert into abc_bak select * from abc where id=nid;
commit;
4 delete from abc where id=nid;
5 commit;
6 end;
7 /
你应该少了一个提交
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
commit要放在存储过程里面的insert语句之后
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询