使用oracle存储过程遇到的坑

之前一直都是用sqlserver 突然用oracle  蛋疼的连存储过程执行一个查询都不会 各种百度锕  现在记录下面的语法问题

 

orcale创建一个存储过程的语法、

create or replace procedure (参数)
 
as
--声明变量
 
begin
--存储过程主题  
end;
 
存储过程一段结束都要使用“;”结尾
存储过程 ‘ 的转义为 两个''  如where:='where isdelete=''0''';
存储过程执行一个查询语句
create or replace procedure (index out syssys_refcursor)
 
as
--声明变量
wheresql varchar(50);
sumsql varchar(50);
p1 int;
p2 int;
p3 int;
begin
wheresql:='select * from table';
--执行存储过程查询表记录
open index  for select * from table;
 
--执行带字符串sql语句
open index for wheresql;
 
--执行sql语句 并未变量赋值
select count(*) from table into p1;
--执行sql语句为多个变量赋值
select  count(*),sum(text) from table into p2,p3;
--执行字符串sql为变量赋值
sumsql:='select  count(*),sum(text) from table';
 
execute immediate sumsql into p2,p3;
end;

 调试存储过程 在管理工具Procedures 右键测试就好了   执行查询结果 在输出游标变量里面

你可能感兴趣的:(使用oracle存储过程遇到的坑)