开发者社区> geovindu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

sql: Oracle 11g create procedure

简介: CREATE OR REPLACE PROCEDURE proc_Insert_BookKindList ( temTypeName nvarchar2, temParent int ) AS ncount number; begin --SELECT COUNT (*) INTO ncount FROM BookKindList fm1 where EXISTS (SELECT Bo
+关注继续查看
CREATE OR REPLACE PROCEDURE proc_Insert_BookKindList 
(
temTypeName nvarchar2,
temParent int
)
AS
ncount number;
begin
--SELECT COUNT (*) INTO ncount FROM BookKindList fm1 where  EXISTS (SELECT BookKindName from BookKindList fm2 where  fm2.BookKindName=temTypeName);--判斷是否存
SELECT count(*) INTO ncount FROM BookKindList where BookKindName=temTypeName;
if ncount<=0 then
begin
INSERT INTO BookKindList (BookKindName,BookKindParent) VALUES(temTypeName,temParent);
commit;
end;
else
begin
  SELECT BookKindID INTO ncount FROM BookKindList where BookKindName=temTypeName;
  dbms_output.put_line('存在相同的记录,添加不成功!'||ncount);
end;
end if;
Exception 
    When others then 
      dbms_output.put_line('存在问题,添加不成功!'||ncount);
       Rollback; 
end proc_Insert_BookKindList;

--测试 oracle 11g 涂聚文 20150526
exec proc_Insert_BookKindList ('油彩画',3);

drop PROCEDURE proc_Insert_BookKindOut;


CREATE OR REPLACE PROCEDURE procInsertBookKindOut --添加返回ID
(
temTypeName nvarchar2,
temParent number,
temId out number   
)
AS
ncount number;
reid number;
begin
--SELECT COUNT (*) INTO ncount FROM BookKindList fm1 where  EXISTS (SELECT BookKindName from BookKindList fm2 where  fm2.BookKindName=temTypeName);--判斷是否存
SELECT count(*) INTO ncount FROM BookKindList where BookKindName=temTypeName;
if ncount<=0 then
begin
INSERT INTO BookKindList (BookKindID,BookKindName,BookKindParent) VALUES(BookKindList_SEQ.nextval,temTypeName,temParent);
select BookKindList_SEQ.currval into reid from dual;
temId:=reid;
dbms_output.put_line('添加成功!'||temId);
commit;
end;
else
begin
  SELECT BookKindID INTO ncount FROM BookKindList where BookKindName=temTypeName;
  dbms_output.put_line('存在相同的记录,添加不成功!'||ncount);
  temId:=0;
end;
end if;
Exception 
    When others then 
    begin
      dbms_output.put_line('存在问题,添加不成功!'||ncount);
      temId:=0;
       Rollback; 
    end;
end procInsertBookKindOut;

--测试 oracle 11g 涂聚文 20150526
declare
mid  number:=0;
nam  nvarchar2(100):='黑白画';
par  number:=3;
begin
--proc_Insert_BookKindOut(nam in nvarchar2,par in int,mid in out int);
procInsertBookKindOut(nam,par ,mid);
if mid>0 then
dbms_output.put_line('添加成功!输出参数:'||mid);
else
dbms_output.put_line('存在相同的记录,添加不成功!输出参数:'||mid);
end if;
end;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
oracle用SQL Plus输入命令为什么只显示2
oracle用SQL Plus输入命令为什么只显示2
0 0
浅析Oracle中的SQL执行过程
浅析Oracle中的SQL执行过程
0 0
sql中datetime日期类型字段比较(mysql&oracle)
sql中datetime日期类型字段比较(mysql&oracle)
0 0
Oracle、Spark、Hive SQL 正则总结
Oracle、Spark、Hive SQL 正则总结
0 0
Oracle数据库 | SQL语句解析
Oracle数据库 | SQL语句解析
0 0
Oracle数据库PL/SQL学习笔记——函数定义
Oracle数据库PL/SQL学习笔记——函数定义
0 0
Oracle数据库PL/SQL学习笔记三——复合数据的定义
Oracle数据库PL/SQL学习笔记三——复合数据的定义
0 0
Oracle数据库PL/SQL学习笔记二——基础控制语句
Oracle数据库PL/SQL学习笔记二——基础控制语句
0 0
Oracle数据库PL/SQL学习笔记(一)
Oracle数据库PL/SQL学习笔记(一)
0 0
Oracle数据库 | 基于SQL基础分析
Oracle数据库 | 基于SQL基础分析
0 0
+关注
geovindu
读者是,读之者,者之读.一沙一世界! to be is to do举世皆清我独浊,众人皆醒我独醉.俺是农民工,程序员.
文章
问答
文章排行榜
最热
最新
相关电子书
更多
SQL Server 2017
立即下载
SQL Sever迁移PG经验
立即下载
Comparison of Spark SQL with Hive
立即下载