简单的Oracle存储过程的创建方法

2/9/2008来源:Oracle教程人气:7532


  连接到:
  Oracle9i EnterPRise Edition Release 9.2.0.1.0 - ProdUCtion
  With the Partitioning, OLAP and Oracle Data Mining options
  JServer Release 9.2.0.1.0 - Production
  
  SQL> create or replace procedure get_news(
  2 aid in varchar2,atitle in varchar2)
  3 as
  4 begin
  5 select * from cf_news
  6 end;
  7 /
  
  警告: 创建的过程带有编译错误。
  
  SQL> create or replace procedure get_news(
  2 aid in varchar2 ,atitle in varchar2)
  3 as
  4 beging
  5 /
  
  警告: 创建的过程带有编译错误。
  
  SQL> create or replace procedure get_news(
  2 aid in varchar2)
  3 as
  4 begin
  5 select * from cf_news;
  6 end;
  7 /
  
  警告: 创建的过程带有编译错误。
  
  SQL> create or replace procedure get_news
  2 as
  3 begin
  4 select * from cf_news;
  5 end;
  6 /
  
  警告: 创建的过程带有编译错误。
  
  SQL> show errors;
  PROCEDURE GET_NEWS 出现错误:
  
  LINE/COL ERROR
  -------- -------------------------------------
  4/1   PLS-00428: 在此 SELECT 语句中缺少 INTO 子句
  SQL> create or replace procedure get_news
  2 as
  3 aa number;
  4 begin
  5 select count(*) into aa from cf_news;
  6 end;
  7 /
  
  过程已创建。
  
  SQL> create or replace procedure get_news
  2 as
  3 aa number;
  4 begin
  5 select count(*) into aa from cf_news;
  6 dbms_outpub.put_line('aa='aa);
  7 end;
  8 /
  
  警告: 创建的过程带有编译错误。
  
  SQL> show errors;
  PROCEDURE GET_NEWS 出现错误:
  
  LINE/COL ERROR
  -------- -----------------------------------------
  6/1   PLS-00201: 必须说明标识符 'DBMS_OUTPUB.PUT_LINE'
  6/1   PL/SQL: Statement ignored
  SQL> create or replace procedure get_news
  2 as
  3 aa number;
  4 begin
  5 select count(*) into aa from cf_news;
  6 dbms_output.put_line('aa='aa);
  7 end;
  8 /
  
  过程已创建。
  
  SQL> set serverout on;
  SQL> execute get_news;
  aa=3
  
  PL/SQL 过程已成功完成。