创建存储过程
create or replace procedure displaydate
is
begin
dbms_output.put_line(sysdate);
end displaydate;
一般在创建时 加一个 AUTHID CURRENT_USER AS
create or replace procedure displaydate AUTHID CURRENT_USER AS
is
begin
dbms_output.put_line(sysdate);
end displaydate;
调用存储过程:
打开一个sql Windows 执行以下
set serveroutput on execute display_date_time;
--第一种方法:
call displaydate();
--第二种方法:
begin
display_time;
end ;
删除
drop procedure display_date_time
一个存储过程调用另一个
--创建 procedure test_a
create or replace procedure test_a
is
begin
dbms_output.put_line('this is test_a ');
end test_a;
--创建 procedure test_b
create or replace procedure test_b
is
begin
--调用 test_a
test_a;
end test_b;
--调用 test_b
call test_b()
--execute immediate 意思 在存储过程中
简单来说 就是你一个存储过程当中 创建了一个表 table_a 然后要用insert into将其他的数据插入到这个table_a当中,但是因为你在创建过程的时候 table_a还不存在
,过程就会显示有编译错误,因为table_a不存在必然导致过程无法执行,所以无法编译成功,而把insert into语句加如到 execute immediate之后 则oracle不会再去理
会这个对象是否存在,因此可以成功编译和执行。