传参数生成多条数据的过程怎么写?
表tpiao
numID myTxT
AX0998 "asdf"
AX0999 "xxxx"
例如要生成 AX1000 到 AX2000 的号码(1000条数据)到表TPIAO里
create or replace procedure newdata(tmp1 varchar2,tmp2 varchar2,tmp3 varchar2)
is
begin
//tmp1="AX"
//tmp2="1000"
//tmp3="2000"
//inserto into tpiao numID=tmp1+tmp2 一直到tpiao numID=tmp1+tmp3 ;
select * from tpiao ;
end
怎么写,刚开始学习.
问题点数:50、回复次数:5Top
1 楼yejianwind(啸风)回复于 2005-04-02 14:24:45 得分 50
create or replace procedure newdata(tmp1 varchar2,tmp2 varchar2,tmp3 varchar2)
AS
V_TMP1 NUMBER;
V_TMP2 NUMBER;
I NUMBNER;
begin
V_TMP1:=TO_NUMBER(tmp2);
V_TMP2:=TO_NUMBER(tmp3);
FOR I IN V_TMP1..V_TMP2 LOOP
insert into tpiao(numID,AX0998,AX0999) VALUES(tmp1||TO_CHAR(I),"asdf","xxxx");
LOOP;
END;Top
2 楼thinbug(thinbug)回复于 2005-04-02 14:45:54 得分 0
哦,如果发生数据库已经有某条数据了,如何作到让这个操作不执行,或者忽略掉Top
3 楼thinbug(thinbug)回复于 2005-04-02 15:06:29 得分 0
tmp1='10000';
tmp2='20000';
tmp3 = tmp1 + tmp2 就出错了,有合并字符串的函数?Top
4 楼yejianwind(啸风)回复于 2005-04-02 15:16:32 得分 0
合并字符串用 || tmp3=tmp1||tmp2
忽略的话你加一个判断语句了
CREATE OR REPLACE PROCEDURE newdata(tmp1 VARCHAR2,tmp2 VARCHAR2,tmp3 VARCHAR2)
AS
V_TMP1 NUMBER;
V_TMP2 NUMBER;
I NUMBER;
I_COUNT NUMBER;
BEGIN
V_TMP1:=TO_NUMBER(tmp2);
V_TMP2:=TO_NUMBER(tmp3);
FOR I IN V_TMP1..V_TMP2 LOOP
SELECT COUNT(1) INTO I_COUNT FROM tpiao WHERE NUMID=tmp1||TO_CHAR(I);
IF I_COUNT=0 THEN
INSERT INTO tpiao(numID,AX0998,AX0999) VALUES(tmp1||TO_CHAR(I),"asdf","xxxx");
END IF;
END LOOP;
END;
Top
5 楼thinbug(thinbug)回复于 2005-04-02 15:21:14 得分 0
那如果出现重复,我如何取消前面所做的操作?
事务处理?不知道是什么格式,写在哪里?Top




