declare
  v  varchar2(100);
  o  varchar2(100);
begin
  train1('v1',o1);
end;

解决方案 »

  1.   

    不行啊,报错
    ERROR 位于第 5 行:
    ORA-06550: 第 5 行, 第 15 列:
    PLS-00201: 必须说明标识符 'O1'
    ORA-06550: 第 5 行, 第 3 列:
    PL/SQL: Statement ignored
      

  2.   

    declare
       a  varchar2(100);
    begin
      train1('v1',a);
    end;
      

  3.   

    还有:
       create or replace procedure train1(
    v1 in varchar2,
    o1 out varchar2
    )
    as
    begin
    select station_order into o1 
     from tour_train where station_name=v1 -- 不是 'v1'!!!;
    end;
      

  4.   

    declare
    *
    ERROR 位于第 1 行:
    ORA-01403: 未找到数据
    ORA-06512: 在"TOUR.TRAIN1", line 7
    ORA-06512: 在line 4按你所说得也有错误呀!!
      

  5.   

    ORA-01403: 未找到数据 ,是
      表中没有符合 where条件的记录。
      

  6.   

    declare
    *
    ERROR 位于第 1 行:
    ORA-01403: 未找到数据
    ORA-06512: 在"TOUR.TRAIN1", line 7
    ORA-06512: 在line 4按你所说得也有错误呀!!
    -------------------------------------对select 语句最好做一个例外处理
    begin
      sql 语句
    exception
          WHEN OTHERS THEN
             dbms_output.put_line('意外错误' || SQLERRM);
             RETURN ;
      

  7.   

    我也碰到这个问题(create or replace procedure test as select * from scott.emp;)
    执行时总是出错,不知道什么原因?
      

  8.   

    已经可以了,但是怎么做能看到查询出来的数据呢?
    这是我重做的一个过程,编译和调用都可以了,但看不到数据
    create procedure codenumber1
    (
      in_netherlands in varchar2,
      code out number
    )
    as
    begin
      select code_number into code from tour_code_number where netherlands=in_netherlands;
     end codenumber1;调用
    declare
      aa number(6);
    begin
      codenumber1('上海',aa);
    end;
    我想让数据显示出来,该怎么做呀?
      

  9.   

    sql> set serveroutput on
    sql>declare
      aa number(6);
    begin
      codenumber1('上海',aa);
      dbms_output.put_line('上海 is ' || aa);
    end;
      

  10.   

    select station_order into o1 from tour_train where station_name=v1;
      

  11.   

    非常感谢大家的热心帮助为以后的新手少走弯路,整理一下
    过程:
    create or replace procedure codenumber1(过程名)
    (
      in_netherlands(过程的参数名称) in varchar2(参数的PL/SQL类型),
      code out number
    )
    as
    begin
      select code_number into code from tour_code_number where (过程体)netherlands=in_netherlands;
     end codenumber1;调用并显示
     set serveroutput on
    declare
      aa number(6);
    begin
      codenumber1('上海',aa);
      dbms_output.put_line('上海 is ' || aa);
    end;
    揭帖了