存储过程中添加数据
❶ 如何利用存储过程向表中添加数据
create procere prc_sale
@编号 int
,@名称 varchar(20)
,@价钱 float
,@卖出数量 float
as
begin
insert into sales (编号,名称,价钱,卖出数量)
values (@编号,@名称,@价钱,@卖出数量);
end;
❷ oracle数据库如何利用存储过程向表中添加数据
实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。
_data_4_pressure_3
is
--Result1VARCHAR2(50);
VAR_numnumber;
begin
VAR_num:=1;
while
VAR_num<1000000
LOOP
insertintorp_trans_log_day
(trans_time,
trans_province,
trans_type,
score_range,
rule_name,
trans_num)
selectto_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'
fromal;
commit;
VAR_num:=VAR_num+1;
endloop;
endinsert_data_4_pressure_3;
❸ pl/sql写存储过程,怎么插入新数据
在存储过程中插入数据肯定用到sql语句,写好insert语句就好了。
createorreplaceprocerep_insert_mt_jx(P_a1invarchar2,P_a2invarchar2,P_a3invarchar2,P_a4invarchar2)
as
sql_strvarchar2(100);
begin
sql_str:='insertintomt_jx(a1,a2,a3,a4)values('||P_a1||','||P_a2||','||P_a3||','||P_a4||',)';
executeimmediatesql_str;
/*
或者你可以不用executeimmediate,可以直接写下面的sql
insertintomt_jx(a1,a2,a3,a4)values(P_a1,P_a2,P_a3,P_a4);
*/
commit;
end;
❹ 怎么写存储过程,向数据库中批量插入数据
用循环语句生成字段值insert
SQL 如下:
createprocereInsertTest
as
begin
declare@iint
declare@svarchar(20)
set@i=1
while@i<=100
begin
select@s=cast(@iASvarchar(20))
insertintotest(A,B,C,D)VALUES('a'+@s,'b'+@s,'ccccc','ddddd')
SET@i=@i+1
end
end
❺ 如何在sql创建一条插入数据的存储过程
1、首先需要打开SQL Server Managment管理工具,新建一个表。
❻ oracle存储过程怎样批量插入新数据
需要生成的SQL
insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);
存储过程实现
create or replace procere proc_casekey_upstate
as
casekey char(14);
begin
for i in 1..10000000 loop
casekey := 'TMP'||lpad(i,7,0); -- TMP0000001
insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
end loop;
commit;
end;
begin
proc_casekey_upstate();
end;
测试发现生成一千万条数据用了14分钟左右,性能还是可以了,如果先去掉TMP_NUM_STATUS_ID的外键估计更快。
或者:
insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from al connect by level <= 1000000;
❼ mysql存储过程怎样批量插入数据
一下代码运行通过:
delimiter$$;
createprocerelucia_proc16(countint)
begin
DECLAREname_procVARCHAR(20)CHARACTERSETutf8;
DECLAREsex_procVARCHAR(4)CHARACTERSETutf8;
DECLAREage_procINT(10);
DECLAREclass_procVARCHAR(20)CHARACTERSETutf8;
DECLAREAddr_procVARCHAR(50)CHARACTERSETutf8;
DECLAREiINT;
seti=1;
setsex_proc='女';
setage_proc=20;
setclass_proc='山治班';
setAddr_proc='北京市朝阳区';
whilei<countdo
setname_proc=CONCAT('露西亚',i);
insertintostudents(Name,Sex,age,class,Addr)values(name_proc,sex_proc,age_proc,class_proc,Addr_proc);
seti=i+1;
endwhile;
end
$$;
delimiter;
代码功能:
传入一个行数,控制插入多少条数据
运行效果:
❽ 有外键的数据库怎么通过存储过程添加数据
以下为 Oracle 表与过程:
部门表:
create table tbl_dept
(
dept_code varchar2(20) not null, --主键
dept_name varchar2(20)
)
;
员工表:
create table tbl_emp
(
emp_code varchar2(20) not null, --主键
emp_name varchar2(20),
dept_code varchar2(20) --外键
)
;
存储过程:
create or replace package body pkg_test is
procere pro_emp_insert(
p_emp_code in varchar2 ,
p_emp_name in varchar2,
p_dept_code in varchar2,
errbuf out varchar2,
retcode out number
)
is
begin
--数据验证,验证:不为空、特殊字符等等
--略
--插入
insert into tbl_emp values (p_emp_code, p_emp_name, p_dept_code);
retcode := 1;
errbuf := '插入员工成功!';
exception
when others then
retcode := -1;
errbuf := '插入员工错误:' || sqlerrm;
end pro_emp_insert;
end pkg_test;
❾ 如何在存储过程中实现插入更新数据
--先在数据库中创建test表,表中有列名为name,类型为varchar(50)
然后先执行
create procere proc_insert
@name varchar(50)
as
begin
insert into test values(@name)--插入数据
end
go
create procere proc_update
@newname varchar(50),@oldname varchar(50)
as
begin
update test set name=@newname where name=@oldname--更新数据
end
go
--其中proc_insert为存储过程名,可自定义 procere可使用简写proc
上面执行完成后调用存储过程
exec proc_insert '晓华'--将"晓华"添加到test表中
exec proc_update '小明','晓华' --将表中'晓华' 改为'小明',必须与存储过程变量顺序相同
exec proc_update @oldname='小明',@newname='晓华'--与存储过程变量顺序可以不同
drop procere proc_insert 删除存储过程proc_insert
❿ Oracle中的存储过程如何添加更新数据
添加更新数据跟一般的sql一样的写法啊,唯一差别是变量、传参的写法,比如
select
count(1)
into
v_count
from
table
a
where
a.clct_day
=
p_clct_day;
这里v_count就是定义的一个变量,p_clct_day就是过程传入的时间参数