关闭→
当前位置:科普经验站>综合知识>oracleprocedure怎么写

oracleprocedure怎么写

科普经验站 人气:2.07W
1.oracle中写procedure如何判断某个表中有没有数据

create procedure 过程名 is

oracleprocedure怎么写

count_data number(8);

定义临时参数;

begin

select count(*) into count_data from 表名;

if count_data > 0 then

select 字段名 into 临时参数 from 表名;

elsif count_data = 0 then

另一步逻辑;

else

dbms_output.put_line("报错");

end if;

end;

2.SQL中Procedure怎么用,下面这题怎么写

存储过程procedure 参见/view/68525.htm

此题解法:

--创建过程

create procedure getCarNumber

@p_model varchar(8),

@p_noofcars int output

as

declare @des varchar(30)

select @p_noofcars=count(*),@des=description from I_MODEL where Model_name=@p_model

select @des

go

--调用

declare @result int

exec getCarNumbers 'FERR TR',@result

select @result

3.oracle存储过程我在包中写了个过程,如下:procedure

如果你是调用包里的存储过程,就要在PL块里写: 包的名字。

存储过程名(参数); 关于你说的游标我不知道是强游标还是弱游标! 要是静态游标可以在存储过程里写 例: cursor 游标名 is select * from emp; emprow 游标名%rowtype; for emprow in 游标名 loop dbms_output。 put_line(emprow。

字段名); end loop; 动态游标就不能用以上循环打应该用loop end loop; 例如 type Refcursor is ref cursor emp%type; empcur Refcursor; open empcur for select * from emp; emprow 游标名%rowtype; loop fetch empcur into emprow; dbms_output。 put_line(emprow。

字段名); end loop; 不知道对你有没有帮助。

4.oracle存储过程怎么写

一、无参程序过程语法

create or replace procedure NoParPro

as ;

begin

;

exception //存储过程异常

;

end;

二、带参存储过程实例

create or replace procedure queryempname(sfindno emp.empno%type) as

sName emp.ename%type;

sjob emp.job%type;

begin

.

exception

.

end;

三、带参数存储过程含赋值方式

create or replace procedure runbyparmeters (isal in emp.sal%type, sname out varchar,sjob in out varchar)

as icount number;

begin

select count(*) into icount from emp where sal>isal and job=sjob;

if icount=1 then

.

else

.

end if;

exception

when too_many_rows then

DBMS_OUTPUT.PUT_LINE('返回值多于1行');

when others then

DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');

end;

在Oracle中对存储过程的调用

过程调用方式一

declare

realsal emp.sal%type;

realname varchar(40);

realjob varchar(40);

begin //存储过程调用开始

realsal:=1100;

realname:='';

realjob:='CLERK';

runbyparmeters(realsal,realname,realjob); --必须按顺序

DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);

END; //过程调用结束

过程调用方式二

declare

realsal emp.sal%type;

realname varchar(40);

realjob varchar(40);

begin //过程调用开始

realsal:=1100;

realname:='';

realjob:='CLERK';

runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变

DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);

END; //过程调用结束

给你参考一下,希望对你有所帮助

祝你好运

5.Oracle 的存储过程怎么写

oracle 存储过程的基本语法

1.基本结构

CREATE OR REPLACE PROCEDURE 存储过程名字

(

参数1 IN NUMBER,

参数2 IN NUMBER

) IS

变量1 INTEGER :=0;

变量2 DATE;

BEGIN

END 存储过程名字

2.SELECT INTO STATEMENT

将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条

记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)

例子:

BEGIN

SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;

EXCEPTION

WHEN NO_DATA_FOUND THEN

xxxx;

END;

3.IF 判断

IF V_TEST=1 THEN

BEGIN

do something

END;

END IF;

4.while 循环

WHILE V_TEST=1 LOOP

BEGIN

XXXX

END;

END LOOP;

5.变量赋值

V_TEST := 123;

6.用for in 使用cursor

IS

CURSOR cur IS SELECT * FROM xxx;

BEGIN

FOR cur_result in cur LOOP

BEGIN

V_SUM :=cur_result.列名1+cur_result.列名2

END;

END LOOP;

END;

7.带参数的cursor

CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;

OPEN C_USER(变量值);

LOOP

FETCH C_USER INTO V_NAME;

EXIT FETCH C_USER%NOTFOUND;

do something

END LOOP;

CLOSE C_USER;

8.用pl/sql developer debug

连接数据库后建立一个Test WINDOW

在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试

6.oracle存储过程循环怎么写

Oracle中有三种循环(For、While、Loop):

1、loop循环:

create or replace procedure pro_test_loop is

i number;

begin

i:=0;

loop

i:=i+1;

dbms_output.put_line(i);

if i>5 then

exit;

end if;

end loop;

end pro_test_loop;

2、while循环:

create or replace procedure pro_test_loop is

i number;

begin

i:=0;

while i

TAG标签:#