oracle数据库如何利用存储过程向表中添加数据?
我创建了一个class的表,表中已有一些数据。然后我创建存储过程如下:createorreplaceprocedurep_class(cnoininteger,cname...
我创建了一个class的表,表中已有一些数据。然后我创建存储过程如下:
create or replace procedure p_class(cno in integer,cname in varchar2(10),java in number,html in number)
is
begin
insert into class(cno,cname,java,html,) values(cno,cname,java,html,oracle);
end;
/
结果提示错误:Warning: Procedure created with compilation errors
我的目的是exec执行插入,想问哪里写错了?正确的应该是什么?
忽略insert那句后面多的oracle 展开
create or replace procedure p_class(cno in integer,cname in varchar2(10),java in number,html in number)
is
begin
insert into class(cno,cname,java,html,) values(cno,cname,java,html,oracle);
end;
/
结果提示错误:Warning: Procedure created with compilation errors
我的目的是exec执行插入,想问哪里写错了?正确的应该是什么?
忽略insert那句后面多的oracle 展开
5个回答
展开全部
实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。
CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3
is
--Result1 VARCHAR2(50);
VAR_num number;
begin
VAR_num:=1;
while
VAR_num< 1000000
LOOP
insert into rp_trans_log_day
(trans_time,
trans_province,
trans_type,
score_range,
rule_name,
trans_num)
select to_date('2013/10/29', 'yyyy-mm-dd'),
round(dbms_random.value(1, 300)) || '省',
round(dbms_random.value(1, 800)) || '类型',
round(dbms_random.value(1, 100)) || '风险分值',
round(dbms_random.value(1, 300)) || '规则名称',
'1'
from dual;
commit;
VAR_num:=VAR_num+1;
end loop;
end insert_data_4_pressure_3;
展开全部
class,java html 这些特殊的字符串不建议用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很高兴为您解答!
没有存储过程的结束标志;
将/ 换成end p_class
希望对您有用!
追问
不是这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cname in varchar2(10)
改为
cname in varchar2
改为
cname in varchar2
追问
你是正解,为什么啊?
追答
呵呵,我以前和现在有时也经常犯类似的错误,毕竟写习惯了。
我的理解是这个varchar2仅仅是一个定义,是不需要规定长度的。
不好意思,别忘了采纳啊,我现在只有在网上答题的时候才知道原来我还是dba
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
html 列后面的逗号。。。
更多追问追答
追问
不好意思,那个也请忽略,我多写了。
追答
is 改成 as 试试。 最后的end 后面加上 p_class
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询