[Oracle] Procedimientos almacenados gramática básica

1, la gramática básica

CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type)

 /** AS和IS没区别 **/
 IS

 变量1 类型(值范围);

 变量2 类型(值范围);  

 BEGIN

   select count(*) into 变量1 from 表名 where 列名=param1;

   if (判断条件) then

     select 列名 into 变量2 from 表名 where 列名=param1;

     DBMS_OUTPUT.put_line('打印信息');

   Elseif (判断条件) then

     dbms_output.put_line('打印信息');

   Else

     Raise 异常名 (NO_DATA_FOUND);

   End if;

 Exception

     When others then

       Rollback;   

 END;

2, el uso básico

2,1, no hay parámetros del proceso de

create or replace procedure test_count 

 is 

  v_total int;

  v_date varchar(20);

 begin

   select count(*) into v_total from dual;

    select to_char(sysdate,'yyyy-mm-dd') into v_date from dual;     

    DBMS_OUTPUT.put_line('总人数:'||v_total);   

    DBMS_OUTPUT.put_line('当前时间:'||v_date);  

 end;

Llamar al método

begin

	test_count;

end;

2,2, con solamente procesar los parámetros entrantes

create or replace procedure test_count1(v_id in varchar2)

 as

 	v_name varchar(100);

 begin

  select c_name into v_name from tb_store where c_stono=v_id;

  DBMS_OUTPUT.put_line(v_id||'店的名称为:'||v_name);

  exception

   when no_data_found then dbms_output.put_line('no_data_found');

 end;

Llamar al método

begin

 test_count1(11910);

end;

2.3, sólo los parámetros de salida del proceso

create or replace procedure test_count2(v_name out varchar2)

 is

 begin

    select c_name into v_name from tb_store where c_stono='1101';

  exception

   when no_data_found then dbms_output.put_line('no_data_found');

 end;

Llamar al método

declare

v_name varchar(200);

begin

  test_count2(v_name);

  dbms_output.put_line(v_name);

end;

2.4, con los parámetros de entrada y de salida del procedimiento almacenado

create or replace procedure test_count3(v_id in int,v_name out varchar2) 

 as

 begin   

		select c_name into v_name from tb_store where c_stono=v_id;

		dbms_output.put_line(v_name);

  exception

		when no_data_found then dbms_output.put_line('no_data_found');

 end;

Llamar al método

declare

v_name varchar(200);

begin

  test_count3('1101',v_name);

end;
Publicados 107 artículos originales · ganado elogios 88 · vistas 260 000 +

Supongo que te gusta

Origin blog.csdn.net/Code_shadow/article/details/103518007
Recomendado
Clasificación